Вы находитесь на странице: 1из 548

Indice Introduccin Programa de usuario

1 2 3 4 5 6 7 8 9 10 11 12 13

SIMATIC S5 S5-155U CPU 948


Manual de programacin

Procesiamento del programa Estados operativos y niveles de procesamiento Tratamiento de interrupciones y errores Funciones especiales integradas Mdulo de datos ampliado DX 0 Ocupacin y organizacin de la memoria Accesos a la memoria a travs de direcciones absolutas Modo multiprocesador y comunicacin del S5-155U Interfaces y funciones del aparato de programacin Apndices Indices: Lista de abreviaturas Indice alfabtico La lista de operaciones 6ES5 997-3UA42 se entrega con el manual

Referencia del manual: 6ES5 998-3PR41

10/98 C79000-G8578-C848 Vercin 04

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

! ! !

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

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

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

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

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

Precaucin
El equipo o los componentes del sistema slo se podrn utilizar para los casos de aplicacin previstos en el catlogo y en la descripcin tcnica, y slo 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 instalacin y un montaje conforme a las prcticas de la buena ingeniera, as como un manejo y un mantenimiento rigurosos.

Marcas registradas
SIMATICR, SIMATIC HMIR y SIMATIC NETR son marcas registradas de SIEMENS AG.

Los restantes nombres y designaciones contenidos en el presente documento pueden ser marcas registradas cuya utilizacin por terceros para sus propios fines puede violar los derechos de los proprietarios.
Copyright E Siemens AG 1998 All rights reserved La divulgacin y reproduccin de este documento, as como el uso y la comunicacin de su contenido, no estn autorizados, a no ser que se obtenga el consentimiento expreso para ello. Los infractores quedan obligados a la indemnizacin de los daos. Se reservan todos los derechos, en particular para el caso de concesin de patentes o de modelos de utilidad. Siemens AG Bereich Automatisierungs- und Antriebstechnik Geschaeftsgebiet Industrie-Automatisierungssysteme Postfach 4848, D-90327 Nuernberg Exencin de responsabilidad Hemos probado el contenido de esta publicacin con la concordancia descrita para el hardware y el software. Sin embargo, es posible que se den algunas desviaciones que nos impiden tomar garanta completa de esta concordancia. El contenido de esta publicacin est sometido a revisiones regularmente y en caso necesario se incluyen las correcciones en la siguiente edicin. Agradecemos sugerencias. E Siemens AG 1998 Sujeto a cambios sin previo aviso. 6ES5 998-3PR41

Siemens Aktiengesellschaft

Indice
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 3 Campos de aplicacin del S5-155U con la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 4 Funcionamiento tpico de una CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 5 Los programas de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 7 De qu operandos dispone el programa de usuario?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 11 De cunta memoria dispone el programa de usuario? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 14 Cmo proceder a la hora de programar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 15 Herramientas de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 18 Conversin de programas de usuario de la CPU 928B para la CPU 948 . . . . . . . . . . . . . . . . . 1 - 19 Programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 3 Lenguaje de programacin STEP 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 4 Modos de representacin KOP, FUP y AWL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 4 Programacin estructurada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 5 Operaciones STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 6 Representacin numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 8 Mdulos STEP 5 y su almacenamiento en la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 12

2.2 Mdulos de programa, de organizacin y de pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16 2.2.1 Mdulos de organizacin para interfaces con el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18 2.2.2 Mdulos de organizacin de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22 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 Mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estructura de los mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programacin de los mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Llamada y parametrizacin de mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulos de funciones especiales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Crear mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abrir mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulos de datos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23 2 - 24 2 - 26 2 - 28 2 - 33 2 - 35 2 - 37 2 - 38 2 - 41

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

iii

Indice

3 3.1 3.2 3.3

Procesamiento de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 3 Principios fundamentales del procesamiento de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 4 Organizacin de los programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 5 Almacenamiento de mdulos de programa y de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 10

3.4 Procesamiento del programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 11 3.4.1 Definiciones terminolgicas en cuanto al procesamiento de programas . . . . . . . . . . . . . . . . . . 3 - 12 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 4 4.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.4 4.4.1 4.4.2 4.4.3 4.4.4 5 5.1 5.2 5.3 5.4 Operaciones STEP 5 con ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de programacin en los modos de representacin AWL, KOP y FUP . . . . . . . . . . . Operaciones complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones de organizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones semforo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 15 3 - 19 3 - 34 3 - 49 3 - 59 3 - 75

Estados operativos y niveles de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 3 Niveles de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 4 Estado operativo STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 9 STOP PARCIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 9 STOP TOTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 13 BORRADO TOTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 14 Estado operativo ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NUEVO ARRANQUE MANUAL y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REARRANQUE MANUAL y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diferencias entre el NUEVO ARRANQUE y el REARRANQUE . . . . . . . . . . . . . . . . . . . . . . NUEVO ARRANQUE CON MEMORIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diferencias entre el NUEVO ARRANQUE y el NUEVO ARRANQUE CON MEMORIA . Interfaces con el usuario para el arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rearranque automtico ampliado con la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupciones durante el ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estado operativo RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procesamiento cclico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determinacin del procesamiento controlado por tiempo y por alarma . . . . . . . . . . . . . . . . . . Procesamiento controlado por tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procesamiento controlado por alarma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 16 4 - 17 4 - 18 4 - 21 4 - 22 4 - 23 4 - 24 4 - 27 4 - 28 4 - 29 4 - 30 4 - 32 4 - 33 4 - 41

Tratamiento de interrupciones y errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 3 Errores frecuentes en el programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 4 Informaciones sobre errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 5 Procedimiento para el anlisis de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 8 Bits de control y pila de interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 9

iv

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice

5.4.1 Bits de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 10 5.4.2 Contenido de la pila USTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 14 5.4.3 Ejemplo de diagnstico de un error mediante la pila USTACK . . . . . . . . . . . . . . . . . . . . . . . . 5 - 19 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 5.6.10 5.6.11 5.6.12 5.7 5.7.1 5.7.2 5.7.3 5.7.4 6 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 Tratamiento de errores mediante mdulos de organizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 20 Causas de error y reacciones de la CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 19: Llamada a un mdulo de codigo no cargado (KB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 19: Llamada a un mdulo de datos no cargado (KDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 23/24, OB 28/29: Retardo en acuse de recibo (QVZ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 25: Error de direccionamiento (ADF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 26: Error de tiempo de ciclo (ZYK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 27: Error de sustitucin (SUF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 30: Error de paridad y QVZ en la memoria de usuario (PARE). . . . . . . . . . . . . . . . . . . . . OB 32: Error de carga y transferencia (TRAF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 33: Colisin de alarmas temporizadas (WEFES/WEFEH) . . . . . . . . . . . . . . . . . . . . . . . . . OB 34: Error en E DB/EX DX (FEDBX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 35: Errores de comunicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 36: Errores en autotest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Autotest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descripcin de las funciones de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajustes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tratamiento de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 23 5 - 24 5 - 24 5 - 25 5 - 26 5 - 27 5 - 28 5 - 28 5 - 29 5 - 30 5 - 32 5 - 32 5 - 33 5 - 34 5 - 34 5 - 35 5 - 37 5 - 38

Funciones especiales integradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 3 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 4 OB 121: Ajustar/leer la hora del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 8 OB 122: Activar/desactivar "Bloqueo de alarmas". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 12 OB 124: Borrar mdulos STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 14 OB 125: Crear mdulos STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 17 OB 126: Definir y transferir imagenes de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 20 OB 129: Averiguar el estado de la batera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 25 OB 131: Borrar AKKU 1, 2, 3 y 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 26 OB 132/133: AKKU roll up/AKKU roll down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 27 OB 141: Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas" . . . . . . . . 6 - 29 OB 142: Activar/desactivar "Retardar alarmas conjuntamente". . . . . . . . . . . . . . . . . . . . . . . . . 6 - 32 OB 143: Activar/desactivar "Retardar alarmas cclicas individualmente". . . . . . . . . . . . . . . . . 6 - 35 OB 150: Ajustar/leer la hora del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 38 OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj. . . . . . . . . . . . . 6 - 43 OB 153: Ajustar/leer la hora para la alarma de retardo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 50

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice

6.16 6.17 6.18 6.19 6.20 6.21 6.22 7 7.1

OB 180: Acceso variable a mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 53 OB 181: Comprobar mdulos de datos (DB/DX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 57 OB 182: Copiar zona de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 59 OB 202 a 205: Comunicacin en multiprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 62 OB 222: Arrancar nuevamente el tiempo de supervisin de ciclo. . . . . . . . . . . . . . . . . . . . . . . 6 - 63 OB 223: Comparar los modos de arranque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 64 OB 254/255: Copiar/duplicar mdulos de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 65 Mdulo de datos ampliado DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 3 Aplicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 4

7.2 Estructura del DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 5 7.2.1 Ejemplo de entrada del DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 7 7.3 Parmetros para el DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 8

7.4 Ejemplos de parametrizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 12 7.4.1 Programacin STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 12 7.4.2 Parametrizacin mediante la mscara del aparato de programacin . . . . . . . . . . . . . . . . . . . . . 7 - 14 8 8.1 Ocupacin y organizacin de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 3 Estructura de la zona de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 4

8.2 Distribucin de la zona de direcciones de la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 5 8.2.1 Distribucin de la zona de direcciones de la RAM de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 6 8.2.2 Distribucin de la zona de direcciones de la periferia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 8 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 9 9.1 9.2 9.2.1 9.2.2 9.2.3 9.3 Organizacin de la memoria de usuario de la CPU 948. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 10 Encabezamientos de mdulos en la memoria de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Listas de direcciones de mdulos en el mdulo de datos DB 0. . . . . . . . . . . . . . . . . . . . . . . . . Zona BA/BB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zona BS/BT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ocupacin de los bits de las palabras de datos de sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zona de datos de sistema libremente direccionable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 12 8 - 13 8 - 14 8 - 15 8 - 18 8 - 42

Accesos a la memoria a travs de direcciones absolutas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 3 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 4 Accesos a la memoria a travs de la direccin registrada en AKKU 1 . . . . . . . . . . . . . . . . . . . . 9 - 8 LIR/TIR: Carga/transferencia indirecta de registros de 16 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 9 Ejemplos de accesos a DW > 255 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 15 LDI/TDI: Carga/transferencia indirecta de registros de 32 bit . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 17 Transferencia de bloques de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 19

vi

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice

9.4 9.4.1 9.4.2 9.4.3 9.4.4 10 10.1 10.1.1 10.1.2 10.1.3 10.1.4 10.1.5 10.1.6 10.1.7 10.1.8 10.2 10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6 10.2.7 10.2.8 10.3 10.4 10.4.1 10.4.2 10.4.3 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

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 pginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 - 22 9 - 23 9 - 24 9 - 25 9 - 29

Modo multiprocesador y comunicacin del S5-155U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3 Modo multiprocesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4 Cundo utilizar el modo multiprocesador? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4 De qu mecanismos de comunicacin se dispone?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4 Intercambio de datos a travs de marcas de acoplamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5 Intercambio de datos a travs de mdulos de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 8 Qu hay que programar para utilizar el modo multiprocesador? . . . . . . . . . . . . . . . . . . . . . . . 10 - 9 Cmo se crea el mdulo de datos DB 1? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 9 Qu hay que saber acerca del arranque en modo multiprocesador?. . . . . . . . . . . . . . . . . . . . 10 - 13 Qu hay que saber acerca del modo "test"? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 14 Comunicacin en multiprocesamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo se identifica el emisor y el receptor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Porqu se almacenan datos de forma intermedia? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo se procesa y administra la memoria intermedia? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aspectos a tener en cuenta durante el arranque del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . Lo que hay que tener en cuenta al llamar los OBs de comunicacin . . . . . . . . . . . . . . . . . . . Cmo se parametrizan los OBs de comunicacin? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo se evalan los parmetros de salida? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 15 10 - 15 10 - 16 10 - 17 10 - 18 10 - 21 10 - 22 10 - 23 10 - 24

Tiempos de ejecucin de los OBs de comunicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 31 Funcin INICIALIZAR (OB 200). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin EMITIR (OB 202) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin TEST DE EMISION (OB 203) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin RECIBIR (OB 204) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 33 10 - 33 10 - 35 10 - 35 10 - 38 10 - 40 10 - 40 10 - 40 10 - 40 10 - 42 10 - 45 10 - 45 10 - 45 10 - 45 10 - 45 10 - 47 10 - 47 10 - 47 10 - 47 10 - 48

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

vii

Indice

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 11 11.1 11.2 11.2.1 11.2.2 11.2.3 11.3 11.4 11.4.1 11.4.2 11.4.3 11.5 11.5.1 11.5.2 11.5.3 11.5.4 12 13

Funcin TEST DE RECEPCION (OB 205) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Llamada de los OBs de funciones especiales por medio de mdulos de funciones . . . . . . . . Transferencia de mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ampliacin de la zona de marcas de acoplamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 - 51 10 - 51 10 - 51 10 - 51 10 - 51 10 - 53 10 - 53 10 - 60 10 - 66

Interfaces y funciones del aparato de programacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 3 Resumen sinptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 4 Funciones del aparato de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Puesta en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test del programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 5 11 - 6 11 - 7 11 - 8

Acoplamiento PG AG a travs de la 1 2 interfaz serie . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 16 Funcionamiento paralelo de dos interfaces serie de PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Puesta en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Servicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejecucin en determinados estados operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funciones de PG va bus S5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aplicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcionamiento de las funciones de PG va bus S5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Puesta en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indicacin de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 17 11 - 19 11 - 19 11 - 21 11 - 27 11 - 27 11 - 29 11 - 31 11 - 35

Apndices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 - 3 Indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 - 1

viii

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Introduccin

Indice - Captulo 1
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Campos de aplicacin del S5-155U con la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 4 Funcionamiento tpico de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 5 Los programas de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 7 De qu operandos dispone el programa de usuario? . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 11 De cunta memoria dispone el programa de usuario?. . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 14 Cmo proceder a la hora de programar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 15 Herramientas de programacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 18 Conversin de programas de usuario de la CPU 928B para la CPU 948 . . . . . . . . . . . 1 - 19

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1-1

Indice

1-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Introduccin
Objetivos de este manual

1
Este manual se remite a aquellos usuarios que ya dispongan de conocimientos bsicos sobre la programacin de autmatas programables y que deseen utilizar la CPU 948 en el autmata programable S5-155U, ofrecindoles informaciones especiales para la programacin de la CPU 948. A aquellos lectores que an no dispongan de estos conocimientos, se recomienda leer el libro de introduccin al lenguaje de programacin STEP 5 /3/, o bien participar en un cursillo en uno de nuestros centros de aprendizaje. SIEMENS le ofrece una extensa gama de cursillos sobre los equipos SIMATIC S5. Obtendr informaciones ms detalladas al respecto en la delegacin SIEMENS ms cercana.

Resumen del captulo 1

El captulo 1 contiene informaciones acerca de cmo utilizar el manual, informando al lector adems sobre los campos de aplicacin del autmata programable S5-155U con la CPU 948 y sobre su estructura interna bsica. Explica el funcionamiento tpico de una CPU y el modo en que est estructurado un programa de CPU. Este captulo ofrece asimismo algunos consejos sobre cmo proceder a la hora de programar y tambin informa sobre los datos caractersticos importantes que posee la CPU 948. Si ya se ha trabajado anteriormente con la CPU 946/947 y se desea saber en qu aspectos se diferencia la CPU 948, se puede consultar el captulo 1.8. El captulo 1 explica adems las diferencias entre las versiones A01 y A02 de la CPU 948 e indica lo que hay que tener en cuenta al convertir programas "928B" para la CPU 948.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1-3

Campos de aplicacin del S5-155U con la CPU 948

1.1

Campos de aplicacin del S5-155U con la CPU 948

Clasificacin dentro de la familia El autmata programable S5-155 U pertenece a la familia de los controladores de memoria programable SIMATIC S5. Junto con la CPU 948 es el aparato multiprocesador ms potente para la automatizacin de procesos industriales (mando, avisos, supervisin, regulacin, protocolos). Gracias a su estructura modular y sus enormes prestaciones puede ser empleado tanto para mandos de mediana a gran envergadura como para tareas de automatizacin complejas a nivel de gestin y direccin de procesos.

Aptitudes

El autmata programable S5-155U con CPU 948 es especialmente apropiado para: Tareas que exijan un procesamiento ultrarrpido de bits y de palabras as como tiempos de reaccin breves, es decir, para mando y regulacin muy rpidos. Ejemplos de este tipo de tareas se encuentran en los procesos rpidos de la ingeniera mecnica (instalaciones embotelladoras, empaquetadoras y similares), as como en la industria del automvil. Tareas que exijan un gran volumen de memoria y tiempos de acceso rpidos, p. ej. en la industria del automvil, en la tcnica de operaciones y procesos, as como en la construccin de instalaciones. Tareas que exijan una comunicacin rpida con otras CPUs integradas en un mismo autmata programable en modo multiprocesador y tambin con otras tarjetas CP (p. ej. en interconexiones con sistemas de bus y computadoras principales, as como para visualizacin, mando y observacin). Tareas complejas que puedan ser solucionadas de forma clara y eficiente con los lenguajes de alto nivel C y SCL.

1-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcionamiento tpico de una CPU

1.2

Funcionamiento tpico de una CPU


Una CPU ofrece los siguientes modos de procesamiento:

Funcionamiento de una CPU

1.

2.

3.

Procesamiento cclico

Procesamiento controlado por tiempo

Procesamiento controlado por alarma

Procesamiento cclico

La mayor parte de los procesos que tienen lugar en una CPU se efectan de este modo. Como su propio nombre indica, en un ciclo continuo se va repitiendo el mismo procedimiento una y otra vez.

El procesamiento cclico se divide en tres fases principales : CPU

Fase

Ejecucin Todas las tarjetas de entrada asignadas a la CPU son consultadas por el programa de sistema y los valores ledos 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 las salidas (PAA). El programa de sistema transfiere los valores que contiene la PAA a las tarjetas de salida asignadas a la CPU.

Proceso

Leer imagen de proceso de las entradas

Entrada E 1.3 Entrada E 1.4 Entrada E 1.5

Evaluar seales de entrada, definir seales de salida


E 1.5 E 1.6 =1 E 1.4 E 1.3 & A 3.1 &

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

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1-5

Funcionamiento tpico de una CPU Procesamiento controlado por tiempo

Para procesos que requieran seales de control en intervalos de tiempo constantes se pueden procesar determinadas tareas de forma controlada por tiempo - paralelamente a la ejecucin cclica - tales como funciones de supervisin que no dependen del tiempo, en intervalos de un segundo.

Procesamiento controlado por alarma

A una seal de proceso, a la que se deba reaccionar con gran rapidez se le asigna una fase de procesamiento controlado por alarma. Por ejemplo, mediante una interrupcin de sistema producida por una tarjeta que genere alarmas, el usuario podr activar en su programa un proceso determinado.

Procesamiento segn prioridad

Los tipos de procesamiento mencionados son tratados por la CPU segn su 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 cclico a fin de tratar estos sucesos. De ah que el procesamiento cclico tenga una prioridad inferior a las dems. Cul de los otros dos modos de procesamiento - controlado por tiempo o por alarma - tiene mayor prioridad, depender de la tarea que deba llevarse a cabo. Por este motivo, la CPU 948 permite definir las prioridades del procesamiento controlado por tiempo y por alarma.

1-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Los programas de una CPU

1.3

Los programas de una CPU


El programa existente en cada una de las CPUs se divide en programa de sistema y programa de usuario.

Programa de sistema

El programa de sistema organiza todas las funciones y procesos de la CPU que no estn relacionados con una tarea de mando especfica (vase fig. 1-2).

Ejecutar arranque Actualizar imagen de proceso de las entradas

Llamar
Emitir imagen de proceso de las salidas

Programa de sistema

programa de usuario (interfaces)

Administrar memoria

Establecer comunicacin con PG

Tratamiento de errores

Fig. 1-1

Funciones del programa de sistema

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1-7

Los programas de una CPU Funciones


Las funciones son las siguientes : 1) nuevo arranque y rearranque, actualizacin de la imagen de proceso de las entradas y emisin de la imagen de proceso de las salidas, llamada de los programas cclico, controlado por tiempo y controlado por alarma, deteccin y tratamiento de errores, administracin de la memoria, comunicacin con el aparato de programacin.

Interfaces con el usuario

En determinados estados operativos y casos de error, el usuario tiene la posibilidad de influir en el comportamiento de la CPU a travs de interfaces especiales con el programa de sistema.

Almacenamiento del programa de sistema

El programa de sistema se carga de la memoria EPROM en la RAM interna del sistema operativo tras conectar la tensin de red del autmata programable (CONEXION).

Preajuste del programa de sistema

Los siguientes captulos, a excepcin del captulo 7, describen el comportamiento preajustado del sistema en reacciones ante sucesos del proceso o errores. De acuerdo con el preajuste, la CPU pasa por ejemplo al estado STOP si se produce error de cdigo de instruccin y no est cargado el mdulo de organizacin correspondiente.

Modificacin del preajuste

El comportamiento del sistema puede ser modificado parametrizando el mdulo de datos DX 0. En el captulo 7 se puede consultar cul es el comportamiento del sistema tras modificar el preajuste!

1)

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

1-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Los programas de una CPU

Programa de usuario

Funciones

El programa de usuario contiene todas las funciones necesarias para el procesamiento de una tarea de mando especfica. Estas funciones clasificndolas de forma aproximada - pueden ser asignadas directamente a las interfaces que el programa de sistema pone a disposicin para los distintos modos de procesamiento:

Modo de procesamiento Nuevo arranque y rearranque

Tarea

Se crean las condiciones para que en caso de un nuevo arranque o un rearranque, el resto del procesamiento pueda partir de un estado definido (por ej. prefijar seales con un valor determinado). Procesamiento cclico Procesamiento reiterativo de seales (p. ej. combinacin de seales binarias, lectura y evaluacin de valores analgicos, definicin de las seales binarias para la emisin, emisin de valores analgicos). Procesamiento controlado Procesamientos especiales en funcin de por tiempo tiempo bajo las circunstancias que se indican: - ms rpido que el ciclo medio, - en una escala de tiempo mayor al tiempo medio de ciclo, - en un tiempo regulable determinado. Procesamiento controlado Reacciones especiales y rpidas ante por alarma determinadas seales de proceso Reaccin ante errores Tratamiento de anomalas en el desarrollo normal del programa

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1-9

Los programas de una CPU Estructura


Memoria de usuario

Programa de usuario
Mdulos de cdigo
Mdulos de organizacin Mdulos de programa Mdulos de funciones Mdulos de pasos

OB
Operaciones STEP 5
E 1.5 E 1.6 =1 E 1.4 E 1.3 & &

PB
Operaciones STEP 5

FB/FX
Operaciones STEP 5

SB
Operaciones STEP 5

M 50.1 M 50.2 M 50.3


A 3.1

FB 8
=1

M 1.7 E 2.6 S

SEGMENTO 1 NOMB. :TRANS


A 5.3

E 1.3

0005 0006 0007 0008 0009 000A 000B

:L EB 3 :T MW 200 :A DB 5 :B MW 200 :L DW 0 :T AW 6 :BE

Mdulos de datos
DB
Datos estticos o dinmicos (bits, bytes, palabras, palabras dobles)
1: 2: 3: 4: 5: 6: 7: KH KF KC KY KG KM = = = = = = 0101; +120; xy; 4.5;

DX
Datos estticos o dinmicos (bits, bytes, palabras, palabras dobles)

1: 2: 3: 4: 5: 6: 7:

KH KH KH KH KH KH

= = = = = =

FFFF; FFFF; FFFF; FFFF; FFFF; FFFF;

Fig. 1-2

Estructura de un programa de usuario STEP 5

Almacenamiento del programa de usuario

Una vez finalizada la programacin, el programa de usuario ha de cargarse en la memoria de usuario de la CPU 948 (directamente desde el aparato de programacin) o mediante una Memory Card, cuyo contenido se copiar automticamente en la memoria de usuario al efectuar un BORRADO TOTAL de la CPU.

Interfaces con el programa de sistema

Como interfaces con el programa de sistema se dispone de los mdulos de organizacin para los distintos tipos de procesamiento.

1 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

De qu operandos dispone el programa de usuario?

1.4

De qu operandos dispone el programa de usuario?


Para la programacin, la CPU 948 ofrece las siguientes zonas de operandos: Imagen de proceso y periferia Marcas (marcas S y marcas M) Temporizadores/contadores Mdulos de datos

Imagen de proceso de las entradas y salidas PAE/PAA


Caractersticas 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. Tamao 128 byte para entradas y salidas respectivamente

Zona de periferia (zona P)


Caractersticas El programa de usuario puede acceder directamente a las tarjetas de E/S a travs del bus S5. Son vlidos los siguientes tipos de datos: - bytes, - palabras. Tamao 256 byte para entradas y salidas respectivamente

Zona de periferia ampliada (zona Q)


Caractersticas El programa de usuario puede acceder directamente a las tarjetas de E/S a travs del bus S5. Son vlidos los siguientes tipos de datos: - bytes, - palabras. Tamao 256 byte para entradas y salidas respectivamente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1 - 11

De qu operandos dispone el programa de usuario? Marcas M


Caractersticas La zona de marcas es una zona de memoria, a la que el programa de usuario puede acceder con mucha rapidez utilizando las correspondientes operaciones. 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. Pueden utilizarse bytes de marcas individuales como marcas de acoplamiento para el intercambio de datos entre las CPUs en modo multiprocesador (vase captulo 10). Al final del ciclo, el programa de sistema actualiza las marcas de acoplamiento a travs de la memoria intermedia del coordinador o CP/IP. Tamao 2048 bit

Marcas S (zona de marcas ampliada)


Caractersticas La CPU 948 contiene una zona de marcas adicional, la zona de marcas S. Al igual que 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 formales para llamar mdulos de funciones ni como marcas de acoplamiento para el intercambio de datos entre las CPUs. Tampoco pueden aplicarse a las marcas S las operaciones de comprobacin de bit de la CPU 948. Para poder utilizarlas, es imprescindible disponer del software de sistema del aparato de programacin "S5-DOS" a partir de la versin 3.0 o "S5-DOS/MT" a partir de la versin 1.0. Tamao 32 768 bit

1 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

De qu operandos dispone el programa de usuario? Temporizadores T


Caractersticas El programa de usuario carga temporizadores con un valor de entre 10 ms y 9990 s. Mediante una operacin de arranque y a partir del valor indicado, stas van decrementando en la escala de tiempo seleccionada, hasta alcanzar el valor 0. Tamao 256 temporizadores

Contadores Z
Caractersticas El programa de usuario carga contadores con un valor inicial (mx. 999) siendo incrementados o decrementados a continuacin. Tamao 256 contadores

Palabras de datos en el mdulo de datos actual


Caractersticas Un mdulo de datos contiene constantes y/o variables en formato de byte, palabra o palabra doble. Con las operaciones STEP 5 el usuario siempre puede acceder al mdulo de datos "actual" (vase captulo 2.4.2). Se puede acceder a los siguientes tipos de datos: - bits, - bytes, - palabras, - palabras dobles. Tamao 256 palabras
1)

1)

Si existen mdulos de datos de una longitud mayor que 256 palabras slo se podr acceder a las palabras de datos con un nmero > 255 mediante operaciones para accesos absolutos a la memoria (vase captulo 9).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1 - 13

De cunta memoria dispone el programa de usuario?

1.5

De cunta memoria dispone el programa de usuario?


Para almacenar mdulos de cdigo y de datos, la CPU 948 dispone exclusivamente de la memoria de usuario en la RAM interna. La CPU 948 est disponible en dos versiones diferentes de la memoria de usuario: Versin 1: con 640 kbyte Versin 2: con 1 664 kbyte

1 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Cmo proceder a la hora de programar?

1.6

Cmo proceder a la hora de programar?


Si Vd. es un usuario experto, seguramente habr desarrollado ya un mtodo propio para crear programas. Si es as, no necesitar leer este captulo. A aquellos lectores que tengan menos experiencia en este tema queremos darles algunos consejos sobre cmo proceder a la hora de esbozar, programar, comprobar y poner en marcha su programa STEP 5.

Fases de realizacin

La realizacin de un programa de mando STEP 5 puede ser dividida en tres fases:

Fase 1 2 3

Actividad Establecer el planteamiento tecnolgico Esbozar el programa Crear, comprobar y poner en marcha el programa

Procedimiento recursivo

La prctica demostrar que es necesario repetir ciertos pasos ("procedimiento recursivo"), por ejemplo, cuando al definir con mayor exactitud la tarea a resolver, el usuario se d cuenta de que precisa mayor nmero de seales.

Paso 1

Establecer el planteamiento tecnolgico:

Paso 1 2 3

Actividad Crear un diagrama de bloques aproximativo de las tareas de mando que requiere el proceso. Crear una lista de las seales de entrada y salida que requiera la tarea a resolver. Perfeccionar el diagrama de bloques asignando las seales a cada uno de los bloques y, dado el caso, las condiciones de tiempo y/o estados de los contadores que sean necesarios.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1 - 15

Cmo proceder a la hora de programar? Paso 2

Esbozar el programa:

Paso 1

Actividad Sirvindose del diagrama de bloques perfeccionado esbozar los modos de procesamiento necesarios para el programa (procesamiento cclico, procesamiento controlado por tiempo, etc.) y asignar nombres a los OBs utilizados. Dividir los tipos de procesamiento en bloques tcnicos y/o funcionales. Comprobar si se pueden asignar los bloques a un mdulo de programa o de funciones y asignar nombres a los mdulos utilizados (PB x, FB y etc.). Determinar cuntos temporizadores, contadores y datos o memorias de resultado se requieren. Determinar las tareas de cada mdulo de cdigo previsto y los datos para las marcas y mdulos de datos que se puedan necesitar. Dibujar organigramas para los mdulos de cdigo.

2 3

4 5

Indicaciones sobre el tiempo de procesamiento cclico

A la hora de determinar los modos de procesamiento es necesario tener en cuenta las siguientes condiciones: El ciclo ha de desarrollarse a una velocidad suficiente. Los estados del proceso no deben modificarse ms deprisa de lo que pueda reaccionar la CPU. En caso contrario, podra perderse el control sobre el proceso. El tiempo mximo de reaccin debe equivaler al doble del tiempo de ciclo. El tiempo de ciclo est determinado por el procesamiento cclico del programa de sistema y por la clase y dimensin del programa de usuario. Este tiempo no suele ser constante, ya que, en determinadas circunstancias, el programa de usuario cclico es interrumpido repetidas veces por llamadas a los programas controlados por tiempo y por alarma.

1 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Cmo proceder a la hora de programar? Paso 3

Crear, comprobar y poner en marcha el programa:

Paso 1

Actividad Determinar el modo de procesamiento de los mdulos de cdigo (KOP, FUP o AWL, consultar a este respecto el captulo 2). Tener en cuenta que los mdulos de funciones slo se pueden crear en el modo de representacin AWL. Programar todos los mdulos de cdigo y de datos (consultar a este respecto el manual del aparato de programacin). Poner en funcionamiento los mdulos sucesivamente (para ello, en determinadas circunstancias es necesario programar para cada paso otro OB 1 que llame a los mdulos de cdigo pertinentes): 1a: cargar el/los mdulo(s) 1b: comprobar el/los mdulo(s) (Consultar a este respecto el manual STEP 5 y el captulo 11).

Si es seguro que todos los mdulos de cdigo se estn ejecutando correctamente y que todos los datos se estn computando y memorizando de forma correcta, entonces se puede poner en funcionamiento todo el programa.

Indicaciones sobre la estrategia de comprobacin

Cul es el momento ms apropiado para hacer funcionar su programa por primera vez en modo "caliente", es decir, con seales de entrada y sobre todo de salida reales, lo deber decidir el usuario mismo, o bien un equipo de expertos. Cuanto ms complejo sea el proceso y cuanto ms graves los riesgos de seguridad, tanto mayor deber ser la cautela a la hora de poner el programa en marcha.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1 - 17

Herramientas de programacin

1.7

Herramientas de programacin
Para crear un programa de usuario propio se dispone de los aparatos de programacin PG 685, PG 710, PG 730, PG 750 y PG 770. En el catlogo ST 59 /9/ se puede consultar la capacidad y las caractersticas de estos aparatos.

Aparatos de programacin apropiados

Nota Si se desean aprovechar todas las prestaciones de la CPU 948 en el software de automatizacin (especialmente las mscaras DX 0 y "Salida USTACK", el indicador de la funcin de PG "Extensin memoria", as como las funciones de PG a travs de la pared posterior S5) se requiere el software de sistema para PG "STEP 5/ST", a partir de la versin 6.3 o "STEP 5/MT", a partir de la versin 6.0 + el correspondiente "Disquete Delta CPU 948" y un PG 7xx.

Software apropiado

Los programas de usuario para los autmatas programables SIMATIC-S5 pueden ser creados en el lenguaje de programacin STEP 5 Para ello se requiere el paquete de programacin STEP 5 junto con el software de sistema STEP 5/ST o STEP 5/MT (descripcin vase /3/, bibliografa) o en un lenguaje de programacin de alto nivel Si el usuario est acostumbrado a escribir programas en un lenguaje de alto nivel puede formular su programa STEP 5 para la CPU 948 en los siguientes lenguajes: SCL (vase /12/, bibliografa; el compilador SCL se encuentra en el software del PG "S5-DOS/MT", a partir de la versin 6). o C con compilador S5-C (vase /13/, bibliografa).

Los programas para mandos secuenciales pueden crearse asimismo en representacin grfica con el paquete de programacin GRAPH 5 (descripcin vase /4/, bibliografa). Segn la tarea a resolver tambin se pueden incluir en el programa de usuario mdulos de funciones estndar acabados. En el catlogo ST 57 /11/ se puede consultar su capacidad y caractersticas.

1 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Conversin de programas de usuario de la CPU 928B para la CPU 948

1.8

Conversin de programas de usuario de la CPU 928B para la CPU 948


A continuacin encontrar todas las informaciones necesarias para convertir programas de usuario creados para la CPU 928B y as poderlos ejecutar en la CPU 948.

Operaciones

En las siguientes operaciones hay que considerar las diferencias en cuanto su ejecucin y tratamiento (por ej. porque difiere la distribucin de memoria):

Operaciones AS/AF (bloquear/desbloquear alarmas)

CPU 928B Se bloquean/desbloquean todas las alarmas de proceso.

CPU 948 Slo se bloquean/desbloquean las alarmas de proceso con el byte de entrada EB 0. Utilizar los OBs de funciones especiales OB 122 u OB 142, en lugar de las operaciones. Se utilizan direcciones de 20 bit de ancho. Es preciso adaptarlas. Operacin no disponible. Utilizar TNW para la transferencia de bloques de la zona de 8 bits a la de 8 bits. Se utilizan direcciones de 20 bit de ancho. Es preciso adaptarlas. Con TNW slo pueden transferirse bloques de la zona de 8 bit a la de 8 bit y de la zona de 16 bit a la de 16 bit. Utilizar - la operacin TXB para transferir bloques de la zona de 8 bit a la de 16 bit, - la operacin TXW para transferir bloques de la zona de 16 bit a la de 8 bit. (TXB y TXW no estn disponibles en la CPU 928B.)

LIR/TIR Operacin de transferencia de bloques TNB Operacin de transferencia de bloques TNW

Se utilizan direcciones de 16 bit de ancho. Se utilizan direcciones de 16 bit de ancho. Se utilizan direcciones de 16 bit de ancho. Se pueden transferir bloques de la zona de 8 bits a la de 16 bits y viceversa.

Todas las operaciones con el registro BR

El registro BR tiene una anchura de 20 bit.

El registro BR tiene una anchura de 32 bit. Hay que adaptarlo.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1 - 19

Conversin de programas de usuario de la CPU 928B para la CPU 948 Procesamiento de temporizadores
CPU 928B Los temporizadores ya se actualizan durante el ARRANQUE. CPU 948 Los temporizadores se actualizan en RUN (por motivos de compatibilidad con la CPU 946/947)

FB 0 como mdulo de ciclo


CPU 928B Si no hay ningn mdulo de ciclo OB 1 disponible, el programa de sistema llama cclicamente al mdulo FB 0, si es que est cargado. CPU 948 Para el procesamiento cclico slo puede utilizarse el OB 1. Si se ha programado el FB 0, crear un OB 1 llamando al FB 0.

Establecer prioridades
CPU 928B Las alarmas de proceso tienen mayor prioridad que las alarmas temporizadas. CPU 948 Las alarmas temporizadas tienen mayor prioridad que las alarmas de proceso a travs de EB 0 o interrupciones del sistema. La prioridad puede modificarse parametrizando el DX 0.

Mdulo DB 0 (lista de direcciones de mdulos)


CPU 928B La lista de direcciones de mdulos contiene las direcciones iniciales directas de los mdulos. CPU 948 La lista de direcciones contiene las direcciones de segmento de los mdulos. Para averiguar la direccin inicial de un mdulo hay que desplazar su direccin de segmento 4 bits a la izquierda.

1 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Conversin de programas de usuario de la CPU 928B para la CPU 948 Mdulo de datos DX 0

Hay que crear un nuevo mdulo de datos DX 0 (vase captulo 7), ya que el DX 0 para la CPU 928B tiene diferente estructura y otras posibilidades de ajuste. En la CPU 928B, el programa de sistema no utiliza la zona BT, mientras que en la CPU 948 es utilizada en parte por los mdulos de comunicacin. La zona BT slo deber ser utilizada para el programa de usuario siempre y cuando no se utilicen FBs estndar ni funciones del PG va SINEC-H1 y bus S5. Los OBs de error y de funciones especiales difieren en la CPU 928B y CPU 948 en cuanto al nmero y funciones: Los siguientes OBs de error de la CPU 948 tienen un comportamiento distinto al de los correspondientes OBs de la CPU 928B:

Utilizacin de la zona BT

Mdulos de organizacin

OBs de error

OB OB 19 OB 26 OB 27 OB 28 OB 29 OB 30 OB 31

Funcin igual que en la CPU 928 distinta a la funcin de la CPU 928B

Identificaciones de error distintas a las identificaciones de la CPU 928B

OBs de funciones especiales


OB Observacin

OB 110 OB 152 OB 160 a OB 163 OB 170 OB 190 a OB 193 OB 216 a OB 218 estos OBs no existen en la CPU 948 OB 220 a OB 221 OB 224 OB 226 a OB 228 OB 240 a OB 242 OB 250 a OB 251 Estos OBs se sustituyen en la CPU 948 por: OB 111 OB 131 OB 112 OB 132 OB 113 OB 133 OB 120 OB 122 OB 121 OB 141 OB 122 OB 142 OB 123 OB 143

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

1 - 21

Conversin de programas de usuario de la CPU 928B para la CPU 948

OB OB 122

Observacin Se parametriza de distinto modo a como se parametriza en la CPU 928B (por motivos de compatibilidad con la CPU 946/947). A diferencia de la CPU 928B, la ventana de acceso de la CPU 948 slo puede desplazarse en mltiplos de 16. A diferencia de la CPU 928B, en la CPU 948 se modifica el AKKU 4 de estos OBs.

OB 180

OB 200 OB 202 a 205 (Comunicacin en multiprocesamiento)

Software de regulacin R64

El software de regulacin R64 no puede ser ejecutado en la CPU 948.

FBs estndar

Generalmente hay que sustituir los FBs estndar utilizados en la CPU 928B (por ejemplo para IPs) por los que corresponden a la CPU 948. Los mdulos de comunicacin (HTBs) constituyen una excepcin, ya que se pueden utilizar los de la CPU 928B (vase captulo 1.8.1).

1 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Programa de usuario

Indice - Captulo 2
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 Lenguaje de programacin STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 4 Modos de representacin KOP, FUP y AWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 4 Programacin estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 5 Operaciones STEP 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 6 Representacin numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 8 Mdulos STEP 5 y su almacenamiento en la memoria . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 12 Mdulos de programa, de organizacin y de pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16 Mdulos de organizacin para interfaces con el usuario . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18 Mdulos de organizacin de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22 Mdulos de funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23 Estructura de los mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programacin de los mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Llamada y parametrizacin de mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulos de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 24 2 - 26 2 - 28 2 - 33

Mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35 Crear mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 37 Abrir mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 38 Mdulos de datos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2-1

Indice

2-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Programa de usuario

El captulo siguiente explica los componentes que integran un programa de usuario STEP 5 para la CPU 948 y la forma en que puede ser estructurado.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2-3

Lenguaje de programacin STEP 5

2.1

Lenguaje de programacin STEP 5


Con el lenguaje de programacin STEP 5 se transforman las tareas de automatizacin en programas ejecutables en autmatas programables SIMATIC-S5. En STEP 5 se pueden programar tanto funciones binarias simples, como tambin funciones digitales complejas y operaciones aritmticas, as como las operaciones aritmticas de coma flotante.

Tipos de operaciones

El conjunto de operaciones del lenguaje de programacin STEP 5 se divide en operaciones bsicas: aplicables en todos los mdulos de cdigo, modos de representacin: esquema de contactos (KOP), esquema de funciones (FUP) y lista de instrucciones (AWL).

operaciones complementarias y de sistema: aplicables solamente en mdulos de funciones, representacin: solamente en lista de instrucciones (AWL), operaciones de sistema: slo para usuarios con muy buenos conocimientos del sistema.

2.1.1 Modos de representacin KOP, FUP y AWL

En la programacin con STEP 5 se puede optar, para cada mdulo de cdigo, entre los tres modos de representacin: esquema de contactos (KOP), esquema de funciones (FUP) y lista de instrucciones (AWL), lo que significa que el mtodo de programacin puede ser adaptado a cada tarea en particular. El cdigo de mquina MC 5 generado por los aparatos de programacin (PG) es idntico en cada uno de los tres modos de representacin. Si se respetan determinadas reglas al programar con el lenguaje STEP 5 (vase /3/), el aparato de programacin podr traducir los programas de usuario de una forma de representacin a cualquier otra!

Representacin grfica o lista de instrucciones

Mientras que en los modos de representacin esquema de funciones (FUP) y esquema de contactos (KOP) se tiene la posibilidad de apreciar el programa en su forma grfica, en la lista de instrucciones (AWL) es necesario conocer las instrucciones STEP 5.

2-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lenguaje de programacin STEP 5

ESQUEMA DE CONTACTOS (KOP) Programacin con smbolos grficos, como diagrama secuencial corresponde a la norma DIN 19239

LISTA DE INSTRUCCIONES (AWL) Programacin con abreviaciones mnemotcnicas de las funciones

ESQUEMA DE FUNCIONES (FUP) Programacin con smbolos grficos

corresponde a la norma DIN 19239

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

KOP

AWL U UN U ON O =

&

>=1

Fig. 2-1

Modos de representacin del lenguaje de programacin STEP 5

Representacin grfica de mandos secuenciales

GRAPH 5 /4/ es un lenguaje de programacin para representacin grfica de mandos secuenciales. Este es de orden superior a los modos de representacin KOP, FUP y AWL. Los programas escritos en la forma de representacin grfica GRAPH 5 son traducidos automticamente por el aparato de programacin a programas en lenguaje STEP 5.

2.1.2 Programacin estructurada

El lenguaje de programacin STEP 5 permite estructurar el programa de usuario. Para ello se subdivide el programa de usuario en unidades independientes (mdulos de programa). De este modo, la misma estructura del programa de usuario aclara a primera vista sus partes esenciales o resalta, desde el punto de vista de la tcnica de programacin, los elementos coherentes de la instalacin.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2-5

Lenguaje de programacin STEP 5

El procedimiento de la "programacin estructurada" ofrece las siguientes ventajas: programacin simple y ordenada, tambin para tareas de gran envergadura, posibilidad de estandarizacin de programas parciales, organizacin clara y simple de los programas, facilidad de modificacin, comprobacin simple del programa (por partes), fcil puesta en funcionamiento.

Qu es un mdulo?

Un mdulo es un elemento del programa de usuario que se distingue por su funcin, estructura o finalidad. Cabe hacer distincin entre los mdulos que contienen instrucciones (cdigos) tales como: mdulos de organizacin, mdulos de programa, mdulos de funciones, mdulos de pasos, y los mdulos que contienen datos (mdulos de datos).

2.1.3 Operaciones STEP 5

Una operacin STEP 5 es la menor unidad independiente del programa de usuario. Es la instruccin de trabajo para la CPU. Una operacin STEP 5 se compone de un elemento operante y de un elemento operando.

Ejemplo

Cdigo de operacin

Parmetro

:O

M 54.1

Elemento operante (qu operacin se va a efectuar?)

Elemento operando (con qu operandos?)

2-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lenguaje de programacin STEP 5 Operandos absolutos y simblicos

El elemento operando puede ser introducido de manera absoluta o simblica (mediante la lista de asignaciones). Ejemplo de representacin absoluta: :U E 1.4

Ejemplo de representacin simblica: :U -motor1 Para ms informacin respecto a la programacin absoluta y simblica, vase el manual del aparato de programacin.

Aplicacin de las operaciones STEP 5

El conjunto de operaciones que ofrece STEP 5 permite combinar valores binarios entre s, activarlos o rearmarlos, cargar y transferir valores, comparar valores entre s y procesarlos aritmticamente, predefinir valores de tiempo y de cmputo, transformar representaciones numricas, llamar mdulos y efectuar saltos dentro de un mdulo e influir sobre el procesamiento del programa.

Resultado de combinacin VKE

El bit central para el mando del programa es el resultado de combinacin VKE. Se genera mediante combinaciones binarias y a veces es influido por algunas operaciones. En el captulo 3.5 se encuentra una descripcin del conjunto total de operaciones STEP 5, as como informaciones ms detalladas sobre cmo generar el VKE.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2-7

Lenguaje de programacin STEP 5

2.1.4 Representacin numrica

Para que la CPU pueda combinar, modificar o comparar entre s valores numricos, stos tienen que ser cargados en representacin binaria en los acumuladores (registros de trabajo de la CPU). Dependiendo de la operacin a ejecutar, el STEP 5 acepta las siguientes representaciones numricas: Nmeros binarios: 16 bit, coma fija 32 bit, coma fija 32 bit, coma flotante (con mantisa 24 bit) Nmeros decimales: en BCD (signo y 3 dgitos decimales)

Entrada de valores numricos Para entrar o emitir valores numricos es necesario ajustar en el mediante el PG aparato de programacin el formato de datos (por ej. KF para coma fija) en el que se desean entrar o hacer visualizar los valores numricos. De esta manera, el aparato de programacin se encargar de transformar la representacin numrica interna en el modo de representacin deseado por el usuario.

Operaciones admisibles

Los nmeros de 16 bit de coma fija y coma flotante, permiten efectuar todas las operaciones aritmticas, como por ejemplo: comparar, sumar, restar, multiplicar y dividir.

Nota Los nmeros en cdigo BCD no deben utilizarse para operaciones aritmticas, ya que dan resultados errneos.

Con los nmeros de coma fija de 32 bit se ejecutan las operaciones de comparacin. Adems se requieren como etapa intermedia para la conversin de nmeros BCD en nmeros de coma flotante. Con las instrucciones +D y -D, tambin pueden ser utilizados para adiciones y sustracciones. El lenguaje de programacin STEP 5 incluye operaciones de conversin, las cuales permiten convertir nmeros directamente a las representaciones numricas ms importantes.

2-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lenguaje de programacin STEP 5 Nmeros de coma fija de 16 y 32 bit Codificacin de nmeros de coma fija

Los nmeros de coma fija son nmeros duales enteros provistos de un signo. En representacin binaria son de 16 bit (= 1 palabra) o de 32 bit (= 2 palabras) de ancho. El bit 15 o el bit 31, segn el caso, llevan el signo: 0 = nmero positivo 1 = nmero negativo

Los nmeros negativos se representan en complemento de 2.

Entrada mediante el PG

Entrada del formato de datos para nmeros de coma fija de 16 bit en el aparato de programacin: KF Entrada del formato de datos para nmeros de coma fija de 32 bit en el aparato de programacin: DH

Campo de valores admisible

Nmero de coma fija de 16 bits: -32768 a +32767 (16 bit) Nmero de coma fija de 32 bits: -2147483648 a +2147483647 (32 bit) (8000 0000H a 7FFF FFFFH)

Aplicacin de los nmeros de coma fija

Los nmeros de coma fija se usan para operaciones aritmticas simples y para la comparacin de valores numricos. Puesto que los nmeros de coma fija siempre son nmeros enteros, hay que tener en cuenta que el resultado de una divisin de dos nmeros de coma fija tambin tiene que ser un nmero entero de coma fija sin dgitos decimales.

Nmeros de coma flotante

Los nmeros de coma flotante son nmeros fraccionarios de valor positivo y negativo. Siempre ocupan una palabra doble (32 bit). Los nmeros de coma flotante se representan en forma exponencial, la mantisa es de 24 bit, el exponente es de 8 bit. La CPU 948 ejecuta las operaciones de adicin, sustraccin, multiplicacin y divisin con una mantisa de 24 bit de ancho (bit 0 hasta 23). El exponente indica la dimensin del nmero de coma flotante. El signo del exponente indica si el nmero de coma flotante es mayor o menor que 0,1.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2-9

Lenguaje de programacin STEP 5 Aplicacin de los nmeros de coma flotante

Los nmeros de coma flotante deben utilizarse para solucionar operaciones aritmticas extensas, especialmente para multiplicaciones y divisiones, y tambin al ejecutar operaciones con nmeros muy grandes o muy pequeos!

Precisin

La mantisa determina la precisin del nmero de coma flotante: Precisin en el caso de una mantisa de 24 bit: 2-24 = 0,000000059604 (corresponde a nmeros con 7 dgitos a la derecha de la coma) Si el signo de la mantisa es 0, el nmero es positivo; si el signo es 1, es un nmero negativo en representacin de complemento de 2. El valor de coma flotante 0 se representa como valor dual 80000000H (32 bit, vase ms abajo).

Codificacin de nmeros de coma flotante

Codificacin de un nmero de coma flotante:

31 30 S 2 ...
6

24 23 22 . ... 2
0

0 . . ... 2
-23

2 .... . . . Mantisa

-1

Exponente

Entrada del formato de datos para nmeros de coma flotante en el aparato de programacin: KG

Campo de valores admisible

0,1469368 x 10-38 a 0,1701412 x 1039

Entradas/salidas por el PG

a)

En el mdulo de cdigo: Se ha de cargar el nmero Z = 12,34567 como constante de coma flotante. Entrada: :LKG1234567+2

2 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lenguaje de programacin STEP 5

Salida por PG tras confirmar la lnea: :L KG + 1234567 + 02 Exponente (base 10) con signo +0,1234567 x 10+2 = 12,34567

Mantisa con signo

Valor del nmero entrado:

b)

En el mdulo de datos: Se ha de definir el nmero Z = - 0,005 como constante de coma flotante. Entrada: 6: KG = -5 -2

Salida por PG tras confirmar la lnea: 6: KG =- 5000000 - 02 Exponente (base 10) con signo - 0,5 x 10-2 = 0,005

Mantisa con signo

Valor del nmero entrado:

Nmeros en cdigo BCD

Los nmeros decimales se representan en cdigo BCD. Con signo y 3 cifras ocupan 16 bit en el acumulador (1 palabra): 15 S S S S 12 11 Centenares 8 7 Decenas 4 3 Unidades 0

Las cifras son nmeros duales positivos de 4 bit entre 0000 y 1001 (0 y 9 decimal). Los bits de la izquierda estn reservados para el signo. Signo para nmeros positivos: Signo para nmeros negativos: 0000 1111

Campo de valores admisible

-999 a +999

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 11

Lenguaje de programacin STEP 5

2.1.5 Mdulos STEP 5 y su almacenamiento en la memoria

Identificacin

Un mdulo se identifica por: el tipo de mdulo (OB, PB, SB, FB, FX, DB, DX) y el nmero de mdulo (nmero entre 0 y 255).

Tipos de mdulos

El lenguaje de programacin STEP 5 distingue los siguientes tipos de mdulos: Los mdulos de organizacin representan la interfaz entre el programa de sistema y el programa de usuario. Pueden ser subdivididos en dos grupos: Con los OB 1 hasta 39 se puede controlar el procesamiento de programa, el comportamiento de arranque de la CPU y el comportamiento en caso de error. Esto se consigue programando los mdulos conforme a la tarea de automatizacin especfica. Estos OBs son llamados por el programa de sistema. Los OB 40 a 100 son mdulos del sistema operativo que no pueden ser llamados. Los OB 121 a 255 contienen funciones especiales del programa de sistema. En caso necesario, pueden ser llamados por el programa de usuario.

Mdulos de organizacin (OB)

Mdulos de programa (PB)

Los mdulos de programa se usan para estructurar el programa de usuario y contienen programas parciales estructurados segn puntos de vista tcnicos o funcionales. Los PBs constituyen el ncleo del programa de usuario.

Mdulos de pasos (SB)

Los mdulos de pasos eran originalmente mdulos especiales de programa que se usaban para la "ejecucin paso a paso" de cadenas secuenciales. En el presente, las cadenas secuenciales pueden ser programadas mediante GRAPH 5 /4/. Por ello, los mdulos de pasos han perdido importancia. Actualmente, los mdulos de pasos constituyen una ampliacin numrica de los mdulos de programa y pueden ser utilizados como stos.

2 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lenguaje de programacin STEP 5 Mdulos de funciones (FB/FX)

Los mdulos de funciones se utilizan para programar funciones de uso frecuente o funciones complejas (por ejemplo: funciones digitales, mandos secuenciales, regulaciones, funciones de aviso). Un mdulo de funciones puede ser llamado mltiples veces por mdulos de orden superior, pudindosele asignar cada vez diferentes operandos ("parametrizar"). Utilizando el tipo de mdulo FX se duplica la cantidad mxima posible de mdulos de funciones.

Mdulos de datos (DB/DX)

En los mdulos de datos se encuentran los datos (fijos o modificables), con los que opera el programa de usuario. Este tipo de mdulos no contiene instrucciones STEP 5 y se diferencia fundamentalmente de los dems tipos de mdulos. Utilizando el tipo de mdulo DX se duplica la cantidad posible de mdulos de datos.

Estructura de los mdulos

Todos los tipos de mdulos consisten de un encabezamiento y un cuerpo.

Encabezamiento

El encabezamiento, que tiene siempre una longitud de 5 palabras, contiene informaciones para la administracin de los mdulos en el aparato de programacin, as como datos para el programa de sistema.

Cuerpo

El cuerpo contiene (dependiendo del tipo de mdulo): instrucciones STEP 5 (en el caso de OB, PB, SB, FB, FX), datos variables o constantes (en el caso de DB, DX) y lista de operandos formales (en el caso de FB, FX).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 13

Lenguaje de programacin STEP 5 Anteencabezamiento

En el caso de los mdulos de datos del tipo DB, DX, FB y FX, el aparato de programacin crea adicionalmente un anteencabezamiento del mdulo (DV, DXV, FV, FXV). Estos anteencabezamientos contienen informaciones referentes al formato de los datos (en el caso de DB y DX) o a las marcas de salto (en el caso de FB y FX), las cuales solamente pueden ser evaluadas por el aparato de programacin. Es por ello que los anteencabezamientos no se transfieren a la memoria de la CPU. El usuario no tiene influencia directa alguna en el contenido del anteencabezamiento.

Longitud mxima

Un mdulo STEP 5 puede ocupar mximo 32 767 palabras (1 palabra equivale a 16 bit) en la memoria de programa de la CPU.

Mdulos disponibles

De los diferentes tipos de mdulos disponibles, el usuario dispone para la programacin: OB FB FX PB SB DB DX 1 a 39 0 a 255 en total 512 0 a 255 0 a 255 0 a 255 2 a 255 en total 507 3 a 255

Los mdulos de datos DB 0, DB 1, DX 0 y DX 1 contienen parmetros. Estos estn reservados para determinadas funciones y por ello no pueden ser usados a voluntad. El mdulo de datos DX 2 est reservado para la segunda interfaz serie y, por consiguiente, no debe ser utilizado.

2 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lenguaje de programacin STEP 5 Almacenamiento de mdulos en la memoria

Todos los mdulos programados se almacenan en la memoria de programa segn el orden de su transferencia (fig. 2-2). Con la funcin del aparato de programacin "Mdulos/Transferir/Todos mdulos" se transfieren primero los mdulos de cdigo y luego los de datos al autmata programable. Las direcciones iniciales de los mdulos almacenados son depositadas en el mdulo de datos DB 0.

Direccin 0 PB1 FB1 Posicin de los mdulos en la memoria de usuario

PB2

DB1

SB10

OB1

Fig. 2-2

Ejemplo del almacenamiento de mdulos en la memoria de usuario

Correccin y borrado de mdulos

Al corregir mdulos, el mdulo "antiguo" se declara no vlido y se registra un mdulo nuevo en la memoria. Igualmente, al borrar mdulos, stos no se borran realmente, sino que solamente se declaran no vlidos. Sin embargo, el espacio de memoria que ocupan queda libre para que pueda ser utilizado por los mdulos que sern cargados posteriormente.

Nota Con la funcin on line "COMPRIMIR MEMORIA" se consigue ms espacio para nuevos mdulos: esta funcin optimiza el aprovechamiento de la memoria, borrando los mdulos declarados no vlidos y juntando los mdulos vlidos.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 15

Mdulos de programa, de organizacin y de pasos

2.2

Mdulos de programa, de organizacin y de pasos


Los mdulos de programa (PB), los mdulos de organizacin (OB) y los mdulos de pasos (SB) no se diferencian en cuanto a su programacin y llamada. Los tres pueden ser programados opcionalmente en los modos de representacin KOP, FUP y AWL.

Programacin

Para la programacin de mdulos de programa, de organizacin y de pasos se procede de la manera siguiente:

Paso 1

Accin Introducir primero el tipo de mdulo y luego el nmero del mdulo que se desea programar. Se dispone de los siguientes nmeros: - mdulos de programa 0 a 255, - mdulos de pasos 0 a 255, - mdulos de organizacin 1 a 39.

Introducir el programa de usuario en STEP 5. Para la programacin de PB, OB y SB solamente se deben usar las operaciones bsicas de STEP 5! Un mdulo STEP 5 siempre deber contener una parte independiente del programa. Las combinaciones lgicas tienen que quedar concluidas dentro de un mismo mdulo. Terminar el programa con la instruccin "BE" (fin de mdulo).

Llamada

Los mdulos - a excepcin de los OB 1 a OB 39 - tienen que ser llamados para su procesamiento. Esto se hace con operaciones especiales de STEP 5, es decir, con las llamadas a mdulos. Estas llamadas a mdulos se pueden programar dentro de mdulos de organizacin, de programa, de funciones o de pasos. Son comparables a los saltos a un subprograma. Cada salto produce un cambio de mdulo. El sistema almacena de forma intermedia la direccin de retroceso registrada en el mdulo que realiza la llamada.

2 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de programa, de organizacin y de pasos

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

Llamada incondicional

La instruccin SPA pertenece a las operaciones incondicionales. Ella misma no tiene ninguna influencia sobre el VKE. Este se transfiere con el salto al nuevo mdulo. All puede ser evaluado pero no puede volver a ser combinado. El mdulo llamado se procesa independientemente del resultado de combinacin (VKE, vase captulo 3.5). Ejemplo: SPA PB 100

Llamada condicional

La instruccin SPB pertenece a las operaciones condicionales, es decir, el mdulo llamado solamente ser procesado si el resultado de la combinacin VKE = 1. Si el VKE = 0, no se ejecuta la instruccin de salto. Ejemplo: SPB PB 100

Nota El VKE se pone a 1, independientemente de que se efecte o no el salto al mdulo llamado.

PB 1

PB 5 U E 1.0

PB 10 U E 2.0

SPA O

PB 5 E 5.3

SPB O BE PB 6

PB 10 M 1.5 BE

U SPB U BE

E 1.5 PB 6 E 3.2

3.0

BE

Fig. 2-3

Llamadas a mdulos que habilitan el procesamiento de un mdulo de programa

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 17

Mdulos de programa, de organizacin y de pasos Efecto de la instruccin BE

Despus de la instruccin BE (fin de mdulo), la CPU contina el programa de usuario en aquel mdulo, en el que se ha programado la llamada. El procesamiento del programa prosigue a partir de la instruccin STEP 5 inmediatamente siguiente a la llamada del mdulo. La instruccin BE se procesa independientemente del resultado de combinacin. Despus de BE no se puede seguir combinando el resultado. Sin embargo, el resultado de combinacin/clculo existente durante la ejecucin de la instruccin BE se transfiere al mdulo que est efectuando la llamada, donde puede ser evaluado a continuacin. Al retornar desde el mdulo llamado, los contenidos del AKKU 1, AKKU 2, AKKU 3 y AKKU 4, los indicadores ANZ 0 y ANZ 1 y el resultado de combinacin VKE no se modifican (para ms detalles en cuanto a los AKKUs, ANZ 0/ANZ 1 y VKE, vase captulo 3.5).

2.2.1 Mdulos de organizacin para interfaces con el usuario

Los mdulos de organizacin constituyen las interfaces entre el programa de sistema y el programa de usuario. Los mdulos de organizacin OB 1 hasta OB 39 son partes del programa de usuario y se programan igual que los mdulos de programa. Programando estos OBs, el usuario puede influir sobre el comportamiento de la CPU durante el arranque, durante el procesamiento del programa y en caso de error. Los mdulos de organizacin actan en cuanto se cargan en la memoria del autmata programable. Esto tambin es posible durante el funcionamiento de la CPU. Una vez que el programa de sistema ha llamado al mdulo de organizacin correspondiente, se ejecuta el programa de usuario contenido en el mdulo.

Nota Los mdulos de organizacin OB 1 a OB 39 para interfaces con el usuario son programados por el usuario y llamados automticamente por el programa de sistema, como reaccin ante determinados sucesos! Para fines de comprobacin, dichos mdulos de organizacin tambin pueden ser llamados por el programa de usuario (SPA/SPB OB xxx). Sin embargo, no es posible ejecutar por ej. un NUEVO ARRANQUE llamando al OB 20!

Las tablas que figuran a continuacin proporcionan una visin esquemtica de las interfaces con el usuario (OBs).

2 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de programa, de organizacin y de pasos

Tabla 2-1

Cuadro sinptico de los OBs de la CPU 948 para el procesamiento del programa

Mdulos de organizacin para el control del procesamiento del programa Mdulo OB 1 Funcin y criterio de llamada Organizacin del procesamiento cclico del programa: primera llamada al terminar uno de los modos de arranque, luego llamada cclica. Con el ajuste del DX 0 "Byte Entrada 0 Alarma Proceso = si": (interrupcin en lmites de mdulos, ajustable en el DX 0) Llamada por cambio de estado lgico en el byte de entrada EB 0 mediante bit: OB 2 OB 3 OB 4 OB 5 OB 6 OB 7 OB 8 OB 9 E 0.0 E 0.1 E 0.2 E 0.3 E 0.4 E 0.5 E 0.6 E 0.7 Con el ajuste DX 0 "Byte Entrada 0 Alarma Proceso = no": (interrupcin en lmites de instrucciones o de mdulos, ajustable en el DX 0) Llamada a travs de lneas de interrupcin del bus S5: Interrupcin de sistema INT X (INT A, B, C o D, dependiendo del puesto de conexin) Interrupcin de sistema INT E Interrupcin de sistema INT F Interrupcin de sistema INT G Alarma de retardo Alarma temporizada controlada por reloj Organizacin del procesamiento del programa controlado por tiempo (alarma temporizada) con base de tiempo (preajuste T = 100 ms) y distribuidor de "time slices" (segmentos de tiempo) (preajuste equivale a 150U) regulables en el mdulo de datos DX 0; llamada con: Preajuste Base de tiempo 150U Base de tiempo 2n 0,1 s T * 1 T * 1 0,2 s T * 2 T * 2 0,5 s T * 5 T * 4 1,0 s T * 10 T * 8 2,0 s T * 20 T * 16 5,0 s T * 50 T * 32 10,0 s T * 100 T * 64 20,0 s T * 200 T * 128 50,0 s T * 500 T * 256

OB 2 OB 3 OB 4 OB 5 OB 6 OB 9

OB 10 OB 11 OB 12 OB 13 OB 14 OB 15 OB 16 OB 17 OB 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 19

Mdulos de programa, de organizacin y de pasos

Tabla 2-2

Cuadro sinptico de los OBs de la CPU 948 para el arranque

Mdulos de organizacin para el control del arranque Mdulo OB 20 OB 21 OB 22 Funcin y criterio de llamada Llamada en NUEVO ARRANQUE (manual y automtico) Llamada en REARRANQUE MANUAL/NUEVO ARRANQUE CON MEMORIA Llamada en REARRANQUE AUTOMATICO/NUEVO ARRANQUE CON MEMORIA

Tabla 2-3

Mdulos de organizacin de la CPU 948 para la ejecucin en STOP PARCIAL

Mdulos de organizacin para el control del arranque Mdulo OB 38 OB 39 Funcin y criterio de llamada Organizacin del comportamiento de arranque para la comunicacin en "stop parcial" Organizacin del programa cclico para la comunicacin en "stop parcial"

Tabla 2-4

Cuadro sinptico de los OBs de la CPU 948 para el tratamiento de errores

Mdulos de organizacin para reacciones ante errores de aparatos o del programa 1) Mdulo OB 19 OB 23 OB 24 OB 25 OB 26 Funcin y criterio de llamada Error de tiempo de ejecucin (LZF): llamada a un mdulo no cargado (PB, SB, FB, FX) o apertura de un mdulo de datos no cargado (DB, DX) Retardo en acuse de recibo (QVZ) en programa de usuario (en caso de acceso directo a tarjetas de E/S) Retardo en acuse de recibo (QVZ) al actualizar la imagen de proceso y al transferir marcas de acoplamiento Error de direccionamiento (ADF) Exceso de tiempo de ciclo (ZYK)

2 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de programa, de organizacin y de pasos

Mdulos de organizacin para reacciones ante errores de aparatos o del programa 1) Mdulo
Tabla 2-4 (continuacin):

Funcin y criterio de llamada

OB 27 OB 28 OB 29 OB 30 (OB 31) OB 32 OB 33 OB 34 OB 36
1)

Error de sustitucin (SUF) Retardo en acuse de recibo en byte de entrada EB 0 (alarmas de proceso) Retardo en acuse de recibo en periferia descentralizada, volumen de direcciones ampliado Retardo en acuse de recibo y error de paridad (PARE) al acceder a la memoria de usuario (Ajustar el tiempo de supervisin de ciclo)
2)

Error de carga y transferencia al acceder a mdulos de datos (TRAF) Colisin de alarmas temporizadas (WEFES/WEFEH) Error al crear un mdulo de datos (E DB/EX DX) Error en la ejecucin de una funcin de autotest

Si en caso de error no est programado el OB, la CPU pasa al estado STOP. EXCEPCION: En caso de no existir el OB 19 (mdulo de cdigo no cargado), OB 23, OB 24, OB 29 (retardo en acuse) u OB 33 (colisin de alarmas temporizados) no se produce reaccin! El OB 31 existe en la CPU 948 slo por motivos de compatibilidad. Para ajustar el tiempo de supervisin de ciclo se debe utilizar el mdulo de datos DX 0 (vase captulo 7). El OB 31 se llama una vez en el arranque siempre que est cargado. Tambin permite ajustar el tiempo de supervisin de ciclo programando las siguientes operaciones de STEP 5: :L KF +nnn :BE nnn es un nmero decimal, el tiempo de supervisin de ciclo resulta de "nnn * 10 ms".

2)

Mdulos de organizacin del sistema operativo de la CPU 948 Mdulo OB 0 Funcin Mdulo interno del sistema operativo

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 21

Mdulos de programa, de organizacin y de pasos

2.2.2 Mdulos de organizacin de funciones especiales

Los siguientes mdulos de organizacin contienen funciones especiales del programa de sistema. No pueden ser programados por el usuario (esto vale para todos los OBs numerados entre 121 y 255!); solamente pueden ser llamados. No contienen programas STEP 5. Los OBs de funciones especiales pueden ser llamados en todos los mdulos de cdigo.

Tabla 2-5

Cuadro sinptico de los OBs de funciones especiales de la CPU 948

Mdulos de organizacin integrados con funciones especiales Mdulo: OB 121 OB 122 OB 124 OB 125 OB 126 OB 129 OB 131 OB 132 OB 133 OB 141 OB 142 OB 143 OB 150 OB 151 OB 153 OB 180 OB 181 OB 182 OB 200, 202 a 205 OB 222 OB 223 OB 254, 255 Funcin: Ajustar/leer hora (compatible con CPU 946/947) Activar/desactivar "Bloquear alarmas" Borrar mdulos STEP 5 Crear mdulos STEP 5 Definir, transferir imgenes de proceso Averiguar el estado de la pila Borrar AKKU 1 a AKKU 4 AKKU roll up AKKU roll down Activar/desactivar "Bloquear alarmas temporizadas individualmente" Activar/desactivar "Retardar alarmas conjuntamente" Activar/desactivar "Retardar alarmas temporizadas individualmente" Ajustar/leer hora del sistema, (compatible con CPU 928B) Ajustar/leer hora de alarma temporizada controlada por reloj Ajustar/leer hora de alarma de retardo Acceso variable a mdulos de datos Comprobar mdulos de datos (DB/DX) Copiar rea de datos Funciones para la comunicacin en modo multiprocesador Rearrancar el tiempo de supervisin de ciclo Comparar los modos de arranque de las CPUs en modo multiprocesador Copiar/duplicar el mdulo DB y DX de la Memory Card en la memoria de usuario En el captulo 6 se encuentra una descripcin detallada de estas funciones especiales.

2 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de funciones

2.3

Mdulos de funciones
Los mdulos de funciones (FB/FX) tambin son partes del programa de usuario, como por ejemplo, los mdulos de programa. Los mdulos de funciones FX tienen la misma estructura que los mdulos de funciones FB y se programan de la misma manera. Con los mdulos de funciones se ejecutan funciones muy frecuentes o muy complejas. Cada mdulo de funciones representa una funcin independiente dentro del programa de usuario. Los mdulos de funciones pueden ser adquiridos como producto de software de la SIEMENS (mdulos de funciones estndar, en disquete vase /11/); con estos mdulos de funciones estndar se puede crear, rpidamente y de manera segura, todo tipo de programas de usuario para mando, aviso, regulacin y protocolizado o pueden ser programados por el usuario mismo.

Los mdulos de funciones presentan cuatro diferencias fundamentales respecto a los mdulos de organizacin, de programa y de pasos:

OB, PB, SB 1.

FB/FX

Volumen de operaciones Slo operaciones bsicas - Operaciones bsicas - Oper. complementarias - Operaciones de sistema

2.

Modo de representacin Programar y llamar en AWL, KOP, FUP Programar slo en AWL Nombres No puede asignarse ningn nombre (slo un nmero) Adems del nmero se puede asignar un nombre de mx. 8 caracteres

3.

4. Ninguno

Operandos Operandos formales (parmetros de mdulo). Durante la llamada se asignan operandos actuales a los operandos formales.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 23

Mdulos de funciones

2.3.1 Estructura de los mdulos de funciones

El encabezamiento (5 palabras) de un mdulo de funciones tiene la misma estructura que el encabezamiento de los dems mdulos STEP 5. El cuerpo se diferencia en su estructura del de los dems tipos de mdulos. La funcin a ejecutar est escrita en forma de lista de instrucciones en lenguaje de programacin STEP 5. Entre el encabezamiento del mdulo y las instrucciones STEP 5, el mdulo de funciones requiere espacio adicional de memoria para el nombre y la lista de los operandos formales. Ya que esta lista no contiene instrucciones para la CPU, se salta mediante un salto incondicional que genera automticamente el aparato de programacin. Esta instruccin de salto no se visualiza en el aparato de programacin! En las llamadas al mdulo de funciones se procesa solamente el cuerpo del mdulo.

Operandos absolutos o simblicos

Los operandos pueden ser introducidos en un mdulo de funciones de manera absoluta (por ejemplo, M 2.5) o simblica (por ejemplo, -MOTOR1). La asignacin de operandos simblicos debe ser registrada en una lista de asignaciones (vase /3/). El mdulo de funciones presenta el siguiente aspecto en la memoria del autmata programable:

5 p a la b r a s Sa lto d e la lista d e o p e r a c io n e s f o r m a le s No m b r e d e l F B/ F X
SPA

En c a b e z a m ie n t o d e l m d u lo

1 p a la b r a 4 p a la b r a s L is t a d e lo s operandos formales Cu e r p o d e l m d u lo

Operando formal 1

3 p a la b r a s 3 p a la b r a s

Operando formal 2

Operando formal

n
1 operac. de usuario STEP 5

3 p a la b r a s

Pr o g r a m a d e u s u a r io ST EP 5
BE

Fig. 2-4

Estructura del mdulo de funciones (FB/FX)

2 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de funciones

En la memoria se encuentran, por consiguiente, todas las informaciones que requiere el aparato de programacin para poder representar grficamente el mdulo de funciones al efectuar la llamada, y para poder comprobar los operandos al parametrizar y programar el mdulo de funciones. Las entradas errneas son rechazadas por el aparato de programacin. En cuanto al tratamiento de los mdulos de funciones cabe distinguir entre programar el FB/FX y llamar y parametrizar el FB/FX.

Diferencia entre: "programar" - "llamar y parametrizar"

Durante la programacin se determina la funcin del mdulo. Para ello, el usuario tiene que analizar qu operandos de entrada requiere la funcin, y qu resultados ha de entregar sta al programa que efecta la llamada. Todos los operandos de entrada y resultados de salida han de definirse a continuacin como operandos formales. Estos ejercen la funcin de comodines. Cuando se llama un mdulo desde un mdulo de orden superior (OB, PB, SB, FB, FX), los operandos formales (parmetros del mdulo) son reemplazados por operandos actuales: se parametriza el mdulo de funciones.

Modo de programar
SI... se desea programar un mdulo de funciones "directamente", es decir, sin operandos formales, se desea utilizar operandos formales en un mdulo de funciones ENTONCES... proceder de la misma manera que con los mdulos de programa o de pasos. proceder como se describe en las pginas siguientes. Atenerse al siguiente orden de ejecucin: 1. Programar el FB/FX con los operandos formales y mantenerlo en el PG (off line) o en la memoria de la CPU (online), 2. Programar el mdulo/los mdulos que efecta(n) la llamada con los operandos actuales.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 25

Mdulos de funciones

2.3.2 Programacin de los mdulos de funciones

Los mdulos de funciones solamente pueden programarse en el modo de representacin "lista de instrucciones". Para entrar un mdulo de funciones en el aparato de programacin se procede de la manera siguiente:

Paso 1

Accin Introducir el tipo (FB/FX) y el nmero del mdulo de funciones. Los mdulos de funciones de usuario deben ser numerados decrecientemente desde FB 255 para no colisionar con los mdulos estndar de funciones, que estn numerados de FB 1 a FB 199. Introducir el nombre del mdulo de funciones. Este puede constar de hasta 8 caracteres y ha de empezar con una letra. Cuando el mdulo de funciones deba procesar operandos formales: Introducir como parmetros del mdulo los operandos formales utilizados en el mdulo. Por cada operando formal hay que indicar: el nombre del parmetro de mdulo (mximo 4 caracteres), la clase de parmetro y, dado el caso, el tipo de parmetro.

Se pueden definir hasta mximo 40 operandos formales. Introducir el programa STEP 5 en el modo de representacin AWL. Los operandos formales se identifican mediante un signo de igualdad = antepuesto (por ej., U = X1). Estos pueden ser llamados mltiples veces desde diferentes lugares del mdulo de funciones. Finalizar la introduccin del programa con "BE" (fin de mdulo).

2 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de funciones

Nota En caso de modificar el orden o la cantidad de operandos formales en la lista de operandos formales, todas las instrucciones STEP 5 del mdulo de funciones que llaman a un operando formal, as como la lista de parmetros del mdulo, debern ser correspondientemente actualizadas! Los mdulos de funciones han de ser programados y modificados exclusivamente en disquete o disco duro y despus hay que transferirlos a la CPU!

Operandos formales

Para los operandos formales de un mdulo de funciones (tambin llamados parmetros de mdulo) se pueden utilizar las siguientes denominaciones de clases y tipos:

Tabla 2-6

Operandos formales vlidos para mdulos de funciones

Clase de parmetro E = Entrada A = Salida D = Dato B = Instruccin T = Temporizador (timer) Z = Contador

Tipo de parmetro BI/BY/W/D KM/KH/KY/KC/KF/ KT/KZ/KG ninguno (no se admite indicacin de tipo)

E, D, B, T o Z son clases de parmetros que, en la representacin grfica, llevan una marca a la izquierda del smbolo de la funcin. Los parmetros marcados con una A en la representacin grfica de una llamada del FB, se representan a la derecha del smbolo de la funcin. El tipo de parmetro indica, en el caso de los parmetros E y A, si se trata de tamaos bit, byte, palabra, palabra doble y qu formato de datos es vlido (por ejemplo, representacin binaria o hexadecimal) para los parmetros D.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 27

Mdulos de funciones

2.3.3 Llamada y parametrizacin de mdulos de funciones

Cada mdulo de funciones puede ser llamado tantas veces como sea necesario y desde cualquier lugar del programa de usuario STEP 5. Las llamadas a mdulos de funciones pueden efectuarse tanto en una lista de instrucciones como en representacin grfica (FUP o KOP). Para llamar y parametrizar mdulos de funciones se procede de la manera siguiente:

Paso 1

Accin Asegurar que el mdulo de funciones llamado est registrado en la memoria del PG (off line) o de la CPU (on line). Introducir en el mdulo que efecta la llamada la instruccin de llamada al mdulo de funciones. ninguna

Reaccin en el PG

Despus de introducir la instruccin de llamada (por ej., SPA FB 200), aparece automticamente el nombre y La llamada a un mdulo de funciones puede la lista de operandos formales del programarse dentro de un mdulo de organizacin, mdulo de funciones correspondiente. de programa o de pasos, o bien dentro de otro mdulo de funciones. Asignar a cada operando formal el operando actual ninguna vlido para la llamada. (Se parametriza el mdulo de funciones.) Los operandos actuales pueden variar en funcin de la llamada: en la primera llamada del FB 200, por ejemplo, entradas y salidas; en la segunda, marcas. En cada llamada a un mdulo de funciones hay que asignar los operandos actuales necesarios de acuerdo con la lista de operandos formales.

Llamada incondicional/condicional
Llamada incondicional Llamada condicional

"SPA FBn" para mdulos de funciones FB o "SPB FBn" para mdulos de funciones FB o "BA FXn" para mdulo de funciones ampliados FX: "BAB FXn" para mdulos de funciones ampliados El mdulo de funciones llamado se procesa FX: independientemente del resultado de combinacin El mdulo de funciones llamado solamente se (VKE). procesa si el resultado de combinacin VKE = 1. Si VKE = 0 no se ejecuta la llamada del mdulo. Independientemente de que la llamada se ejecute o no, el VKE siempre se pone a 1. Despus de la llamada condicional o incondicional no se puede seguir combinando el VKE. Con el salto, el VKE permanece en el FB, donde podr ser evaluado.

2 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de funciones Operandos actuales admisibles

De la tabla siguiente se desprende qu operandos actuales pueden asignarse a los mdulos de funciones.

Tabla 2-7

Operandos actuales vlidos para mdulos de funciones

Clase de parmetro E, A

Tipo de parmetro BI para un operando con direccin de bit

Operandos actuales vlidos E A M EB AB MB DL DR PY QY EW AW MW DW PW QW ED AD MD DD n.m n.m n.m n n n n n n n n n n n n n n n n n Entrada Salida Marca Byte de entrada Byte de salida Byte de marcas Byte de datos izquierdo Byte de datos derecho Byte de periferia Byte de la periferia ampliada Palabra de entrada Palabra de salida Palabra de marcas Palabra de datos Palabra de periferia Palabra de la periferia ampliada Palabra doble de entrada Palabra doble de salida Palabra doble de marcas Palabra doble de datos

BY

para un operando con direccin de byte

para un operando con direccin de palabra

para un operando con direccin de palabra doble

KM

para representacin binaria Constante (16 dgitos) para representacin de dos nmeros absolutos en byte de 0 a 255 respectivamente para representacin hexadecimal de hasta 4 dgitos para dos caracteres alfanumricos para un valor de tiempo (cdigo BCD) con factor de tiempo de .0 a .3 y valores de tiempo de 0 a 999 para un valor de cmputo de 0 a 999

KY

KH

KC

KT

KZ

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 29

Mdulos de funciones

Clase de parmetro

Tipo de parmetro

Operandos actuales vlidos

Tabla 2-7 (continuacin):

D (cont.)

KF

para un nmero de coma Constante fija entre -32768 y +32767 para un nmero de coma flotante 1) DB n Mdulo de datos; se ejecuta la instruccin A DB n Mdulo de funciones (solamente vlido sin parmetros), se llama de forma incondicional (SPA . .n) Mdulo de organizacin, se llama de forma incondicional (SPA . .n) Mdulo de programa, se llama de forma incondicional (SPA . .n) Mdulo de pasos, se llama de forma incondicional (SPA . .n)

KG B

no se admite indicacin de tipo

FB

OB

PB

SB T Z
1)

No se admite indicacin de tipo No se admite indicacin de tipo


0,1469368 x 10-38 a 0,1701412 x 1039

T 0 a 255 Temporizador Z 0 a 255 Contador

Nota No est permitido el uso de marcas S como operandos actuales para mdulos de funciones.

Despus del salto al mdulo de funciones, cuando se procesa el mdulo de funciones, en lugar de los operandos formales, se utilizan los operandos actuales del mdulo que efecta la llamada. Esta caracterstica de los mdulos de funciones parametrizables permite utilizarlos en el programa de usuario para los ms diversos fines. Al retornar del mdulo de funciones llamado se salta la lista de operandos actuales del mdulo que efecta la llamada mediante una operacin de salto depositada implcitamente por STEP 5 en cdigo mquina MC 5.

2 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de funciones Ejemplos


Ejemplo 1:
El siguiente ejemplo (completo) pretende aclarar tanto la programacin como la llamada y parametrizacin de un mdulo de funciones.

Se programa el mdulo de funciones FB 202:


FB 202 SEGMENTO 1 NOMB. : BEZ : BEZ : BEZ :

EJEMPLO ANA E/A/D/B/T/Z: EVA E/A/D/B/T/Z: LUIS E/A/D/B/T/Z:

E E A

BI/BY/W/D: BI/BY/W/D: BI/BY/W/D:

BI BI BI

Lista de operandos formales

: U= ANA : U= EVA : == LUIS


: : BE

Instrucciones STEP 5

Operandos formales

Clase de parmetro

Tipo de parmetro

El mdulo de funciones FB 202 es llamado y parametrizado en el mdulo de programa PB 25:


Representacin AWL PB 25 SEGMENTO 1 : NOMB. : ANA : EVA : LUIS : : SPA FB 202 EJEMPLO E 13.5 M 17.7 A 23.0 BE FB 202 EJEMPLO ANA LUIS EVA Representacin KOP/FUP

E 13.5 M 17.7

A 23.0 :BE

Operandos Operandos formales actuales Las siguientes operaciones se ejecutan despus del salto al FB 202:
: U : U : = :BE E 13.5 M 17.7 A 23.0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 31

Mdulos de funciones

Ejemplo 2:

Llamada y parametrizacin de un mdulo de funciones con las representaciones AWL y KOP/FUP en un mdulo de programa

Modo de representacin AWL


PB 25 SEGMENTO 1 : : A DB 5 : : SPA FB 201 NOMB. : E-ANTR ZU-E : DW 1 RME : E 3.5 ESB : M 2.5 UEZ : T 2 ZEIT : KT 010.1 ZU-A : DW 2

BEA LSL

: :
: BE

A A

2.3 6.0

Operandos formales

Operandos actuales

Representacin KOP/FUP
PB 25 SEGMENTO 1 FB 201 E-ANTR ZU-E RME ESB UEZ ZEIT

DW 1 E 3.5 M 2.5 T 2 KT 010.1

ZU-A BEA LSL

DW 2 A 2.3 A 6.0
:BE

2 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de funciones

2.3.4 Mdulos de funciones especiales

Aparte de los mdulos de funciones que programa el usuario mismo, existen mdulos de funciones estndar que pueden ser adquiridos como producto de software acabado. Contienen funciones estndar (por ejemplo, funciones de aviso, mandos secuenciales, etc.). Los mdulos de funciones estndar ocupan los nmeros FB 1 a FB 199. En caso de adquirir mdulos de funciones estndar, obsrvense las instrucciones especiales de la descripcin correspondiente (zonas de memoria ocupadas, convenciones, etc.). Los mdulos de funciones estndar para el autmata programable S5-155U se encuentran en el catlogo ST 57 /11/ .

Ejemplo

Extractor de la raz de coma flotante RAD:GP FB 6


El mdulo de funciones RAD:GP extrae la raz cuadrada de un nmero de coma flotante (exponente de 8 bit, mantisa de 24 bit). El resultado tambin es un nmero de coma flotante (exponente de 8 bit, mantisa de 24 bit), mientras que el bit de menor valor de la mantisa no se redondea. El mdulo de funciones, si fuera necesario, coloca la identificacin "radicando negativo" para el procesamiento posterior.

Campo numrico: Radicando Raz - 0,1469368 Exp. -38 a +0,1701412 Exp. +39 +0,3833434 Exp. -19 a +0,1304384 Exp. +20

Funcin: Y = A Y = SQRT; A = RADI

Llamada del mdulo de funciones FB 6: En el ejemplo anterior se extrae la raz de un nmero de coma flotante que se encuentra en DD 5 del DB 17, con exponente de 8 bit y mantisa de 24 bit. El resultado, tambin un nmero de coma flotante de 32 bit, es depositado en el DD 10. Previamente debe abrirse el mdulo de datos correspondiente. El parmetro VZ (clase de parmetro: A, tipo de parmetro: BI) determina el signo del radicando: VZ = 1 en caso de radicando negativo. Palabras de marcas ocupadas: MW 238 a 254.

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 33

Mdulos de funciones

"Extractor la raz de coma flotante" (continuacin):

Modo de representacin AWL Segmento 1 Segmento 2 *) : A DB 17 : :*** : SPA FB 6 NOMB. : RAD : GP RADI : DD 5 VZ : M 15.0 SQRT : DD 10

Modo de representacin KOP

SEGMENTO 2 FB 6 RAD RADI

DD 5

VZ SQRT

M 15.0 DD 10 :BE

DD = Palabra doble de datos

*) Tiene que estar en segmentos separados, ya que la instruccin "A DB 17" del segmento 1 no puede convertirse a KOP/FUP.

2 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de datos

2.4

Mdulos de datos
En mdulos de datos (DB) o mdulos de datos ampliados (DX) estn registrados los datos fijos o variables con los que opera el programa de usuario. En los mdulos de datos no se procesan operaciones STEP 5. Los datos de un mdulo de datos pueden ser: cualquier representacin binaria, por ejemplo, para estados de la instalacin, nmeros (hexadecimales, binarios, decimales) para valores de tiempo y resultados de clculo, caracteres alfanumricos, por ejemplo, para textos de avisos.

Estructura de un mdulo de datos

Un mdulo de datos (DB/DX) consta de los siguientes elementos: Anteencabezamiento (DV, DXV) Encabezamiento Cuerpo

Antencabezamiento

El anteencabezamiento se crea automticamente en el disco duro o disquete del aparato de programacin y no se transfiere a la CPU. Contiene los formatos de datos de las palabras de datos introducidas en el cuerpo del mdulo. El usuario no tiene influencia alguna en la creacin de los anteencabezamientos.

Nota Cuando se transfiere un mdulo de datos del autmata programable al disquete o al disco duro, se puede borrar el correspondiente anteencabezamiento. Por esta razn, nunca se debe modificar en el autmata programable un mdulo de datos con diferentes formatos de datos y luego volver a transferirlos al disquete, puesto que, de lo contrario, a todas las palabras de datos de este DB se les atribuira automticamente el formato de datos seleccionado en la mscara de preajuste.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 35

Mdulos de datos Encabezamiento

El encabezamiento ocupa 5 palabras en la memoria y contiene la identificacin del mdulo, la identificacin del aparato de programacin, el tipo y nmero del mdulo, el nmero de biblioteca y la longitud del mdulo (incluida la longitud del encabezamiento).

Cuerpo

El cuerpo contiene, en orden ascendente, comenzando por la palabra de datos DW 0, 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 mxima

Los mdulos de datos pueden ocupar en total hasta 32 767 palabras (incluido el encabezamiento) en la memoria de la CPU. Al entrar y transferir mdulos de datos con el aparato de programacin, se debe tener en cuenta la estructura de la memoria de la CPU utilizada!

2 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de datos

2.4.1 Crear mdulos de datos

Los mdulos de datos se crean de la manera siguiente: Paso 1 2 Accin Introducir el tipo de mdulo (DB/DX) y el nmero de mdulo entre 2 3 y 255. Introducir las palabras de datos en el formato deseado. (La entrada de palabras de datos no se finaliza con la instruccin de fin de mdulo BE!)

Nota Los mdulos de datos DB 0, DB 1, DX 0, DX 1 y DX 2 estn reservados para determinadas funciones y no pueden ser utilizados libremente (vase captulo 2.4.3)!

Tabla 2-8

Formatos de datos vlidos en un mdulo de datos

Designacin KM KH KY KF KG KC KT KZ

Formatos vlidos Configuracin binaria Nmero hexadecimal 2 bytes Nmero de coma fija Nmero de coma flotante Caracteres Valor de un temporizador Valor de un contador

Ejemplo 00100110 00111111 263F 038,063 + 09791 +1356123+12 ?!ABCD123-+.,% 055.2 234

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 37

Mdulos de datos

2.4.2 Abrir mdulos de datos

Un mdulo de datos (DB/DX) solamente puede ser abierto de manera incondicional. Esto se puede hacer dentro de mdulos de organizacin, mdulos de programa, mdulos de pasos o mdulos de funciones. Algunos mdulos de datos pueden ser abiertos varias veces en un programa. As se abren los mdulos de datos: SI ... se desea abrir un mdulo de datos DB se desea abrir un mdulo de datos DX ENTONCES ... introducir la operacin STEP 5 "A DB.." introducir la operacin STEP 5 "AX DX.."

Validez

Despus de abrir un mdulo de datos, todas las instrucciones siguientes con la zona de operandos D se refieren al mdulo de datos abierto. El mdulo de datos abierto sigue siendo vlido, aunque el procesamiento del programa contine en otro mdulo debido a una instruccin de salto. Si dentro de este mdulo de datos se abre a su vez otro mdulo de datos, ste solamente tendr validez dentro del mdulo de datos llamado, a partir del lugar en que se ha efectuado la llamada. Despus de retroceder al mdulo que efecta la llamada, vuelve a ser vlido el mdulo de datos anterior.

Acceso

El acceso a los datos almacenados en el mdulo de datos abierto se efecta, en el procesamiento del programa, mediante combinaciones binarias, operaciones de memorizacin, carga o transferencia (para ms informacin, vase captulo 3). En el caso de una combinacin binaria, el bit de la palabra de datos direccionado se utiliza para crear el VKE. El contenido de la palabra de datos no se modifica. En el caso de una operacin de memorizacin se asigna el valor del VKE al bit de la palabra de datos direccionado. El contenido de la palabra de datos puede modificarse. En el caso de una operacin de carga se transfiere el contenido de la palabra de datos direccionada al AKKU 1. No se modifica el contenido de la palabra de datos. En el caso de una operacin de transferencia se transfieren datos del AKKU 1 a la palabra de datos direccionada. Se sobreescribe el contenido anterior de la palabra de datos.

2 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de datos

Nota Antes de acceder a una palabra de datos hay que abrir el mdulo 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 mdulo de datos abierto, pues de lo contrario el programa de sistema detectar un error de carga o de tranferencia durante el acceso. Con las operaciones de carga o de transferencia solamente se puede acceder hasta la palabra de datos nmero 255! Un mdulo de datos abierto sigue vigente hasta que a) se abre otro mdulo de datos o b) el mdulo, en el que se ha abierto el mdulo de datos, sea finalizado con BE, BEB o BEA.

Ejemplos
Ejemplo 1: Transferir palabras de datos
Se ha de transferir el contenido de la palabra de datos DW 1 del mdulo de datos DB 10 a la palabra de datos DW 1 del mdulo de datos DB 20.

Introducir las siguiente instrucciones: :A :L : :A :T : : DB 10 DW 1 DB 20 DW 1 (abrir DB 10) (transferir el contenido de la DW 1 al AKKU 1) (abrir DB 20) (transferir el contenido del AKKU 1 a la DW 1)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 39

Mdulos de datos

Ejemplo 2:

Validez de los mdulos de datos (Fig. 2-5)

En el mdulo de programa PB 7 se abre el mdulo de datos DB 10 (A DB 10). En el siguiente procesamiento del programa se procesan los datos de este mdulo. Despus de la llamada (SPA PB 20) se procesa el mdulo de programa PB 20. El mdulo de datos DB 10 sigue siendo vlido. La zona de datos cambia solamente cuando se abre el mdulo de datos DB 11 (A DB 11). Hasta el final del mdulo de programa PB 20 (BE) permanece vlido el mdulo de datos DB 11. Despus de retroceder al mdulo de programa PB 7, vuelve a ser vlido el mdulo de datos DB 10.

PB A

7 DB 10

PB

20

SPA

PB 20

DB 11

BE
Campo de validez DB 10 Campo de validez DB 11

BE

Fig. 2-5

Validez de un mdulo de datos abierto

2 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulos de datos

2.4.3 Mdulos de datos especiales

Los mdulos de datos DB 0, DB 1, DX 0, DX 1 y DX 2 estn reservados en la CPU 948 para determinadas funciones. Son administrados por el programa de sistema y no pueden ser utilizados a voluntad por el usuario. Mdulo de datos DB 0 (vase captulo 8.3.2) El mdulo de datos DB 0 contiene la lista de direcciones con las direcciones iniciales de todos los mdulos que se encuentran en la memoria de usuario de la CPU. Esta lista de direcciones es creada por el programa de sistema durante la inicializacin (con cada CONEXION y tras un BORRADO TOTAL) y es actualizada automticamente cuando se introducen o modifican mdulos por medio del aparato de programacin.

DB 0

DB 1

Mdulo de datos DB 1 (vase captulo 10.1.6) El mdulo de datos DB 1 contiene la lista de las entradas y salidas digitales (periferia P con direcciones relativas de bytes 0 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 o salidas y tiempos registrados en el DB 1. El DB 1 tiene que ser parametrizado y cargado: a) en modo multiprocesador b) cuando se utilizan marcas de acoplamiento de CPs. Mdulo de datos DX 0 (vase captulo 7) Mediante parametrizacin y carga del mdulo de datos DX 0 se pueden modificar los preajustes de determinadas funciones del programa de sistema (por ejemplo, en el procesamiento del arranque) y con ello se pueden adaptar las funciones del programa de sistema a los requisitos del usuario.

DX 0

DX 1

Mdulo de datos DX 1 Reservado.

DX 2

Mdulo de datos DX 2 Reservado para la segunda interfaz serie.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

2 - 41

Mdulos de datos

2 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Procesamiento de programas

Indice - Captulo 3
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 Principios fundamentales del procesamiento de programas . . . . . . . . . . . . . . . . . . . . . . . 3 - 4 Organizacin de los programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 5 Almacenamiento de mdulos de programa y de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 10 Procesamiento del programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 11 Definiciones terminolgicas en cuanto al procesamiento de programas . . . . . . . . . . . . 3 - 12 Operaciones STEP 5 con ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 15 Operaciones bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de programacin en los modos de representacin AWL, KOP y FUP . . . . . Operaciones complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones de organizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones semforo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 19 3 - 34 3 - 49 3 - 59 3 - 75

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3-1

Indice

3-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Procesamiento de programas

Este captulo se dirige a aquellos que no tengan gran experiencia en la aplicacin del lenguaje de programacin. Introduce al lector en los conocimientos bsicos de la programacin STEP 5. Tambin presenta una descripcin detallada (con ejemplos) de las operaciones STEP 5 de la CPU 948. El captulo 3.5 puede servir de captulo de consulta a aquellos lectores que dispongan de mayores conocimientos y a los que no les sean suficientes las informaciones que figuran en la lista de operaciones /1/, referentes a una operacin STEP 5 en concreto.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3-3

Principios fundamentales del procesamiento de programas

3.1

Principios fundamentales del procesamiento de programas


El programa de usuario STEP 5 puede ser procesado de diferentes maneras. Por lo general, en los controladores de memoria programable, predomina el procesamiento cclico de programas. El programa de sistema se ejecuta en un bucle de programa (el ciclo, vase captulo 3.4) efectuando cada vez una llamada al mdulo de organizacin OB 1 (vase fig. 3-1).

Pr o g r a m a d e s i s t e m a De s d e e l a r r a n q u e

Pr o g r a m a d e u s u a r i o

OB 1
Disparar (trigger) tiempo de supervisin de ciclo Actualizar las entradas de las marcas de acoplamiento Alimentar imagen d e p r o c e s o ( PA E ) de las entradas

PB 2 0

L la m a d a a l PB 2 0 BE

L la m a d a a l O B1
Emitir imagen de proceso de las salidas (PAA) Actualizar salidas de marcas de acoplamiento

BE

Fig. 3-1

Procesamiento cclico del programa

3-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Organizacin de los programas

3.2

Organizacin de los programas


Con la organizacin del programa se determina en qu condiciones y en qu secuencia se van a ejecutar los mdulos de programas creados por el usuario. Para ello se deben programar en los mdulos de organizacin llamadas condicionales o incondicionales a los mdulos deseados. En las partes de programa de los distintos mdulos de organizacin, de programa, de funciones y de pasos, se pueden llamar a otros mdulos de programa, de funciones y de pasos, combinndolos 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 instalacin que estn relacionadas entre s desde el punto de vista de la tcnica de programacin. Las figuras 3-2 y 3-3 muestran dos ejemplos de estructuracin de un programa.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3-5

Organizacin de los programas

OB 1

PB A
Programa de modos de operacin

FB
Parada de la inst. Parada de emergencia

SPA PB A

FB
Conducir al estado inicial

PB B
Mando secuencial

FB
Mando de la cadena secuencial

SB
Paso secuencial

SPA PB B SB
Paso secuencial

PB C
Nivel de mando individual

FB
Alimentacin de grupos

DB
Marcas de interfaz de los elementos de mando individual

FX SPA PB C
Alimentacin individual

FX
Alimentacin individual

PB D
Salida de avisos

FB
Salida de avisos por periferia estndar

SPA PB D

FB
Salida de avisos por periferia estndar

DX
Tex t o s d e aviso

BE

Fig. 3-2

Ejemplo de la organizacin del programa de usuario segn la estructura del programa

3-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Organizacin de los programas

OB

PB X
Parte X de la instalacin

FB
Mando individual

FB S PA P B X
Regulacin

FX
Av i s o

PB Y
Parte Y de la Instalacin

FB Mando secuencial FX Av i s o

S PA P B Y

FB Z
Parte Z de la instalacin

FB Regulacin

S PA P B Z

FB
Aritmtica

FB
Salida de protocolo

BE

Fig. 3-3

Ejemplo de la organizacin del programa de usuario segn la estructura de la instalacin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3-7

Organizacin de los programas Anidamiento de mdulos

Fig. 3-4 muestra cmo se efectan las llamadas anidadas (intercaladas) a mdulos.

OB 1

PB 5 1 op. STEP 5 A DB 20

PB 20 1 op. STEP 5

A SPA PB 5 *) U M 200.5 SPA PB 20 O M 1.5 *)

DB 30

SPA FB 30 NOMB.:KURV U E 55.0 *)

BE
*) Operacin a la que se retorna

BE

BE

Fig. 3-4

Llamada anidada de mdulos de cdigo

Direcciones de mdulos

La posicin de un mdulo en la memoria de usuario est determinada por la direccin inicial del mdulo. En el caso de los mdulos de cdigo, es la direccin de la clula de memoria, en la que se encuentra la primera instruccin STEP 5 del mdulo (en el caso de FB y FX, es la instruccin SPA que encabeza la lista de operandos formales); en mdulos de datos, es la direccin de la primera palabra de datos. Para que la CPU, en caso de llamar a un mdulo de datos, pueda localizar en la memoria el mdulo de datos llamado, las direcciones iniciales de todos los mdulos vlidos estn registradas en la lista de direcciones de mdulos del mdulo de datos DB 0. El DB 0 es administrado por el programa de sistema. El usuario, por consiguiente, no lo puede abrir! Una vez procesado el mdulo llamado y a fin de poder encontrar el camino de vuelta al mdulo que ha efectuado la llamada, la CPU registra la direccin de retroceso cada vez que se llama a un nuevo mdulo: la direccin de retroceso es la direccin de la clula de memoria, en la que se encuentra la instruccin STEP 5 siguiente a la llamada del mdulo. Adems, la CPU registra la direccin inicial y la longitud del mdulo de datos vlido en esta posicin.

3-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Organizacin de los programas Profundidad de anidamiento

Se pueden anidar como mximo 40 mdulos. Si se llaman a ms de 40 mdulos, la CPU emitir un aviso de error y se pondr en STOP.

Ejemplo de la profundidad de anidamiento

Nivel de procesamiento de programa

OB 25

OB 2

FB 21

OB 13

PB 131

FB 131

OB 1

PB 1

FB 1

Profundidad de anidamiento 1 2 3 4 5 6 7 8 9

Fig. 3-5

Ejemplo de la profundidad de anidamiento de mdulos

As se averigua la profundidad de anidamiento del programa: - Sumar todos los mdulos de organizacin que han sido programados por el usuario (en el ejemplo: 4 OB). - Sumar las profundidades de anidamiento de los diferentes mdulos de organizacin (en el ejemplo: 2 + 2 + 1 + 0 = 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 60!

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3-9

Almacenamiento de mdulos de programa y de datos

3.3

Almacenamiento de mdulos de programa y de datos


En la CPU 948, el programa de usuario se ejecuta exclusivamente en la RAM interna. Por consiguiente ha de ser cargado - incluidos los mdulos de datos existentes - en la memoria de usuario de la CPU 948.

Cmo se cargan los programas y mdulos de datos en la RAM interna?

Se pueden aplicar los mtodos siguientes:

Cargar los distintos mdulos de cdigo y de datos mediante el aparato de programacin en la memoria RAM. Insertar en la apertura correspondiente de la CPU una Memory Card (Flash EPROM!) que haya sido programada previamente mediante el aparato de programacin con el programa completo, incluidos todos los mdulos de datos. Efectuando un BORRADO TOTAL de la CPU (vase captulo 4) se cargan automticamente todos los datos que contiene la Memory Card "1:1" en la memoria RAM interna. El programa ha sido cargado mediante el aparato de programacin, o bien la Memory Card ha sido cargada en la RAM interna mediante un BORRADO TOTAL. A continuacin, pueden cargarse mdulos adicionales con el aparato de programacin en la memoria interna, o bien sustituir los mdulos existentes.

Nota La Memory Card slo puede ser programada mediante el aparato de programacin. Para ello se puede utilizar el software del aparato de programacin a partir de la versin 6. Durante la programacin hay que seleccionar en el aparato de programacin el modo de operacin "WORD BLOCK" ("palabra/ bloque", vase la descripcin S5-DOS /3/).

Cuidado Si tras cargar el programa de la Memory Card se modifican o aaden mdulos mediante el aparato de programacin, estas modificaciones sern anuladas al efectuar el prximo BORRADO TOTAL, puesto que la memoria de usuario se sobreescribe nuevamente con el contenido de la Memory Card!

3 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Procesamiento del programa de usuario

3.4

Procesamiento del programa de usuario


Todo el software de la CPU (ste 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 automatizacin por medio de secuencias de operaciones que se repiten constantemente (CICLO). Control del proceso de automatizacin por reaccin ante sucesos que se producen espordicamente, o en determinados tiempos (alarmas), as como por reaccin ante errores. Para estas tres tareas existe la posibilidad, por medio de interfaces con el usuario (mdulos de organizacin OB 1 a OB 35, vase captulo 2.2.1), de ejecutar ciertas partes especiales del programa de usuario en la CPU.

ARRANQUE

Antes de que la CPU pueda pasar al procesamiento cclico, hay que inicializarla, a fin de establecer un punto de partida definido para el procesamiento cclico del programa, y para predeterminar, por ejemplo, escalas de tiempo para la ejecucin de determinadas funciones. El tipo de inicializacin 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 captulo 4. Se puede intervenir en el comportamiento de ARRANQUE de la CPU programando los mdulos de organizacin OB 20, OB 21 y OB 22, o parametrizando el mdulo de datos DX 0 (vase captulo 7).

CICLO

Despus de ejecutar un ARRANQUE, el programa de sistema pasa al procesamiento cclico. Se ocupa de funciones de segundo plano que son necesarias para las tareas de automatizacin (vase figura 3-1 al principio del captulo). Una vez ejecutadas las funciones de sistema al principio de un CICLO, el programa de sistema llama al mdulo de organizacin OB 1 en calidad de programa de usuario cclico. En este mdulo, el usuario puede programar las operaciones STEP 5 para el procesamiento cclico.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 11

Procesamiento del programa de usuario Reaccin en caso de alarmas y errores

Para poder reaccionar especialmente ante una alarma o un error determinados, en la CPU 948 se dispone de mdulos de organizacin especiales (OB 2 a OB 18 para procesamiento de alarmas, OB 19 y OB 23 a OB 34 para reacciones en caso de error); en ellos se puede depositar el programa STEP 5 correspondiente. En el caso de procesar alarmas o errores, el programa de sistema "anida" el correspondiente mdulo de organizacin en el procesamiento cclico. Esto significa que el procesamiento cclico es interrumpido por el procesamiento de una alarma o de un error. El anidamiento de los mdulos de organizacin se ejecuta de acuerdo con un esquema fijo de prioridades (ms informaciones al respecto se encuentran en los captulos 4 y 5). Adems de poder influir en el comportamiento de la CPU mediante los mdulos de organizacin mencionados, tambin es posible hacerlo parametrizando el mdulo de datos DX 0.

Los mdulos de organizacin OB 1 a OB 39 pueden ser llamados por el programa de sistema tan pronto como hayan sido cargados en la memoria de programa (tambin durante el funcionamiento). Si no son cargados, no se produce reaccin alguna en la CPU o, como en la mayora de los casos de error, sta pasa al estado STOP (vase captulo 5.4). Al igual que los mdulos de organizacin, el mdulo de datos DX 0 tambin puede ser cargado en la memoria de programa durante el funcionamiento. Sin embargo, slo causar efecto tras el prximo NUEVO ARRANQUE. Si el DX 0 no est cargado, valen los ajustes estndar (vase captulo 7). 3.4.1 Definiciones terminolgicas en cuanto al procesamiento de programas

Tiempo de ciclo

El ciclo comienza con el trigger (disparo) de la supervisin del tiempo de ciclo y termina con el siguiente trigger. 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 ejecucin del programa de sistema y del tiempo de ejecucin del programa de usuario. Por consiguiente, corresponden al tiempo de ciclo: el tiempo de procesamiento del programa cclico (programa de sistema y programa de usuario), el tiempo de procesamiento de alarmas (por ejemplo, alarmas controladas por tiempo), el tiempo de procesamiento de interrupciones (errores).

3 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Procesamiento del programa de usuario Supervisin del tiempo de ciclo

La CPU vigila que el tiempo de cilo no sobrepase un mximo de tiempo. El valor mximo estndar es de 200 ms. El usuario tiene la posibilidad de programar el tiempo de supervisin, o bien, de reiniciarlo durante el procesamiento del programa de usuario (vase DX 0/captulo 7 y OB de funciones especiales OB 222 / captulo 6.20).

Imagen de proceso de las entradas y salidas (PAE y PAA)

La imagen de proceso de las entradas y salidas es una zona de memoria situada en la RAM interna. Antes de comenzar el procesamiento cclico del programa de usuario, el programa de sistema lee los estados lgicos de las tarjetas de E/S de entrada y los transfiere a la imagen de proceso de las entradas. El programa de usuario evala los estados lgicos en la imagen de proceso de las entradas y, en funcin del resultado, activa o desactiva las seales de la imagen de proceso de las salidas. Despus de procesar el programa de usuario, el programa de sistema transfiere los estados lgicos de la imagen de proceso de las salidas a las tarjetas de E/S de salida. Memorizando las seales de E/S de forma intermedia en la imagen de proceso de las entradas y salidas se evita que una modificacin del estado lgico de un bit durante un ciclo de programa produzca "vibraciones" en la salida perifrica correspondiente. Por lo tanto, la imagen de proceso es una zona de la memoria, cuyo contenido es emitido o recogido de la periferia solamente una vez por ciclo.

Nota La imagen de proceso solamente existe para los bytes de entrada o salida de la periferia P con direcciones en bytes de 0 a 127! Aparte de la imagen de proceso integrada en el sistema se pueden definir y transferir otras imgenes de proceso mediante el OB 126 (vase captulo 6.6) .

Marcas de acoplamiento

Las marcas de acoplamiento sirven para el intercambio de datos entre las diferentes CPUs en modo multiprocesador, o bien, entre la CPU y algunos procesadores de comunicacin. Antes de comenzar el procesamiento cclico del programa de usuario, el programa de sistema lee las marcas de acoplamiento de entrada de la CPU y despus de procesar el programa de usuario transfiere las marcas de acoplamiento de salida al coordinador o a los procesadores de comunicacin. Las marcas de acoplamiento de entrada y de salida se definen creando el mdulo de datos DB 1 (vase captulo 10.1.6).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 13

Procesamiento del programa de usuario Sucesos de interrupcin

El procesamiento cclico del programa puede ser interrumpido por un procesamiento de programa controlado por tiempo (alarma de retardo, alarmas temporizadas cclicas, alarma temporizada controlada por reloj), un procesamiento del programa controlado por alarmas (alarma de proceso, interrupcin del sistema). Puede ser interrumpido o completamente abortado por aparicin de un error en un aparato o programa, intervencin externa (funcin del aparato de programacin, selector en STOP, STOP en multiprocesamiento MP-STP), una operacin de parada.

3 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones STEP 5 con ejemplos

3.5

Operaciones STEP 5 con ejemplos


Una operacin STEP 5 se compone de un elemento operante y un operando. En la parte operante se determina lo que debe efectuar la CPU (qu operacin?) y en la de operando se indica con qu medios (con qu operando?) se va a ejecutar la operacin. Las operaciones STEP 5 pueden ser subdivididas en diversos grupos: Operaciones bsicas (aplicables en todos los mdulos de cdigo) Operaciones complementarias Operaciones de organizacin (aplicables slo en los mdulos de funciones FB/FX ) Operaciones semforo (aplicables slo en los mdulos de funciones FB/FX )

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

Palabra alta AKKU 1


1)

Palabra baja Byte alto 16 15 8 7 AKKU-1-LH AKKU-1-LL AKKU-1-L Byte bajo 0

Byte alto 31 24 23

Byte bajo

AKKU-1-HL AKKU-1-HH AKKU-1-H

Los acumuladores se alteran segn la instruccin STEP 5 que se ejecute, por ejemplo: en las operaciones de carga siempre se utiliza el AKKU 1 como destino. 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,

1)

en caso de AKKU 2 a AKKU 4, de forma anloga

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 15

Operaciones STEP 5 con ejemplos


las operaciones aritmticas 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 aritmtica de coma fija de 16 bit, solamente se tranfiere 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, cuando se suma una constante (ADD BF/KF/DH) al contenido del AKKU 1 no se modifican los acumuladores 2, 3 y 4.

Indicadores de resultado

Las operaciones STEP 5 pueden ser de generacin o de consulta de indicadores. Los indicadores son depositados en un byte indicador. Cabe distinguir dos grupos de indicadores: por una parte, los indicadores de operaciones digitales (indicadores de palabra - bit 4 a 7 del byte indicador) y, por otra parte, los indicadores de operaciones binarias y de organizacin (indicadores de bit - bit 0 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 /1/. El byte indicador se visualiza con la funcin on line "status" (vase captulo 11.2.3) y tiene la siguiente estructura:

Indicadores de palabras

Indicadores de bits ERAB 0

ANZ 1 ANZ 0 OVFL OVFLS ODER STATUS VKE Bit 7 6 5 4 3 2 1

Indicadores de bits

ERAB Primera consulta Una cadena lgica de combinacin con combinaciones binarias, comienza siempre con una primera consulta, durante la cual se genera nuevamente el VKE. Con ella se pone el indicador de bit ERAB = 1. En el curso de las siguientes combinaciones lgicas, en la cadena comenzada permanece ERAB = 1 y el VKE puede ser modificado por estas combinaciones lgicas. La cadena de combinaciones comenzada termina con una operacin binaria de memorizacin (por ejemplo, S A 5.0). Con la operacin de memorizacin se pone ERAB = 0; 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 prxima combinacin binaria lgica despus de una operacin binaria de memorizacin vuelve a ser una "primera consulta".

3 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones STEP 5 con ejemplos Ejemplo de ERAB


:U : : :O : :UN : :S : :SPB : : : E 1.0

E 6.3 E 2.1 A 2.4 FB 150

ERAB se pone a 1, el VKE se genera de nuevo por combinacin AND VKE es influido por combinacin OR VKE es influido por combinacin AND NOT ERAB se pone a 0, la cadena de combinacin acaba Llamar mdulo de funciones dependiendo del VKE

Otros indicadores de bit

VKE Resultado de la combinacin (resultado lgico) Resultado de combinaciones con anchura de bit. En caso de instrucciones de comparacin indica si es verdadero o falso (vase lista de operaciones, operaciones binarias de combinacin u operaciones de comparacin). STATUS (estado) En caso de instrucciones de bit indica el estado lgico del ltimo bit consultado o activado. El estado se actualiza en operaciones binarias de combinacin - a excepcin de U(, O(, ), O - y en operaciones de memorizacin. ODER O Indicador interno de la CPU para el tratamiento de combinaciones "AND antes de OR".

Indicadores de palabras

OVFL Overflow (desbordamiento) Indica si se ha sobrepasado el campo numrico durante la operacin aritmtica que acaba de finalizar. OVFLS Overflow memorizado El bit de overflow queda registrado en la memoria. El OVFLS sirve para detectar si ha tenido lugar un desbordamiento (overflow) en el transcurso de varias operaciones aritmticas.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 17

Operaciones STEP 5 con ejemplos


ANZ 1 y ANZ 0 Indicadores de resultado codificados, cuya interpretacin se desprende de la tabla siguiente.

Nota Para la evaluacin directa de los indicadores se pueden utilizar las operaciones de comparacin y de salto disponibles (vanse captulos 3.5.1 y 3.5.4).

Tabla 3-1

Indicadores de resultado de operaciones STEP 5

Indicadores de palabras ANZ 1 0 ANZ 0 0

Operaciones aritmticas

Operaciones de combinacin digitales Resultado =0

Operaciones de comparacin

Operaciones de desplazamiento Bit desplazado =0 Bit desplazado =1

En caso de SES, SEF

Operaciones de salto ejecutadas

Resultado =0

AKKU 2 = AKKU 1 AKKU 2 < AKKU 1 AKKU 2 > AKKU 1

Semforo est activado

SPZ

Resultado <0 Resultado >0

Resultado 0

Semforo es activado o validado

SPM SPN SPP SPN

Divisin entre cero

Nota Cuando se cambia de nivel, por ejemplo durante el procesamiento de una alarma temporizada, se salvan todos los acumuladores as como los indicadores de bit y de palabra (VKE etc); stos se vuelven a cargar cuando se retorna al nivel interrumpido.

3 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas

3.5.1 Operaciones bsicas

Las operaciones bsicas pueden utilizarse en todos los mdulos de cdigo, as como en todos los modos de representacin (KOP, FUP y AWL)

Operaciones de combinacin binarias

Tabla 3-2

Operaciones de combinacin binarias

Operacin U O

Operando

Funcin Combinacin AND con consulta si el estado lgico = "1" Combinacin OR con consulta si el estado lgico = "1"

E A M S D T Z UN ON E A M S D T Z

0.0 a 127.7 0.0 a 127.7 0.0 a 255.7 0.0 a 4095.7 0.0 a 255.15 0 a 255 0 a 255

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 Combinacin AND con consulta si el estado lgico = "0" Combinacin OR con consulta si el estado lgico = "0"

0.0 a 127.7 0.0 a 127.7 0.0 a 255.7 0.0 a 4095.7 0.0 a 255.15 0 a 255 0 a 255

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

O U( O( )

Combinacin OR de funciones AND Combinacin AND de expresiones entre parntesis Combinacin OR de expresiones entre parntesis Cierre de parntesis Estn permitidos mx. 8 niveles, es decir, 7 parntesis abiertos.

Generacin del VKE

Las operaciones binarias de combinacin dan el resultado lgico (VKE). Al principio de una cadena de combinaciones, la generacin del VKE (primera consulta) depende solamente del estado lgico consultado (status), pero no depende del tipo de combinacin (O = OR, U = AND).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 19

Operaciones bsicas

Dentro de una cadena de combinacin, el VKE se genera a partir del tipo de combinacin, del anterior VKE y del estado lgico consultado. Una cadena de combinacin se concluye con una instruccin que inhibe el VKE (ERAB = 0). Despus, el VKE podr seguir siendo evaluado, pero ya no podr ser combinado.

Ejemplo
Programa = U U U = : A E E E A 0.0 1.0 1.1 1.2 0.1 0 1 1 0 0 STA VKE 0 1 1 0 0 0 1 1 1 0 ERAB VKE inhibido Primera consulta

VKE inhibido, fin de la cadena de combinacin

Operaciones de memorizacin

Tabla 3-3

Operaciones de memorizacin

Operacin S R

Operando

Funcin Si el estado del VKE es 1: activar Si el estado del VKE es 1: rearmar

E A M S D = E A M S D

0.0 a 127.7 0.0 a 127.7 0.0 a 255.7 0.0 a 4095.7 0.0 a 255.15

una entrada en la PAE una salida en la PAA una marca una marca S un bit en la palabra de datos Asignacin del VKE a una entrada en la PAE una salida en la PAA una marca una marca S un bit en la palabra de datos

0.0 a 127.7 0.0 a 127.7 0.0 a 255.7 0.0 a 4095.7 0.0 a 255.15

3 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas Operaciones de carga y transferencia

Tabla 3-4

Operaciones de carga y transferencia / 1 parte

Operacin L T

Operando

Funcin Carga Transferencia

EB EW ED AB AW AD

0 a 127 0 a 126 0 a 124 0 a 127 0 a 126 0 a 124

de un byte de entrada de/a la PAE de una palabra de entrada de/a la PAE de una palabra doble de entrada de/a la PAE de un byte de salida de/a la PAA de una palabra de salida de/a la PAA de una palabra doble de salida de/a 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 perifrico de las entradas o salidas digitales (zona P) de un byte perifrico de las entradas o salidas digitales o analgicas (zona P) de una palabra perifrica de las entradas o salidas digitales (zona P) de una palabra perifrica de las entradas o salidas digitales o analgicas (zona P) de un byte de la periferia ampliada (zona Q) de una palabra de la periferia ampliada (zona Q)

MB 0 a 255 MW 0 a 254 MD 0 a 252 SY SW SD DR DL DW DD PY PY 0 a 4095 0 a 4094 0 a 4092 0 a 255 0 a 255 0 a 255 0 a 254 0 a 127 128 a 255

PW PW

0 a 126 128 a 254

QB QW

0 a 255 0 a 254

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 21

Operaciones bsicas

Tabla 3-5

Operaciones de carga y transferencia / 2 parte

Operacin L

Operando

Funcin Cargar

KB KC

0 a 255 2 caracteres ASCII -32768 a +32767


1)

una constante, valor byte una constante de 2 caracteres ASCII

KF KG KH DH KM KY

una constante como nmero de coma fija una constante como nmero de coma flotante una constante como nmero hexadecimal una constante de palabra doble como nmero hexadecimal una constante como configuracin binaria una constante como nmero de 2 bytes

0 a FFFF 0a FFFF FFFF configuracin de 16 bit 0 a 255 por cada byte 0.0 a 999.3 0 a 999 0 a 255 0 a 255

KT KZ T Z LC T Z

una constante como valor de tiempo (cdigo BCD) una constante como valor de cmputo un valor de tiempo, en cdigo dual un valor de cmputo, en cdigo dual Cargar un valor de tiempo valor de cmputo en cdigo BCD

0 a 255 0 a 255

1)

0,1469368 x 10-38 a 0,1701412 x 1039

Operaciones de carga

Las operaciones de carga escriben el valor direccionado en el AKKU 1, cuyo contenido anterior pasa al AKKU 2 (stack lift).

Operaciones de transferencia

Las operaciones de transferencia escriben el contenido del AKKU 1 en la clula de memoria direccionada.

3 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas Ejemplos de operaciones de carga y transferencia


Ejemplo 1:
La figura 3-6 muestra la carga/transferencia de un byte, una palabra, una palabra doble de/a una zona de memoria organizada byte por byte (PAE, PAA, marca, periferia): :L EB i se carga el byte i de PAE en el AKKU-1-LL :L EW j se cargan los bytes j y j+1 de PAE en el AKKU-1-L :L MD k se cargan los bytes de marcas k hasta k+3 en el AKKU 1

31 0
1)

23 0
1)

15 0
1)

7 i

0 AKKU 1 L T EB i EB i

i Direcciones ascendentes j j + 1 31 k k k + 1 k + 2 k + 3
1)

31 0
1)

23 0
1)

15 j

7 j+1

0 AKKU 1 L T EW j EW j

23 k+1

15 k+2

7 k+3

0 AKKU 1 L T MD k MD k

solamente para operaciones de carga

Fig. 3-6

Operaciones de carga y transferencia en una zona de memoria organizada byte por byte

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 23

Operaciones bsicas

Ejemplo 2:
La figura 3-7 muestra la carga/transferencia de un byte, una palabra o una palabra doble de/a una zona de memoria organizada palabra por palabra. :L :L :L :L DR DL DW DD i j k l se se se se carga el byte derecho de la palabra de datos i en el AKKU-1-LL carga el byte izquierdo de la palabra de datos j en el AKKU-1-LL carga la palabra de datos k en el AKKU-1-L cargan las palabras de datos l y l+1 en el AKKU 1

15

31 0
1)

23 0
1)

15 0
1)

7 i

0 AKKU 1 L DR i T DR i

Byte derecho

Direcciones ascendentes

Palabra de datos i 31 0 1) 23 0
1)

15 0
1)

7 j

0 AKKU 1 L DL j T DL j

Byte izquierdo

Palabra de datos j

31 0
1)

15 k

0 AKKU 1 L DW k T DW k

k 31 l l l + 1
1)

15 l+1

0
AKKU 1

L DD l T DD l

solamente para operaciones de carga

Fig. 3-7

Operaciones de carga y tranferencia en una zona de memoria organizada palabra por palabra

Nota Las operaciones de carga no influyen en los indicadores. Las operaciones de transferencia borran el bit OVFLS. Al cargar un byte o una palabra se borran los bytes de mayor valor en el AKKU 1.

3 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas Llamada a periferia

A la periferia se puede acceder mediante operaciones de carga y transferencia: directamente: con L../T.. ..PY, ..PW, ..QB, ..QW o a travs de la imagen de proceso: con L../T.. ..EB, ..EW, ..ED, .AB, ..AW, ..AD y con operaciones de combinacin y memorizacin.

Nota En las operaciones de transferencia T PY 0 a 127 y T PW 0 a 126, se actualiza paralelamente la imagen de proceso de las salidas. Excepcin: cuando la salida de instrucciones ha sido bloqueada por la operacin de STEP 5 BAS (vase captulo 3.5.4).

En cuanto a la periferia, se deben 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 periferia P, con direcciones de bytes de 0 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, no existe imagen de proceso! (En cuanto a la distribucin de direcciones de periferia, vase captulo 8.2.2). Las tarjetas de entrada/salida con direcciones de la periferia Q, solamente deben ser insertadas en aparatos de ampliacin (no en el aparato central). En un solo aparato de ampliacin solamente se puede utilizar la periferia P o la periferia Q.

Cuidado En caso de que en un aparato de ampliacin se utilicen direcciones de la periferia Q, no debern utilizarse estas mismas direcciones para las tarjetas de E/S conectadas al aparato central (doble direccionamiento!).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 25

Operaciones bsicas Operaciones de tiempo y cmputo

Para cargar un temporizador con una operacin de arranque, o para cargar un contador con una operacin de activacin, 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 efectuar un arranque de un temporizador con el valor de tiempo dado, se requiere un cambio de flancos del VKE.

Un contador se activa con el valor de cmputo dado o cuenta cuando se detecta un flanco positivo del VKE. En la tabla siguiente, los cambios de flanco estn indicados en la columna "VKE" con flechas.

Tabla 3-6

Operaciones de tiempo y cmputo

Operacin SI SV SE SS SA R S R ZV ZR
1)

Operando T T T T T T Z Z Z Z 0 0 0 0 0 0 a a a a a a 255 255 255 255 255 255

VKE Funcin 1)

1

Arrancar un temporizador como impulso Arrancar un temporizador como impulso prolongado Arrancar un temporizador como retardo de conexin Arrancar un temporizador como retardo de conexin mem. Arrancar un temporizador como retardo de desconexin Rearmar un temporizador Activar un contador (valor BCD de 0 a 999) Rearmar un contador Contar hacia atrs Contar hacia delante

0 a 255 0 a 255 0 a 255 0 a 255

Flanco positivo ( ): cambio de estado lgico de 0 a 1 Flanco negativo ( ): cambio de estado lgico de 1 a 0

En la ejecucin de operaciones de temporizadores o de contadores SI T, SE T, SV T, SS T, SA T y S Z, el valor que se encuentra en el AKKU 1 pasa al temporizador o contador (corresponde a la instruccin de transferencia), iniciando entonces la operacin correspondiente.

3 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas Valor de tiempo

Un valor de tiempo puede cargarse directamente en el AKKU 1 con la operacin L KT o bien, de forma indirecta, de una palabra de datos o marcas. Tiene que tener la siguiente estructura (la escala de tiempo se indica en L KT despus del punto del operando):
Bit n 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 10 0 0

10 2

10 1

Valor de tiempo dado en cdigo BCD 0 ... 999 Escala de tiempo dada en cdigo BCD: 0: 1: 2: 3: Estos bits son irrelevantes, es decir, no se tienen en cuenta al arrancar el temporizador 0,01 s 0,1 s 1 s 10 s

Ejemplo

Se ha de programar un tiempo de duracin de 127 s: Ocupacin de los bits:

2 Valor de tiempo: 127

Escala de tiempo: 1 s No se tienen en cuenta

Nota Cada arranque de un temporizador produce una imprecisin de 1 escala de tiempo! Por lo tanto, cuando se utilicen temporizadores, hay que optar por una escala de tiempo, lo ms breve posible (escala de tiempo < tiempo de duracin)! Ejemplo: Duracin 4s

no : sino:

1sx4 Imprecisin: 1 s 0,01 s x 400 Imprecisin: 0,01 s

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 27

Operaciones bsicas Valores de cmputo

Un valor de cmputo puede cargarse directamente en el AKKU 1 con la operacin L KZ o bien, de forma indirecta, de una palabra de marcas o de datos. Tiene que tener la siguiente estructura:

Bit n 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 10 0 0

10 2

10 1

Valor de cmputo dado en cdigo BCD 0 ... 999 Estos bits son irrelevantes, es decir, no se tienen en cuenta al arrancar el valor de cmputo

Ejemplo

Se ha de programar un valor de cmputo de 127: Ocupacin de los bits:

0 1

1 1

2 Valor de cmputo: 127

No se tienen en cuenta

En el temporizador o contador se encuentra el valor correspondiente en cdigo binario. Para consultar el temporizador o el contador se puede cargar en el AKKU 1 el valor del temporizador o contador directamente o en cdigo BCD.

3 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas Otros ejemplos de valores de tiempo y cmputo


Carga directa de valores de tiempo:

Val o r d e t i e m p o

Te m p o r i z a d o r T 1 0

0
"L T 10":

AKKU 1

Carga directa del valor dual del temporizador T 10 en el AKKU 1

La escala de tiempo no se carga.

Carga directa de valores de cmputo:

Val o r d e c m p u t o

Contador Z 10

AKKU 1

"L

Z 10":

Carga directa del valor dual del contador Z 10 en el AKKU 1

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 29

Operaciones bsicas

Carga codificada de valores de tiempo:


Escala de tiempo 13 12 9 Va l o r d e t i e m p o 0 Te m p o r i z a d o r T 10

Dual

BCD

13 12

11 10 2

7 10 1

3 10 0

AKKU 1

Escala de tiempo

Va 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 tambin se carga.

Carga codificada de valores de cmputo:

Va l o r

de

cmputo

Contador

10

Dual

BCD

11

AKKU

10 2 Va l o r de

10 1 cmputo en

10 0 cdigo BCD

"LC

Z 10":

Carga codificada del valor del contador Z 10 en el AKKU 1

En la carga codificada no se cargan los bits de estado 14 y 15 de los temporizadores, ni los bits 12 a 15 de los contadores. En su lugar se ponen ceros en el AKKU 1. El valor registrado en el AKKU puede seguirse procesando.

3 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas Operaciones aritmticas

Tabla 3-7

Operaciones aritmticas

Operacin + x : F F F F

Operando

Funcin Adicin de dos nmeros de coma fija (16 bit) Sustraccin de dos nmeros de coma fija (16 bit) Multiplicacin de dos nmeros de coma fija (16 bit) Divisin de dos nmeros de coma fija (16 bit): Cociente en AKKU-1-L, resto en AKKU-1-H Adicin de dos nmeros de coma flotante (32 bit) Sustraccin de dos nmeros de coma flotante (32 bit) Multiplicacin de dos nmeros de coma flotante (32 bit) Divisin de dos nmeros de coma flotante (32 bit)

+ x :

G G G G

Las operaciones aritmticas combinan los contenidos del AKKU 1 y del AKKU 2 (por ejemplo, "AKKU 2 - AKKU 1"). Luego, el resultado queda en el AKKU 1. Los registros de clculo quedan modificados por una operacin aritmtica de la manera siguiente (en el caso de operaciones de coma fija, solamente se modifica la palabra baja):

AKKU 1 antes: despus:

AKKU 2

AKKU 3

AKKU 4

<AKKU 1> <AKKU 2> <AKKU 3> <AKKU 4> <Resultado> <AKKU 3> <AKKU 4> <AKKU 4>

Nota Dentro de las operaciones complementarias se dispone de operaciones de sustraccin y adicin de nmeros de coma fija de palabra doble.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 31

Operaciones bsicas Operaciones de comparacin

Tabla 3-8

Operaciones de comparacin

Operacin != >< > >= < <= F D G

Operando

Funcin Comparacin de igualdad Comparacin de desigualdad Comparacin de "mayor que" Comparacin de "mayor o igual a" Comparacin de "menor que" Comparacin de "menor o igual a" ...F: ...D: ...G: Comparacin de 2 nmeros de coma fija (16 bit) Comparacin de 2 nmeros de coma fija (32 bit) Comparacin de 2 nmeros de coma flotante (32 bit)

Operaciones de mdulos

Tabla 3-9

Operaciones de mdulos

Operacin SPA SPB

Operando

Funcin Salto incondicional Salto condicional (slo si VKE = 1)

OB OB PB FB SB BA BAB FX BE BEB BEA A AX E EX

1 a 39 1) 121 a 255 0 a 255 0 a 255 0 a 255

a un mdulo de organizacin a una funcin especial del programa de sistema a un mdulo de programa a un mdulo de funciones FB a un mdulo de pasos Salto incondicional Salto condicional (slo si VKE = 1) a un mdulo de funciones FX Fin de mdulo Fin de mdulo condicional (slo si VKE = 1) Fin de mdulo absoluto Apertura de un mdulo de datos DB Apertura de un mdulo de datos DX Crear mdulo de datos DB Crear mdulo de datos DX (AKKU 1 tiene que contener la cantidad de palabras de datos mx. 4091 que ha de tener el mdulo nuevo)

0 a 255

DB DX DB DX

2 a 255 3 a 255 2 a 255 3 a 255

1)

Solamente para fines de comprobacin!

3 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones bsicas E DB/EX DX

Crear mdulo de datos La operacin E DBx crea un mdulo de datos DB con el nmero x (2 x 255) en la memoria de usuario de la CPU. El contenido del mdulo de datos no se rellena con ceros, es decir, las palabras de datos contienen datos arbitrarios. Antes de programar la instruccin, hay que depositar en el AKKU-1-L la cantidad de palabras de datos que va a tener el nuevo DB. El encabezamiento correspondiente es creado por la operacin "E DB" o "EX DX". Un mdulo de datos puede ocupar (sin encabezamiento) mximo 4091 palabras en la memoria. Los mdulos de datos de mayor longitud pueden ser creados con el OB 125 (vase captulo 6.5). Si el correspondiente mdulo de datos ya existe, si la longitud del DB no es vlida o la memoria de usuario es insuficiente, el programa de sistema llama al OB 34. Si ste no est cargado, la CPU pasa al estado STOP. La operacin EX DXx crea en la memoria de usuario un mdulo de datos DX y funciona del mismo modo que E DBx.

Operaciones cero/de estructuracin de imagen/ de stop


Tabla 3-10 Operaciones cero/de estructuracin de imagen/de stop

Operacin NOP 0 NOP 1 BLD

Operando 0 a 255

Funcin Operacin cero Operacin cero Instruccin de estructuracin de imagen para el PG: es tratada por la CPU como una operacin cero Crear una lnea en blanco mediante Return Cambiar a AWL/FUP/KOP Finalizar segmento La CPU pasa a STOP parcial al final del ciclo o al final del OB 1.

STP

130 131/131/133 255

Nota Puesto que la operacin STP slo tiene efecto al final del ciclo, no se efectuar ninguna entrada en USTACK (pila de interrupciones). Por este motivo resulta difcil localizar posteriormente la causa del estado STOP mediante funciones auxiliares de diagnstico. Para facilitar el diagnstico conviene asignar una identificacin antes de llamar a la operacin STP, por ej. poniendo una configuracin binaria especial en un DB de diagnstico, o bien utilizando la operacin de STEP 5 STS - vase captulo 3.5.4.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 33

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP

3.5.2 Ejemplos de programacin en los modos de representacin AWL, KOP y FUP

Operaciones de combinacin

Combinacin AND Representacin STEP 5 Tarea Lista de instrucciones


E 1.1 E 1.3 E 1.7 A 3.5

Esquema de contactos
E 1.1 E 1.3 E 1.7 A 3.5

Esquema de func.
E 1.1 E 1.3 E 1.7

E 1.1 1.3 1.7

E 1.1 E 1.3

U U U

& A 3.5

& E 1.7

= A 3.5 A 3.5

En la salida A 3.5 se produce el estado lgico "1" si todas las entradas presentan simultneamente el estado lgico "1". En la salida A 3.5 se produce el estado lgico "0" si por lo menos una de las salidas presenta el estado lgico "0". La cantidad de consultas y el orden de programacin son arbitrarios.

3 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de combinacin (continuacin)
Combinacin OR Representacin STEP 5 Tarea Lista de instrucciones
E 1.2 E 1.7 E 1.7 O A 3.2 = A 3.2 A 3.2 E 1.5 E 1.5

Esquema de contactos
E 1.2 A 3.2

Esquema de func.
E 1.2 E 1.7 E 1.5 1 A 3.2

E 1.2 1.7 1.5 E 1.2 1 E 1.7 E 1.5

O O

En la salida A 3.2 se produce el estado lgico "1" si por lo menos una de las seales de las entradas presenta el estado lgico "1". En la salida A 3.2 se produce el estado lgico "0" si todas las las entradas presentan simultneamente el estado lgico "0". La cantidad de consultas y el orden de programacin son arbitrarios.

Combinacin AND antes de OR Representacin STEP 5 Tarea Lista de instrucciones


E 1.4 E 1.3 E 1.5 & & E 1.6 E 1.3 A 3.1 O U 1 U = A 3.1 E 1.4 E 1.3 A 3.1 E 1.4 E 1.5 E 1.6 E 1.4 E 1.3 E 1.4 E 1.3 & A 3.1

Esquema de contactos
E 1.5 E 1.6 A 3.1

Esquema de func.

E 1.5 E 1.6

U U

E 1.5 E 1.6

& 1

En la salida A 3.1 se produce el estado lgico "1" si se cumple por lo menos una de las combinaciones AND. En la salida A 3.1 aparece el estado lgico "0" si no se cumple ninguna de las combinaciones AND.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 35

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de combinacin (continuacin)
Combinacin OR antes de AND Ejemplo 1 Representacin STEP 5 Tarea Lista de instrucciones
U E 6.0 E 6.1 E 6.2 E 6.3 E 6.0 E 6.2 E 6.3 O U U( & E 6.1 O O 1 A 2.1 ) = A 2.1 A 2.1 E 6.2 E 6.3 E 6.3 E 6.3 E 6.2 1 A 2.1 E 6.1 E 6.2 E 6.1 E 6.0 E 6.0 A 2.1 E 6.0 1

Esquema de contactos

Esquema de func.

E 6.1

&

En la salida A 2.1 se produce el estado lgico "1" si la entrada E 6.0 E 6.1 y una de las entradas E6.2 o bien E 6.3 llevan la seal "1". En la salida A 2.1 se produce el estado lgico "0" si la entrada E 6.0 lleva la seal "0" y no se cumple la combinacin AND.

Combinacin OR antes de AND

Ejemplo 2 Representacin STEP 5

Tarea

Lista de instrucciones
U( E 2.0 E 2.1 E 1.4 E 1.5 E 1.4 E 1.5

Esquema de contactos
E 1.4 E 2.0 A 3.0

Esquema de func.

E 1.4 E 1.5

O O ) E 2.0 E 2.1 A 3.0 U( O O

E 1.4 E 1.5 E 1.5 E 2.1 E 2.0 E 2.1

1 & 1 A 3.0

&

E 2.0 E 2.1

A 3.0

) = A 3.0

En la salida A 3.0 se produce el estado lgico "1" si se cumplen ambas combinaciones OR. En la salida A 3.0 se produce el estado lgico "0" si no se cumple por lo menos una combinacin OR.

3 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de combinacin (continuacin)

Consulta si el estado lgico es "0" Representacin STEP 5 Tarea Lista de instrucciones Esquema de contactos
E 1.5 E 1.5 E 1.6 & A 3.0 A 3.0 U E 1.5 E 1.6 A 3.0

Esquema de func.

E 1.5

E 1.6

E 1.5 E 1.6

& A 3.0

UN E 1.6 = A 3.0

En la salida A 3.0 aparece el estado lgico "1" solamente si la entrada E 1.5 presenta el estado lgico "1" (contacto cerrado) y la entrada E 1.6 el estado lgico "0" (contacto abierto).

Operaciones de memorizacin
Elemento de memorizacin RS para salida memorizada de seales Representacin STEP 5 Tarea Lista de instrucciones
U E 1.4 R 1 1 S 1 0 A 3.5 A 3.5 E 2.7 S U R E 2.7 A 3.5 E 1.4 A 3.5 E 1.4 R Q

Esquema de contactos
E 2.7 A 3.5 S

Esquema de func.
A 3.5 E 2.7 E 1.4 S R Q

E 1.4

E 2.7

El estado lgico "1" en la entrada E 2.7 provoca la activacin del elemento de memorizacin (estado lgico "1" en la salida A 3.5). Si el estado lgico en la entrada E 2.7 cambia a "0", se conserva este estado, es decir, la seal es almacenada. El estado lgico "1" en la entrada E 1.4 provoca el rearme del elemento de memorizacin (estado lgico "0" en la salida A 3.5). Si el estado lgico en la entrada E 1.4 cambia a "0", se conserva este estado. Si la seal de activacin (entrada E 2.7) y la seal de rearme (entrada E 1.4) son simultneas, la ltima consulta programada (en este caso U E 1.4) ser vlida durante el procesamiento del resto del programa (rearme tiene preferencia).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 37

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de memorizacin (continuacin)

Elemento de memorizacin RS con marcas Representacin STEP 5 Tarea Lista de instrucciones


U E 1.3 R S 1 1 1 0 M 1.7 M 1.7 E 2.6 S U R E 2.6 M 1.7 E 1.3 M 1.7 E 1.3 R Q

Esquema de contactos
E 2.6 M 1.7 S

Esquema de func.
M 1.7 E 2.6 E 1.3 S R Q

E 1.3

E 2.6

El estado lgico "1" en la entrada E 2.6 provoca la activacin del elemento de memorizacin. Si el estado lgico en la entrada E 2.6 cambia a "0", no se modifica este estado, es decir, la seal es almacenada. El estado lgico "1" en la entrada E 1.3 provoca el rearme del elemento de memorizacin. Si el estado lgico en la entrada E 1.3 cambia a "0", no se modifica este estado. Si la seal de activacin (entrada E 2.6) y la seal de rearme (entrada E 1.3) son simultneas, la ltima consulta programada (en este caso U E 1.3) ser vlida durante el procesamiento del resto del programa (el rearme tiene preferencia).

3 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de memorizacin (continuacin)

Representacin de un relais de paso Representacin STEP 5 Tarea Lista de instrucciones


U E 1.7 M 4.0 / M 2.0 M 2.0 UN = U S UN R E 1.7 M 4.0 M 2.0 E 1.7 M 4.0 M 2.0 M 2.0 M 4.0 E 1.7 M 4.0 E 1.7 R Q E 1.7 R Q M 2.0 M 4.0 S M 2.0 M 4.0 S E 1.7 M 4.0 M 2.0

Esquema de contactos

Esquema de func.
E 1.7 &

E 1.7

M 4.0

M 2.0

Con cada flanco creciente de la entrada E 1.7 se cumple la combinacin 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 combinacin 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. Por consiguiente, la marca M 2.0 lleva el estado lgico "1", solamente durante un solo recorrido del programa.

Divisor binario (circuito biestable T) Representacin STEP 5 Tarea Lista de instrucciones


E 1.0 M 1.0 M 1.1 A 3.0 M 2.0 A 3.0 U UN = U S UN R U U = U UN UN S U R E 1.0 M 1.0 M 1.1 M 1.1 M 1.0 E 1.0 M 1.0 M 1.1 A 3.0 M 2.0 M 1.1 A 3.0 M 2.0 A 3.0 M 2.0 A 3.0

Esquema de contactos
E 1.0 M 1.0 M 1.1

Esquema de func.
E 1.0 M1.0 & M 1.1 M1.0 S R Q & M 2.0 &

E 1.0

M 1.1 M 1.0 S E 1.0 R Q M 2.0

M 1.1 E 1.0 M 1.1 A 3.0

M 1.1 A 3.0 M 1.1 A 3.0 M 2.0 A 3.0 S M 2.0 R Q

E 1.0

M 1.1 A 3.0 M 2.0

A 3.0 S R Q

A 3.0

M 2.0

El divisor binario (salida A 3.0) cambia de "0" a "1" con cada cambio de estado lgico (flanco creciente) de la entrada E 1.0. Por consiguiente, en la salida del elemento de memorizacin aparece la mitad de la frecuencia de entrada.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 39

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo

Impulso Representacin STEP 5 Tarea Lista de instrucciones


E 3.0 R 1 S 10 s T1 T1 A 4.0 A 4.0 U L SI UN R L T LC T U = E 3.0 KT 10.2 T 1 E 3.0 T 1 T 1 AW 0 T 1 AW 2 T 1 A 4.0

Esquema de contactos
E 3.0 1 KT 10.2 TW DU AW 0 AW 2 A 4.0 R Q T1

Esquema de func.
T1 E 3.0 KT 10.2 1 TW DU AW 0 AW 2 A 4.0 =

E 3.0

DE E 3.0

DE

E 3.0

Cuando el estado lgico cambia de "0" a "1" en la entrada E 3.0 se arranca el temporizador. Si al repetir el procesamiento, el resultado de la combinacin es "1", el temporizador permanece inalterado. Si el estado lgico en la entrada 3.0 es "0", el temporizador se pone a cero (se borra). Las consultas U T o bien, O T, dan el estado lgico "1", mientras corre el tiempo. KT 10.2: El temporizador se carga con el valor indicado (10). La cifra a la derecha del punto indica la escala de tiempo: 0 = 001 s 2 = 1 s 1 = 0.1 s 3 = 10 s DU y DE son salidas digitales del temporizador. En la salida DU, el valor de tiempo est en cdigo binario, en la salida DE est en cdigo BCD con la escala de tiempo.
E 3.0 A 4.0 T

3 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo (continuacin)

Impulso prolongado Representacin STEP 5 Tarea Lista de instrucciones


U L SV U = E 3.1 EW 15 T 2 T 2 A 4.1

Esquema de contactos
E 3.1 1 EW 15 T2 V DU

Esquema de func.
T2 E 3.1 1 V

E 3.1 E 3.1 R 1 S T2

TW

EW 15 TW

DU

T2 T2 R

DE A 4.1 Q R

DE A 4.1 =

A4.1

A 4.1

Si el resultado de combinacin es "1" y se trata del primer procesamiento, se arranca el temporizador. Si el resultado de combinacin es "0", el temporizador permanece inalterado. Las consultas U T y O T dan el estado lgico "1" mientras corre el tiempo.
(EB 15) 5 43 07 10 2 (EB 16) 43 10 1 0 10 0

Valor de tiempo Escala de tiempo

EW 15: Activar un valor de tiempo con el valor en cdigo BCD de los operandos E, A, M o D (en el ejemplo, palabra de entrada 15)

E 3.1 A 4.1 T T

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 41

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo (continuacin)

Conexin retardada Representacin STEP 5 Tarea Lista de instrucciones


U L SE UN R U = T3 A 4.2 A 4.2 E KT T E T T A 3.5 9.2 3 3.5 3 3 4.2

Esquema de contactos
E 3.5 T KT 9.2 TW T3 O DU

Esquema de func.
T3 E 3.5 KT 9.2 T TW O DU

E 3.5 E 3.5 R S T3

9s 0

DE E 3.5 R Q A4.2 R

DE A4.2 =

Si el resultado de la combinacin 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 lgico en la entrada E 3.5 es "0", el temporizador se pone a cero (se borra). Las consultas U T u O T dan el estado lgico "1" cuando ha transcurrido el tiempo y el estado lgico "1" un est en la entrada E 3.5.

KT 9.2: El temporizador se carga con el valor indicado (9). La cifra a la derecha del punto indica la escala de tiempo: 0 = 0.01 s 1 = 0.1 s 2=1s 3 = 10 s

E 3.5 A 4.2 T

3 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo (continuacin)

Conexin retardada memorizada Representacin STEP 5 Tarea Lista de instrucciones


U E T4 T4 E 3.2 A 4.3 T4 A 4.3 E 3.3 L E KT 3.3 20.2 4 3.2 E 3.2 R U = T T A 4 4 4.3 R Q

Esquema de contactos
T4 T KT 20.2 TW S DU DE A 4.3

Esquema de func.
T4 E 3.3 KT 20.2 T TW S DU DE E 3.2 A 4.3 =

E 3.2 R

E 3.3 S

E 3.3

20 s 0

SS T U E

Si el resultado de la combinacin es "1" y se trata del primer procesamiento, se arranca el temporizador. Si el resultado de la combinacin es "0", el temporizador permanece inalterado. Las consultas U T u O T dan el estado lgico "1" cuando el tiempo ha transcurrido. El estado lgico cambia a "0" si se ha rearmado el temporizador con la funcin RT.

E 3.3 A 4.3 T T

Desconexin retardada Representacin STEP 5 Tarea Lista de instrucciones


E 3.4 R 0 S 1 T5 T5 E 3.4 E KT

Esquema de contactos
T5 O KT 10.1 TW T DU DE A 4.4 R Q

Esquema de func.
T5 E 3.4 KT 10.1 O TW T DU DE R Q A 4.4 =

U L

3.4 10.1 5 5 4.4

E 3.4

SA T U T A

A 4.4

T5 A 4.4

Si el resultado de la combinacin cambia de "1" a "0" en la entrada de arranque, se arranca el temporizador. Este finaliza con el tiempo de duracin programado. Si el resultado de la combinacin es "1", el temporizador se pone a cero (se borra). Las consultas U T u O T dan el estado lgico "1" cuando corre el tiempo o bien si el resultado de la combinacin en la entrada es "1".

E 3.4 A 4.4 T T T

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 43

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de cmputo

Acitvar contador Representacin STEP 5 Tarea Lista de ins-trucciones


U E 4.1 KZ 150 R S ZE + ZA Dual 16 bit ZV U L S E Z E KZ Z 4.0 1 4.1 150 1 KZ 150 E 4.1 E 4.0 ZV ZR S ZW R DU DE Q E 4.1 KZ 150

Esquema de contactos

Esquema de func.
Z1 E 4.0 ZV ZR S ZW R DU DE Q

Z1

Si el resultado de la combinacin cambia de "0" a "1" en la entrada de arranque (E 4.1), el contador se carga con el valor indicado (150).

La marca necesaria para evaluar el flanco de la entrada de activacin (set) est incluida en la palabra de cmputo. DU y DE son salidas digitales del contador. En la salida DU se encuentra en cdigo dual el valor del contador, en la salida DE, en cdigo BCD.

Rearmar contador Representacin STEP 5 Tarea Lista de instrucciones


U ZR U R U = Dual 16 bit E Z E Z Z A 4.0 2 4.2 2 2 2.4

Esquema de contactos
Z2 ZR ZV S E 4.2 ZW R DU DE Q A 2.4

Esquema de func.
Z2 E 4.0 ZR ZV S ZW E 4.2 R DU DE Q A 2.4 =

E 4.0

E 4.2 R S ZE

=0 / A 2.4

ZA

Si el resultado de la combinacin es "1" (E 4.2), el contador se pone a cero (se rearma). Si el resultado de la combinacin es "0", el contador permanece inalterado.

3 - 44

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de cmputo (continuacin)

Contar hacia delante Representacin STEP 5 Tarea Lista de instrucciones


U ZV R S ZE E 4.1 + ZA Dual 16 bit E Z 4.1 1

Esquema de contactos
Z1 ZV ZR S ZW R DU DE Q

Esquema de func.
Z1 E 4.1 ZV ZR S ZW R DU DE Q

E 4.1

El valor del contador direccionado aumenta de 1 en 1, hasta llegar a un valor de cmputo mximo de 999. La funcin ZV se ejecuta solamente si el flanco de la combinacin programada antes de ZV es positivo (de "0" a "1"). Las marcas necesarias para evaluar los flancos de las entradas de cmputo estn incluidas en la palabra de cmputo. Mediante las dos marcas de flancos separadas para ZV y ZR se puede emplear un contador con dos entradas diferentes, una para la cuenta hacia adelante y otra para la cuenta hacia atrs.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 45

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de cmputo (continuacin)

Contar hacia atrs Representacin STEP 5 Tarea Lista de instrucciones


U E 4.0 1

Esquema de contactos
Z1 ZR

Esquema de func.
Z1 E 4.0 ZR ZV

E 4.0

ZR Z R S ZE E 4.0 ZA Dual 16 bit

ZV S ZW R DU DE Q

S ZW R

DU DE Q

El valor del contador direccionado disminuye de 1 en 1, hasta llegar al valor de cmputo mximo de 0. La funcin slo tiene efecto si el flanco de la combinacin programada antes de ZR es positivo (de "0" a "1"). Las marcas necesarias para evaluar los flancos de las entradas de cmputo estn incluidas en la palabra de cmputo. Mediante las dos marcas de flancos separadas para ZV y ZR se puede emplear un contador con dos entradas diferentes, una para la cuenta hacia adelante y otra para la cuenta hacia atrs.

3 - 46

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de comparacin

Comparacin de igualdad Representacin STEP 5 Tarea Lista de instrucciones


L L Z1 = = Z2 !=F = A 3.0 EB 20 EB 19 EB 20 EB 19 Z1 != Z2 F A 3.0 Q EB 20 EB 19 Z1 != Z2 F Q A 3.0

Esquema de contactos

Esquema de func.

EB 19

EB 20

A 3.0

El primer operando indicado es comparado con el operando siguiente, de acuerdo con la funcin de comparacin. La comparacin da un resultado de combinacin binario. VKE = "1": La comparacin se cumple si AKKU-1-L es igual a AKKU-2-L VKE = "0": La comparacin no se cumple si AKKU-1-L no es igual a AKKU-2-L Los indicadores ANZ 1 y ANZ 0 se activan como se describe en la lista de operaciones. AKKU-2-H y AKKU-1-H no participan en la operacin de comparacin de 16 bit de coma fija. En las comparaciones de coma fija de 32 bit (! = D) y en las comparaciones de coma flotante (! = G) de 32 bit, se comparan todos los contenidos de AKKU 1 y AKKU 2 (32 bit). En la comparacin se considera la representacin numrica de los operandos, es decir, los contenidos de AKKU-1-L y AKKU-2-L, en este caso, se interpretan como nmeros de coma fija.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 47

Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de comparacin (continuacin)

Comparacin de desigualdad Representacin STEP 5 Tarea Lista de instrucciones


EB 21 DW 3 EB 21 DW 3 Z1 >< Z2 F A 3.1 Q DW 3 EB 21 Z1 >< Z2 F Q A 3.1

Esquema de contactos

Esquema de func.

EB 21

DW 3

L L

Z1

Z2

>< F = A 3.1

A 3.1

El primer operando indicado es comparado con el operando siguiente de acuerdo con la funcin de comparacin. La comparacin da un resultado de combinacin binario. VKE = "1": La comparacin se cumple si AKKU-1-L no es igual a AKKU-2-L VKE = "0": La comparacin no se cumple si AKKU-1-L es igual a AKKU-2-L Los indicadores ANZ 1 y ANZ 0 se activan de acuerdo con lo descrito al principio del captulo 3.5. AKKU-2-H y AKKU-1-H no participan en la operacin de comparacin de 16 bit de coma fija. En las comparaciones de coma fija (32 bit) y en las comparaciones de coma flotante, tambin participan AKKU-2-H y AKKU-1-H. Lo mismo vale para las comparaciones: "mayor que"; "mayor/igual a"; "menor que" y "menor/igual a" (vase lista de operaciones). En la comparacin se considera la representacin numrica de los operandos, es decir, los contenidos del AKKU-1-L y AKKU-2-L, en este caso, se interpretan como nmeros de coma fija.

3 - 48

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones complementarias

3.5.3 Operaciones complementarias

El conjunto de operaciones complementarias solamente puede utilizarse en el aparato de programacin para mdulos de funciones (FB y FX). El conjunto total de operaciones para mdulos de funciones se compone, por tanto, de las operaciones bsicas y de las operaciones complementarias. Las operaciones de sistema tambin forman parte de las operaciones complementarias: 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. Las operaciones de sistema solamente pueden ser programadas efectuando el correspondiente ajuste en la mscara de preajustes del aparato de programacin (a partir de S5-DOS, versin 2.0, no hace falta). Para mayor informacin sobre las "operaciones de sistema", vase captulo 9 "Accesos a la memoria".

Atencin Las operaciones de sistema solamente debern utilizarse con la mayor cautela y slo por programadores experimentados y con amplios conocimientos del sistema.

En los mdulos de funciones, las operaciones de sistema solamente se representan en modo AWL. Por consiguiente, los programas de los mdulos de funciones no pueden ser programados en modo grfico (KOP o FUP) . En lo siguiente se describen las operaciones complementarias. Adems se explican las posibilidades de combinacin de las instrucciones de sustitucin con los operandos actuales.

Operaciones de sistema

Las operaciones de sistema van marcadas con una primera columna de las tablas!

en la

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 49

Operaciones complementarias Combinaciones binarias

Tabla 3-11

Combinaciones binarias con operandos formales

Operacin U =

Operando

Funcin Funcin AND, consulta si el estado lgico de un operando formal es 1 Funcin AND, consulta si el estado lgico de un operando formal es 0 Funcin OR, consulta si el estado lgico de un operando formal es 1 Funcin OR, consulta si el estado lgico de un operando formal es 0 colocar el operando formal Como operandos actuales son vlidos: entradas, salidas, datos y marcas con direccin binaria (clase de parmetro: E, A; tipo de parmetro: BI), as como temporizadores y contadores (tipo de parmetro: T, Z).

UN

ON

Combinaciones digitales

Tabla 3-12

Combinaciones digitales

Operacin UW OW XOW

Operando

Funcin Combinacin AND del AKKU-1-L y del AKKU-2-L Combinacin OR del AKKU-1-L y del AKKU-2-L Combinacin OR exclusivo del AKKU-1-L y del AKKU-2-L

Los AKKUs 2, 3 y 4 no se modifican, pero s los indicadores ANZ 1 y ANZ 0 (vanse indicadores de resultado de palabras).

3 - 50

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones complementarias Operaciones de comprobacin de bit

Tabla 3-13

Operaciones de comprobacin de bit

Operacin P

Operando

Funcin Consulta si es "1" el estado lgico de

E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 D 0.0 a 255.15 T 0.0 a 255.15 Z 0.0 a 255.15 BA 0.0 a 255.15 BB 0.0 a 255.15 BS 0.0 a 255.15 BT 0.0 a 255.15 PN E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 D 0.0 a 255.15 T 0.0 a 255.15 Z 0.0 a 255.15 BA 0.0 a 255.15 BB 0.0 a 255.15 BS 0.0 a 255.15 BT 0.0 a 255.15

una entrada (PAE) una salida (PAA) una marca un bit de palabra de datos un bit de palabra de temporizador un bit de palabra de contador un bit en la zona BA un bit en la zona BB un bit en la zona BS un bit en la zona BT Consulta si es "0" el estado lgico de una entrada (PAE) una salida (PAA) una marca un bit de palabra de datos un bit de palabra de temporizador un bit de palabra de contador un bit en la zona BA un bit en la zona BB un bit en la zona BS un bit en la zona BT

Las operaciones de comprobacin de bit consultan el estado lgico del bit y lo indican a travs del VKE (resultado lgico).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 51

Operaciones complementarias Operaciones de memorizacin


Tabla 3-14 Operaciones de memorizacin con operandos formales

Operacin S =

Operando

Funcin Activacin (binaria) de un operando formal

RB

Rearme (binario) de un operando formal

RD

Rearme (digital) de un operando formal para temporizadores y contadores Asignacin del resultado de combinacin a un operando formal colocar el operando formal Como operandos actuales son vlidos: entradas, salidas y marcas M con direccin binaria (clase de parmetro: E, A; tipo de parmetro: BI).

Tabla 3-15

Operaciones de activacin y rearme

Operacin SU

Operando E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 D 0.0 a 255.15 T 0.0 a 255.15 Z 0.0 a 255.15 BA 0.0 a 255.15 BB 0.0 a 255.15 BS60.0 a 63.15 BT 0.0 a 255.15

Funcin activacin incondicional de una entrada (PAE) una salida (PAA) una marca un bit de palabra de datos un bit de palabra de temporizador un bit de palabra de contador un bit en la zona BA un bit en la zona BB un bit en la zona BS un bit en la zona BT rearme incondicional de una entrada (PAE) una salida (PAA) una marca un bit de palabra de datos un bit de palabra de temporizador un bit de palabra de contador un bit en la zona BA un bit en la zona BB un bit en la zona BS un bit en la zona BT

RU E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 D 0.0 a 255.15 T 0.0 a 255.15 Z 0.0 a 255.15 BA 0.0 a 255.15 BB 0.0 a 255.15 BS60.0 a 63.15 BT 0.0 a 255.15

3 - 52

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones complementarias Operaciones de tiempo y cmputo


Tabla 3-16 Operaciones de tiempo y cmputo con operandos formales

Operacin SI =

Operando

Funcin Arrancar un temporizador (operando formal) como impulso. El valor del temp. (clase de parmetro T) tiene que estar depositado en el AKKU-1-L . Arrancar un temporizador (operando formal) como conexin retardada. El valor del temporizador (clase de parmetro T) tiene que estar depositado en el AKKU-1-L. Arrancar un temporizador (operando formal) como impulso prolongado, con el valor del temporizador depositado en el AKKU-1-L/activar un contador (operando formal) con el valor de cmputo depositado en el AKKU-1-L; (clase de parmetro: T, Z). Arrancar un temporizador (operando formal) como conexin 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 parmetro: T, Z). Arrancar un temporizador (operando formal) como conexin retardada, con el valor depositado en el AKKU-1-L, o bien, activar la cuenta atrs de un contador (operando formal); (clase de parmetro: T, Z). Habilitar los operandos formales (temporizador/contador) para el nuevo arranque (vase "FR T", "FR Z"); (clase de parmetro: T, Z). colocar el operando formal Habilitar un temporizador para el nuevo arranque: La operacin solamente se ejecuta con flanco creciente del VKE (cambio de 0 a 1). El temporizador rearranca si durante la operacin de arranque, el VKE = 1 (vase esquema con diagrama de tiempo debajo de la tabla). Habilitar un contador para activarlo o contar: La operacin solamente se ejecuta con flanco creciente del VKE (cambio de 0 a 1). El contador rearranca si durante la operacin de cmputo el VKE = 1.

SE

SVZ =

SSV

SAR =

FR

FR

T 0 a 255

Z 0 a 255

VKE e n SI T VKE en FR T

Consulta con U T

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 53

Operaciones complementarias Ejemplos

Llamada al mdulo de funciones

Programa en el mdulo de funciones

Programa ejecutado

a) :SPA NOMB.:EJEM1 ANA : PEPE : JUAN : FB 203 E 10.3 T 17 A 18.4 :U :L :SSV :U := =ANA KT 010.2 =PEPE =PEPE =JUAN :U :L :SS :U := E KT T T A 10.3 010.2 17 17 18.4

b) :SPA NOMB.:EJEM2 EDU : LUIS : EVA : DORA : GEMA : FB 204 E E E Z M 10.5 10.6 10.7 15 58.3 :U :SSV :U :SAR :U :L :SVZ :UN := =EDU =DORA =LUIS =DORA =EVA KZ 100 =DORA =DORA =GEMA :U :ZV :U :ZR :U :L :S :UN := E Z E Z E KZ Z Z M 10.5 15 10.6 15 10.7 100 15 15 58.3

c) :SPA NOMB.:EJEM3 JOSE : TONI : PACO : INMA : FB 205 E 10.4 T 18 EW 20 M 100.7 :U :L :SVZ :U := =JOSE =PACO =TONI =TONI =INMA :U :L :SV :U := E EW T T M 10.4 20 18 18 100.7

3 - 54

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones complementarias Operaciones de carga y transferencia

Tabla 3-17

Operaciones de carga y transferencia con operandos formales

Operacin L =

Operando

Descripcin Carga de un operando formal: El valor del operando indicado como operando formal se carga en el acumulador (clase de parmetro: E, T, Z, A; tipo de parmetro: BY, W, D). Carga codificada de un operando formal: El valor del temporizador o contador indicado como operando formal se carga en cdigo BCD en el acumulador (tipo de parmetro: T, Z). Carga de la configuracin binaria de un operando formal: La configuracin binaria del operando formal se carga en el acumulador (clase de parmetro: D; tipo de parmetro: KF, KH, KM, KY, KC, KT, KZ). Carga de de la configuracin binaria de un operando formal: La configuracin binaria del operando formal se carga en el acumulador (clase de parmetro: D; tipo de parmetro: KG). Transferencia a un operando formal: El contenido del acumulador es transferido al operando indicado como operando formal (clase de parmetro: E, A; tipo de parmetro: BY, W; D). colocar el operando formal

LC

LW

LD

Como operandos actuales son vlidos los operandos correspondientes a las operaciones bsicas - a excepcin de las marcas S. En el caso de LW= se admiten datos en configuracin binaria (KM) o hexadecimal (KH), valores absolutos en notacin de 2 bytes (KY), caracteres (KC), nmeros de coma fija (KF), valor de tiempo (KT) y valor de cmputo (KZ). En el caso de LD= se admite como dato un nmero de coma flotante.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 55

Operaciones complementarias

Tabla 3-18

Operaciones de carga y transferencia con operandos especiales

Operacion L

Operando BA 0 a 255

Funcin Cargar una palabra de la zona "interfase" en el AKKU 1 (zona BA) Cargar una palabra de la zona ampliada "interfase" en el AKKU 1 (zona BB) Cargar una palabra de la zona "datos de sistema" en el AKKU 1 (zona BS) Cargar una palabra de la zona ampliada "datos de sistema" en el AKKU 1 (zona BT) Transferir el contenido del AKKU 1 a una palabra de la zona "interfase" (zona BA) Transferir el contenido del AKKU 1 a una palabra de la zona ampliada "interfase" (zona BB) Transferir el contenido del AKKU 1 a una palabra de la zona "datos del sistema" (zona BS) Transferir el contenido del AKKU 1 a una palabra de la zona ampliada "datos de sistema" (zona BT)

BB L BS

0 a 255 0 a 255

BT T BA

0 a 255 0 a 255

BB T BS

0 a 255 60 a 63

BT

0 a 255

A diferencia de las zonas BA, BB y BT, el usuario slo puede utilizar de la zona BS las palabras BS 60 a BS 63 para fines propios. Observar al respecto el captulo 8.3.4 "Zona BS/BT". La zona BT puede ser utilizada en toda su longitud (BT 0 a BT 255), siempre y cuando no se utilicen mdulos de funciones estndar.

3 - 56

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones complementarias Operaciones aritmticas

Tabla 3-19

Operaciones aritmticas

Operacin ENT

Operando

Funcin 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 permanecen inalterados, el contenido anterior del AKKUs 4 se pierde.

Ejemplo

Ha de ser calculada la siguiente fraccin: (30 + 3 * 4) / 6 = 7

AKKU 1 Ocupacin prefijada de los acumuladores antes de la c a d e n a d e o p e r. a r i t m t i c a s L KF +30 L KF +3 ENT L KF +4 x F + F L KF +6 : F a

AKKU 2 b

AKKU 3 c

AKKU 4 d

30 3 3 4 12 42 6 7

a 30 30 3 30 c 42 c

c c 30 30 c c c c

d d c c c c c c

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 57

Operaciones complementarias

Tabla 3-20

Operaciones aritmticas complementarias

Operacin S ADD

Operando BF -128 a +127

Funcin Sumar una constante en byte (coma fija) al AKKU-1-L (con expansin del signo)/los indicadores en ANZ 0, ANZ 1, OVFL y OVFLS no se modifican! AKKU-1-H y los AKKUs 2 a 4 permanecen inalterados. Sumar una constante de coma fija (palabra) al AKKU-1-L/ los indicadores en ANZ 0, ANZ 1, OVFL y OVFLS no se modifican! - AKKU-1-H y los AKKUs 2 a 4 permanecen inalterados. Sumar una constante de coma fija de palabra doble al AKKU 1/ los indicadores en ANZ 0, ANZ 1, OVFL y OVFLS no se modifican! los AKKUs 2 a 4 permanecen inalterados. Sumar dos constantes de coma fija de palabra doble (AKKU 2 + AKKU 1)/el resultado es evaluable a travs de ANZ 0/ANZ 1. 2) Restar dos constantes de coma fija de palabra doble (AKKU 2 - AKKU 1)/el resultado es evaluable a travs de ANZ 0/ANZ 1. 2) Intercambiar los contenidos de AKKU 1 y AKKU 2

S ADD

KF

-32 768 a +32 767

S ADD 1)

DH

0000 0000 a FFFF FFFF

S +D 1)

S -D 1)

S TAK
1) 2)

La programacin depender del tipo de aparato de programacin utilizado y de la versin del software de PG. Modificaciones del AKKU 2 y del AKKU 3: vase captulo 3.5.1 "Operaciones bsicas/operaciones aritmticas".

3 - 58

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin

3.5.4 Operaciones de organizacin

Al tipo de operaciones de organizacin tambin pertenecen las operaciones de sistema. Atencin Las operaciones de sistema solamente deben ser utilizadas con la mayor cautela posible y slo por programadores experimentados y con profundos conocimientos del sistema.

Las operaciones de sistema estn marcadas con S columna de cada tabla!

en la primera

Operaciones de salto

El destino de los saltos condicionales e incondicionales se indica de forma simblica (mximo 4 carcteres, comenzando por una letra). El parmetro simblico de la instruccin de salto es idntico a la direccin simblica de la instruccin a la que se salta. A la hora de programar hay que tener en cuenta, que la distancia absoluta de salto no abarque ms de 127 palabras y que una instruccin STEP 5 puede abarcar ms de una palabra. Los saltos slo deben ejecutarse dentro de un mdulo; no est permitido saltar fuera de un "segmento" ("segmento" = elemento de estructuracin de PB, SB, FB, FX y OB, vase el manual del aparato de programacin).

Nota La instruccin de salto y el destino del salto (direccin simblica) tienen que encontrarse dentro de un mismo segmento. El nombre de una direccin simblica solamente puede ser otorgado una vez por segmento. Excepcin: esto no vale para el salto SPR, en el que se indica una distancia de salto absoluta.

Tabla 3-21

Operaciones de salto

Operacin SPA =

Operando adr ( adr =direccin simblica con un mximo de 4 caracteres)

Funcin Salto incondicional: El salto se efecta independientemente de condiciones. Salto condicional: El salto condicional se efecta, si el VKE = 1. Si VKE = 0, no se ejecuta la instruccin y el resultado de la combinacin se pone a VKE = 1. Salto en caso de resultado 0 : El salto solamente se efecta, si ANZ 1 = 0 y ANZ 0 = 0. El VKE no se modifica.

SPB

SPZ

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 59

Operaciones de organizacin

Operacin SPN =

Operando adr (adr = direccin simblica con un mximo de 4 caracteres)

Funcin Salto en caso de resultado 0 : El salto solamente se efecta si ANZ 1 ANZ 0. El resultado de la combinacin no se modifica. Salto en caso de resultado > 0 : El salto solamente se efecta si ANZ 1 = 1 y ANZ 0 = 0. El resultado de la combinacin no se modifica. Salto en caso de resultado < 0: El salto solamente se efecta si ANZ 1 = 0 y ANZ 0 = 1. El resultado de la combinacin no se modifica. Salto en caso de desbordamiento (overflow): El salto se efecta si el indicador OVFL = 1. En caso de no haber desbordamiento (OVFL = 0), no se efecta el salto. El resultado de la combinacin no se modifica. Se produce un desbordamiento cuando en una determinada representacin numrica se supera el campo de valores admisible, debido a una operacin aritmtica. Salto si el indicador OVFLS (overflow almacenante) est activado: El salto se efecta si el indicador OVFLS = 1. Si no hay desbordamiento (OVFLS = 0), no se efecta el salto. El resultado de la combinacin no se modifica. Se produce un desbordamiento, cuando en una determinada representacin numrica se supera el campo de valores admisible en el transcurso de varias operaciones aritmticas. Salto relativo arbitrario dentro de la memoria de usuario o dentro de un mdulo de funciones (por ejemplo para pasar a otro segmento). La operacin se efecta siempre, independientemente de condiciones. Como operando hay que indicar la diferencia de direcciones "destino del salto - operacin actual" (cantidad de palabras). Se efecta un salto a una direccin mayor que la actual (operando positivo) o a una direccin menor (operando negativo).

Tabla 3-21 (continuacin):

SPP

SPM =

SPO

SPS

S SPR

-32 768 a +32 767

Cuidado En caso de utilizar incorrectamente la operacin SPR, pueden producirse estados no definidos en el aparato! Por ello, la operacin SPR solamente debe ser utilizada por programadores experimentados y con buenos conocimientos del sistema.

3 - 60

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin Operaciones de desplazamiento

Tabla 3-22

Operaciones de desplazamiento

Operacin SLW

Operando 0 a 15

Funcin (operacin con AKKU 1) Desplazar hacia la izquierda (las posiciones liberadas a la derecha se rellenan con ceros) Desplazar hacia la derecha (las posiciones liberadas a la izquierda se rellenan con ceros) Desplazar una palabra doble hacia la izquierda (las posiciones liberadas a la derecha se rellenan con ceros) Desplazar con signo hacia la derecha (las posiciones liberadas a la izquierda se rellenan con el bit 15) Desplazar una palabra doble con signo hacia la derecha ( las posiciones liberadas a la izquierda se rellenan con el bit 31) Rotar hacia la izquierda Rotar hacia la derecha

SRW

0 a 15

SLD

0 a 32

SVW

0 a 15

SVD

0 a 32

RLD RRD

0 a 32 0 a 32

En las funciones de desplazamiento solamente participa el AKKU 1 en la ejecucin. La parte de parmetros de estas operaciones indica las posiciones en que se desplaza o rota el contenido del acumulador. En el caso de SLW, SRW y SVW, solamente participa la palabra baja en la operacin de desplazamiento, en el caso de SLD, SVD, RLD y RRD participa todo el contenido del AKKU 1 (32 bit). Las funciones de desplazamiento se ejecutan independientemente de condiciones. El valor del ltimo bit que ha sido desplazado hacia el exterior puede ser consultado por medio de ANZ 1/ANZ 0 con operaciones de salto:

Desplazar: ltimo bit desplazado 0 1

ANZ 1

ANZ 0

Operacin de salto SPZ= SPN= SPP=

0 1

0 0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 61

Operaciones de organizacin Ejemplos


1. El contenido de la palabra de datos DW 52 ha de ser ledo, desplazado 4 bits a la izquierda y depositado en la palabra de datos DW 53. Programa STEP 5: :L DW 52 :SLW 4 :T DW 53 Contenido de las palabras de datos: KH = 14AF KH = 4AF0

2. La palabra doble de entrada ED 0 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 dems sean ocupados por valores definidos (0 H, o bien, 0F H). Programa STEP 5: Contenido del AKKU 1 (hexadecimal) AKKU-1-H: :L ED 0 :SLW 4 :SRW 4 :SLD 4 :SVW 4 :SVD 4 :RLD 4 :RRD 4 2348 2348 2348 3480 3480 0348 3480 0348 AKKU-1-L: ABCD BCD0 0BCD BCD0 FBCD 0FBC FBC0 0FBC

3. Aplicacin: multiplicacin por segunda potencia, por ejemplo, valor nuevo = valor antiguo x 8 :L MW 10 :SLW 3 :T MW 10

Atencin: no sobrepasar el lmite


positivo del campo de valores!

4. Aplicacin: divisin entre la segunda potencia, por ejemplo, valor nuevo = valor antiguo : 4 :A DB 5 :L DW 0 :SRW 2 :T DW 0

3 - 62

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin Operaciones de conversin

Tabla 3-23

Operaciones de conversin

Operacin KEW KZW KZD DEF DUF DED DUD FDG

Funcin Generacin del complemento de 1 del AKKU-1-L (16 bit) Generacin del complemento de 2 del AKKU-1-L (16 bit) Generacin del complemento de 2 del AKKU 1 (32 bit) Conversin de coma fija (16 bit) de BCD a dual Conversin de coma fija (16 bit) de dual a BCD Conversin de palabra doble (32 bit) de BCD a dual Conversin de palabra doble (32 bit) de dual a BCD Conversin de un nmero de coma fija (32 bit) en un nmero de coma flotante (32 bit) Conversin de un nmero de coma flotante en un nmero de coma fija (32 bit)

GFD

DEF

El valor existente en AKKU-1-L (bit 0 a bit 15) se interpreta como nmero en cdigo BCD. Despus de la conversin, en el AKKU-1-L se encuentra un nmero de coma fija de 16 bit.

DUF

El valor existente en AKKU-1-L (bit 0 a bit 15) se interpreta como nmero de coma fija de 16 bit. Despus de la conversin, en el AKKU-1-L se encuentra un nmero en cdigo BCD.

15 14 S 2 15 SSSS S (signo):
14

0 .... DUF 10 0 = positivo 1 = negativo


2

...........20 DEF 10
1

0 10
0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 63

Operaciones de organizacin DED

El valor existente en AKKU 1 (bit 0 a bit 31) se interpreta como nmero en cdigo BCD. Despus de la conversin, en el AKKU 1 se encuentra un nmero de coma fija de 32 bit. El valor existente en AKKU 1 (bit 0 a bit 31) se interpreta como nmero de coma fija de 32 bit. Despus de la conversin, en el AKKU 1 se encuentra un nmero en cdigo BCD.

DUD

31 30 S 2
30

0 .... DUD DED 0 10


4

.....20

31 SSSS S (signo): 10
6

10

10

10

10

10

0 = positivo 1 = negativo

FDG

El valor existente en AKKU 1 (bit 0 a bit 31) se interpreta como nmero de coma fija de 32 bit. Despus de la conversin, en el AKKU 1 se encuentra un nmero de coma flotante (exponente y mantisa). El valor existente en AKKU 1 (bit 0 a bit 31) se interpreta como nmero de coma flotante. Despus de la conversin, en el AKKU 1 se encuentra un nmero de coma fija de 32 bit.

GFD

31 30 S 2
30

0 .... FDG GFD 0


-1

.....20

31 30 ...
6

... 24 23
0

S 2 ..............2 Exponente

S 2

..... Mantisa

..... 2

-23

La conversin se efecta 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 posicin. Al final de la multiplicacin quedan restos de la mantisa original a la derecha de la coma decimal imaginaria. Estos bits son cortados quedanto un resultado de nmero entero.

3 - 64

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin

De este algoritmo de conversin resultan las siguiente clases de resultados: Los nmeros de coma flotante 0 -1 dan el siguiente nmero entero menor. Los nmeros de coma flotante < 0 y > -1 dan el valor 0.

Ejemplos de conversin
Nmero de coma flotante Nmero de coma fija de 32 bits

GFD
+5,7 -2,3

-0,6 +0,9

5 -3

0 0

Ejemplos de KEW, KZW


1. El contenido de la palabra de datos 64 ha de ser invertido bit por bit y depositado en la palabra de datos 78. Programa STEP 5: Ocupacin de las palabras de datos: KM = 0011111001011011 KM = 1100000110100100

:L DW 64 :KEW :T DW 78

2. El contenido de la palabra de datos 207 se ha de interpretar como nmero de coma fija y ha de almacenarse con el signo invertido en la palabra de datos 51. Programa STEP 5: Ocupacin de las palabras de datos: KF = +51 KF = -51

:L DW 207 :KZW :T DW 51

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 65

Operaciones de organizacin Decrementar/ incrementar

Tabla 3-24

Operacin de decremento/incremento

Operacin D

Operando 1 a 255

Funcin Decrementar el byte bajo (bits 0 a 7) del AKKU-1-L en el valor del operando 1)

1 a 255

Incrementar el byte bajo (bits 0 a 7) del AKKU-1-L en el valor del operando 1)

1)

El contenido del byte bajo del AKKU-1-L se decrementa o incrementa sin transporte en el valor del nmero indicado como operando. La operacin se ejecuta independientemente de condiciones.

Ejemplo
Programa STEP 5: Ocupacin de las palabras de datos: KH = 1010 KH = 1020 KH = 10FF

:L DW 7 :I 16 :T DW 8 :D 33 :T DW 9

Operaciones de procesamiento

Tabla 3-25

Operaciones de procesamiento

Operacin B

Operando DW 0 a 255

Funcin Procesar palabra de datos: la siguiente operacin se combina y ejecuta con el parmetro indicado en la palabra de datos direccionada. Procesar palabra de marca: la siguiente operacin se combina y ejecuta con el parmetro indicado en la marca M direccionada. Procesar operando formal (clase de parmetro: B): slo pueden ser sustituidos A DB, SPA PB, SPA OB, SPA FB, SPA SB.

MW 0 a 254

B=

colocar el operando formal

3 - 66

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin

Operacin S BI

Operando

Funcin Procesamiento indirecto de un operando formal: ejecutar una operacin cuyo cdigo est almacenado en un operando formal. El nmero del operando formal a ejecutar se encuentra en el AKKU 1. Se ha de ejecutar una operacin que se encuentra almacenada en la zona de datos de sistema (BS) (datos de sistema libres: BS 60 a 63). En el caso de instrucciones de 2 palabras, hay que cargar la segunda palabra en BS n+1.

Tabla 3-25 (continuacin): 1)

BS

60 a 63 1)

1)

El valor que se encuentra en el dato de sistema o en el operando formal se interpreta como cdigo de una operacin STEP 5, la cual es ejecutada a continuacin.

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, FR T, R T, SA T, SE T, SI T, SS T, SV T, 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, L T, L Z, LC T, LC Z, SPA=, SPB=, SPZ=, SPN=, SPP=, SPM=, SPO=, SLW, SRW, D, I, SES, SEF, A DB, SPA.. , SPB.., E DB, EX DX, AX DX, BAB FX, BA FX.

El aparato de programacin no comprueba si las combinaciones son vlidas!

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 67

Operaciones de organizacin Ejemplos de operaciones de procesamiento B DW/B MW


Sustitucin 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 instruccin B DW/B MW y la operacin STEP 5 inmediatamente siguiente del conjunto de operaciones mencionado. "Sustituido" significa que el operando no viene dado de forma esttica durante la programacin, sino que se determina durante el procesamiento del programa STEP 5 en cuestin. El tipo de operando se selecciona durante la programacin del conjunto de operaciones vlido, p.ej. PB para la operacin "SPA PB nn". El valor del operando (nn en el ejemplo "SPA PB nn") ha de ser cargado antes de un acceso sustituido con B DW/B MW en una palabra de datos o de marcas M (palabra de parmetro).

1. Principio de sustitucin: :L :T :B :L KF MW MW EB +120 14 14 0

Cargar MW 14 con el valor "KF

+120"

antes de ejecutar la operacin "L EB" se sustituye el valor de operando 0 por el valor 120; ejecucin: L EB 120

2. Palabra de datos como registro de ndices: Los contenidos de las palabras de datos DW 20 a DW 100 deben ponerse a 0. El registro de ndices para el parmetro de las palabras de datos es DW 1. :L :T :L :B :T :L :L KF :+F :T :L :<=F :SPB ... KF DW KF DW DW DW +1 +20 1 +0 1 0 1 Alimentacin del registro de ndices Rearme

M001

Aumentar el registro de ndices

DW 1 KF +100 =M001 Salto, si el ndice se encuentra en la zona otro programa STEP 5

Contina en la pgina siguiente

3 - 68

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin

Ejemplo de sustitucin de operandos (continuacin):


3. Distribuidor de saltos para la tcnica de subprogramas: :B :SPA :SPA :SPA :SPA :SPA : . : . : . : . :BEA : . : . :BEA : . : . :BEA MW 5 =M001 =M002 =M003 =M004 =M005

+ Distancia de salto

Contenido palabra de marcas MW 5: Distancia de salto (mx. 127)

M001

M002

Ventaja: Todas las partes del programa se encuentran en un solo mdulo.

M003

4. Distribuidor de saltos para llamadas de mdulos: :B MW 10 :SPA PB 0 Contenido palabra de marcas MW 10: PB PB PB PB . . PB 0 1 2 3 N de mdulo x

Sustitucin 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 sustitucin, la configuracin de la palabra de marcas M o de datos (palabra de parmetro) depender del tipo de operando utilizado.

Palabra de parmetro para entradas y salidas

Bit n

15 irrelevante

11 10

7 0

dir. de bit de 0 a 7

direccin de byte de 0 a 127

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 69

Operaciones de organizacin

Palabra de parmetro para marcas M Bit n 15 irrelevante 11 10 8 7 direccin de byte de 0 a 255 0

dir. de bit de 0 a 7

Palabra de parmetro para marcas S

Bit n

15 14 12 11 0 dir. de bit de 0 a 7

0 direccin de byte de 0 a 4095

Palabra de parmetro para temporizadores y contadores

Bit n

15 irrelevante

7 nmero de temporizador o contador de 0 a 255

Mtodo de sustitucin con una operacin binaria

15

11 10 4

7 0 30

0 DW 27

B U

DW 27 E 0.0

U E

30

. 4

Instruccin ejecutada

3 - 70

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin Ejemplo de la operacin BI


En el mdulo de funciones FB 1 se ejecutan operaciones STEP 5 cuyos cdigos son transferidos como operandos formales MW 10, MW 12 y MW 14 por un mdulo que efecta la llamada. El mdulo que efecta la llamada deposita en la palabra de marcas MW 16 un nmero correlativo que indica cul de los cdigos de operacin debe ser ejecutado. El resultado de la operacin ejecutada se encuentra finalmente en AKKU 1 y se transfiere a la palabra de marcas MW 18.

FB 1
NOMB. :TEST BEZ BEZ BEZ :MW10 :MW12 :MW14 :L : MW 16 E/A/D/B/T/Z: D E/A/D/B/T/Z: D E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KM/KH/KY/KC/KF/KT/KZ/KG: KM/KH/KY/KC/KF/KT/KZ/KG: KH KH KH

N correlativo del operando formal con el cdigo de operacin deseado

:BI
:T :BE MW 16

Se ejecuta cdigo de operacin transferido


Resultado de AKKU 1

FB 2
: :L KF +1 :T MW 16 : :SPA =AUFR : AUFR : :SPA FB 1 NOMB. :TEST MW10 : KH 4A5A MW12 : KH xxxx MW14 : KH yyyy :T MW 18 :BE

N correlativo del operando formal con cdigo de operacin

Llamar FB TEST Cdigo de operacin "L EB 90", operando formal 1 Otro cdigo de operacin, operando formal 2 Otro cdigo de operacin, operando formal 3 AKKU 1 MW 18

Lista de operandos actuales en el FB 2 MW 10 MW 12 MW 14 4A5AH xxxxH yyyyH

Mtodo de ejecucin en el FB 1

MW 16

0001H :L MW 16

AKKU 1

0001H
(n correlativo del operando actual)

:L EB 90

:BI Operacin ejecutada a travs de "BI"

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 71

Operaciones de organizacin Operaciones de periferia

Tabla 3-26

Operaciones de periferia

Operacin AS

Operando

Funcin Bloquear procesamiento de alarmas de proceso (con EB 0) (no vale para interrupciones de sistema!) Desbloquear procesamiento de alarmas de proceso (con EB 0) (no vale para interrupciones de sistema!) Bloquear error de direccionamiento Desbloquear error de direccionamiento Bloquear la salida de instrucciones: las operaciones S A, R A, = A, T PY y T PW ya no influyen en la PAA Desbloquear las salidas La instruccin "Bloquear/desbloquear alarmas de proceso" puede utilizarse, por ejemplo, cuando en un procesamiento controlado por tiempo se desee bloquear el procesamiento controlado por alarmas de proceso. En la parte del programa que se encuentra entre las instrucciones AS y AF queda impedido el procesamiento controlado por alarmas de proceso. Obsrvese al respecto la funcin especial OB 122 "Bloquear alarmas", captulo 6.3.

AF

AFS AFF BAS

BAF

Otras operaciones

Tabla 3-27

Otras operaciones

Operacin S STS STW

Operando

Funcin Instruccin de parada que conduce directamente al STOP parcial. Instruccin de parada que conduce directamente al STOP total (slo puede abandonarse mediante CONEXION / DESCONEXION). Activar mscara de interrupciones (UAMW) (32 bit): antes de llamar la operacin debe cargarse la configuracin binaria para la mscara en el AKKU 1 (32 bit). Leer mscara de interrupciones (UAMW): la configuracin binaria de la mscara de interrupciones (32 bit) se carga en el AKKU 1.

SIM

LIM

3 - 72

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones de organizacin SIM/LIM Activar, leer mscara indicadora de interrupciones (UAMW)

La mscara indicadora de interrupciones "enmascara" interrupciones y alarmas en la palabra indicadora de interrupciones hasta el final del ciclo, es decir, todas las interrupciones y alarmas siguen en cola de espera, pero no interrumpen el programa en curso. Bit de la mscara indicadora de interrupciones = 0: interrupcin bloqueada . Bit de la mscara indicadora de interrupciones = 1: interrupcin desbloqueada. Significado de los bits en UAMW-H o AKKU-1-H:

15
INTX INTE INTF INTG WEFE WA PA

8 7
BULE PEU HALT ES AV

0
INTAS TAU DARY KZU

Significado de los bits en UAMW-L o AKKU-1-L: 15


KB KDB STS TRAF

8 7
SUF STUEB STUEU NAU ZA QVZ ADF PARE ZYK

0
STOP HOLD

Tabla 3-28

Significado de las abreviaturas en UAMW

Abreviatura Significado INTX INTE INTF INTG WEFE WA PA BULE PEU HALT ES AV INTAS TAU DARY KZU Palabra alta Bus S5/interrupcin de sistema A, B, C o D (dependiendo del puesto de conexin) Bus S5/interrupcin de sistema E Bus S5/interrupcin de sistema F Bus S5/interrupcin de sistema G Colisin de alarmas temporizadas Alarma temporizada Alarma de proceso Buslock Error Periferia no disponible Instruccin de parada del coordinador KOR Funcionamiento paso por paso Comparador de direcciones activado Interrupcin del procesador SPU Parada de ciclo del procesador SPU Ready permanente (acceso a memoria defectuosa) Desbordamiento del contador de parntesis

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 73

Operaciones de organizacin

Abreviatura Significado
Tabla3-28 (continuacin):

KB KDB STS TRAF SUF STUEB STUEU NAU ZA QVZ ADF PARE ZYK STOP HOLD

Palabra baja No es mdulo No es mdulo de datos Stop inmediato Error de transferencia/carga Error de sustitucin Desbordamiento de la pila BSTACK Desbordamiento de la pila USTACK Fallo de la tensin de red Alarma de tiempo (alarma de retardo, alarma temporizada controlada por reloj) Retardo en acuse de recibo Error de direccionamiento Error de paridad Error de tiempo de ciclo Selector en posicin STOP Solicitud DMA del procesador SPU

3 - 74

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones semforo

3.5.5 Operaciones semforo

Si dos o ms CPUs en modo multiprocesador, (vase captulo 10) de un autmata programable utilizan en comn zonas globales de la memoria (periferia, CPs, IPs), se corre el riesgo de que las CPUs sobreescriban datos unas a otras, o que lean valores intermedios que no son vlidos. Por ello, es necesario coordinar el acceso de las CPUs a las zonas comunes de la memoria. Las distintas CPUs pueden coordinarse mediante semforos, es decir, con las instrucciones SES y SEF: Por ejemplo, puede programarse la siguiente coordinacin de dos CPUs: solamente cuando se haya activado satisfactoriamente un semforo acordado (SES), cada una de las CPUs que intervienen en modo multiprocesador acceder a una zona comn de la memoria. Un semforo xx solamente puede ser activado por una sola CPU. Si la CPU no consigue activar el semforo, tampoco podr acceder a la zona de memoria. De la misma manera, la CPU no podr acceder nuevamente a la memoria tras haber desactivado el semforo (SEF).

SES/SEF activar/desactivar semforo

(no son operaciones de sistema)

Tabla 3-29

Activar/desactivar semforos

Operacin SES SEF

Operando 0 a 31 0 a 31

Funcin Activar un semforo Desactivar un semforo Evaluacin de los resultados mediante ANZ 0/ANZ 1

Nota Las operaciones SES xx y SEF xx tienen que ser programadas en todas las CPUs que deban acceder sincronizadamente a una zona comn de la memoria global. Los mdulos FB estndar, los mdulos de comunicacin y los mdulos para la comunicacin en multiprocesamiento gestionan internamente la coordinacin. Para utilizar estos mdulos no es necesario programar las funciones SES xx y SEF xx.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 75

Operaciones semforo Actuacin de SES/SEF

La operacin SES xx (activar semforo) ocupa para la CPU que est ejecutando las operaciones un determinado byte en el coordinador (a condicin de que ste no est ya ocupado por otra CPU). Mientras que la CPU est registrada all, las dems CPUs no pueden acceder a la zona de memoria protegida por el semforo (nmero 0 a 31). As, la zona queda bloqueada para todas las dems CPUs. Para que esta coordinacin funcione correctamente, todas las CPUs que tengan que acceder a la misma zona de memoria global tienen que utilizar el mismo semforo. La operacin SEF xx (desactivar semforo) rearma el byte del coordinador. De este modo, la zona protegida de la memoria puede volver a ser utilizada. El semforo solamente puede ser desactivado por la CPU que lo ha activado.

Aplicacin de SES/SEF

La figura 3-8 muestra el desarrollo esquemtico de accesos coordinados por un semforo.

INICIO

Activar semforo SES

Operaci n r e a liza d a c o n x ito ? S Acceso a la memoria g lo b a l p r o t e g id a por semforo

No

Desactivar semforo: SEF

Fin

Fig. 3-8

Coordinacin del acceso a la memoria global

3 - 76

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones semforo

Antes de activar o desactivar un semforo determinado, las instrucciones SES y SEF consultan el estado (= status) de este semforo. En este caso, los indicadores ANZ 0 y ANZ 1 se modifican de la manera siguiente:

ANZ 1 ANZ 0 0 0

Evaluacin SPZ

Significado El semforo ha sido activado por otra CPU y no puede ser activado/desactivado El semforo ha sido activado/ desactivado

SPN, SPP

Nota El proceso de consulta de un semforo determinado (= proceso de lectura) y el proceso de activacin o desactivacin de un semforo (= proceso de escritura) constituyen una unidad. Ninguna de las otras CPUs puede acceder durante estos procesos a este semforo!

En cuanto a la aplicacin de semforos, obsrvense los puntos siguientes: Un semforo es una dimensin global, es decir, el semforo nmero 16 figurar una sola vez en el sistema aunque se empleen, por ejemplo, tres CPUs. Las instrucciones SES y SEF han de ser utilizadas por todas las CPUs cuyo acceso a una zona comn de la memoria deba efectuarse de manera coordinada. Todas las CPUs que intervengan, deben utilizar el mismo modo de arranque. Cuando se efecta un NUEVO ARRANQUE se borran todos los semforos. Sin embargo, no se borran en caso de efectuar un rearranque manual o automtico. El ARRANQUE en modo multiprocesador ha de realizarse de manera sincronizada. Por este motivo no est permitido el modo "test" (comprobacin).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 77

Operaciones semforo Ejemplos de aplicacin de semforos

Tarea:
En un autmata programable S5-155 se han integrado cuatro CPUs que, a travs de una zona de memoria comn de la periferia Q (QW 6), transmiten avisos de estado a un aparato de avisos de estado. Cada aviso de estado debe ser transmitido durante 10 segundos y, slo entonces, podr ser sobreescrito por un nuevo aviso de la misma o de otra CPU. La utilizacin de la palabra de periferia QW 6 (periferia ampliada, no imagen de proceso) es controlada por medio de un semforo. Slo podr escribir su aviso en la QW 6 aquella CPU que haya podido ocupar para s esta zona activando satisfactoriamente el semforo asignado. El semforo queda activado por un tiempo de 10 segundos respectivamente (TIMER T10). Slo cuando haya transcurrido este tiempo, la CPU desactiva el semforo y, con ello, la zona ocupada, dejndola libre para otras CPUs. La QW 6 puede ser sobreescrita con un nuevo aviso. Si una CPU intenta activar el semforo, y ste ha sido ocupado previamente por otra CPU, en el prximo ciclo la CPU volver a intentar activar el semforo y transmitir su aviso.

Procesamiento:
El siguiente programa se puede ejecutar en las cuatro CPUs - con un aviso distinto respectivamente. Se cargan los siguientes mdulos:

FB 100: ACTIVAR SEMAFORO

FB 1: PROGRAMA PRINCIPAL

FB 10: AVISAR

FB 110: EMITIR AVISO

FB 101: REARMAR SEMAFORO


Se utilizan 5 marcas: M 10.0 = 1: M 10.1 = 1: M 10.2 = 1: M 10.3 = 1: M 10.4 = 1: Aviso solicitado o en procesamiento. Semforo activado satisfactoriamente. El temporizador ha arrancado. El aviso ha sido transmitido. El semforo ha sido rearmado.

Contina en la pgina siguiente

3 - 78

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones semforo

Ejemplo de aplicacin de semforos (continuacin):


FB 1
:U M 10.0 :SPB =M001 : :UN E 0.0 :BEB : :L KH 2222 :T MW 12 :UN M 10.0 :S M 10.0 : M001 :SPA FB10 NOMB. :AVISO : :BE

cuando no hay aviso activo

generar aviso y

activar marca "AVISO". llamar FB "AVISO"

FB 10
NOMB.:AVISO :UN M 10.1 :SPB FB 100 NOMB.:SEMACT : :U M 10.1 :UN M 10.2 :S M 10.2 :L KT010.2 :SV T 10 : :U M 10.2 :UN M 10.3 :SPB FB 110 NOMB.:SALAVISO : :U M 10.2 :UN M 10.4 :UN T 10 :SPB FB 101 NOMB.:SEMREARM : :UN M 10.4 :BEB : :L KH0000 :T MB10 :BE Si no hay semforo activado, llamar al FB "activar semforo (SEMACT)".

Si hay semforo activado y el temporizador no ha arrancado, arrancar temporizador.

Si el temporizador arranca y no se transfiere aviso, llamar FB "emitir aviso (SALAVISO)".

Si el temporizador ha arrancado, el semforo no est rearmado y el temporizador ha transcurrido, llamar FB "rearmar semforo (SEMREARM)".

Si el semforo est rearmado,

rearmar todas las marcas.

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

3 - 79

Operaciones semforo

Ejemplo de aplicacin de semforos (continuacin):

FB 100
NOMB. :SEMACT :SES :SPZ :UN :S M001 :BE 10 = M001 M 10.1 M 10.1 Activar el semforo n 10 Si el semforo ha sido activado con xito, activar marca "SEMAFORO ACTIVADO (SEMACT)"

FB 110
NOMB. : SALAVISO :L :T :UN :S :BE MW12 QW 6 M 10.3 M 10.3 Transmitir el aviso a la periferia Activar marca "EMITIR AVISO (SALAVISO)"

FB 101
NOMB. :SEMREARM :SEF :SPZ :UN :S M001 :BE 10 = M001 M 10.4 M 10.4 Desactivar semforo N 10

Activar marca "SEMAFORO REARMADO (SEMREARM)"

3 - 80

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estados operativos y niveles de procesamiento

Indice - Captulo 4
4.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.4 4.4.1 4.4.2 4.4.3 4.4.4 Niveles de procesamiento del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 4 Estado operativo STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 9 STOP PARCIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 9 STOP TOTAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 13 BORRADO TOTAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 14 Estado operativo ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 16 NUEVO ARRANQUE MANUAL y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . REARRANQUE MANUAL y AUTOMATICO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diferencias entre el NUEVO ARRANQUE y el REARRANQUE . . . . . . . . . . . . . . . . NUEVO ARRANQUE CON MEMORIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diferencias entre el NUEVO ARRANQUE y el NUEVO ARRANQUE CON MEMORIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interfaces con el usuario para el arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rearranque automtico ampliado con la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupciones durante el ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 17 4 - 18 4 - 21 4 - 22 4 - 23 4 - 24 4 - 27 4 - 28

Estado operativo RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 29 Procesamiento cclico del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determinacin del procesamiento controlado por tiempo y por alarma. . . . . . . . . . . . . Procesamiento controlado por tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procesamiento del programa controlado por alarma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 30 4 - 32 4 - 33 4 - 41

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4-1

Indice

4-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estados operativos y niveles de procesamiento

Este captulo da una visin de conjunto de los distintos estados operativos y niveles de procesamiento de programa de la CPU 948. Adems contiene informaciones detalladas acerca de los distintos modos de arranque y los consiguientes mdulos de organizacin, en los que se puede programar un programa especfico para los distintos modos de arranque. Tambin explica las diferencias entre los distintos niveles de procesamiento: "procesamiento cclico", "procesamiento controlado por tiempo" y "procesamiento controlado por alarma", as como los mdulos disponibles para el programa de usuario.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4-3

Niveles de procesamiento

4.1

Niveles de procesamiento
La figura 4-2 muestra esquemticamente los niveles de procesamiento de los distintos estados operativos. Las abreviaturas correspondientes a los niveles de error se describen en la pgina siguiente.

Estado

Niveles de procesamiento

Niveles de error

Preparacin de la comunicacin
ARRANQUE DE LA COMUNICACION

STOP PARCIAL

Procesamiento cclico de la comunicacin


COMUNICACION

ZYK SUF TRAF ADF QVZ PARE KB KDB FEDBX

ARRANQUE

NUEVO ARRANQUE REARRANQUE

ARRANQUE

SUF TRAF ADF QVZ PARE KB KDB FEDBX

Procesamiento controlado por tiempo


ALARMAS TEMPORIZADAS
WEFES/WEFEH ZYK SUF TRAF ADF QVZ PARE KB KDB FEDBX

RUN

Procesamiento controlado por alarmas


ALARMAS DE PROCESO/INTERRUP.

Procesamiento cclico
CICLO

Fig. 4-1

Niveles de procesamiento del programa

4-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Niveles de procesamiento

Tabla 4-1

Niveles de procesamiento

Nivel

Significado Niveles de error

Prioridad

WEFES/WEFEH ZYK SUF TRAF ADF QVZ PARE KB KDB FEDBX

Colisin de alarmas temporizadas Error de ciclo Error de sustitucin Error de transferencia/carga Error de direccionamiento Retardo en acuse de recibo Error de paridad Mdulo de cdigo llamado no existente Mdulo de datos llamado no existente Error al crear un mdulo de datos DB o DX Niveles de procesamiento en STOP PARCIAL

Todo tratamiento de error tiene prioridad superior. Cuando se produce un error se anida el nivel de error correspondiente.

ARRANQUE DE COMUNICACION COMUNICACION

Preparacin (arranque) de la comunicacin

Procesamiento cclico de la comunicacin Niveles de procesamiento en el ARRANQUE

NUEVO ARRANQUE REARRANQUE

Arranque definido del programa de usuario Continuacin del programa de usuario a partir del lugar de la interrupcin Niveles de procesamiento en RUN

ALARMAS TEMPORIZADAS ALARMAS DE PROCESO / INTERRUPCIONES CICLO


1)

Procesamiento controlado por tiempo Procesamiento controlado por alarma Procesamiento cclico

Prioridad creciente (preajuste)

1)

El preajuste puede ser modificado mediante parametrizacin del DX 0 (vase captulo 7).

Procesamiento por el programa de sistema

De cada nivel se encarga un programa de sistema especfico.

Pila de interrupciones (USTACK)

En caso de interrupcin, el programa de sistema genera por cada nivel un bloque de informacin en la pila USTACK, a fin de que, una vez haya tratado la interrupcin, pueda reemprender el procesamiento en el nivel que ha sido interrumpido.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4-5

Niveles de 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 continuacin el nivel de prioridad superior. El anidamiento tiene lugar en niveles de error: en otros niveles: fundamentalmente en lmites de instrucciones, en lmites de mdulos o de instrucciones (segn el ajuste del DX 0 - vase captulo 7)

Nota No se pueden anidar ms de 5 mdulos de organizacin de error. Cuando se activan simultneamente 5 niveles de error, entonces se produce un desbordamiento en la pila USTACK y la CPU pasa al STOP TOTAL.

El mdulo de organizacin o bien el grupo de mdulos de organizacin que son llamados por el sistema de programa tras producirse un suceso, tiene asignado un determinado nivel de procesamiento: si por ej., para procesar la alarma temporizada controlada por reloj, se llama al OB 9, entonces se activa el nivel de procesamiento ALARMAS TEMPORIZADAS. Cuando el programa de sistema llama a un mdulo de organizacin, la CPU ejecuta a continuacin las instrucciones STEP 5 que contiene el mdulo. En la pila USTACK se almacena el juego de registros y se genera un nuevo juego de registros (registros: AKKU 1 a 4, puntero de la pila de mdulos, registro de direcciones de mdulos, direccin inicial del mdulo de datos, longitud del mdulo de datos, contador de direcciones STEP 5, registro base de direcciones y las palabras indicadoras de interrupcin: UAMK y UALW). 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 mdulos anidados - la CPU reemprende el procesamiento del programa a partir del lugar en que fue interrumpido, a menos que se haya programado una parada dentro del OB.

4-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Niveles de procesamiento Subniveles

El nivel ALARMAS TEMPORIZADAS contiene otros subniveles, de los cuales cada uno tiene asignado un programa especfico (OB). Los subniveles del nivel ALARMAS TEMPORIZADAS tienen una escala de prioridades particular (vase tabla siguiente). Nivel ALARMAS TEMPORIZADAS Subnivel Alarma de retardo Alarma temporizada cclica, perodo ms breve ... ... Alarma temporizada cclica, perodo ms largo Alarma temporizada controlada por reloj Prioridad

Prioridad creciente (preajuste)

Ejemplos

Ejemplo:

"Procesamiento por el programa de sistema":


En el nivel de procesamiento CICLO el programa de sistema actualiza la imagen de proceso de las entradas y salidas, dispara (trigger) el tiempo de supervisin de ciclo y llama la administracin de la interfaz del PG (punto de control del sistema).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4-7

Niveles de procesamiento

Ejemplo:

"Pila de interrupciones":

Selector STOP

REARRANQUE

ADF

STOP
Profundidad 1

ADF

SUF
CICLO

ADF
Profundidad 2

SUF
ARRANQUE

SUF
Profundidad 3

CICLO
Profundidad 4

CICLO

USTACK = imagen de los


niveles interrumpidos

Fig. 4-2

Cambio de nivel y pila USTACK

Ejemplo:

"Interrupcin de un nivel bsico en caso de interrupcin en lmites de mdulos":


Durante el procesamiento de una alarma de proceso aparece una alarma temporizada. Puesto que la alarma temporizada tiene prioridad superior, se interrumpe el procesamiento del nivel ALARMA DE PROCESO en el prximo lmite de mdulo y se anida (intercala) el nivel ALARMA TEMPORIZADA. Si, adems, durante el procesamiento de la alarma temporizada aparece por ej. un error de direccionamiento, entonces se interrumpe el procesamiento de la alarma temporizada en el prximo lmite de instruccin para que el nivel ADF pueda ser anidado.

4-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo STOP

4.2

Estado operativo STOP


La CPU 948 detecta dos estados STOP diferentes, el STOP "total" y el STOP "parcial" (= comunicacin posible).

4.2.1 STOP PARCIAL

El estado operativo STOP PARCIAL se caracteriza por lo siguiente:

La CPU puede comunicarse: tras CONEXION, el programa de sistema llama una sola vez al mdulo de organizacin OB 38 (nivel: ARRANQUE DE COMUNICACION en STOP PARCIAL) y despus cclicamente al OB 39 (nivel COMUNICACION en STOP PARCIAL).

Inicializacin de la comunicacin (OB 38)

El programa de sistema llama al OB 38 como interfaz con el usuario a fin de inicializar la comunicacin. El OB 38 slo es llamado tras conectar la tensin (CONEXION). La llamada se ejecuta independientemente del modo de arranque (NUEVO ARRANQUE AUTOMATICO/REARRANQUE AUTOMATICO) que el usuario haya prefijado en el mdulo de datos DX 0.

Supervisin de la ejecucin del OB 38

El programa de sistema no supervisa si la ejecucin del OB 38 sobrepasa el tiempo establecido. Sin embargo, se puede interrumpir accionando el selector RUN-STOP a la posicin STOP. Cuando aparece un error en el OB 38, se interrumpe su procesamiento y se llama al OB 39, si ste existe.

Comunicacin cclica (OB 39)

Cuando tiene lugar una interrupcin del programa cclico que conduce al estado operativo STOP PARCIAL, se llama al OB 39 como interfaz con el usuario. Si al interrumpirse el programa cclico no ha finalizado el procesamiento de un mdulo de comunicacin, se puede volver a llamar el mismo mdulo o el mismo tipo de mdulo (por ej. SEND).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4-9

Estado operativo STOP Supervisin del tiempo de ciclo del OB 39

El programa de sistema supervisa si el OB 39 sobrepasa un tiempo mximo: si la ejecucin dura ms de 2,55 s (predefinido), el programa de sistema detecta un error de tiempo de ciclo; entonces llama al OB 26 de error y vuelve a procesar el OB 39 desde el principio. Si se repite el error de tiempo de ciclo y la profundidad de la pila USTACK es superior a 5, se produce un desbordamiento de la pila USTACK (reaccin: vase el prrafo siguiente). Cuando se produce un error en el OB 39 o en un mdulo llamado desde el OB 39 (por ej.: QVZ), el programa de sistema llama al mdulo de organizacin de error correspondiente. Una vez procesado, contina el procesamiento en el OB 39. Si el OB de error no existe, se procesa el OB 39 desde el principio (excepcin: no se produce reaccin alguna en caso de QVZ, KB y errores en el autotest). Si se producen ms errores y la profundidad de la pila USTACK es superior a 5, se produce un desbordamiento de la pila USTACK: El programa de sistema interrumpe el procesamiento del programa (no se vuelve a llamar al OB 39), y la CPU permanece en STOP PARCIAL.

Reaccin ante errores de ejecucin en el OB 39

Los datos no se rearman

Si ha tenido lugar un procesamiento cclico en RUN, al pasar al estado STOP no se modifican los valores de los contadores, temporizadores, marcas ni los de la imagen de proceso.

Reloj de tiempo real

El reloj de tiempo real contina funcionando. La actualizacin en la zona BS se efecta en intervalos de 10 ms.

Seal BASP

La seal BASP (bloqueo de salidas) est activada. Por consiguiente quedan bloqueadas todas las salidas digitales (excepcin: BASP no se activa en el modo "test" en modo multiprocesador y tampoco con la funcin del aparato de programacin "Forzado salidas" - vase captulo 10.1.8).

USTACK

Si se ha procesado un programa de usuario antes del estado STOP, en este estado se encontrar una informacin en la pila de interrupciones (USTACK), la cual indica la causa de la interrupcin.

Procesamiento de tiempos en el OB 38/39


.

Mientras se ejecuta el OB 38/39 se detiene el procesamiento de los temporizadores y contadores. En caso necesario, hay que procesar estos datos desde la zona de datos de sistema BS 96 a BS 99, o bien procesarlos con el OB 121 u OB 150.

4 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo STOP Llamada OB 38/OB 39

Las figuras 4-4 y 4-5 muestran cmo se efectan las llamadas al OB 38 y OB 39.

Situacin de partida: RUN DESCONEXION/CONEXION

Situacin de partida: STOP PARCIAL DESCONEXION/CONEXION

OB 38
Arranque de la comunicacin

OB 38
Arranque de la comunicacin

OB 39
Procesamiento nico de la comunicacin

OB 22
REARRANQUE AUTOMATICO

OB 39
Procesamiento cclico de la comunicacin

RUN
Fig. 4-3 Procesamiento cclico tras CONEXION

OB 1

Interrupcin por ej. por una instruccin STS

OB 39
Procesamiento cclico de la comunicacin

Fig. 4-4

Procesamiento del programa tras una interrupcin del ciclo

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 11

Estado operativo STOP Indicadores LED

El estado operativo STOP PARCIAL lo indican los siguientes LEDs, situados en la parte frontal del aparato central: LED RUN STOP SYSFAULT BASP Estado apagado encendido (luz permanente o parpadeo) apagado encendido (excepto en modo "test", en modo multiprocesador, o con la funcin del aparato de programacin "Forzado salidas")

El LED STOP sealiza en este caso las causas que han podido provocar el estado STOP actual:

El LED STOP luce de forma permanente

El STOP PARCIAL ha sido provocado: en modo monoprocesador: - por accionamiento del selector RUN-STOP de RUN a STOP, - mediante la funcin del aparato de programacin: "Forzado AG/ AG Stop", - por fallos del aparato (PEU), - tras un BORRADO TOTAL. en modo multiprocesador: - por accionamiento del selector RUN-STOP del KOR a la posicin STOP, - mediante un STOP de otra CPU debido a un fallo (las CPUs que no hayan provocado el fallo lucen permanentemente) o por medio del selector de STOP, - mediante la funcin del aparato de programacin: "Forzado AG/ AG Stop", - mediante la funcin del aparato de programacin: "Control elaboracin OFF " en otra CPU.

El LED STOP parpadea lentamente (aprox. 0,5 veces por segundo)

El STOP PARCIAL ha sido provocado: por una instruccin STP o STS en el programa de usuario, por manipulacin errnea (error DB 1/DX 0, eleccin de un modo de arranque no vlido etc.), desbordamiento de la pila BSTACK (STUEB) o desbordamiento del contador de parntesis (KZU), por error de programacin o del aparato; los siguientes LEDs indican adicionalmente la causa del error: - LED "ADF" - LED "QVZ" - LED "ZYK" mediante la funcin del aparato de programacin: "Control elaboracin OFF" en esta CPU.

4 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo STOP

Modo de abandonar el estado STOP PARCIAL El estado STOP PARCIAL se puede abandonar a) seleccionando otro modo de arranque (vase captulo 4.4), b) efectuando un BORRADO TOTAL seguido de un NUEVO ARRANQUE.

4.2.2 STOP TOTAL

Si el programa de sistema no puede garantizar un procesamiento correcto del programa, la CPU se pone en STOP TOTAL, de manera que quede garantizado un estado operativo seguro. Causas del STOP TOTAL: Instruccin de parada (STW) del programa de sistema Desbordamiento de la pila de interrupcin USTACK (STUEU) Retardo en acuse de recibo (QVZ) o error de paridad (PARE) en la memoria RAM/EPROM del sistema Error en el programa de sistema

Nota La CPU "est parada": el STOP TOTAL solamente se abandona mediante DESCONEXION/CONEXION de la tensin de red!

Indicadores LED

El estado STOP TOTAL lo indican los siguientes LEDs, situados en la parte frontal del aparato central: LED RUN STOP SYSFAULT BASP Estado apagado apagado encendido encendido

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 13

Estado operativo STOP

4.2.3 BORRADO TOTAL

Mediante un BORRADO TOTAL se borra toda la memoria de usuario y todas las zonas de operandos (marcas, imagenes de proceso etc.). Para poder ejecutar un BORRADO TOTAL hay que solicitarlo previamente. Cuando el LED STOP parpadea rpidamente significa que se ha solicitado un BORRADO TOTAL. Cada vez que se conecta la tensin de red, la CPU efecta una rutina de inicializacin. Si durante esta rutina se reconocen un fallo (por ej. por fallo de la corriente tampn estando la CPU desconectada (DESCONEXION), el programa de sistema solicitar un BORRADO TOTAL. La causa del fallo ha de ser eliminada (por ej. sustituyendo la batera) y despus es necesario efectuar un BORRADO TOTAL de la CPU. El BORRADO TOTAL se solicita asimismo cuando ocurre un error de CPU o de sistema. Este tipo de errores se detectan porque se vuelve a solicitar el BORRADO TOTAL despus de haberlo efectuado. Si sto ocurriera, rogamos dirigirse a la delegacin SIEMENS ms prxima.

Solicitar BORRADO TOTAL

Solicitud por parte del programa de sistema

Solicitud por parte del usuario

El BORRADO TOTAL se solicita de la manera siguiente (los elementos de mando estn situados en la placa frontal de la CPU fig. 4-1): Paso 1 Accin Accionar el selector RUN-STOP de RUN a STOP. Mantener el selector RESET-OVERALL RESET en la posicin OVERALL RESET ; accionar simultneamente el selector RUN-STOP de STOP a RUN y de nuevo a STOP. Resultado La CPU se encuentra en estado STOP. El LED STOP luce permanentemente. El BORRADO TOTAL ha sido solicitado. El LED STOP parpadea rpidamente.

Nota Si a pesar de haber solicitado el BORRADO TOTAL, se decide no efectuarlo, entonces es necesario ejecutar un NUEVO ARRANQUE MANUAL o un REARRANQUE MANUAL.

4 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo STOP Ejecutar un BORRADO TOTAL

Independientemente de quin haya solicitado el borrado total, es decir, sea el programa de sistema o el usuario, hay que ejecutar el BORRADO TOTAL como se explica a continuacin (situacin de partida: el LED STOP parpadea rpidamente):

Ejecutar un BORRADO TOTAL mediante los elementos de mando de la CPU


Accin Mantener el selector en posicin OVERALL RESET ; accionar simultneamente el selector RUN-STOP de STOP a RUN y de nuevo a STOP (vase fig. 4-1). Resultado Se ejecuta el BORRADO TOTAL. El LED STOP luce permanentemente.

Ejecutar un BORRADO TOTAL desde el PG


Accin Activar la funcin del aparato de programacin "Mdulos/ Borrar" Resultado Se ejecuta el BORRADO TOTAL. El LED STOP luce permanentemente.

Nota A diferencia de la CPU 946/947, la CPU 948 permite iniciar el BORRADO TOTAL con el aparato de programacin tambin desde el modo RUN. En este caso, la CPU pasa automticamente al estado STOP, efectundose despus el BORRADO TOTAL. Durante el BORRADO TOTAL todos los LEDs estn apagados, a excepcin de los LEDs INIT y BASP. En caso de haber efectuado un BORRADO TOTAL, slo se puede arrancar la CPU mediante un NUEVO ARRANQUE!

Cargar la Memory Card y llamar al OB 39

Una vez ejecutado el BORRADO TOTAL, se carga la Memory Card (siempre que est insertada) y despus se llama al OB 39.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 15

Estado operativo ARRANQUE

4.3

Estado operativo ARRANQUE


El estado operativo ARRANQUE se caracteriza por lo siguiente:

Cambio de estado Modos de arranque

El ARRANQUE es el paso del estado STOP al estado RUN. La CPU 948 dispone de los siguientes modos de arranque: - NUEVO ARRANQUE (manual o automtico), - REARRANQUE (manual o automtico). (El modo de arranque se puede seleccionar manualmente y parametrizando el DX 0)

NUEVO ARRANQUE

El programa de usuario cclico se procesa desde el principio. El programa de sistema llama al OB 20 como interfaz con el usuario.

REARRANQUE

El procesamiento del programa de usuario cclico contina en el lugar donde fue interrumpido. El programa de sistema llama como interfaz con el usuario: al OB 21 en caso de REARRANQUE MANUAL, al OB 22 en caso de REARRANQUE AUTOMATICO.

No se supervisa el tiempo de los OBs de arranque

No se supervisa el tiempo de ejecucin de los mdulos de organizacin de arranque. En los OBs de arranque se pueden llamar a otros mdulos. Sin embargo, evtense en cualquier caso los bucles sin fin!

Contadores, temporizadores, El tratamiento de los valores de los contadores, temporizadores, marcas e marcas, imgenes de proceso imgenes de proceso vara en funcin del modo de arranque (vase captulo 4.4.3).

BASP

La seal BASP (bloqueo de salidas) est activada. De este modo quedan bloqueadas todas las salidas digitales (excepcin: la seal BASP no se activa en el modo "test" en modo multiprocesador - vase captulo 10.1.8).

Alarmas

Las alarmas (interrupciones, alarmas de proceso, alarmas temporizadas) estn bloqueadas.

Arranque en modo multiprocesador

El captulo 10.1.7 contiene ms informacin respecto al "Comportamiento de arranque en modo multiprocesador".

4 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo ARRANQUE

4.3.1 NUEVO ARRANQUE MANUAL y AUTOMATICO

Cundo se puede efectuar un NUEVO ARRANQUE?

Siempre se puede efectuar un NUEVO ARRANQUE, a menos que el sistema haya solicitado un BORRADO TOTAL!

Cundo es necesario un NUEVO ARRANQUE?

Un NUEVO ARRANQUE ser necesario despus de: un BORRADO TOTAL, cargar la memoria de usuario con el programa de usuario estando la CPU en STOP, un desbordamiento de las pilas USTACK/BSTACK, abortar un NUEVO ARRANQUE (por DESCONEXION o por pasar el selector RUN-STOP a "STOP"), un STOP producido por la funcin de PG "Control elaboracin OFF".

NUEVO ARRANQUE MANUAL

Para efectuar un NUEVO ARRANQUE MANUAL: mediante los elementos de mando de la CPU: mantener el selector RESET-OVERALL RESET en la posicin RESET; accionar simultneamente el selector RUN-STOP de STOP a RUN (vase fig. 4-1). mediante el aparato de programacin: activar la funcin del aparato de programacin "Forzado AG/ AG Start"/NUEVO ARRANQUE.

NUEVO ARRANQUE AUTOMATICO

Un NUEVO ARRANQUE AUTOMATICO se produce: en caso de CONEXION, si en el mdulo de datos DX 0 se ha sustituido el preajuste "REARRANQUE AUTOMATICO tras CONEXION" por "NUEVO ARRANQUE AUTOMATICO tras CONEXION", los selectores de todas las CPUs y del coordinador se encuentran en RUN y la CPU no estaba en STOP cuando se desconect la tensin de red. Nota Si la CPU estaba en estado STOP al efectuarse la DESCONEXION (por ej. tras un error de direccionamiento), no est permitido efectuar un NUEVO ARRANQUE AUTOMATICO. El estado operativo STOP slo podr ser abandonado mediante un NUEVO ARRANQUE MANUAL.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 17

Estado operativo ARRANQUE Interrupcin del NUEVO ARRANQUE

Un NUEVO ARRANQUE slo puede ser interrumpido poniendo en "STOP" el selector RUN-STOP o mediante DESCONEXION. En caso de interrumpir un NUEVO ARRANQUE, hay que repetirlo!

4.3.2 REARRANQUE MANUAL y AUTOMATICO

Cundo se puede efectuar un REARRANQUE?

Solamente es posible efectuar un REARRANQUE MANUAL si la causa de la parada es una de las siguientes: Accionamiento del selector RUN-STOP de "RUN" a "STOP". STOP en modo multiprocesador debida a la seal HALT del coordinador. DESCONEXION con el correspondiente ajuste en el DX 0. Funcin del aparato de programacin "Forzado AG/AG Stop".

Nota Si el STOP ha sido provocado por otra causa, no es posible efectuar un rearranque. El programa de sistema slo permite un NUEVO ARRANQUE.

Un REARRANQUE MANUAL o AUTOMATICO slo es admisible cuando el programa de usuario no ha sido modificado durante el estado STOP y cuando no se requiera un NUEVO ARRANQUE por otros motivos (vase captulo 4.4.1)

4 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo ARRANQUE REARRANQUE MANUAL

Para efectuar un REARRANQUE MANUAL: mediante los elementos de mando de la CPU: situacin de partida: el selector RESET- OVERALL RESET se encuentra en posicin intermedia Accionar el selector RUN-STOP de STOP a RUN (vase fig. 4-1). mediante el aparato de programacin: activar la funcin del aparato de programacin "Forzado AG/ AG Start"/REARRANQUE

REARRANQUE AUTOMATICO

Un REARRANQUE AUTOMATICO se produce: en caso de CONEXION, cuando en el mdulo de datos DX 0 se ha definido el preajuste "REARRANQUE AUTOMATICO tras CONEXION" o cuando no existe el DX 0, los selectores de todas las CPUs y del coordinador siguen en RUN y la CPU no estaba en STOP durante la DESCONEXION, no han surgido ms errores durante la inicializacin y antes de la DESCONEXION, no es necesario efectuar un NUEVO ARRANQUE por los motivos mencionados.

Tras un fallo de la tensin de red/DESCONEXION en RUN seguido de un restablecimiento de la tensin/CONEXION, la CPU ejecuta una rutina de inicializacin y despus un REARRANQUE AUTOMATICO. En caso de un fallo de la tensin de red en un aparato de ampliacin (seal PEU), la CPU pasa a STOP y permanece parada hasta que se desactiva la seal PEU. Despus efecta un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 19

Estado operativo ARRANQUE

Nota Durante el REARRANQUE hay que tener en cuenta el siguiente caso particular: La CPU est procesando un OB de error (por ejemplo, a causa de un ADF) y se para debido a una DESCONEXION, HALT, selector en STOP o bien PG-STP. A continuacin se ejecuta un REARRANQUE MANUAL o AUTOMATICO. Reaccin de la CPU: Antes de llamar al OB 21/22 se lleva a cabo el procesamiento del OB de error interrumpido. Si el OB de error no encuentra ninguna operacin de parada, una vez que se ha procesado el resto del OB de error, se efecta un REARRANQUE. Si, a continuacin, el OB de error para la CPU (estado STOP), slo se podr efectuar un NUEVO ARRANQUE.

Interrupcin del REARRANQUE

Cuando se est ejecutando un REARRANQUE, ste slo puede ser interrumpido accionando el selector RUN-STOP a "STOP" o bien desconectando la tensin de red. Tras una interrupcin de este tipo es posible efectuar un NUEVO ARRANQUE o un REARRANQUE.

4 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo ARRANQUE

4.3.3 Diferencias entre el NUEVO ARRANQUE y el REARRANQUE

La tabla siguiente muestra una comparativa de los modos de arranque NUEVO ARRANQUE y REARRANQUE.

Tabla 4-2

Caractersticas del NUEVO ARRANQUE y REARRANQUE

NUEVO ARRANQUE Activacin manual: Accionar el selector RUN-STOP de "STOP" a "RUN" y el selector RESET OVERALL-RESET a "RESET" o activar funcin de PG: "Forzado AG/ AG Start" (NUEVO ARRANQUE) Conectar la tensin de red si en DX 0 est registrado "NUEVO ARRANQUE AUTOMATICO tras CONEXION" Crear lista de direcc. de mdulos en DB 0

REARRANQUE Accionar el selector RUN-STOP de "STOP" a "RUN" o activar funcin de PG "Forzado AG/ AG Start" (REARRANQUE) Conectar la tensin de red si en el DX 0 est registrado el preajuste, o bien si no existe el DX 0 Conservar lista de direcc. de mdulos en DB 0 Conservar imagen de proceso de salidas Conservar imagen de proceso de salidas

Activacin automtica:

Operaciones efectuadas por el programa de sistema:

Borrar imagen de proceso de las entradas Borrar imagen de proceso de las salidas

Borrar marcas, temporizadores y contadores Conservar marcas, temporizadores y contadores Borrar periferia digital/analgica (2*128 byte respectivamente) Borrar marcas de acoplamiento (256 byte) Borrar alarmas de retardo y peticiones de tiempo Borrar USTACK/BSTACK Borrar semforos Conservar marcas de acoplamiento Borrar alarmas de retardo, conservar peticiones de tiempo Conservar USTACK/BSTACK Conservar semforos

Si DB 1 existe: no hay transferencia desde el DB 1 transferir las E/S digitales y las marcas de acoplamiento ah registradas a las listas PA Si DB 1 no existe: Transferir las tarjetas realmente existentes (slo E/S digitales) a las listas PA (se ignoran las marcas de acoplamiento)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 21

Estado operativo ARRANQUE

NUEVO ARRANQUE
Tabla 4-3 (continuacin):

REARRANQUE

Operaciones efectuadas por el programa de sistema (cont.):

Ajustar los parmetros de sistema como indicado en el DX 0 Llamar a la interfaz con el usuario OB 20 (si existe) 1) Sincronizar el arranque en modo multiprocesador Pasar al ciclo:

No se evala el DX 0 Llamar a la interfaz con el usuario 1) OB 21/22 (si existe) Sincronizar el arranque en modo multiprocesador Pasar al ciclo: - BASP queda activada - Borrar imagen de proceso de salidas - Procesar el ciclo restante - Desactivar BASP - Llamar a OB 1

- Desactivar BASP - Llamar a OB 1


1)

Tras CONEXION, las interfaces con el usuario se llaman durante el arranque en el orden siguiente: OB 38, OB 39, OB 20/OB 22.

4.3.4 NUEVO ARRANQUE CON MEMORIA

Si el parmetro "Nuevo arranque con memoria" est registrado en el mdulo de datos cargado DX 0, el programa de sistema ejecuta en lugar de un REARRANQUE un NUEVO ARRANQUE CON MEMORIA . En el captulo siguiente se explica la diferencia entre ste y el NUEVO ARRANQUE "normal".

4 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo ARRANQUE

4.3.5 Diferencias entre el NUEVO ARRANQUE y el NUEVO ARRANQUE CON MEMORIA

La tabla siguiente muestra las diferencias entre el NUEVO ARRANQUE y el NUEVO ARRANQUE CON MEMORIA.

Tabla 4-3

Diferencias entre NUEVO ARRANQUE y NUEVO ARRANQUE CON MEMORIA

NUEVO ARRANQUE Activacin manual: Accionar el selector RUN-STOP de "STOP" a "RUN" y el selector RESETOVERALL RESET a "RESET" o activar funcin de PG ""Forzado AG/ AG Start"" (NUEVO ARRANQUE) Conectar la tensin de red si en el DX 0 est registrado "NUEVO ARRANQUE AUTOMATICO tras CONEXION" Crear lista de direcciones de mdulos en el DB 0 Borrar imagen de proceso de las entradas Borrar imagen de proceso de las salidas Borrar alarmas de retardo y peticiones de tiempo

NUEVO ARRANQUE CON MEMORIA Accionar el selector RUN-STOP de "STOP" a "RUN" o activar funcin de PG "Forzado AG/ AG Start" (REARRANQUE) Conectar la tensin de red si en el DX 0 est registrado "REARRANQUE AUTOMATICO tras CONEXION" y "NUEVO ARRANQUE CON MEMORIA" Conservar lista de direcciones de mdulos en el DB 0 Conservar imagen de proceso de entradas Conservar imagen de proceso de salidas Borrar alarmas de retardo y peticiones de tiempo

Activacin automtica:

Operaciones efectuadas por el programa de sistema:

Borrar marcas, temporizadores y contadores Conservar marcas, temporizadores y contadores Borrar periferia digital/analgica (2*128 byte respectivamente) Borrar marcas de acoplamiento (256 byte) Borrar pilas USTACK/BSTACK Borrar semforos Borrar periferia digital (128 byte) Borrar periferia analgica (128 byte) Conservar marcas de acoplamiento Borrar pilas USTACK/BSTACK Conservar semforos

Si DB 1 existe: No hay trasferencia desde el DB 1 transferir las E/S digitales y las marcas de acoplamiento ah registradas a las listas PA Si DB 1 no existe: transferir las tarjetas realmente existentes (slo E/S digitales) a las listas PA (se ignoran las marcas de acoplamiento)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 23

Estado operativo ARRANQUE

NUEVO ARRANQUE Operaciones Tabla 4-4 (continuacin): efectuadas por el progra- Ajustar los parmetros de sistema como ma de sistema indicado en el DX 0 (cont.): Llamar a la interfaz con el usuario OB 20 1) (si existe) Sincronizar el arranque en modo multiprocesador Paso al ciclo: - Desactivar BASP - Llamar a OB 1

NUEVO ARRANQUE CON MEMORIA

No se evala el DX 0 Llamar a la interfaz con el usuario 1) OB 21/22 (si existe) Sincronizar el arranque en modo multiprocesador Paso al ciclo: - Desactivar BASP - Llamar a OB 1

1) Tras CONEXION se llaman las interfaces con el usuario durante el ARRANQUE en el orden siguiente: OB 38, OB 39, OB 20/OB 22.

4.3.6 Interfaces con el usuario para el arranque

Los mdulos de organizacin OB 20, OB 21 y OB 22 sirven de interfaces con el usuario para los distintos modos de arranque. En estos mdulos se puede registrar un programa STEP 5 especfico para el modo de arranque.

OB 20

Cuando la CPU ejecuta un NUEVO ARRANQUE MANUAL o AUTOMATICO, el programa de sistema llama una sola vez al OB 20. El usuario puede depositar en l un programa STEP 5 que ejecute - antes de que inicie el procesamiento cclico - pasos preparativos para el reinicio del procesamiento cclico. Se puede por ej. activar marcas, arrancar temporizadores (el programa de sistema efecta el arranque slo al entrar en RUN, prefijar datos que se transfieren a las tarjetas de E/S, sincronizar las CPUs. Despus de procesar el OB 20 comienza el procesamiento cclico del programa mediante una llamada al OB 1. Si el OB 20 no est cargado, la CPU comienza a procesar el programa cclicamente, inmediatamente despes de un NUEVO ARRANQUE (despus de las operaciones por parte del sistema).

4 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo ARRANQUE OB 21

Cuando la CPU ejecuta un REARRANQUE MANUAL o un NUEVO ARRANQUE MANUAL CON MEMORIA, el programa de sistema llama una vez al OB 21. En l se puede depositar un programa STEP 5 que ejecute pasos preparativos para continuar el procesamiento cclico del programa .

REARRANQUE MANUAL

Despus de procesar el OB 21 y tras un REARRANQUE MANUAL, el procesamiento cclico del programa contina con la siguiente instruccin a partir del lugar en que fue interrumpido. Rige lo siguiente: La seal BASP (bloqueo de salidas) permanece activada durante el procesamiento del ciclo restante y se desactiva slo al comenzar el siguiente ciclo (completo). La imagen de proceso de las salidas se rearma al final del ciclo restante. Si el OB 21 no est cargado, una vez finalizado el REARRANQUE MANUAL y las operaciones del sistema, la CPU contina el procesamiento del programa a partir del lugar en que fue interrumpido.

NUEVO ARRANQUE CON MEMORIA

Si el parmetro "NUEVO ARRANQUE CON MEMORIA" est registrado en el mdulo de datos DX 0, el programa de sistema ejecuta un NUEVO ARRANQUE despus de ejecutar el OB 21 (la CPU contina el procesamiento del programa con la primera instruccin STEP 5 del OB 1). Los estados lgicos de las marcas, marcas de acoplamiento, semforos y lista de direcciones de mdulos (DB 0) permanecen inalterados.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 25

Estado operativo ARRANQUE OB 22

Cuando la CPU ejecuta un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO CON MEMORIA, el programa de sistema llama una vez al OB 22. En l se puede depositar un programa STEP 5 que ejecute pasos preparativos (en general, despus de un fallo de la tensin de red) para continuar el procesamiento cclico del programa. Despus de la CONEXION, la CPU ejecuta en el rearranque las operaciones de sistema mencionadas en el captulo 4.4.3 e intenta continuar el programa donde fue interrumpido. En primer lugar se llama al OB 22. Despus de ejecutar el OB 22, el procesamiento del programa contina a partir de la instruccin siguiente al punto de interrupcin. Despus de un fallo de la tensin de red seguido de un restablecimiento de la tensin, vale lo siguiente: La seal BASP (bloqueo de salidas) permanece activada durante el procesamiento del resto del ciclo y slo vuelve a desactivarse al comenzar el siguiente ciclo completo. La imagen de proceso de las salidas se rearma al finalizar el resto del ciclo. Si el OB 22 no est cargado, despus de un REARRANQUE AUTOMATICO, la CPU contina inmediatamente el procesamiento del programa en el lugar donde fue interrumpido.

REARRANQUE AUTOMATICO

NUEVO ARRANQUE AUTOMATICO CON MEMORIA

Si el parmetro "nuevo arranque con memoria" est registrado en el mdulo de datos DX 0, el programa de sistema ejecuta un NUEVO ARRANQUE despus de ejecutar el OB 22 (la CPU contina el procesamiento del programa a partir de la primera instruccin STEP 5 del OB 1). Los estados lgicos de las marcas, marcas de acoplamiento, semforos y de la lista de direcciones de mdulos (DB 0) permanecen inalterados.

4 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo ARRANQUE

4.3.7 Rearranque automtico ampliado con la CPU 948

El modo operacin "arranque en caliente" (= rearranque automtico ampliado) indicado en la norma CEI 1131, parte 1 tambin es posible con la CPU 948. El rearranque ampliado es un rearranque controlado segn CEI 1131 - por un reloj tampn. Con este reloj se supervisa el tiempo entre la desconexin y la conexin de la tensin de red de la CPU. En funcin de este tiempo se autoriza o prohibe un rearranque. El rearranque automtico ampliado de la CPU 948 no es directamente auxiliado por el programa de sistema, debiendo ser programado por el usuario. Las funciones bsicas disponibles son el REARRANQUE AUTOMATICO (OB 22) y el reloj de tiempo real interno respaldado por batera externa. Programar el rearranque automtico ampliado de acuerdo con el esquema siguiente:

Estado operativo Medida/Mdulo RUN Reloj (grabar peridicamente la hora y fecha del reloj externo en clulas de memoria definidas, por ej. en palabras de datos): al final del ciclo en el OB 1 o de forma controlada por tiempo mediante una alarma temporizada (por ej. OB 10), (si se requiere ms precisin) REARRANQUE OB 22 AUTOMATICO Calcular el tiempo de inactividad: Tinactividad = 1er valor de tiempo tras el restablecimiento de la tensin - ltimo valor de tiempo grabado antes de fallar la tensin SI ... ENTONCES ... Tiempo de inactividad > valor mximo - interrumpir el rearranque dado, (operacin STP) o - ejecutar un rearranque modificado. proseguir el rearranque. -

Tiempo de inactividad valor mximo dado,

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 27

Estado operativo ARRANQUE

4.3.8 Interrupciones durante el ARRANQUE

Un programa de arranque puede ser interrumpido por: fallo de la tensin de red en el aparato central (NAU) o en el aparato de ampliacin (PEU), selector en STOP, intruccin de parada, HALT o PG-STP error de programa o del aparato (vase captulo 5.5).

Reglas generales en caso de interrupcin del ARRANQUE

Para el comportamiento de arranque de la CPU 948 rigen las siguientes reglas: En caso de interrumpirse el ARRANQUE, el prximo ARRANQUE se deber efectuar siempre desde el principio! El ltimo modo de arranque elegido ser siempre el vlido. Ejemplo: 1. DESCONEXION (NAU) durante el ciclo 2. Selector en posicin STOP 3. CONEXION 4. Selector en posicin RUN Reaccin: la CPU efecta un REARRANQUE MANUAL. Un NUEVO ARRANQUE interrumpido no puede ir seguido de un REARRANQUE, sino que debe repetirse. Un REARRANQUE interrumpido puede ir seguido de un NUEVO ARRANQUE o de otro REARRANQUE.

Comportamiento de la CPU al restablecerse la tensin tras un fallo de tensin de red o una seal PEU

Si el arranque es interrumpido por un fallo de la tensin de red o por la seal PEU, al restablecerse la tensin, el comportamiento de la CPU queda determinado por el modo de operacin ajustado e interrumpido. La tabla siguiente ofrece una visin esquemtica de los distintos comportamientos de la CPU. OB de arranque Reaccin de la CPU interrumpido OB 20 Independientemente de los sucesos anteriores se efecta un NUEVO ARRANQUE AUTOMATICO (el OB 20 se llama y ejecuta desde el OB 21 principio); no se ejecutan "restos del arranque" (no contina el OB OB 20 20 u OB 21!). OB 20 STOP

Modo de operacin Modo de operacin ajustado en el DX 0 interrumpido NUEVO NUEVO ARRANQUE ARRANQUE AUTOMATICO MANUAL REARRANQUE MANUAL NUEVO ARRANQUE AUTOMATICO REARRANQUE NUEVO AUTOMATICO ARRANQUE MANUAL REARRANQUE MANUAL REARRANQUE AUTOMATICO

OB 21 OB 22

Se efecta un REARRANQUE AUTOMATICO (el OB 22 se llama y ejecuta desde el principio); no se ejecutan "restos del arranque" (no contina el OB 21 u OB 22!).

4 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN

4.4

Estado operativo RUN


Cuando la CPU finaliza un ARRANQUE (y slo entonces), se pone en RUN. Este estado operativo tiene las siguientes caractersticas:

Procesamiento del programa de usuario

El programa de usuario que se encuentra en el OB 1 se procesa cclicamente, pudindose anidar por control de alarma otras partes del programa.

Temporizadores, contadores, imagen de proceso

Todos los temporizadores y contadores arrancados en el programa estn en marcha; la imagen de proceso se actualiza cclicamente.

BASP

La seal BASP (bloqueo de salidas) est desactivada. Por lo tanto, quedan desbloqueadas todas las salidas digitales.

Marcas de acoplamiento

Las marcas de acoplamiento si es que estn programadas en el DB 1 se actualizan cclicamente.

En el estado operativo RUN existen tres niveles distintos de procesamiento:

CICLO

El programa de usuario del OB 1 se procesa cclicamente.

ALARMAS DE PROCESO/ INTERRUPCIONES

El programa de usuario se procesa por control de alarma (4 niveles de interrupcin 1 nivel de procesamiento de alarmas con 8 subniveles).

ALARMAS TEMPORIZADAS

El procesamiento de usuario se procesa por control de tiempo (9 alarmas temporizadas cclicas, 1 alarma de retardo, 1 alarma temporizada controlada por reloj).

Los niveles de procesamiento se distinguen en lo siguiente: Son provocados por sucesos distintos. Por cada nivel de procesamiento existe uno o varios mdulos de organizacin a modo de interfaz con el usuario. Todos los niveles de procesamiento de una CPU 948 pueden estar programados simultneamente. El programa de sistema efecta las llamadas de los niveles en cuestin, segn los eventos que tengan lugar y segn la prioridad definida (vase captulo 4.2).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 29

Estado operativo RUN

4.4.1 Procesamiento cclico

En los controladores de memoria programable predomina el procesamiento cclico (nivel de procesamiento CICLO).

Activacin

Si la CPU finaliza el programa de arranque sin presentar errores, entonces comienza con el procesamiento cclico.

Ejecucin

Ejecucin del procesamiento cclico (operaciones por parte del sistema):

De s d e e l a r r a n q u e

Dis p a r a r e l t ie m p o d e s u p e r v is i n d e c ic lo Ac t u a liz a r la s e n t r a d a s d e m a r c a s d e a c o p la m ie n t o Alim e n t a r la im a g e n d e p r o c e s o d e la s e n t r a d a s ( PAE)

L la m a r a l p r o g r a m a d e u s u a r io c c lic o (OB 1):

Programa de usuario
in c lu id o s lo s a n id a m ie n t o s d e lo s r e s t a n t e s n iv e le s d e p r o c e s a m ie n t o

Em it ir la im a g e n d e p r o c e s o d e la s s a lid a s ( PAA) Ac t u a liz a r la s s a lid a s d e m a r c a s d e a c o p la m ie n t o O p e r a c io n e s p o r p a r t e d e l s is t e m a , c o m o p o r e j. c a r g a r y b o r r a r m d u lo s , c o m p r im ir m d u lo s . . .

Fig. 4-6

Procesamiento cclico del programa

4 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN Interfaz con el usuario OB 1

En el procesamiento cclico se llama regularmente al mdulo de organizacin OB 1 como interfaz con el usuario. El programa de usuario STEP 5 que se encuentra en el mdulo OB 1 se procesa cclicamente desde el principio, pasando por todas las llamadas programadas. Despus de las operaciones del programa de sistema, la CPU contina el procesamiento a partir de la primera instruccin STEP 5 del OB 1. En el OB 1 se programan las llamadas a los mdulos de programa, de funciones y de pasos que han de ser procesados en el programa cclico.

Puntos de interrupcin

El procesamiento cclico puede ser interrumpido por: un procesamiento controlado por tiempo en lmites de mdulos o instrucciones, un procesamiento controlado por alarmas de proceso mediante el byte de entrada EB 0 en lmites de mdulos, un procesamiento controlado por interrupciones (interrupciones INT A/B/C/D, E, F, G) en lmites de mdulos o instrucciones. El tipo de interrupcin (en lmites de mdulos o instrucciones) se define en el mdulo de datos DX 0 (vase captulo 7).

El procesamiento cclico del programa puede ser interrumpido o totalmente abortado, independientemente de la parametrizacin del DX 0: por un error del aparato o del programa (en lmites de instrucciones), por manipulacin: - por accionamiento del selector a STOP y por HALT (en lmites de instrucciones), - por funcin del aparato de programacin (en puntos de control vase captulo 11), por la instruccin de parada STS (en lmites de instrucciones), por fallo de la tensin de red en el aparato central o ampliado (en lmites de instrucciones).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 31

Estado operativo RUN

4.4.2 Determinacin del procesamiento controlado por tiempo y por alarma

En el procesamiento controlado por tiempo y por alarma se dispone de distintos tipos de procesamiento que, en parte, slo pueden ser utilizados alternativamente. El modo de procesamiento deseado se define parametrizando el mdulo de datos DX 0 (vase captulo 7). El modo de operacin "Byte Entrada 0 Alarma Proceso" tiene las siguientes caractersticas: slo es posible en modo monoprocesador, el anidamiento de niveles de programa de prioridad superior se efecta slo en lmites de mdulos, la alarma de retardo (procesamiento mediante OB 6) no puede ser utilizada. la alarma temporizada controlada por reloj (procesamiento mediante OB 9) no puede ser utilizada.

Modo de operacin "Byte Entrada 0 Alarma Proceso"

Modo de operacin "Interrupciones de sistema"

El modo de operacin "interrupciones de sistema" se caracteriza por lo siguiente: Es posible tanto en modo monoprocesador como multiprocesador. El anidamiento de niveles de programa de prioridad superior se efecta en lmites de mdulos o instrucciones. Las alarmas de retardo son procesadas por el OB 6. Las alarmas temporizadas controladas por reloj son procesadas por el OB 9.

Interrupciones del procesamiento controlado por tiempo y por alarma

El procesamiento controlado por tiempo y por alarma puede ser interrumpido o totalmente abortado, independientemente de cmo est parametrizado el DX 0: por un error del aparato o del programa (en lmites de instrucciones), por manipulacin: - por accionamiento del selector a STOP, HALT (en lmites de instrucciones), - por una funcin de PG (en puntos de control - vase captulo 11), por la instruccin de parada STS (en lmites de instrucciones), por fallo de la tensin de red en el aparato central o ampliado (en lmites de instrucciones).

4 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN

4.4.3 Procesamiento controlado por tiempo

A este tipo de procesamiento pertenecen la alarma de retardo, la alarma temporizada controlada por reloj y las alarmas temp. cclicas.

Todas las alarmas tienen en comn que se procesan de forma controlada por tiempo. El procesamiento controlado por tiempo se ejecuta en el nivel ALARMAS TEMPORIZADAS.

Alarma de retardo

Se activa una sola vez tras un tiempo de retardo de milisegundos escogido a voluntad. A travs de esta alarma se llama al mdulo de organizacin OB 6.

Alarma temporizada controlada por reloj

Se activa en una escala de tiempo escogida a voluntad o una sola vez en un tiempo absoluto. A travs de esta alarma se llama al mdulo de organizacin OB 9.

Alarmas temporizadas cclicas Se activan en 9 perodos distintos. Cada alarma temporizada tiene asignado un mdulo de organizacin (OB 10 a OB 18). Se trata de ciclos fijos, es decir, el tiempo de duracin entre dos arranques de programa es fijo.

Prioridades

Dentro del procesamiento controlado por tiempo existen las siguientes prioridades: Alarma de retardo Alarm. temp. ccl., perod. 1 Alarm. temp. ccl., perod. 2 Alarm. temp. ccl., perod. 3 Alarm. temp. ccl., perod. 4 Alarm. temp. ccl., perod. 5 Alarm. temp. ccl., perod. 6 Alarm. temp. ccl., perod. 7 Alarm. temp. ccl., perod. 8 Alarm. temp. ccl., perod. 9 Alarm. temp. contr. reloj OB 6 OB 10, perodo ms breve OB 11 OB 12 OB 13 Prioridad OB 14 creciente OB 15 OB 16 OB 17 OB 18, perodo ms largo OB 9

Nota En el OB 6 y en el OB 9, el procesamiento de alarmas controlado por tiempo se efecta solamente si en el DX 0 est ajustado el parmetro "Byte Entrada 0 Alarma Proceso = no". Con el preajuste del parmetro DX 0 "Byte Entrada 0 Alarma Proceso = si" se procesan las correspondientes alarmas de proceso del EB 0 mediante el OB 6 y el OB 9 (vase captulo 4.5.4).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 33

Estado operativo RUN Alarma de retardo

Con la alarma de retardo de la CPU 948 tambin se pueden definir intervalos breves con una resolucin de 1 ms. Una vez transcurrido el tiempo ajustado, el programa de sistema llama una vez al OB 6.

Activacin

La alarma de retardo se genera mediante la llamada del mdulo de organizacin de funciones especiales OB 153 (vase captulo 6.14). En cuanto ha transcurrido el tiempo de retardo parametrizado con el OB 152, el programa de sistema interrumpe el procesamiento y llama al OB 6 (nivel de procesamiento ALARMAS TEMPORIZADAS). Despus se contina el procesamiento a partir del punto de interrupcin. Sin embargo, para poder utilizar la alarma de retardo es imprescindible que en el mdulo de datos est ajustado el parmetro "Byte Entrada 0 Alarma Proceso = no"

Interfaz con el usuario OB 6

En las alarmas de retardo se llama al OB 6 como interfaz con el usuario. En el 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.

Interrupciones

El nivel ALARMAS TEMPORIZADAS tiene la prioridad ms alta de los niveles bsicos debido al preajuste (puede ser modificado mediante parametrizacin del DX 0). Dentro de los distintos tipos de procesamiento controlados por tiempo, el procesamiento de la alarma de retardo tiene la prioridad ms alta. Debido a este reparto de prioridades, el procesamiento de la alarma de retardo no puede ser interrumpido por ningn otro programa de usuario.

Particularidades

Las alarmas de retardo slo se procesan en el estado operativo RUN. Las alarmas de retardo que aparecen en STOP, en caso de fallo de tensin o en el ARRANQUE, son rechazadas. Una alarma de retardo que haya sido generada una vez (= llamada del OB 153 procesada) se pierde al pasar a STOP o en caso de DESCONEXION).

4 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN


En caso de generar una nueva alarma de retardo, es decir, cuando se llama al OB 153 con nuevos parmetros, se rechaza la alarma de retardo que haya sido ajustada previamente. Si la alarma ya se encuentra en ejecucin, no ser interrumpida. Por consiguiente, siempre ser vlida una sola alarma de retardo. Si durante el procesamiento de una alarma de retardo aparece una nueva alarma, se rechazar esta ltima. Durante el procesamiento de alarmas temporizadas no se comprueba si tienen lugar colisiones! No hay que olvidar las funciones especiales OB 122 y OB 142, las cuales permiten bloquear o retardar el procesamiento de alarmas de retardo.

Alarma temporizada controlada por reloj

La CPU 948 dispone de un reloj tampn (buferizacin central por alimentacin de corriente del aparato central) que puede ser activado y ledo mediante instrucciones de STEP 5. Con este reloj se pueden procesar partes del programa por control de tiempo, es decir, en tiempos determinados. Mientras que las alarmas de retardo se utilizan para procesos rpidos, las alarmas temporizadas controladas por reloj son especialmente apropiadas para procesos que se ejecutan una sola vez o procesos que aparecen cclicamente en intervalos de tiempo amplios como por ej., cada hora, cada da o cada lunes. Cuando se alcanza el tiempo prefijado, el programa de sistema llama al OB 9.

Activacin

La alarma temporizada controlada por reloj (peticin de tiempo) se genera mediante la llamada al mdulo de organizacin de funciones especiales OB 151 (vase captulo 6.13). La peticin se procesa cuando se alcanza el tiempo ajustado con el OB 151 (una hora o una fecha). El programa de sistema interrumpe el procesamiento del programa y llama al OB 9 (nivel de procesamiento ALARMAS TEMPORIZADAS). Despus contina el programa a partir del punto de interrupcin. Sin embargo, para poder utilizar la alarma de retardo es imprescindible que en el mdulo de datos DX 0 est ajustado el parmetro "Byte Entrada 0 Alarma Proceso = no".

Interfaz con el usuario OB 9

En el caso de las alarmas temporizadas controladas por reloj se llama al OB 9 como 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.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 35

Estado operativo RUN Interrupciones

El nivel ALARMAS TEMPORIZADAS tiene la prioridad ms alta de los niveles bsicos debido al preajuste (puede ser modificado mediante parametrizacin del DX 0). Dentro de los distintos tipos de procesamiento controlados por tiempo, el procesamiento de la alarma temporizada controlada por reloj tiene la prioridad ms baja. Por consiguiente, puede ser interrumpido por el procesamiento de una alarma de retardo o de una alarma temporizada cclica.

Particularidades

Las alarmas temporizadas controladas por reloj slo se procesan en RUN. Las alarmas temporizadas controladas por reloj que aparecen en STOP, en caso de fallo de la tensin de red o durante el ARRANQUE, son rechazadas. Una alarma temporizada que haya sido generada una sola vez (= llamada del OB 151 procesada) no se pierde con un REARRANQUE o con una DESCONEXION/CONEXION; sin embargo, se borra con un NUEVO ARRANQUE. Cuando se genera una nueva alarma temporizada controlada por reloj, es decir, cuando se llama al OB 151 con nuevos parmetros de tiempo, se rechaza la alarma temporizada que ha sido definida previamente. Si la alarma ya se encuentra en ejecucin, no se interrumpe. Por consiguiente, siempre ser vlida 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 rechaza la nueva alarma. En el caso de las alarmas temporizadas controladas por reloj no se comprueba si se producen colisiones! No hay que olvidar las funciones especiales OB 122 y OB 142, que permiten bloquear o retardar el procesamiento de las alarmas temporizadas controladas por reloj.

4 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN Alarmas temporizadas cclicas

La CPU 948 permite procesar hasta 9 distintos programas controlados por tiempo, llamndose a cada uno de ellos en diferentes escalas de tiempo. La base de tiempo establecida para el procesamiento de la alarma temporizada es de 100 ms. Sin embargo, puede ser modificada en perodos de 10 ms mediante un parmetro especial en el mdulo de datos DX 0 (base de tiempo = yy * 10 ms con: 01H yy FFH). Se recomienda ajustar la base de tiempo en base a la unidad de tiempo ms breve que requiera el correspondiente programa de usuario para el procesamiento cclico.

Activacin

Escala de tiempo

El procesamiento de las alarmas temporizadas cclicas se efecta en escalas de tiempo fijas con 9 distintos perodos. Cada perodo est asignado a un mdulo de organizacin determinado, pudindose optar entre dos escalas diferentes. Estas escalas se eligen mediante un parmetro especial en el mdulo de datos DX 0. La siguiente tabla muestra ambas escalas con los perodos, as como los mdulos de organizacin asignados.

Tabla 4-5

Escalas de tiempo y perodos de las ALARMAS TEMP.

Escala 1 (preajuste) 1 x base tiempo 2 x base tiempo 5 x base tiempo 10 x base tiempo 20 x base tiempo 50 x base tiempo 100 x base tiempo 200 x base tiempo 500 x base tiempo

Escala 2 1 x base tiempo 2 x base tiempo 4 x base tiempo 8 x base tiempo 16 x base tiempo 32 x base tiempo 64 x base tiempo 128 x base tiempo 256 x base tiempo

OB llamado OB 10 OB 11 OB 12 OB 13 OB 14 OB 15 OB 16 OB 17 OB 18

Nota Tras un arranque, la primera llamada a un OB de ALARMA TEMPORIZADA se produce dentro del tiempo asignado al OB. Si, por ejemplo, se ha ajustado un tiempo de "500 s" para el OB 18 (ajuste de la base de tiempo en DX 0 = 1 s), despus de producirse un NUEVO ARRANQUE la primera llamada al OB 18 se efectuar transcurridos aproximadamente 20 s. Las llamadas restantes se efectuarn, sin embargo, cada 500 s respectivamente.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 37

Estado operativo RUN Interfaces con el usuario OB 10 a OB 18

Cuando aparece una alarma temporizada determinada se anida (intercala) en el prximo lmite de mdulo (o lmite de instruccin) el mdulo de organizacin correspondiente como interfaz con el usuario. En el OB 10 puede programarse por ejemplo aquella parte del programa que deba ser anidada cada 100 ms (preajuste) en el procesamiento cclico del programa. Se procesar solamente aquella alarma temporizada cuyo mdulo de organizacin haya sido cargado. Si no se ha cargado ninguno de los mdulos de organizacin de OB 10 a OB 18, no se efectuar ningn procesamiento controlado por tiempo y, por consiguiente, tampoco se interrumpir el procesamiento cclico. Tambin es posible desactivar el procesamiento de las alarmas temporizadas parametrizando el DX 0, por ejemplo para comprobar el programa (test).

Interrupciones

El nivel ALARMAS TEMPORIZADAS tiene la prioridad ms alta de los niveles bsicos debido al preajuste (puede ser modificado mediante parametrizacin del DX 0). Debido a este reparto de prioridades, dentro del procesamiento controlado por tiempo pueden ocurrir las siguientes interrupciones en el procesamiento de una alarma temporizada cclica: El procesamiento de una alarma temporizada cclica puede ser interrumpido por el procesamiento de una alarma de retardo. Los mdulos de organizacin con perodos ms breves tienen una prioridad superior y, por lo tanto, pueden interrumpir mdulos de organizacin con perodos ms largos (por ej.: el OB 12 interrumpe el OB 17).

Nota Los tres perodos ms breves (OB 10 a 12) permiten un procesamiento repetido y sin interrupciones. Si durante el procesamiento de un OB 10 aparece por ejemplo otra alarma para el OB 10, primeramente se ejecuta el OB 10 hasta el final e inmediatamente despus se vuelve a llamar al OB 10. Sin embargo, cuando por cada uno de los tres perodos hay ms de tres alarmas temporizadas en cola de espera, se produce una colisin de alarmas temporizadas.

4 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN Colisin de alarmas temporizadas

En la CPU 948 pueden ocurrir dos distintos tipos de colisiones de alarmas temporizadas:

Tipo de error/causa Desbordamiento en cola de espera durante el procesamiento de alarmas temporizadas: - a uno de los tres perodos ms breves (OB 10 a 12) an le quedan ms de tres alarmas por procesar, - uno de los OBs restantes (OB 13 a 18) es llamado antes de concluir su procesamiento En caso de interrupcin en lmites de mdulos, el tiempo de ejecucin de un mdulo en el programa cclico de usuario bloquea el procesamiento controlado por tiempo; el tiempo de ejecucin del mdulo es mayor que la base de tiempo ajustada en el DX 0.

Caracter de identificacin de la pila USTACK En los bits de control del indicador "Salida AG-INFO/USTACK" del aparato de programacin est marcada con una cruz la identificacin de error WEFES

Reaccin de la CPU El programa de sistema llama al OB 33 como interfaz con el usuario. Si el OB 33 no est cargado, la CPU pasa al estado STOP.

En los bits de control del indicador "Salida AG-INFO/USTACK" del aparato de programacin est marcada con una cruz la identificacin de error WEFEH.

El programa de sistema llama al OB 33 como interfaz con el usuario. Si el OB 33 no est cargado, el programa de sistema contina el procesamiento del programa.

Reaccin de error OB 33

El OB 33 permite programar la reaccin deseada ante las mencionadas colisiones de alarmas temporizadas. Cuando se llama este mdulo, el programa de sistema transfiere al AKKU-1-L (bit n 0 a 9) una identificacin de error. En la tabla siguiente se explica el significado de los bits de identificacin (bit = 1).

Tabla 4-6

Identificacin de error: significado de los bits de identificacin del AKKU-1-L

N bit 0 1 2 3 4

Significado Desbordamiento en cola de espera en caso de perodo 1 (en OB 10 hay ms de 3 alarmas temporizadas en cola de espera). Desbordamiento en cola de espera en caso de perodo 2 (en OB 11 hay ms de 3 alarmas temporizadas en cola de espera). Desbordamiento en cola de espera en caso de perodo 3 (en OB 12 hay ms de 3 alarmas temporizadas en cola de espera). Desbordamiento en cola de espera en caso de perodo 4 (el OB 13 ha sido llamado nuevamente sin que la anterior llamada haya sido procesada hasta el final). Desbordamiento en cola de espera en caso de perodo 5 (el OB 14 ha sido llamado nuevamente sin que la anterior llamada haya sido procesada hasta el final).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 39

Estado operativo RUN

N bit
Tabla 4-6 (continuacin)

Significado Desbordamiento en cola de espera en caso de perodo 6 (el OB 15 ha sido llamado nuevamente sin que la anterior llamada haya sido procesada hasta el final). Desbordamiento en cola de espera en caso de perodo 7 (el OB 16 ha sido llamado nuevamente sin que la anterior llamada haya sido procesada hasta el final). Desbordamiento en cola de espera en caso de perodo 8 (el OB 17 ha sido llamado nuevamente sin que la anterior llamada haya sido procesada hasta el final). Desbordamiento en cola de espera en caso de perodo 9 (el OB 17 ha sido llamado nuevamente sin que la anterior llamada haya sido procesada hasta el final). La base de tiempo de la alarma temporizada ha sido enmascarada demasiado tiempo

5 6 7 8 9

Una vez procesado el OB 33, el programa contina en el OB de alarma temporizada que ha sido interrumpido.

Nota Con el ajuste "interrupcin en lmites de mdulos" y despus de una colisin de alarmas temporizadas, el SAZ no indica el mdulo en cuyo lmite (operacin BE) se ha producido la colisin, sino el mdulo que ha llamado al mdulo causante del error (direccin de retroceso). Para el procesamiento controlado por tiempo, el mdulo de datos DX 0 (vase captulo 7) ofrece las siguientes posibilidades de parametrizacin: - ajuste de la base de tiempo, - ajuste del distribuidor de "time slices", - ajuste de la prioridad frente al procesamiento controlado por alarma, - activacin/desactivacin del procesamiento de alarmas temporizadas.

4 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN

4.4.4 Procesamiento controlado por alarma

En funcin del modo de operacin seleccionado, la CPU 948 permite procesar el programa controlado por alarma de dos maneras distintas: ALARMAS DE PROCESO mediante el byte de entrada EB 0 (mx. 8 alarmas), INTERRUPCIONES mediante lneas de seales del bus S5 (mx. 4 interrupciones).

ALARMAS DE PROCESO mediante el byte de entrada EB 0

Para que puedan procesarse las alarmas de proceso, es absolutamente imprescindible que el ajuste "Byte Entrada 0 Alarma Proceso = no" del DX 0 no haya sido modificado. El procesamiento controlado por alarmas de proceso tiene lugar cuando, a consecuencia de un cambio del estado lgico en el byte de entrada EB 0, la CPU interrumpe el procesamiento actual para procesar una parte especfica del programa.

Nota Si se ha activado el "Byte Entrada 0 Alarma Proceso", no es posible emplear la alarma de retardo, la alarma temporizada controlada por reloj ni las interrupciones de sistema!

Activacin

El cambio del estado lgico de un bit en el byte EB 0 activa la alarma de proceso.

Interfaces con el usuario OB 2 a OB 9

Cada vez que aparece una alarma de proceso se llama como interfaz con el usuario a uno de los OBs que figuran en la siguiente tabla.

Tabla 4-7

Interfaces con el usuario para alarmas de proceso

Cambio del estado lgico en EB 0 con el bit E 0.0 E 0.1 E 0.2 E 0.3 E 0.4 E 0.5 E 0.6 E 0.7

OB llamado OB 2 OB 3 OB 4 OB 5 OB 6 OB 7 OB 8 OB 9

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 41

Estado operativo RUN

En los mdulos de organizacin OB 2 a OB 9 se programa aquella parte del programa STEP 5 que deba ser procesada mediante el byte de entrada EB 0 al aparecer una alarma de proceso. Si el OB correspondiente no est cargado, no se interrumpir el procesamiento y, por consiguiente, tampoco tendr lugar el procesamiento de programa controlado por alarma.

Nota Si la tarjeta de E/S ya no da el acuse de recibo cuando la CPU accede al EB 0 durante el funcionamiento, el programa de sistema detecta un retardo en acuse de recibo y llama a la interfaz con el usuario OB 28. Si el mdulo OB 28 no est cargado, la CPU se pone en STOP.

Prioridades de las alarmas de proceso

Debido al preajuste, el nivel de ALARMAS DE PROCESO tiene menor prioridad que el nivel de ALARMAS TEMPORIZADAS. El orden de prioridad de estos niveles puede ser invertido parametrizando el mdulo de datos DX 0, de modo que el nivel de ALARMAS DE PROCESO tenga mayor prioridad que el nivel de ALARMAS TEMPORIZADAS.

Dentro del procesamiento de las alarmas de proceso, las prioridades de las distintas alarmas de proceso estn definidas de la siguiente manera: E 0.0 E 0.1 E 0.2 E 0.3 E 0.4 E 0.5 E 0.6 E 0.7 OB 2 OB 3 OB 4 OB 5 OB 6 OB 7 OB 8 OB 9

Prioridad creciente

En el caso de las alarmas de proceso no es posible efectuar un procesamiento anidado! Cuando finaliza el procesamiento de un OB de alarma de proceso y en ese instante hay otras alarmas de proceso en cola de espera, el programa de sistema llamar y procesar al OB que tenga una prioridad directamente inferior. El nivel de procesamiento ALARMAS DE PROCESO no se abandona hasta que la totalidad de los cambios de estado en el byte EB 0 hayan sido tenidos en cuenta y el mdulo de organizacin correspondiente haya sido procesado.

Nota El procesamiento controlado por alarma de proceso no puede ser interrumpido por otro procesamiento del mismo tipo.

4 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN INTERRUPCIONES a travs de las lneas de seal del bus S5

El procesamiento controlado por interrupciones tiene lugar cuando una seal del bus S5 de una tarjeta de E/S apta para interrupciones hace que la CPU interrumpa el procesamiento a fin de procesar una parte especfica del programa.

Nota Para efectuar en la CPU un procesamiento controlado por interrupciones mediante lneas de seal del bus S5, es necesario parametrizar en el DX 0 "Byte Entrada 0 Alarma Proceso = no" y activar las distintas interrupciones mediante parmetros DX 0. Por otra parte, estas interrupciones tienen que haber sido habilitadas mediante los puentes de la tarjeta (vase apndice y /2/). A diferencia de la CPU 946/947, la CPU 948 permite ajustar en el DX 0 como modo de operacin: "interrupcin en lmites de mdulos" o "interrupcin en lmites de instrucciones".

Ajuste de los puentes para interrupciones de sistema

Para el procesamiento controlado por interrupciones, en la CPU 948 se dispone de 4 interrupciones de sistema: - INT A/B/C/D (depende del puesto de conexin de la CPU, vase manual de sistema /2/, - INT E, - INT F e - INT G.

Las interrupciones que se deseen utilizar deben ser habilitadas mediante los puentes adjuntos. El conector de los puentes se encuentra en la placa madre, por encima del emplazamiento de la Memory Card. Apndice 1 muestra su posicin exacta.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 43

Estado operativo RUN Activacin

El estado activo de una lnea de interrupcin del bus S5 provoca la interrupcin. La seal de interrupcin se dispara en funcin del nivel (nivel bajo). Para acusar el recibo de la interrupcin vanse las instrucciones de la tarjeta que genera las interrupciones.

Interfaces con el usuario OB 2 a OB 5

Cuando aparece una interrupcin se llama a uno de los siguientes OBs como interfaz con el usuario.
Tabla 4-8 Interfaces con el usuario para interrupciones

Interrupcin activada por Seal de interrupcin X (A, B, C o D, depende del puesto de conexin) Seal de interrupcin E Seal de interrupcin F Seal de interrupcin G

OB llamado OB 2

OB 3 OB 4 OB 5

Si aparece, por ejemplo, la seal de interrupcin F, el programa de sistema llama al OB 4. Si no est cargado el OB correspondiente, no se interrumpe el procesamiento y tampoco tiene lugar el procesamiento controlado por interrupciones.

Prioridades de las interrupciones

Debido al preajuste, el nivel INTERRUPCIONES tiene menor prioridad que el nivel ALARMAS TEMPORIZADAS. El orden de prioridad de estos niveles puede ser invertido parametrizando el mdulo de datos DX 0, de modo que el nivel de INTERRUPCIONES tenga mayor prioridad que el nivel de ALARMAS TEMPORIZADAS. Dentro del procesamiento de interrupciones se establece la prioridad de las distintas interrupciones de acuerdo con el siguiente esquema: Si hay varias interrupciones en cola de espera, entonces se llaman los mdulos de organizacin correspondientes segn la prioridad parametrizada en el DX 0 (prioridad individual). Para las cuatro interrupciones pueden indicarse los niveles de prioridad de 1 a 5.

4 - 44

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estado operativo RUN

Cuando ha finalizado el procesamiento de un OB de interrupcin y en ese instante an hay otras interrupciones en cola de espera, el programa de sistema llama al OB de menor prioridad y lo procesa a continuacin. El nivel de procesamiento INTERRUPCIONES no se abandona hasta que todos los estados lgicos activos (nivel bajo) de una lnea de interrupcin del bus S5 hayan sido tenidos en cuenta y se haya procesado en su totalidad el OB correspondiente.

Nota El procesamiento controlado por interrupciones no puede ser interrumpido por la misma interrupcin.

Bloqueo del procesamiento controlado por alarma

Un programa controlado por tiempo se intercala en el programa cclico en un lmite de mdulo o de una instruccin STEP 5. Esta interrupcin puede tener consecuencias negativas cuando se deba procesar una parte cclica del programa en un tiempo determinado (por ejemplo, para alcanzar un tiempo de reaccin determinado), o cuando una secuencia de instrucciones no deba ser interrumpida (por ejemplo al leer o escribir valores relacionados entre s). Cuando una parte del programa no deba ser interrumpida por un programa controlado por alarmas, las posibilidades de programacin son las siguientes:

Con interrupcin en lmites de mdulos

Programar esta parte del programa de forma que no contenga cambios de mdulos. De este modo, las partes de programa que no contienen ningn cambio de mdulo tampoco pueden ser interrumpidas. Utilizar el OB 122. Este mdulo permite bloquear en una parte del programa el procesamiento de las alarmas de proceso que puedan aparecer. No obstante, tambin quedarn bloqueadas las alarmas temporizadas (vase captulo 6.3). Programar la operacin STEP 5 AS (bloquear alarmas de proceso). Para desbloquear el procesamiento de alarmas utilizar la operacin AF (desbloquear alarmas de proceso). Entre estas dos operaciones no se efecta ningn procesamiento controlado por alarmas de proceso. La parte de programa que se encuentra entre ambas no puede ser interrumpida por aparicin de otras alarmas de proceso. AS y AF slo pueden ser utilizadas en mdulos de funciones (conjunto de operaciones complementarias - vase captulo 3.5.4) y slo valen para alarmas de proceso mediante EB 0!

Nota Si una alarma de proceso es bloqueada por el OB 122 o bien retardada por el OB 142, la operacin AF no tendr efecto.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

4 - 45

Estado operativo RUN Con interrupcin en lmites de instrucciones


Programar la parte del programa que no deba ser interrumpida en un OB de interrupcin y asignarle la prioridad ms alta. Utilizar la funcin especial OB 122. Con ella se pueden bloquear interrupciones y alarmas temporizadas (vase captulo 6.3). Con las operaciones LIM y SIM (operaciones de sistema, vase captulo 3.5.4) se lee o activa la mscara de interrupcin de 32 bit. Tambin es posible desactivar por completo el procesamiento de alarmas, o bien por separado para las distintas interrupciones. Sin embargo, sto slo es posible tras un NUEVO ARRANQUE (vase captulo 7), ya que el DX 0 slo se evala durante el NUEVO ARRANQUE.

Tiempo de reaccin

El tiempo de reaccin ante una solicitud de alarma de proceso o de interrupcin corresponde al tiempo de ejecucin de un mdulo (en caso de interrupcin en lmites de mdulos) o bien al tiempo de procesamiento de una instruccin STEP 5 (en caso de interrupcin en lmites de instrucciones). No obstante, si cuando se produce la interrupfcin del procesamiento cclico del programa quedan otras alarmas temporizadas de mayor prioridad en cola de espera, el programa controlado por alarma no ser ejecutado hasta que hayan sido procesadas por completo todas las alarmas temporizadas. El tiempo mximo de reaccin entre la aparicin y el procesamiento de una alarma de proceso o interrupcin aumenta en este caso en el tiempo de procesamiento de las alarmas temporizadas de mayor prioridad.

Niveles de procesamiento y marcas

Cuando se desee procesar el programa de usuario no slo cclicamente sino tambin de forma controlada por tiempo y/o por alarma, se corre el riesgo de sobreescribir las marcas. Esto ocurre cuando se accede a las mismas zonas de marcas en distintos niveles de procesamiento del programa. Por este motivo se recomienda asignar las marcas a niveles de procesamiento determinados, o bien salvaguardar al principio de un procesamiento controlado por tiempo o por alarma los estados lgicos de las marcas (doblemente ocupadas) en un mdulo de datos y volverlos a escribir al final del procesamiento que ha causado la interrupcin. Lo mismo vale para el rearranque. Para evitar una ocupacin doble de las marcas, en la mayora de los casos tambin se pueden utilizar marcas S. No se requerirn "medidas de salvaguarda" especiales para las marcas, siempre que se asignen las marcas S a los distintos niveles de procesamiento (la cantidad de marcas S disponibles es suficiente).

4 - 46

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Tratamiento de interrupciones y errores

Indice - Captulo 5
5.1 5.2 5.3 5.4 5.4.1 5.4.2 5.4.3 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 5.6.10 5.6.11 5.6.12 5.7 5.7.1 5.7.2 5.7.3 5.7.4 Errores frecuentes en el programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 4 Informaciones sobre errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 5 Procedimiento para el anlisis de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 8 Bits de control y pila de interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 9 Bits de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 10 Contenido de la pila USTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 14 Ejemplo para diagnosticar un error mediante la pila USTACK . . . . . . . . . . . . . . . . . . . 5 - 19 Tratamiento de errores mediante mdulos de organizacin . . . . . . . . . . . . . . . . . . . . . . 5 - 20 Causas de error y reacciones de la CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 23 OB 19: Llamada de un mdulo de cdigo no cargado (KB) . . . . . . . . . . . . . . . . . . . . . OB 19: Llamada de un mdulo de datos no cargado (KDB) . . . . . . . . . . . . . . . . . . . . . OB 23/24, OB 28/29: Retardo en acuse de recibo (QVZ) . . . . . . . . . . . . . . . . . . . . . . . OB 25: Error de direccionamiento (ADF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 26: Error de tiempo de ciclo (ZYK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 27: Error de sustitucin (SUF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 30: Error de paridad y QVZ en la memoria de usuario (PARE) . . . . . . . . . . . . . . . OB 32: Error de carga y transferencia (TLAF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 33: Colisin de alarmas temporizadas (WEFES/WEFEH) . . . . . . . . . . . . . . . . . . . OB 34: Error en E DB/EX DX(FEDBX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 35: Errores de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 36: Error en autotest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 24 5 - 24 5 - 25 5 - 26 5 - 27 5 - 28 5 - 28 5 - 29 5 - 30 5 - 32 5 - 32 5 - 33

Autotest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 34 Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descripcin de las funciones de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajustes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tratamiento de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 34 5 - 35 5 - 37 5 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5-1

Indice

5-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Tratamiento de interrupciones y errores

Este captulo explica cmo evitar errores en la planificacin y programacin de programas STEP 5. Tambin indica las ayudas que ofrece el programa de sistema para el diagnstico de errores y reaccin, as como los mdulos en que pueden programarse las reacciones ante determinados errores. Adems describe cmo activar las funciones de sistema integradas para ejecutar un autotest de la CPU 948.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5-3

Errores frecuentes en el programa de usuario

5.1

Errores frecuentes en el programa de usuario


El programa de sistema es capaz de detectar un funcionamiento defectuoso de la CPU, errores en el procesamiento del programa de sistema, o las consecuencias de una programacin errnea por parte del usuario. La lista siguiente contiene los errores que aparecen con mayor frecuencia durante la puesta en funcionamiento del programa de usuario, los cuales pueden ser fcilmente evitados al crear el programa. Por este motivo, recomendamos prestar atencin 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 estn insertadas en el aparato central o en el aparato de ampliacin. Hay que asegurarse de que los operandos obtengan los parmetros correctos. Las modificaciones de los mdulos de funciones deben efectuarse con cautela. Comprobar si FB/FX estn parametrizados con los operandos correctos y si todos los operandos actuales estn 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 T1). Comprobar si todos los mdulos de datos llamados estn disponibles y tienen una longitud suficiente. Comprobar si todos los mdulos llamados existen efectivamente en la memoria. Las marcas de trabajo deben protegerse de los programas controlados por alarma y por tiempo y cargarse nuevamente, una vez concluido el procesamiento, cuando sean requeridas por otros mdulos (por ej.: FB estndar).

5-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Informaciones sobre errores

5.2

Informaciones sobre errores


Cuando se produce un error durante el arranque o durante el procesamiento cclico del programa de usuario, se dispone de diferentes fuentes de informacin para identificarlo. Estas son: LEDs de la placa frontal de la CPU Pila de interrupciones USTACK y bits de control Pila de mdulos BSTACK A continuacin se indican los recursos disponibles para evaluar dichas fuentes de informacin y el modo de emplearlas para analizar el error.

LEDs de la placa frontal de la CPU

En caso de producirse un estado STOP inoportuno, los LEDs situados en la placa frontal dan una primera informacin sobre la causa del error:

Indicador LED El LED STOP luce permanentemente El LED STOP parpadea lentamente El LED STOP parpadea rpidamente El LED SYS FAULT luce permanentemente El LED ADF luce permanentemente El LED QVZ luce permanentemente El LED ZYK luce permanentemente

Significado Las diferentes reacciones del LED STOP indican determinadas causas de interrupcin o de error. Consultar las explicaciones al respecto en el captulo 4.1.

Error de direccionamiento Retardo en acuse de recibo Error de tiempo de ciclo

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5-5

Informaciones sobre errores Funcin on line del PG "Salida AG-INFO/USTACK"

Con la funcin on line del aparato de programacin "Salida AG-INFO/USTACK" se obtiene informacin sobre el estado de los bits de control y el contenido de la pila de interrupciones (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: contenidos de los registros contenidos de los acumuladores contador de direcciones STEP SAZ e indicadores de resultado. Dependiendo de dnde haya tenido lugar la interrupcin que ha provocado el STOP, las informaciones visualizadas pueden referirse bien a mdulos de usuario o bien a mdulos del programa de sistema (OB 0). Estas informaciones son de gran ayuda a la hora de diagnosticar un error. 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 caractersticas de la CPU o del programa de usuario y, adems, dan informaciones adicionales sobre la causa del error. La funcin "Salida AG-INFO/USTACK" puede utilizarse en los estados operativos STOP, ARRANQUE y RUN; sin embargo, en el ARRANQUE y en RUN solamente se obtiene informacin sobre los bits de control y no sobre el contenido de la pila USTACK. En el captulo 5.4 se explica ms exhaustivamente el significado de los bits de control y la estructura de la pila de interrupciones.

Funcin on line "Salida AG-INFO/BSTACK"

La funcin on line del aparato de programacin "Salida AG-INFO/ BSTACK" permite obtener en el STOP informaciones sobre el contenido de la pila de mdulos (BSTACK vase captulo 3.2 "Anidamiento de mdulos"). En la pila BSTACK se encuentran todos los mdulos (mdulos del programa de usuario y mdulos de organizacin del programa de sistema OB 0) que han sido llamados sucesivamente hasta pasar a STOP y que, hasta ese momento, no han sido procesados por completo. Puesto que BSTACK se rellena desde abajo hacia arriba, la lnea superior contiene el mdulo que ha llamado al mdulo que provoc el error.

5-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Informaciones sobre errores

Al evaluar la lnea superior se obtienen las siguientes informaciones:

Informacin MODULO-NR.

Significado

Clase y nmero del mdulo que ha llamado al mdulo errneo MODULO-DIR. Direccin inicial absoluta de este mdulo en la memoria de usuario DIREC.-RETORNO Direccin absoluta de la 1 operacin STEP 5 de este mdulo en la memoria de usuario DIR.-REL Direccin relativa (= diferencia "DIREC. RETORNO - MODULO-DIR.") de la instruccin siguiente a ejecutar en este mdulo (las direcciones relativas pueden ser visualizadas en el aparato de programacin en el modo de operacin "bloqueo de entrada"/ interruptor de llave y con S5-DOS a partir de la versin IV mediante la tecla de funcin "direcciones") DB-NR. Nmero del ltimo mdulo de datos abierto en este mdulo DB-DIR. Direccin inicial absoluta de este mdulo de datos (direccin de la palabra de datos DW 0) en la memoria del programa

Ejemplo

Evaluacin de la "Salida AG-INFO/BSTACK":

MODULONR. PB 3 PB 2 PB 1 OB 1 OB 66 OB 63 OB 62 OB 61
1)

MODULODIR. 00090 00050 00040 00010 E2B10 E0FC0 E0490 E0010

DIREC.-RETORNO DIR.-REL. 98 51 41 11 E2C40 E12FA E0CBE E0273 00008 00001 00001 00001 00130 0033A 0082E 00263

DB-NR.

DB-DIR. 0 0 0 0 0 0 0 0

1)

Los mdulos ejecutados antes del OB 1 son mdulos internos del programa de sistema (la pila BSTACK est estructurada en orden cronolgico).

En este ejemplo, el mdulo PB 3 ha llamado al mdulo errneo en la direccin relativa "00008 - 1 = 00007". Durante el salto al mdulo errneo no estaba abierto ningn mdulo de datos.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5-7

Procedimiento para el anlisis de errores

5.3

Procedimiento para el anlisis de errores


Si la CPU ha pasado a un estado STOP inoportuno hay que utilizar todas las informaciones disponibles para poder localizar el error:

Paso 1

Accin Comprobar los estados de los LEDs STOP y SYSFAULT, as como los LEDs de error situados en la placa frontal. Ayudarn a averiguar las causas que han originado el error o la interrupcin. Analizar con la funcin del aparato de programacin on line "Salida AG-INFO/ USTACK" el estado de los bits de control y el contenido de la PILA USTACK. Se obtienen ms informaciones sobre la ubicacin y la causa del error. Seleccionar la funcin del aparato de programacin on line "Salida AG-INFO/ BSTACK": En la lnea superior de la PILA DE MODULOS se encuentran informaciones sobre el mdulo que ha llamado al mdulo causante del error. El dato de sistema BS 75 (vase captulo 8.3.4) ofrece ms informaciones detalladas sobre el error.

5-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Bits de control y pila de interrupciones

5.4

Bits de control y pila de interrupciones


Por medio de las funciones on line del aparato de programacin AG-INFO y Salida USTACK es posible analizar el estado operativo, las caractersticas de la CPU y del programa de usuario, y las causas eventuales de errores e interrupciones.

Nota Los bits de control pueden visualizarse en todos los estados operativos; el contenido de la pila de interrupciones slo se puede visualizar en STOP.

Los bits de control indican el estado operativo actual o precedente y la causa del error. Si se producen varios errores, todos stos estarn representados en los bits de control. En la pila USTACK se indica el lugar de la interrupcin (direcciones) con el estado actual de los indicadores y el contenido de los acumuladores, as como las causas del error. Cuando aparecen varias interrupciones, se genera una pila de interrupciones de varios niveles (mximo 5): Profundidad 01 = ltima causa de la interrupcin, Profundidad 02 = penltima causa de la interrupcin, etc... Un desbordamiento de la pila USTACK provoca el paso inmediato al estado STOP (STOP TOTAL!). En este caso se precisa una DESCONEXION /CONEXION de la tensin de red y un NUEVO ARRANQUE. A continuacin se explica el significado de las abreviaturas de los bits de control y de la pila de interrupciones.

Nota El texto visualizado en la pantalla del aparato de programacin depender del software del aparato utilizado. De ah que su representacin pueda diferir de la aqu impresa, lo que no significa que no sea vlida esta ltima!

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5-9

Bits de control y pila de interrupciones

5.4.1 Bits de control

La primera pgina que aparece en pantalla al visualizar la pila USTACK indica el estado de los bits de control (vase figura 5-1).

Nota La mscara de la pila USTACK representada en la figura 5-1 es la que aparece en el software del aparato de programacin STEP 5/ST, versin 6.3 o STEP 5/MT, versin 6.0, con "Disquete Delta CPU 948" respectivamente. En las versiones de software anteriores, varan las denominaciones de algunos bits de control. Su significado corresponde sin embargo a la descripcin que aparece en las tablas siguientes.

B I T S

C O N T R O L
E0VH X TEST PGSTP UPROG GEP X BSTG HALT USYS WIEDF ANEG PARIN SRAMF FMODE BATT BEFG X STP UANL EINP MCG STS AFEL STOPS BEARBE SYSFHL WIEZU URLER MEHRP SYNCR

Descripcin sist.:

Causa stop:

Ident. arranque:

NEUDF X AWEG X QVZIN FE2S FDX0

URLDF NEUZU MSEG BSTKF BSTEF

Ident. errores:

UMCG KDX0

MODUN FDB1

UAFEHL KDB1 FEDBX QVZNIO

WEFES DB0UN

Fig. 5-1

Ejemplo de la primera pgina de la pantalla "SALIDA USTACK": bits de control

Los bits de control se pueden visualizar en todos los estados operativos. Indican el estado operativo actual o precedente a la parada de la CPU y dan informaciones sobre ciertas caractersticas de la CPU y del programa de usuario STEP 5. Los bits de control descritos bajo "Ident. errores" informan sobre los errores que pueden aparecer en el ARRANQUE (por ejemplo, en el primer nuevo arranque) y en RUN (por ej., en el procesamiento controlado por tiempo). Si aparecen varios errores, entonces todos estos se visualizarn en los bits de control.

5 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Bits de control y pila de interrupciones

En las tablas siguientes se explica el significado de cada uno de los bits de control.
Tabla 5-1 Significado de los bits de control "Descripcin sist."

DESCRIPCION DEL SISTEMA Bit de control E0VH Significado El byte de entrada EB 0 (alarmas de proceso) existe; es decir, la tarjeta de entrada digital con direccin 0 estaba insertada en el ltimo NUEVO ARRANQUE y ha dado acuse de recibo El autmata se alimenta de una batera central Batera del aparato central no disponible (BAU) Modo monoprocesador Modo multiprocesador En modo multiprocesador, el arranque de las CPUs se efecta de forma sincronizada Modo "test" Ajuste del DX 0 "interrupcin en lmites de mdulos" Ajuste del DX 0 "interrup. en lmites de instrucciones" Memory Card insertada

GEP BATT EINP MEHRP SYNCR TEST BSTG BEFG MCG

Tabla 5-2

Significado de los bits de control "Causa STOP"

CAUSAS DE STOP (vase BS 7) Bit de control PGSTP HALT Significado STOP por operacin del aparato de programacin STOP multiprocesador: a) Selector del coordinador en STOP o b) Estado STOP por instruccin STOP del programa de sistema, cuando ha aparecido un error, sin estar cargado el correspondiente OB de error STOP debido a la instruccin STS (tras ejecutar la instruccin) STOP debido al selector en posicin STOP

STS STOPS

BEARBE STOP debido a la funcin del aparato de programacin "Control elaboracin OFF" UPROG STOP debido al programa de usuario

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 11

Bits de control y pila de interrupciones

CAUSAS DE STOP (vase BS 7) Bit de control Significado

Tabla 5-2 (continuacin):

USYS UANL AFEL

STOP debido al programa de sistema (REARRANQUE posible) STOP debido a un modo de arranque inadmisible STOP debido a un error en el mdulo de arranque

SYSFHL STOP debido a un error del sistema (posiblemente provocado por un error de usuario, por ej., sobreescritura de la RAM del sistema por una transferencia en bloque, (cuando un error de sistema est marcado con una cruz, aparece como informacin adicional un nmero hexadecimal de 4 dgitos/cdigo de error en el margen inferior de la pantalla - vase BS 75 en captulo 8)

Tabla 5-3

Significado de los bits de control "Ident. arranque"

IDENTIFICACIONES DE ARRANQUE (vase BS 8) Bit de control Significado

NEUDEF El ltimo arranque fue un NUEVO ARRANQUE WIEDF URLDF NEUZU WIEZU URLER AWEG ANEG MSEG El ltimo arranque fue un REARRANQUE Se ha efectuado un BORRADO TOTAL o est activado Puede efectuarse un NUEVO ARRANQUE Puede efectuarse un REARRANQUE Se requiere un BORRADO TOTAL Se ha ajustado REARRANQUE AUTOMATICO Se ha ajustado el NUEVO ARRANQUE AUTOMATICO Se ha ajustado un arranque manual

5 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Bits de control y pila de interrupciones

Tabla 5-4

Significado de los bits de control "Ident. errores"

"Ident. errores" Bit de control QVZIN PARIN BSTKF BSTEF UMCG Significado Retardo en acuse de recibo durante la inicializacin Error de paridad durante la inicializacin Identificacin de mdulo errnea Identificacin de fin de mdulo errnea La Memory Card insertada no es vlida

MODUN El contenido de la Memory Card es mayor que la memoria de usuario disponible FE2S SRAMF KDB1 KDX0 FDB1 FDX0 FMODE FEDBX WEFES DB0UN Error en la 2 interfaz Error de la RAM del sistema Falta el DB 1 en modo multiprocesador Falta el DX 0 en modo multiprocesador Error en el DB 1 Error en el DX 0 No se admiten alarmas de proceso EB 0 en modo multiprocesador Error en las operaciones STEP 5: E DB, EX DX Software de colisin de alarmas temporizadas: desbordamiento en cola de espera DB 0 modificado despus del ltimo NUEVO ARRANQUE; por ello no es posible el REARRANQUE

UAFEHL Error en la palabra indicadora de interrupciones (UAW)

QVZNIO Test de QVZ no es correcto

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 13

Bits de control y pila de interrupciones

5.4.2 Contenido de la pila USTACK

Cuando la CPU est en STOP, despus de aparecer los bits de control y de confirmar mediante la tecla de aceptacin, se visualiza en pantalla el contenido de la pila USTACK. Al pasar la CPU a STOP, el programa de sistema registra en la pila USTACK todas las informaciones necesarias para un rearranque. Las informaciones que contiene la pila USTACK indican de qu tipo de error se trata y dnde ha tenido lugar. Si la causa del STOP ha sido un solo error, entonces se visualiza un solo nivel de informacin. Si se han producido varios errores, entonces se visualizan tantos niveles de informacin como se hayan producido errores (PROFUND. 01, PROFUND. 02, etc.). En todos los niveles est marcado con una cruz un slo 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 que la CPU pasara al estado STOP. La figura 5-2 muestra un ejemplo de visualizacin del contenido de la pila USTACK en el en el aparato de programacin.

PILA DE INTERRUPCION
PROFUND.: 01 BEF-REG: 1205 BST-STP: EDEFF CANAL NUMERO: 00FD PARENT.: KE1 000 AKKU1: 0000 31BA INFO. RESULTADO: SAZ (new): 000B3 PB-NR.: 9 00013 REL-SAZ: 000B2 SAZ (old): KE2 000 KE3 000 AKKU2: 0000 0005 ANZ1 STATUS X KB NAU STS ANZ0 VKE X KDB QVZ WEFEH 00108 DB-ADR: 00000 BA-ADR: OB-NR.: DB-NR.: 1 DBL-REG: 0000 BS-REG: 00000 UAMK: 09DF3FBF UALW: FFFFFFFF KE4 000 KE5 000 KE6 000 AKKU3: 0004 0005 AKKU4: 0004 0005 OVFL OVFLS ODER ERAB

CAUSA DE ERROR:

TRAF ADF PEU

SUF PARE HALT

STUEB ZYK X

STUEU STOP

Fig. 5-2

Ejemplo de una pgina del indicador "SALIDA USTACK": contenido

5 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Bits de control y pila de interrupciones Explicacin de los indicadores pila USTACK PROFUNDIDAD
Nivel de informacin del contenido de la pila USTACK en caso de anidamiento de errores: PROFUND. 01 = ltima causa de error aparecida, PROFUND. 02 = penltima causa de error aparecida ...... PROFUND. 05 = ...... (profundidad mxima)

Datos sobre la ubicacin del error

La tabla siguiente contiene datos (identificaciones de la pila USTACK) sobre el lugar en que se ha producido el error. Estos datos permiten localizar en el programa de usuario la instruccin que ha causado el STOP de la CPU.

Tabla 5-5

Significado de las identif. USTACK sobre el lugar del error

Datos sobre la ubicacin del error Identif. USTACK BEF-REG Significado Registro de instrucciones: Contiene el cdigo mquina (1 palabra de la ltima instruccin procesada en un nivel de procesamiento interrumpido). Contador de direcciones STEP (nuevo): Contiene la direccin absoluta de la siguiente instruccin a procesar en la memoria de programa. En caso de REARRANQUE, la CPU continuar el procesamiento con esta instruccin. Direccin inicial absoluta (DW 0) del ltimo mdulo de datos abierto en la memoria de programa (= 0000, si no se ha abierto ningn mdulo de datos). Direccin absoluta en la memoria de programa de la prxima instruccin a procesar en el ltimo mdulo llamado. Puntero de la pila de mdulos: Contiene la direccin offset de 20 bit de la ltima entrada efectuada en BSTACK (siempre Exxxx). Tipo y nmero del ltimo mdulo procesado

SAZ (new)

DB-ADR

BA-ADR

BST-STP

PB-NR (segn el tipo PB, OB ...)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 15

Bits de control y pila de interrupciones

Datos sobre la ubicacin del error Identif. USTACK


Tabla 5-5 (continuacin):

Significado

DB-NR OB-NR (segn el tipo OB, PB ...) REL-SAZ

Nmero del ltimo mdulo de datos abierto Tipo y nmero del ltimo mdulo que ha efectuado la llamada Contador de direcciones relativas STEP: Contiene la direccin relativa (referente a la direccin inicial del mdulo) de la operacin siguiente a procesar en el ltimo mdulo procesado. Longitud del ltimo mdulo de datos abierto Contenido del registro base de direcciones antes de pasar al estado STOP Nmero de la ltima pgina seleccionada (los accesos a las pginas se refieren a esta pgina - para ms informacin sobre los accesos a pginas, vase captulo 9) Contador de direcciones STEP (antiguo): Contiene la direccin absoluta de la ltima operacin procesada en la memoria de programa de un nivel de programa interrumpido; en caso de error, el SAZ (antiguo) indica exactamente la operacin que ha ocasionado el error. Palabra de mscara de indicadores de interrupcin: En la UAMK se visualizan las causas de interrupcin habidas hasta el momento y cuyo tratamiento an no ha concluido. Palabra de borrado de indicadores de interrupcin Cantidad de niveles de parntesis: "KEx abc" con x = 1 a 7 niveles, a = ODER (O, vase indicadores de bits), b = VKE (resultado de combinacin vase indicadores de bits), c = 1: U(, c = 0: O(. Contenido del registro de clculo cuando la CPU pasa a STOP

DBL-REG BS-REG CANAL NUMERO

SAZ (old)

UAMK

UALW PARENT.

AKKU1 a AKKU4

5 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Bits de control y pila de interrupciones INDICADORES DE RESULTADO

vase captulo 3.5

CAUSA DE ERROR

Las siguientes abreviaturas (identificaciones de la pila USTACK) representan las causas de error ms importantes.

Tabla 5-6

Identificaciones de USTACK: CAUSA DE ERROR

CAUSAS DE ERROR Identif. Significado (OB de error llamado) USTACK KB KDB TRAF SUF El mdulo llamado no est cargado (OB 19) El mdulo de datos abierto no est cargado (OB 19) Error de carga o transferencia (OB 32) Error de sustitucin (OB 27): Una instruccin STEP 5 que ha sido procesada no puede ser sustituda Desbordamiento de la pila de mdulos: Profundidad de anidamiento demasiado grande; solucin: NUEVO ARRANQUE Desbordamiento de la pila de interrupciones: Profundidad de anidanamiento demasiado grande; solucin: DESCONEXION/CONEXION, despus: NUEVO ARRANQUE Fallo de la tensin de red en el aparato central Retardo en acuse de recibo (OB 23/OB 24/OB 28/OB 29) Error de direccionamiento en las entradas y salidas digitales con imagen de proceso (OB 25) Error de paridad (OB 30) Tiempo de supervisin de ciclo excedido (OB 26) Estado STOP debido a selector en posicin STOP Estado STOP debido a la instruccin STEP 5 STS (despus de ejecutarse la instruccin)

STUEB

STUEU

NAU QVZ ADF PARE ZYK STOP STS

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 17

Bits de control y pila de interrupciones

CAUSAS DE ERROR Identif. Significado (OB de error llamado) USTACK


Tabla 5-6 (continuacin):

WEFEH

Alarma temporizada/hardware (OB 33): Base de tiempo de alarma temporizada enmascarada demasiado tiempo Periferia no disponible = fallo de la tensin de red en el aparato de ampliacin: Tras suprimir la seal PEU esttica siempre se llama al OB 22 (REARRANQUE AUTOMATICO) STOP en modo multiprocesador: a) Selector del coordinador en STOP b) STOP de otra CPU en modo multiprocesador

PEU

HALT

5 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Bits de control y pila de interrupciones

5.4.3 Ejemplo de diagnstico de un error mediante la pila USTACK

La figura 5-3 muestra la estructura de la pila de interrupciones (USTACK) en relacin con las interrupciones aparecidas. - El nivel de procesamiento CICLO (OB 1) es interrumpido por aparicin de una interrupcin. - A consecuencia de ello se activa el nivel de procesamiento INTERRUPCION y se procesa el OB 3. - Debido a la aparicin de una alarma temporizada se abandona el nivel INTERRUPCION, se activa el nivel ALARMA TEMPORIZADA y se procesa el OB 13. - A causa de una instruccin de direccionamiento errnea se activa el nivel ADF y en ste se procesa el OB 25. El usuario ha programado una instruccin de parada (STP) en su programa de tratamiento de errores: la CPU interrumpe por consiguiente el procesamiento del programa.

STS
Profundidad 01

ADF

OB 25 STS X

Profundidad 02

ALARMA RELOJ

OB 13 ADF X

Profundidad 03

INTERRUPCION

OB 3

Profundidad 04

CICLO

OB 1

Niveles de procesamiento

USTACK

Fig. 5-3

Ejemplo de evaluacin de la pila de interrupciones (USTACK)

Antes de pasar definitivamente al estado STOP, han sido interrumpidos 4 niveles de procesamiento diferentes. Si ahora se hace visualizar la pila USTACK en el PG, entonces aparece una pila de cuatro niveles, de los cuales el primero ser la pila de profundidad 01, en la cual est registrada la identificacin del ltimo nivel de procesamiento interrumpido (= ADF). A continuacin, se puede acceder a los dems niveles hasta llegar a la USTACK de profundidad 04, la cual representa el nivel de procesamiento CICLO que ha sido interrumpido en primer lugar.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 19

Tratamiento de errores mediante mdulos de organizacin

5.5

Tratamiento de errores mediante mdulos de organizacin


Cuando el programa de sistema detecta un determinado error, llama al mdulo de organizacin previsto para ese caso. Es posible definir el comportamiento de la CPU programando este mdulo de organizacin de forma apropiada. Dependiendo de cmo se haya programado este mdulo de organizacin es posible continuar el procesamiento normal del programa, poner la CPU en STOP y/o procesar un "programa de error" especfico. Se dispone de mdulos de organizacin para los siguientes tipos de error:

Tabla 5-7

Mdulos de organizacin llamados en caso de error

Causa del error Llamada a un mdulo no cargado (KB) Apertura de un mdulo de datos DB/DX no cargado (KDB) Retardo en acuse de recibo en el programa de usuario al acceder a las tarjetas de E/S (QVZ) Retardo en acuse de recibo al actualizar la imagen de proceso y al transferir marcas de acoplamiento (QVZ) Error de direccionamiento (ADF) Exceso del tiempo de ciclo (ZYK) Error de sustitucin (SUF) Retardo en acuse de recibo en el byte de entrada EB 0 (alarmas de proceso QVZ) Retardo en acuse de recibo en periferia decentral (zona de direcciones ampliada - QVZ) Error de paridad y retardo en acuse de recibo en la memoria de usuario (PARE) Error de carga y transferencia (TRAF) Colisin de alarmas temporizadas: a) Desbordamiento de cola de espera (bit de control WEFES) b) Base de tiempo de alarma temporizada enmascarada demasiado tiempo (WEFEH) Error en la instruccin STEP 5 "E DB/EX DX" (bit de control FEDBX) Error en el autotest (vase captulo 5.7)
1)

Llamada al OB 19 OB 19 OB 23 OB 24 OB 25 OB 26 OB 27 OB 28 OB 29 OB 30 OB 32 OB 33

Reaccin si OB no programado ninguna STOP ninguna ninguna STOP


1)

STOP STOP STOP ninguna STOP STOP STOP ninguna

OB 34 OB 36

STOP ninguna

Esto es vlido slo cuando el error de direccionamiento no est bloqueado por la operacin STEP 5 "AFS".

5 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Tratamiento de errores mediante mdulos de organizacin Ejemplos de reaccin cuando el mdulo de organizacin no est cargado

a) Ninguna reaccin; no se interrumpe el procesamiento cclico del programa. Si ocurre por ejemplo un retardo en acuse de recibo y ni el OB 23 ni el OB 24 estn cargados, el procesamiento cclico del programa no se interrumpe (vase tabla). No hay reaccin de la CPU. Si por el contrario, la CPU debe ser puesta en STOP en caso de QVZ, el mdulo de organizacin correspondiente (por ejemplo, OB 23 en caso de QVZ) ha de contener una instruccin de parada (STP para STOP al final del ciclo) y terminar con la instruccin BE. Ejemplo para OB 23: : : :STP :BE Se ha producido un QVZ Se interrumpe el procesamiento cclico La CPU se pone en STOP al final del procesamiento cclico

b) Reaccin : la CPU se pone en estado STOP. Cuando se produce un error - por ej., error de ciclo o de carga/transferencia - la CPU se pone inmediatamente en STOP si los mdulos de organizacin correspondientes no estn cargados. Si de forma excepcional (por ej., durante la puesta en funcionamiento) uno u otro error no ha de interrumpir el procesamiento cclico del programa, basta una orden de "fin de mdulo" en el mdulo de organizacin correspondiente. Ejemplo de OB 25: : : :BE

Se ha producido un ADF Contina el procesamiento cclico. La CPU no se pone en STOP.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 21

Tratamiento de errores mediante mdulos de organizacin Interrupciones en el procesamiento de los mdulos de organizacin de error

Una vez que el programa de sistema ha efectuado la llamada al mdulo de organizacin correspondiente, se procesa el programa de usuario que se encuentra en el mdulo. Si durante el procesamiento de un mdulo de organizacin se produce otro error, se interrumpe el programa - al igual que en el procesamiento cclico - en el prximo lmite de instruccin y se llama al mdulo de organizacin correspondiente. Los mdulos de organizacin se procesan en el orden en que son llamados.

Nota Se pueden anidar como mximo 5 mdulos de organizacin de error. Si existen ms de 5 errores, la pila USTACK se desborda y la CPU se pone en STOP TOTAL.

5 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Causas de error y reacciones de la CPU

5.6

Causas de error y reacciones de la CPU


En RUN puede interrumpirse el procesamiento ciclco, controlado por tiempo o por alarmas en lmites de instrucciones por la aparicin de determinadas causas de interrupcin . Cuando se produce un error en la inicializacin y en el ARRANQUE, tambin se interrumpe el programa de arranque. La CPU se pone en STOP y llama al mdulo de organizacin previsto para este error. Los errores que aparecen en el programa de arranque se tratan como en el ciclo. Las reacciones varan en funcin de la causa de interrupcin: la CPU pasa inmediatamente al estado STOP sin llamar previamente al OB de error (por ej., NAU stop total, STUEU stop total, PEU stop parcial), antes de pasar al estado operativo STOP, el programa de sistema llama a un determinado OB de error, programado por el usuario y en el cual - segn la causa del error - puede evitarse que la CPU se ponga en STOP (por ej. QVZ/EB 0 OB 28, ADF OB 25).

En caso de error, es preciso observar el estado de los bits de control bajo "Ident. errores" y las informaciones de la pila USTACK indicadas bajo CAUSA DE ERROR. A continuacin se explican con ms detalle las posibles causas de error.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 23

Causas de error y reacciones de la CPU

5.6.1 OB 19: Llamada a un mdulo de codigo no cargado (KB)

El programa de sistema detecta un error cuando el programa de usuario llama a un mdulo no existente. Esto vale para todos los mdulos de cdigo y para llamadas tanto condicionales como incondicionales. Cuando en el programa de usuario se llama a un mdulo de cdigo no existente, el programa de sistema llama entonces al mdulo de organizacin OB 19, siempre que est cargado. En l puede determinarse el comportamiento de la CPU. Si el OB 19 no ha sido cargado, el programa de sistema continuar el procesamiento del programa STEP 5 interrumpido con la siguiente operacin.

5.6.2 OB 19: Llamada a un mdulo de datos no cargado (KDB)

Si en el programa de usuario se abre un mdulo de datos DB o DX no existente en la memoria o no vlido, el programa de sistema detecta un error y llama al mdulo OB 19, si est cargado. Si el OB 19 no est cargado, la CPU se pone en STOP. En los registros DBA y DBL se escribe el valor 0.

Nota El OB 19 se llama aunque no est cargado el mdulo de cdigo o de datos. Leyendo el dato de sistema BS 75 puede determinarse mediante el programa STEP 5 cul de los dos errores se ha producido: - Contenido del BS 75 en KB: 0101H, - Contenido del BS 75 en KDB: 0904H.

5 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Causas de error y reacciones de la CPU

5.6.3 OB 23/24, OB 28/29: Retardo en acuse de recibo (QVZ) .

Un retardo en acuse de recibo se produce cuando en accesos de lectura o escritura, la zona de memoria direccionable no confirma el acceso con la seal de acuse de recibo (ready) en un tiempo determinado y supervisado por el hardware. La causa del retardo en acuse de recibo puede ser, por ejemplo, un defecto en la tarjeta direccionada o el haber extrado la tarjeta durante el funcionamiento. Los retardos en acuse de recibo descritos a continuacin provocan la interrupcin del procesamiento del programa de usuario, pasan el tratamiento de error por el programa de sistema y llaman al mdulo de organizacin correspondiente, si est cargado:

OB 23

QVZ en accesos directos a la periferia: Causa del error Retardo en acuse de recibo en un acceso directo (en el programa de usuario) a travs del bus S5 a una IP, al coordinador KOR o a una tarjeta de E/S (por ej., con las instrucciones de carga y transferencia "L/T P..." o "L/T Q..."). Reaccin Si el mdulo de organizacin OB 23 no est cargado, el programa de sistema contina el procesamiento del programa de usuario.

OB 24
Causa del error Retardo en acuse de recibo al actualizar la imagen de proceso de las entradas y salidas o al transferir marcas de acoplamiento. Reaccin Si el mdulo de organizacin OB 24 no est cargado, el programa de sistema contina el procesamiento del programa de usuario.

Prolongacin del tiempo de ejecucin

Al llamar al OB 23 u OB 24, un retardo en acuse de recibo prolonga el tiempo de ejecucin de la operacin STEP 5 que lo ha provocado, en caso de continuar el procesamiento: Prolongacin = "tiempo de supervisin de acuse de recibo + tiempo de tratamiento de error por el programa de sistema + eventualmente tiempo de procesamiento del OB de error llamado".

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 25

Causas de error y reacciones de la CPU OB 28


Causa del error Reaccin

Retardo en acuse de recibo en el Si el mdulo de organizacin byte de entrada EB 0 (alarmas de OB 28 no est cargado, la CPU proceso) se pone en STOP.

OB 29
Causa del error Retardo en acuse de recibo de la periferia descentralizada en las zonas de direcciones: - F 0000H a F EFFFH - F F200H a F FFFFH Reaccin Si el mdulo de organizacin OB 29 no est cargado, el programa de sistema contina el procesamiento del programa de usuario.

Direccin de error

En caso de producirse un retardo en acuse de recibo, la direccin de error puede leerse en la zona de datos del sistema (vase captulo 8):

BS 68 69

Contenido Direccin de error alta Direccin de error baja

Direccin E F044H E F045H

5.6.4 OB 25: Error de direccionamiento (ADF)

Un error de direccionamiento se produce cuando se llama mediante una operacin STEP 5 a una entrada o salida de la imagen de proceso que no tena asignada ninguna tarjeta de E/S cuando se efectu el ltimo NUEVO ARRANQUE (la tarjeta no estaba insertada, era defectuosa o no estaba indicada en el mdulo de datos DB 1 de la CPU). La operacin STEP 5 en la que ha tenido lugar el error de direccionamiento es procesada en su totalidad: en las operaciones binarias, el bit de la imagen de proceso es consultado y combinado o puesto a 0 1. Tambin se ejecutan operaciones de carga y transferencia. En caso de seguir trabajando pueden producirse reacciones errneas o inoportunas!

5 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Causas de error y reacciones de la CPU

Cuando se produce un ADF, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al mdulo de organizacin OB 25. Despus de procesar el programa del mdulo OB 25 se prosigue con la siguiente operacin del programa interrumpido. Si el OB 25 no est cargado, y se produce un error de direccionamiento, la CPU se pone en STOP. Mediante la operacin STEP 5 "AFS" se puede bloquear la supervisin de errores de direccionamiento en ciertas partes del programa o bien en todo el programa. Mediante la operacin "AFF" se puede volver a desbloquear (vase captulo 3.5.4 o lista de operaciones).

5.6.5 OB 26: Error de tiempo de ciclo (ZYK)

El tiempo de ciclo es el tiempo que transcurre entre dos inicios del OB 1. Abarca todo el procesamiento del programa cclico incluidas las interrupciones, el procesamiento de alarmas y las operaciones por parte del programa de sistema. El tiempo de supervisin de ciclo predefinido en la CPU puede excederse, por ejemplo, a causa de una programacin errnea (bucle de programa).

Nota En muy raras ocasiones puede atribuirse un error del tiempo de ciclo a fallos del hardware. Por lo general, se trata de errores del programa de usuario. Tambin puede ocurrir que los programas no estn bien coordinados con el tiempo de supervisin de ciclo y viceversa.

Cuando se excede el tiempo de ciclo, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al mdulo de organizacin OB 26, si est cargado. El tiempo de ciclo vuelve a arrancar (trigger). En caso de que el tiempo de supervisin haya vuelto a transcurrir antes de finalizar el procesamiento del OB 26, la CPU se pone en STOP. Si el OB 26 no est cargado, la CPU se pone en STOP. El tiempo de supervisin es regulable (10 a 255 mseg.) y puede ser redisparado (trigger, vase arriba). El usuario puede definir en cada caso el tiempo de supervisin de ciclo ajustando el DX 0 (vase captulo 7) o programando el OB 31. El ajuste estndar es de 200 ms. En el programa cclico se puede "redisparar" el tiempo de supervisin mediante una llamada al OB 222.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 27

Causas de error y reacciones de la CPU

5.6.6 OB 27: Error de sustitucin (SUF)

Cuando en un mdulo de funciones deba ejecutarse una operacin con un operando formal, la CPU sustituir este operando al procesar el programa de usuario por el operando actual definido en la llamada al mdulo de funciones. Si la CPU detecta una sustitucin no admisible, el programa de sistema interrumpir el procesamiento del programa de usuario y llamar al mdulo de organizacin OB 27. Si el OB 27 no est cargado, la CPU se pone en STOP. El error SUF se indica no slo en caso de una sustitucin no admisible sino tambin en los siguientes casos: Cdigo de operacin no vlido Particularidad: Los mdulos de datos DB 0 y DB 1 no deben ser abiertos por el usuario. Una operacin "A DB 0" o "A DB 1" es considerada por la CPU como un error de sustitucin. En los registros DBA y DBL se escribe el valor 0

5.6.7 OB 30: Error de paridad y QVZ en la memoria de usuario (PARE)

La memoria de usuario est protegida por un bit de paridad. El programa de sistema comprueba en cada acceso a la memoria de usuario si el bit de paridad es correcto. Si el bit de paridad no es correcto, se produce un error de paridad. El programa de sistema llama al mdulo OB 30. Si ste no ha sido cargado, la CPU se pone en STOP. En caso de producirse un retardo en acuse de recibo en la memoria de usuario, se reacciona de la misma manera.

PARE en acceso a la memoria RAM de sistema operativo

Cuando se produce un error de paridad en un acceso a la RAM del sistema operativo, el programa de sistema no llama al OB 30, sino que pasa a STOP TOTAL.

5 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Causas de error y reacciones de la CPU Direccin de error

Cuando se produce un error de paridad o un retardo en acuse de recibo, la direccin del error puede leerse en la zona de datos del sistema (vase captulo 8):

BS 70 71

Contenido Direccin de error alta Direccin de error baja

Direccin E F046H E F047H

5.6.8 OB 32: Error de carga y transferencia (TRAF)

Los errores de carga o transferencia se avisan en los siguientes casos:

En los accesos a los mdulos DB o DX, la CPU compara la longitud del mdulo de datos abierto con el parmetro de la instruccin de carga/transferencia. Si este parmetro sobrepasa la longitud efectiva del mdulo de datos, la instruccin de carga/transferencia no se ejecuta. As se evita en los errores de transferencia la sobreescritura accidental de datos en la memoria. Cuando se producen errores de carga no se pierden los contenidos de los acumuladores. Tambin se produce un error de carga/transferencia cuando se pretende leer o modificar un bit de una palabra de datos no existente. El error de carga/transferencia se produce asimismo cuando se accede a una palabra de datos antes de que el mdulo de datos haya sido abierto (con "A DBn" o "AX DXn"). Un error de carga/transferencia tambin puede ser provocado por accesos absolutos a la memoria a travs del registro BR, o por lmites errneos de zonas al ejecutar las operaciones STEP 5 "TNW", "TXW" y "TXB". Cuando el programa de sistema detecta un error de carga/transferencia, llama al mdulo de organizacin OB 32. La instruccin que ha ocasionado el error no se ejecuta. Si el OB 32 no est cargado, la CPU se pone en STOP.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 29

Causas de error y reacciones de la CPU

5.6.9 OB 33: Colisin de alarmas temporizadas (WEFES/WEFEH)

El procesamiento del programa controlado por tiempo (alarmas temporizadas) se efecta con los mdulos de organizacin OB 6, OB 9 y OB 10 a OB 18.

En la CPU 948 se distinguen los siguientes tipos de colisiones:

Desbordamiento en cola de espera

Causa:

Desbordamiento en cola de espera durante el procesamiento de la alarma temporizada: Ms de tres alarmas temporizadas estn en cola de espera en uno de los tres perodos ms breves (OB 10 a 12) o uno de los restantes OBs (OB 13 a 18) vuelve a ser llamado antes de haber sido procesada por completo la primera llamada.

Reaccin: El programa de sistema llama al OB 33 como interfaz con el usuario. En l se puede programar la reaccin deseada. Si el OB 33 no est cargado, la CPU se pone en STOP.

Indicacin en el aparato de programacin tras ejecutar la funcin de PG "Salida AG-INFO/USTACK": En los bits de control aparece marcado con una cruz el indicador de error WEFES.

Enmascaramiento de la base de tiempo de una alarma temporizada

Causa: La base de tiempo de la alarma temporizada ha sido enmascarada demasiado tiempo (cuando hay interrupcin en lmites de mdulos/alarmas de proceso). Este error se refiere a la base de tiempo de las alarmas temporizadas y al tiempo de ejecucin de un mdulo en el programa de usuario cclico, es decir, cuando un mdulo cclico se procesa en un tiempo superior al de la base de tiempo, se produce una colisin.

5 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Causas de error y reacciones de la CPU

Reaccin: El programa de sistema llama al OB 33 como interfaz con el usuario. En l se puede programar la reaccin deseada. Si el OB 33 no est cargado, la CPU contina el procesamiento del programa.

Indicacin en el aparato de programacin tras ejecutar la funcin de PG "Salida AG-INFO/USTACK": En los bits de control aparece marcado con una cruz el indicador de error WEFEH.

Cuando se llama al OB 33, el programa de sistema registra en el AKKU-1-L una identificacin de colisin de alarmas temporizadas (vase captulo 4.5.3).

Nota En los modos "Byte Entrada 0 Alarma Proceso" e "interrupcin en lmites de mdulos", el SAZ no indica el mdulo en cuyo lmite (instruccin BE) ha tenido lugar la colisin de alarmas temporizadas sino el mdulo que llam al que provoc el error (direccin de retroceso).

Mientras la causa de un error no haya sido eliminada, es decir, mientras el error subsista o aparezca repetidamente en cada ciclo del procesamiento de la operacin correspondiente, se llamar una y otra vez al mdulo de organizacin de error respectivo. Segn lo que dure el tratamiento de error por el programa de sistema y el tiempo de procesamiento del mdulo de organizacin de error puede prolongarse considerablemente el tiempo de ciclo.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 31

Causas de error y reacciones de la CPU

5.6.10 OB 34: Error en E DB/EX DX (FEDBX) Causas: En la operacin E DB/EX DX se ha indicado un nmero de mdulo no vlido (el nmero de un mdulo reservado o un nmero > 255), En la operacin E DB/EX DX se ha indicado una longitud de mdulo no vlida (> 4091), Al llamar la operacin E DB/EX DX ya no queda suficiente espacio en la memoria de usuario. Reaccin: El programa de sistema llama al OB 34, si est cargado. Si no lo est, la CPU se pone en STOP.

5.6.11 OB 35: Errores de comunicacin

Si se producen anomalas en la segunda interfaz serie con acoplamiento de computadoras RK 512, transmisin con procedimiento 3964/3964R, transmisin con "driver abierto" o transmisin con SINEC L1, el programa de sistema llama al mdulo de organizacin OB 35 y deposita en el AKKU 1 informaciones adicionales que explican ms detalladamente el error que se ha producido.

Reaccin si el OB 35 no est cargado

Si no se ha programado ningn OB 35, el programa de sistema no muestra reaccin alguna y la CPU no pasa al estado STOP.

Informacin sobre errores en AKKU 1

El programa de sistema comprueba cada 100 ms si se han producido errores de comunicacin en la segunda interfaz serie. En caso afirmativo deposita informaciones al respecto en AKKU 1. Al llamar al OB 35 solamente se pueden transferir los nmeros de error de mximo tres errores. En caso de producirse ms de tres errores, ello se indica mediante una identificacin especial de desbordamiento.

5 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Causas de error y reacciones de la CPU Estructura de la informacin de error en AKKU 1

31 AKKU 1 0

24 23 18 15 8 7 0 0 Nmero de Nmero de Nmero de error 1 error 2 error 3

= 0, si no se han registrado errores en la zona de errores =1, si se han registrado errores en la zona de errores = 0, si no se ha rebasado el nmero de errores admisible (mx. 3 entradas) = 1, si se ha rebasado el nmero de errores admisible ( ms de 3 entradas) = 0, si no hay BREAK en la interfaz = 1, si hay BREAK en la interfaz

BREAK

Si tiene lugar un BREAK en la interfaz, se llama al OB 35 slo al principio del estado BREAK. Aqu se registran como mximo 3 nmeros de error correspondientes a los fallos detectados en la interfaz y en el orden en que fueron detectados por el sistema. El significado de los nmeros de error se explica en el manual "Comunicacin" /14/.

Nmero de error 1 a nmero de error 3

Significado de los nmeros de error

5.6.12 OB 36: Errores en autotest

Cuando una de las rutinas de autotest detecta un error durante su ejecucin, se llama al OB 36. Vase captulo 5.7.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 33

Autotest

5.7

Autotest
El programa de sistema de la CPU 948 contiene rutinas de autotest integradas. Las funciones de autotest pueden ser activadas/desactivadas de forma individual por el programa de usuario a travs de los bits del dato de sistema BS 137. En el ciclo solamente se ejecuta una parte del autotest ("time slice") a fin de evitar una sobrecarga del ciclo en el RUN. El tiempo disponible para su ejecucin puede ser ajustado en el BS 136 (vase tambin captulo 5.7.3).

5.7.1 Resumen

Activar/desactivar

"Time slice" (segmentos de tiempo)

Qu puede comprobarse?

Las rutinas de autotest efectan las siguientes comprobaciones:

QUE SE COMPRUEBA? la memoria de usuario la seal BASP (bloqueo de salidas) el reloj hardware las lneas de direcciones el cdigo del programa de sistema (suma de seguridad) el cdigo de los mdulos de cdigo STEP 5 en la memoria de usuario (suma de seguridad)

CUANDO? en un BORRADO TOTAL en STOP en un NUEVO ARRANQUE cclicamente en RUN cclicamente en RUN cclicamente en RUN

la supervisin del tiempo de ciclo en el ARRANQUE

5 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Autotest

5.7.2 Descripcin de las funciones de test

Test de la memoria de usuario

(durante el BORRADO TOTAL, sin "time slice") El test de la memoria de usuario se ejecuta durante el BORRADO TOTAL. Se comprueba la memoria de usuario, as como las zonas de bytes de las marcas e imagenes de proceso. En primer lugar se prefija toda la zona (incluidas las zonas de bytes) con un criterio de comprobacin y despus se comprueba si coinciden. Al final, la zona se sobreescribe con ceros.

Nota El test de la memoria de usuario requiere un tiempo considerable. En la - CPU 948-1 (640 kbyte) - CPU 948-2 (1 664 kbyte) aprox. 5 segundos aprox. 22 segundos

Test de la seal BASP

(en STOP, sin "time slice") Se comprueba si la CPU emite una seal BASP. Esta funcin de test se ejecuta en el bucle de stop. La seal BASP es leida cclicamente. En caso de error se efecta una entrada en el bfer de errores. En el siguiente ARRANQUE se llama al OB 36 si es que existe (error en autotest). Si el OB 36 est cargado y se ha programado en l una operacin STP, se interrumpe el ARRANQUE. En caso contrario, la CPU se pone en funcionamiento cclico.

Test del reloj hardware

(en el ARRANQUE aunque slo en caso de NUEVO ARRANQUE de la CPU; sin "time slice") El test se ejecuta antes de la llamada al OB 20; dura 1 segundo. La hora ajustada no se pierde, pero se borran las peticiones de tiempo existentes (alarmas temporizadas controladas por reloj OB 9).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 35

Autotest Test de la supervisin del tiempo de ciclo

(en el ARRANQUE, sin "time slice") Con esta funcin de test se comprueba la supervisin del tiempo de ciclo en la fase de arranque. El tiempo de supervisin se ajusta al valor inferior (20 ms) y despus se espera en un bucle del programa a que se produzca el error de ciclo.

Test de lneas de direcciones

(cclicamente en RUN, con "time slice") El test consiste en comprobar interrupciones y cortocircuitos de las lneas de direcciones. Esto se efecta escribiendo, leyendo y comparando cclicamente unos criterios de comparacin en dichas lneas de direcciones.

Test del cdigo del programa de sistema

(cclicamente en RUN, con "time slice") En el test del cdigo de sistema operativo se comprueba el contenido del sistema operativo de la CPU en la RAM interna (zona de comprobacin D 0000H a E 7FFDH). La comprobacin se efecta sumando hacia arriba el contenido de la zona de comprobacin y comparando el resultado con la suma de seguridad del EPROM.

Test del cdigo de los mdulos de cdigo STEP 5

(cclicamente en RUN, con "time slice") Se comprueba la suma de seguridad de cada mdulo de cdigo STEP 5 vlido. Si se ha insertado una Memory Card, la CPU 948 genera la suma de seguridad para los mdulos de cdigo tras efectuar un BORRADO TOTAL de la Memory Card y tras copiar su contenido en la memoria de usuario interna. Tambin se comprueban los mdulos de cdigo que hayan sido cargados posteriormente.

Nota En el test del cdigo de los mdulos STEP 5 se detecta por lo general un error cuando uno o ms cdigos han sido modificados de forma dinmica! Es posible efectuar las modificaciones con el aparato de programacin. El programa de sistema de la CPU 948 se encarga de generar la suma de seguridad.

5 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Autotest

5.7.3 Ajustes

Calcular y ajustar la cantidad de "time slices"

El tiempo de ejecucin de las funciones de autotest se reparte en "time slices" (segmentos de tiempo) que se llaman una vez por ciclo. La cantidad de "time slices" es regulable. De este modo es posible aumentar el tiempo de ejecucin requerido en cada ciclo para las funciones de autotest.

Calcular la cantidad

En primer lugar se deber calcular el tiempo que se le puede "restar" al ciclo para ejecutar el autotest: la duracin de un "time slice" equivale a aprox. 500 s y, por lo tanto, el autotest requiere 500 s. Una vez calculado el tiempo disponible se puede proceder a calcular la cantidad de "time slices" - 500 s respectivamente.

Ajustar la cantidad

La cantidad de "time slices" se puede ajustar en la palabra de datos de sistema BS 136 (16 bit). El valor preajustado es de 1 "time slice" (valor mnimo). En total se pueden ajustar como mximo 10 "time slices" (lo que corresponde a una sobrecarga del tiempo de ciclo de 5 ms). La cantidad de "time slices" se deriva del valor de la palabra de datos de sistema BS 136 de la forma siguiente: BS 136 = 0 1: BS 136 = 2: BS 136 = 3: etc. 1 "time slice" 2 "time slice" 3 "time slice"

Activar/desactivar tests

Los distintos tests pueden ser activados, p. ej. en un mdulo de arranque, poniendo en el BS 137 los correspondientes bits a 1 (activar) o a 0 (desactivar).

Nota Despus de efectuar un BORRADO TOTAL de una CPU recin enchufada, todas las funciones de test estarn desactivadas. En el prximo BORRADO TOTAL slo estn activadas las funciones de test que se deban ejecutar durante el BORRADO TOTAL. Las dems funciones de test se desactivan. Esto significa que slamente se puede comprobar la memoria de usuario de una CPU que acaba de ser conectada, activando tras un BORRADO TOTAL la funcin de test en el BS 137 y repitiendo a continuacin el BORRADO TOTAL.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 37

Autotest Ocupacin de la palabra de datos de sistema BS 137


Funcin de test Comprobar el cdigo del programa de sistema Comprobar el cdigo de los mdulos de cdigo STEP 5 en la memoria de usuario Comprobar las lneas de direcciones Comprobar el reloj Comprobar la seal BASP Comprobar la supervisin del tiempo de ciclo Comprobar la memoria de usuario Bit n 2 5 7 10 11 13 15

Los nmeros de bit que no aparecen en la tabla no estn ocupados.

5.7.4 Tratamiento de errores

Cuando una funcin de test detecta un error, llama - a menos que se est ejecutando durante el BORRADO TOTAL - al OB de error 36 (vase captulo 5.6.11) y transfiere al AKKU 1 el contenido de BS 137 con los bits de las rutinas de test activadas. Adicionalmente, las rutinas de test registran informaciones sobre el tipo de test y el error detectado en las palabras de datos de sistema BS 75 a BS 78. En los tests que slo se ejecutan durante el BORRADO TOTAL, la causa del error se indica en BS 75. El LED STOP parpadea rpidamente si los tests efectuados durante el BORRADO TOTAL han finalizado con errores. Los errores detectados por el autotest "seal BASP" en el STOP se indican tambin a partir del BS 75. El siguiente ARRANQUE solamente conduce al procesamiento cclico si no se ha programado ninguna operacin STP en el OB 36.

5 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Autotest Informacin de error Test de la memoria de usuario


Palabra de datos de sistema BS 75 Informacin de error N de error 640CH al comprobar la memoria de palabra N de error 650CH al comprobar la memoria de byte Criterio de comprobacin, en el que se produjo el error Direccin errnea alta Direccin errnea baja

BS 76 BS 77 BS 78

Test de la seal BASP


Palabra de datos de sistema BS 75 BS 76 BS 77 BS 78 Informacin de error N de error 6700H FFFFH FFFFH FFFFH

Test del reloj hardware


Palabra de datos de sistema BS 75 BS 76 BS 77 BS 78 Informacin de error N de error 6800H FFFFH FFFFH FFFFH

Test de la supervisin del tiempo de ciclo


Palabra de datos de sistema BS 75 BS 76 BS 77 BS 78 Informacin de error N de error 6600H FFFFH FFFFH FFFFH

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

5 - 39

Autotest Test de las lneas de direcciones


Palabra de datos de sistema BS 75 BS 76 BS 77 BS 78 Informacin de error N de error 630BH FFFFH Direccin errnea alta Direccin errnea baja

Test del cdigo del programa de sistema


Palabra de datos de sistema BS 75 BS 76 BS 77 BS 78 Informacin de error N de error 610BH FFFFH Suma de seguridad efectiva alta Suma de seguridad efectiva baja

Test del cdigo de los mdulos de cdigo STEP 5


Palabra de datos de sistema BS 75 BS 76 BS 77 BS 78 Informacin de error N de error 620AH Tipo/nmero de mdulo (identificaciones del encabezamiento del mdulo) Suma de seguridad nominal Suma de seguridad efectiva

5 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones especiales integradas

Indice - Captulo 6
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 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 4 OB 121: Ajustar/leer la hora del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 8 OB 122: Activar/desactivar "Bloqueo de alarmas" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 12 OB 124: Borrar mdulos STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 14 OB 125: Crear mdulos STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 17 OB 126: Definir y transferir imagenes de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 20 OB 129: Averiguar el estado de la batera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 25 OB 131: Borrar AKKU 1, 2, 3 y 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 26 OB 132/133: AKKU roll up/AKKU roll down. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 27 OB 141: Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas" . . 6 - 29 OB 142: Activar/desactivar "Retardar alarmas conjuntamente" . . . . . . . . . . . . . . . . . . . 6 - 32 OB 143: Activar/desactivar "Retardar alarmas cclicas individualmente" . . . . . . . . . . . 6 - 35 OB 150: Ajustar/leer la hora del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 38 OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj . . . . . . . 6 - 43 OB 153: Ajustar/leer la hora para la alarma de retardo . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 50 OB 180: Acceso variable a mdulos de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 53

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6-1

Indice

6.17 6.18 6.19 6.20 6.21 6.22

OB 181: Comprobar mdulos de datos (DB/DX). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 57 OB 182: Copiar zona de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 59 OB 202 a 205: Comunicacin en multiprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 62 OB 222: Arrancar nuevamente el tiempo de supervisin de ciclo . . . . . . . . . . . . . . . . . 6 - 63 OB 223: Comparar los modos de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 64 OB 254/255: Copiar/duplicar mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 65

6-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones especiales integradas

Este captulo describe las funciones especiales integradas que contiene el programa de sistema. Tambin explica en qu campos se pueden aplicar estas funciones y cmo se deben llamar y parametrizar los OBs de funciones especiales. Por ltimo, explica cmo detectar errores durante el procesamiento de una funcin especial y cmo tratarlos mediante el programa.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6-3

Introduccin

6.1

Introduccin
El sistema operativo de la CPU 948 ofrece una serie de funciones especiales que pueden ser llamadas por el usuario, siempre que ste lo requiera, mediante una llamada condicional (SPB PB x) o incondicional (SPA OB x). Para estas funciones especiales estn reservados los mdulos 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. La tabla siguiente da una visin esquemtica de las funciones especiales disponibles.

Tabla 6-1

Cuadro sinptico de las funciones especiales de la CPU 948

Mdulo OB 121 OB 122 OB 124 OB 125 OB 126 OB 129 OB 131 OB 132 OB 133 OB 141 OB 142 OB 143 OB 150 OB 151 OB 153 OB 180 OB 181 OB 182 OB 200, 202 203, 204, 205 OB 222 OB 223 OB 254, 255

Funcin Ajustar/leer la hora del sistema (compatible con CPU 946/947) Activar/desactivar "Bloqueo de alarmas" Borrar mdulos STEP 5 Crear mdulos STEP 5 Definir/transferir imgenes de proceso Averiguar el estado de la batera Borrar AKKU 1, 2, 3 y 4 AKKU roll up AKKU roll down Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas" Activar/desactivar "Retardar alarmas conjuntamente" Activar/desactivar "Retardar alarmas temporizadas cclicas individualmente" Ajustar/leer la hora del sistema Ajustar/leer hora para alarma temp. controlada por reloj Ajustar/leer hora para alarma de retardo Acceso variable a mdulos de datos Comprobar mdulo de datos Copiar zona de datos Funciones para la comunicacin en multiprocesamiento Arrancar de nuevo el tiempo de supervisin de ciclo Comparar modos de arranque en modo multiprocesador Copiar/duplicar mdulos de datos DB y DX

vase captulo/pgina 6.2/6 - 8 6.3/6 - 12 6.4/6 - 14 6.5/6 - 17 6.6/6 - 20 6.7/6 - 25 6.8/6 - 26 6.8/6- 27 6.9/6- 27 6.10/6 - 29 6.11/6 - 32 6.12/6 - 35 6.13/6 - 38 6.14/6 - 44 6.15/6 - 50 6.16/6 - 53 6.17/6 - 57 6.18/6 - 59 6.19/6 - 62 6.20/6 - 63 6.21/6 - 64 6.22/6 - 65

6-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Introduccin Interfaces

Para la programacin se dispone de las siguientes interfaces de funciones especiales:

Llamada al mdulo

Llamada condicional o incondicional SPB .. / SPA ..

Parmetros

Parmetros para efectuar preajustes a travs de AKKU 1 y eventualmente AKKU 2 y/o clulas de memoria. En la siguiente descripcin de las distintas funciones especiales encontrar bajo el concepto parmetros una lista de todos los datos que requiere la CPU para poder ejecutar correctamente las funciones especiales. Antes de llamar una funcin especial en el programa STEP 5, es necesario cargar estos datos en los acumuladores o en las clulas de memoria indicadas en cada caso.

Nomenclatura de los acumuladores

A la hora de indicar los parmetros de los distintos mdulos de organizacin de funciones especiales hay que respetar la siguiente nomenclatura: AKKU 1: AKKU-1-L: AKKU-1-LL: AKKU-1-LH: AKKU 1, AKKU 1, palabra baja, AKKU 1, palabra baja, byte bajo, AKKU 1, palabra baja, byte alto, 32 bit 16 bit 8 bit 8 bit

Palabra alta Byte alto Byte bajo 31 24 23 16 15

Palabra baja Byte alto Byte bajo 87 0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6-5

Introduccin Tratamiento de errores

Cuando se produce un error al procesar la funcin especial llamada, el programa de sistema responde con una reaccin especial. En lo que respecta a esta reaccin especial cabe diferenciar entre dos grupos de funciones especiales.

Grupo 1:

Indicadores de acumuladores

Al grupo 1 pertenecen todas las funciones especiales en las que, en caso de error, se transfiere una identificacin al AKKU 1, la cual da informaciones ms detalladas acerca del error que se ha producido.

Grupo 2:

VKE , ANZ 0/ANZ 1

En el caso de algunas funciones especiales, para sealizar errores especficos de funciones especiales se alteran el VKE o los indicadores ANZ 0/ANZ1. Cuando aparece un error durante el procesamiento de una funcin especial de este tipo, en la mayora de los casos se activa el VKE (VKE = 1). En este caso, en el programa STEP 5 se puede evaluar el VKE mediante una operacin SPB (salto condicional) y reaccionar entonces ante un error determinado. En el caso de ciertas funciones especiales, los indicadores de resultado ANZ 0 y ANZ 1 son alterados por el procesamiento de la funcin especial. En el programa STEP 5 se pueden consultar estos indicadores mediante operaciones de comparacin y reaccionar entonces ante un determinado error.

En los siguientes subcaptulos referentes a los OBs de funciones especiales se describe cul de las reacciones descritas anteriormente se ejecuta en cada uno de los distintos OBs de funciones especiales.

6-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Introduccin

Nota La llamada a un OB de funciones especiales mediante la operacin "SPA OB 131/132/133 o bien "SPB OB 131/132/133 no acta como un "verdadero" cambio de mdulo, sino como una operacin STEP 5 sin operando de mdulo. No se anidan alarmas (con preajuste "interrupcin en lmites de mdulos")!

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6-7

OB 121: Ajustar/leer la hora del sistema

6.2

OB 121: Ajustar/leer la hora del sistema


El OB 121 permite ajustar o leer la hora del sistema (fecha y hora) de forma compatible con la CPU 946/947. 1. Campo de datos 4 palabras en la zona de memoria orientada a palabras. En la funcin "ajustar la hora del sistema", hay que cargar la zona de memoria con los valores de tiempo que se desean ajustar antes de llamar al OB 121. El programa de sistema comprueba si los valores son lgicamente correctos. En la funcin "leer la hora del sistema", el OB 121 registra los valores de tiempo actuales en esta zona. Estructura del campo de datos Bit n 15 12 a 1 palab. decenas seg. 2a palab. decenas h. 3a palab. decenas das 11 9 8 4 3 0 unidades seg. 1/10 seg. 1/100 seg. unidades h. decenas min. unid. min. unidades das da de 0 semana dec. meses unid. meses 4a palab. decenas aos unid. aos

Funcin

Parmetros

Nota La estructura del campo de datos corresponde a la estructura de los datos del sistema BS 96 a BS 99 (hora actual).

Valores posibles: Segundos (1/100): Segundos (1/10): Segundos (unidades): Segundos (decenas): Minutos (unidades): Minutos (decenas): Horas (unidades): Horas (decenas): Bit n 12 /13: Bit n 14: 0a9 0a9 0a9 0a5 0a9 0a5 0a9

Bit n 15:

0 a 1 para formato 12 horas 0 a 2 para formato 24 horas 0 = AM para formato 12 horas 1 = PM " " 0 para formato 24 horas 0 = formato 12 horas 1 = formato 24 horas

6-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 121: Ajustar/leer la hora del sistema

Da de la semana: da (unidades): da (decenas): meses (unidades): mes (decenas): aos (unidades): aos (decenas):

0 a 6 para lunes a domingo 0a9 0a3 0a9 0a1 0a9 0a9

2. Registro BR (registro base de direcciones) Direccin inicial de un campo de datos en una zona de la memoria organizada palabra por palabra, en la que se han de leer los valores de tiempo que se desean ajustar, o en la que se han de almacenar los valores actuales. El registro BR tiene que ser cargado con la direccin antes de llamar al OB 121. 3. AKKU-1-L N de funcin, valores admisibles: 1 = ajustar la hora del sistema 2 = leer la hora del sistema

Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema deposita en el AKKU-1-L el valor 0. Despus de la funcin "ajustar" queda ajustada la hora y la fecha del sistema con los valores depositados en el campo de datos; despus de la funcin "leer", el campo de datos contendr los valores de tiempo actuales. Pueden ocurrir los errores indicados en la siguiente tabla. Si se produce un error, el programa de sistema deposita en el AKKU-1-L una de las identificaciones de error que muestra la tabla.
Tabla 6-2 Indicaciones de error del OB 121 en el AKKU-1-L

Casos de error

Identificacin Significado F001H F00FH F101H F102H F103H F104H F105H F106H F107H F108H N de funcin no vlido Llamada mltiple del mdulo Ao indicado no vlido Mes no vlido Da no vlido Da de la semana no vlido Hora no vlida Minutos no vlidos Segundos no vlidos 1/100 ...1/10 de segundo en el campo de datos no es igual a 0 Al ajustar: las entradas comprendidas entre 1/100 ...1/10 de segundo tienen que estar a 0. Formato hora no coincide con ajuste en OB 151

F109H

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6-9

OB 121: Ajustar/leer la hora del sistema Ejemplos

Ejemplo de programacin para "ajustar la hora del sistema"


Para la funcin "ajustar la hora del sistema" se programa el FB 13. Los nuevos valores se transfieren al mdulo de datos DB 10 (palabra de datos DW 0 a DW 3). Programa STEP 5: FB13 NOMB.

FEHL

:HORWR :A DB 10 :L KH 1500 :T DW 0 :L KH 9555 :T DW 1 :L KH 1010 :T DW 2 :L KH 9308 :T DW 3 :MBR EEC00 : :LRW +10 : :SLD 4 :MAB :L KB 1 :SPA OB 121 :L KB 0 :><F :SPB =FEHL :BEA : : : :BE

Abrir DB 10 15 segundos (1/10 .. 1/100 seg. = 0!) Formato 24 horas, 15 horas 55 Martes, 10 1993, agosto Cargar direccin inicial de la lista DB en el registro BR Cargar direccin inicial del DB 10 de la memoria (direccin de prrafo) en el AKKU 1 Direccin absoluta del DB 10 (DW 0) Cargar el contenido del AKKU 1 en el registro BR Cargar el n de funcin 1 en el AKKU-1-L Ajustar la hora del sistema Consultar los indicadores de error Salto al tratamiento de errores

Tratamiento de errores

Al llamar al OB 121, el mdulo de datos DB 10 contiene la siguiente informacin: 0: 1: 2: 3: 4: KH KH KH KH = = = = 1500; 9555; 1010; 9308;

El OB 121 transfiere los parmetros de tiempo deseados desde el DB 10 a la zona de datos de sistema BS 96 a BS 99.

6 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 121: Ajustar/leer la hora del sistema

Ejemplo de programacin para "leer la hora del sistema"


Para la funcin "leer la hora del sistema" se programa el FB 14. Los valores actuales deben ser depositados en el mdulo de datos DB 11 (palabra de datos DW 0 a DW 3). Programa STEP 5: FB14 NOMB.

NIVO

:HORRD :MBR EEC00 : :LRW +11 : :L KB 0 :!=F :SPB =NIVO : :TAK :SLD 4 :MAB :L KB 2 :SPA OB 121 :BEA : : : :BE

Cargar direccin inicial de la lista DB en el registro BR Cargar direccin inicial del DB 11 de la memoria (direccin de prrafo) en el AKKU 1 Comprobar si est cargado el DB 11 Saltar al tratamiento de errores, si la direccin inicial del DB = 0 Direccin absoluta del DB 11 (DW 0) Cargar el contenido del AKKU 1 en el registro BR Cargar el n de funcin 2 en el AKKU-1-L Leer la hora del sistema

Tratamiento de errores

Despus de llamar al OB 121, el mdulo de datos DB 11 contiene por ej. la siguiente informacin: 0: 1: 2: 3: 4: KH KH KH KH = = = = 2994; 9555; 1010; 9308; 29 seg., 940 miliseg. formato 24 horas, 15 h., 55 min. 10 das, da de semana 1(martes), 0 93 aos, 8 meses

Es martes, 10 de agosto de 1993, 15:57 horas, 29 segundos y 940 milisegundos (9 dcimas y 4 centsimas de segundo).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 11

OB 122: Activar/desactivar "Bloqueo de alarmas"

6.3

OB 122: Activar/desactivar "Bloqueo de alarmas"


Un programa STEP 5 puede ser interrumpido en lmites de mdulos o instrucciones por programas que tengan un nivel de procesamiento de prioridad superior. A estos niveles de procesamiento de prioridad superior pertenecen las ALARMAS TEMPORIZADAS y las ALARMAS DE PROCESO/INTERRUPCIONES. El tiempo de ejecucin del programa interrumpido se prolonga por el tiempo de ejecucin de los programas anidados.

Funcin

Con el OB 122 se puede impedir el anidamiento de mdulos que procesan alarmas en uno o ms lmites consecutivos de mdulos o instrucciones. El OB 122 influye sobre la recepcin de alarmas: Activar "bloqueo de alarmas" significa: a partir de ah no se registran ms alarmas. Desactivar "bloqueo de alarmas" significa: a partir de ah se vuelven a registrar todas las alarmas que aparezcan, y los mdulos correspondientes se anidan y procesan en el prximo lmite de instruccin o de mdulo (dependiendo del modo de operacin ajustado en el DX 0). Las alarmas que ya fueron registradas no se procesan si en el DX 0 est ajustado el modo de operacin "interrupcin en lmites de mdulos".

Parmetros

AKKU-1-L N de funcin, valores admisibles: 1 = bloquear todas las alarmas 2 = habilitar todas las alarmas

6 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 122: Activar/desactivar "Bloqueo de alarmas" Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema deposita en el AKKU-1-L el valor 0.

Nota La llamada al OB 122 influye sobre el VKE (no definido). El registro BR no se modifica. Para bloquear y desbloquear las alarmas de proceso pueden utilizarse en lugar del OB 122 las operaciones AS y AF. Las alarmas se desbloquean en el siguiente punto de control del sistema (vase captulo 11).

Casos de error

Se puede producir el error indicado en la siguiente tabla. Si se produce este error, el programa de sistema deposita en el AKKU-1-L la identificacin indicada en la tabla.
Tabla 6-3 Identificaciones de error del OB 122 en el AKKU-1-L

Identificacin F001H

Significado N de funcin no vlido

Ejemplo
Fragmento de un programa STEP 5. Antes de la parte crtica del programa se bloquean todas las alarmas mediante el OB 122 y se vuelven a habilitar: :L :SPA : : : : : : :L :SPA : : KB 1 OB 122 Cargar ident. func. en AKKU-1-L Bloquear todas las alarmas ) ) ) } Parte crtica del programa ) ) Cargar ident. func. en AKKU-1-L Desbloquear todas las alarmas

KB 2 OB 122

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 13

OB 124: Borrar mdulos STEP 5

6.4

OB 124: Borrar mdulos STEP 5


El OB 124 permite borrar cualquier mdulo STEP 5 (mdulos de cdigo y de datos) de la memoria de usuario. El mdulo borrado se elimina de la lista de direcciones del DB 0. El hueco que queda en la memoria despus de borrar el mdulo se vuelve a utilizar al cargar nuevos mdulos. 1. AKKU-1-LH Tipo del mdulo a borrar

Funcin

Parmetros

2. AKKU-1-LL Nmero del mdulo a borrar

Tipos y nmeros de mdulo vlidos: AKKU-1-LH (tipo de mdulo) 1 = PB 2 = SB 3 = FB 4 = FX 5 = DB 6 = DX 7 = OB AKKU-1-LL (nmero de mdulo) 0 a 255 0 a 255 0 a 255 0 a 255 3 a 255 3 a 255 1 a 39

Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema pone el VKE a 0 y borra los indicadores ANZ 1 y ANZ 0.

Nota Durante el proceso de borrado efectivo estn bloqueadas las alarmas de usuario: no logran pasar ni las alarmas ni las interrupciones. Mediante la llamada al OB 124 se modifican los contenidos del AKKU 1 al AKKU 4. El registro BR permanece inalterado.

6 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 124: Borrar mdulos STEP 5 Casos de error y advertencias

En caso de error o de una advertencia, el programa de sistema interrumpe el procesamiento del OB 124 y contina el procesamiento del programa a partir de la prxima operacin STEP 5. Adems, pone el VKE a 1 y deposita una identificacin en el AKKU-1-LL (vase tabla 6-5). En caso de interrumpirse una funcin a causa de una advertencia, en determinadas circunstancias puede lograrse un procesamiento correcto del OB 124 repitiendo la llamada a la funcin especial (una o ms veces). En el siguiente caso, el OB 124 es abortado con advertencia: Durante los ltimos 10 ms ha sido llamado un OB 124, OB 125, OB 254 u OB 255. (Por cada 10 ms se admite una sola llamada a estas funciones especiales. De este modo se evita que, por mltiples llamadas a los OBs mencionados, se deje de procesar la interfaz con el aparato de programacin).

Indicadores

Despus de llamar al OB 124, se puede comprobar por medio del resultado de combinacin y de los indicadores ANZ 1 y ANZ 0, si la funcin especial ha sido ejecutada correctamente o si ha sido interrumpida con "error" o con "advertencia". El resultado puede ser evaluado con instrucciones de salto condicionales.

Indicadores de resultado
Tabla 6-4 Indicadores de resultado del OB 124

VKE 0 1

ANZ 1 ANZ 0 Significado 0 1 0 0 La funcin especial fue procesada correctamente El procesamiento de la funcin especial fue abortado con "advertencia" El procesamiento de la funcin especial fue abortado con "error"

Consulta SPB SPZ SPB SPP SPN SPB SPM SPN

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 15

OB 124: Borrar mdulos STEP 5 Identificaciones en AKKU-1-LL

El programa de sistema deposita en el AKKU-1-LL identificaciones sobre el resultado del procesamiento, las cuales especifican ms detalladamente las causas de la advertencia o del error.

Bit n

7 A

6 E

5 Causa del error/advertencia

Se han definido los siguientes indicadores colectivos: Bit n 7 (A) = 1: Bit n 6 (E) = 1: Advertencia Error

Tabla 6-5

Indentificaciones de resultado del OB 124 en el AKKU-1-LL

Identificacin Significado 01H 45H 47H 4DH 8DH 8EH La funcin fue procesada correctamente Error: Clase de mdulo no vlida Mdulo no existente Funcin on line COMPRIMIR MEMORIA activa Advertencia: Conflicto con una funcin on line (excepto "comprimir memoria") El tiempo de espera de 10 ms an no ha transcurrido

Ejemplo

:L KY 6,100 :SPA OB 124 :

Esta secuencia de instrucciones borra el mdulo de datos DX 100 de la memoria de usuario

6 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 125: Crear mdulos STEP 5

6.5

OB 125: Crear mdulos STEP 5


Con el mdulo OB 125 se pueden crear mdulos STEP 5 (mdulos de cdigo o de datos) en la memoria de usuario. Sin embargo, se recomienda que los mdulos de cdigo sean creados nicamente por especialistas. El mdulo indicado se crea en la RAM interna con encabezamiento y cuerpo y se registra en el DB 0. El cuerpo del mdulo contiene datos aleatorios. Por esta razn, es necesario escribir primeramente el mdulo recin creado antes de que puedan leerse datos significativos.

Funcin

Parmetros

1. AKKU-1-LH Tipo del mdulo a crear 2. AKKU-1-LL Nmero del mdulo a crear

Tipos y nmeros vlidos: AKKU-1-LH (tipo de mdulo) 1 = PB 2 = SB 3 = FB 4 = FX 5 = DB 6 = DX 7 = OB 3. AKKU-2-L Cantidad de palabras (longitud de mdulo deseada sin encabezamiento). La longitud mxima parametrizable es de 32762 palabras de datos. Actualmente, un aparato de programacin permite editar aproximadamente 2 K palabras. AKKU-1-LL (nmero de mdulo) 0 a 255 0 a 255 0 a 255 0 a 255 3 a 255 3 a 255 1 a 39

Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema pone el VKE a 0 y borra los indicadores ANZ 1 y ANZ 0. Nota Durante la creacin del mdulo estn bloqueadas las alarmas de usuario: no logran pasar ni las alarmas ni las interrupciones. Mediante la llamada al OB 125 se modifican los contenidos del AKKU 1 a AKKU 4. El registro BR permanece inalterado.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 17

OB 125: Crear mdulos STEP 5 Casos de error y advertencias

En caso de error, el programa de sistema interrumpe el procesamiento del OB 125 y contina el procesamiento del programa a partir de la prxima operacin STEP 5. Adems, pone el VKE a 1y deposita una identificacin en el AKKU-1-LL (vase tabla 6-7).

En caso de interrumpirse la funcin a causa de una advertencia, en determinadas circunstancias puede lograrse un procesamiento correcto del OB 125 repitiendo la llamada a la funcin especial (una o ms veces). En el siguiente caso, el OB 125 es abortado con advertencia: Durante los ltimos 10 ms ha sido llamado un OB 124, OB 125, OB 254 u OB 255. (Por cada 10 ms se admite una sola llamada a estas funciones especiales. De este modo se evita que, por mltiples llamadas a los OBs mencionados, se deje de procesar la interfaz con el aparato de programacin).

Indicadores

Despus de llamar al OB 125, se puede comprobar por medio del resultado de combinacin y de los indicadores ANZ 1 y ANZ 0, si la funcin especial ha sido ejecutada correctamente o si ha sido interrumpida con "error" o con "advertencia". El resultado puede ser evaluado con instrucciones de salto condicionales.

Indicadores de resultado
Tabla 6-6 Indicadores de resultado del OB 125

VKE 0 1

ANZ 1 ANZ 0 Significado 0 1 0 0 La funcin especial fue procesada correctamente El procesamiento de la funcin especial fue abortado con "advertencia" El procesamiento de la funcin especial fue abortado con "error"

Consulta SPB SPZ SPB SPP SPN SPB SPM SPN

6 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 125: Crear mdulos STEP 5 Identificaciones en el AKKU-1-LL

El programa de sistema deposita en el AKKU-1-LL identificaciones sobre el resultado del procesamiento, las cuales especifican ms detalladamente las causas de la advertencia o del error.

Bit n

7 A

6 E

5 Causa del error/advertencia

Se han definido los siguientes indicadores colectivos: Bit n 7 (A) = 1: Bit n 6 (E) = 1: Advertencia Error

Tabla 6-7

Identificaciones de resultado del OB 125 en el AKKU-1-LL

Identificacin Significado 01H 42H 43H 44H 45H 4DH 8DH 8EH La funcin fue procesada correctamente Error: Mdulo ya existente Espacio de memoria insuficiente Longitud de mdulo no vlida Clase de mdulo no vlida Funcin on line COMPRIMIR MEMORIA activa Advertencia: Conflicto con una funcin on line (excepto "comprimir memoria") El tiempo de espera de 10 ms an no ha transcurrido

Ejemplo

:L KF +2000 :L KY 5,24 :SPA OB 125 : :

esta secuencia de instrucciones crea el DB 24 con una longitud de 2000 palabras de datos (long. total incl. encabezamiento: 2005 palabras)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 19

OB 126: Definir y transferir imagenes de proceso

6.6

OB 126: Definir y transferir imagenes de proceso


En cada ciclo, el programa de sistema actualiza la imagen de proceso de las entradas y salidas digitales o de las marcas de acoplamiento. En el mdulo de datos de sistema DB 1 se registran las entradas, salidas y marcas de acoplamiento que contiene la imagen de proceso (vase captulo 10). El OB 126 permite utilizar imagenes de proceso adicionales.

Funcin

Con el OB 126 se pueden definir durante el NUEVO ARRANQUE hasta cuatro imgenes de proceso, adems de la imagen definida en el DB 1. Estas imgenes de proceso adicionales pueden ser ledas y emitidas mediante el programa STEP 5 en cualquier nivel de procesamiento.

Parmetros

1. Campo de datos 6 bytes de marcas con la siguiente estructura: Bit n 7 MB n MB n+1 MB n+2 MB n+3 MB n+4 MB n+5 0 N de funcin N de lista de direcciones Tipo de mdulo N de mdulo N de palabra de datos de la primera palabra de identificacin en la lista de direcciones

Parmetros del campo de datos:

N de funcin

Con el n de funcin se determina la instruccin que debe ejecutar el OB 126 (vase tabla). Valores admisibles: 1 a 5 N de funcin 1 2 3 4 5 Funcin Leer imagen de proceso de entradas digitales Emitir imagen de proceso de salidas digitales Leer imagen de marcas de acoplamiento de entradas Emitir imagen de marcas de acoplamiento de salidas Generar la lista de direcciones interna del sistema (de forma anloga al DB 1) (slo en NUEVO ARRANQUE - OB 20!)

6 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 126: Definir y transferir imagenes de proceso N de lista de direcciones

Nmero de la lista de direcciones para la imagen de proceso adicional Valores admisibles: 1 a 4

Tipo de mdulo

Tipo del mdulo de datos que contiene la lista de direcciones Valores admisibles: 1 = DB 2 = DX

Nmero de mdulo

Nmero del mdulo de datos que contiene la lista de direcciones Valores admisibles: 3 a 255

N de palabra de datos de la 1 palabra de identificacin

Introducir el nmero de la palabra de datos en la que se encuentre la primera palabra de identificacin de la lista de direcciones (vase estructura del DB 1, captulo 10.1.6). Las palabras de identificacin posibles son: KH KH KH KH = DE00 (entradas digitales) = DA00 (salidas digitales) = CE00 (marcas de acoplamiento de entradas) = CA00 (marcas de acoplamiento de salidas)

El parmetro ocupa 2 bytes de marcas!

Nota El campo de datos completo slo debe ser creado cuando el OB 126 deba crear la lista de direcciones en el NUEVO ARRANQUE (= funcin 5). Para la ejecucin de las funciones 1 a 4 basta registrar en el campo de datos el n de la lista de direcciones junto al n de funcin. Se suprimen las entradas restantes. El mdulo de datos con el que se desea crear la lista para una imagen de proceso adicional (= funcin 5), ha de ser estructurado de forma anloga al DB 1. En este mdulo de datos se puede depositar la informacin sobre la lista de direcciones por cada una de las imgenes de proceso adicionales, siempre que cada bloque de informacin haya sido provisto de la identificacin final, al igual que en el DB 1. Para crear la lista de direcciones, sin embargo es necesario llamar al OB 126 con la funcin 5 por cada imagen de proceso adicional (solamente en el NUEVO ARRANQUE!).

2. AKKU-1-L N del byte de marcas MB n con el que comienza el campo de datos Valores admisibles: 0 a 250

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 21

OB 126: Definir y transferir imagenes de proceso Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema pone el VKE a 0y registra un 1en el AKKU-1-LL.

Nota Durante el procesamiento del OB 126 estn bloqueadas las alarmas de usuario: no logran pasar ni las alarmas ni las interrupciones. A causa de la llamada al OB 126 se modifican los contenidos del AKKU 1 a AKKU 4. El registro BR permanece inalterado. En caso de REARRANQUE, el resto del ciclo se procesa bajo BASP. Todas las salidas digitales estn bloqueadas. Al final del ciclo se rearman todas las salidas (tambin las indicadas en las listas de direcciones 1 a 4).

Casos de error

Cuando la funcin especial no puede ser ejecutada, el programa de sistema interrumpe el procesamiento del OB 126 y contina el procesamiento del programa con la prxima operacin STEP 5. Adems, pone el VKE a 1 y deposita una identificacin en el AKKU-1-LL (vase la tabla siguiente). Caso especial en el tratamiento de errores: Cuando el OB 126 deba ejecutar la funcin 5 (generar la lista de direcciones interna del sistema), el programa de sistema comprueba si la estructura de la lista de direcciones es correcta. Tambin comprueba si las entradas y salidas o las marcas de acoplamiento de la lista dan acuse de recibo a las tarjetas correspondientes. Si se ha transferido una lista de direcciones incorrecta, la CPU se comporta del mismo modo que en caso de un error de DB 1: pasa al estado STOP PARCIAL y el LED STOP parpadea de forma lenta. Se indica un error de DB 1.

Identificaciones en el AKKU-1-LL

Tabla 6-8

Identificaciones de resultado del OB 125 en el AKKU-1-LL

Indicacin 01H 02H 03H 04H 05H

Significado La funcin fue procesada correctamente N de funcin no vlido Puntero en AKKU-1-L (n de marca) no vlido Tipo/nmero de mdulo no vlido o no existe el mdulo DB/DX La palabra de datos indicada en el mdulo de datos no contiene la 1 palabra de identificacin (n DW errneo) o la lista de direcciones contiene una palabra de identificacin errnea N de lista de direcciones no vlido Llamada de funcin no vlida en el nivel de procesamiento actual

06H 07H

6 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 126: Definir y transferir imagenes de proceso Ejemplos


Crear la lista de direcciones en el DB 5:
Mediante las funciones <entrada>, <mscara>, "mdulo: DB 5" se programa un DB 5 en el aparato de programacin con los siguientes parmetros: Entradas digitales: 1, 2, Salidas digitales: 3, Entradas marcas de acopl.: 5, 6, 7, Salidas marcas de acopl.: 20, 22, Si se desea crear el DB 5 manualmente, ste tiene que tener la misma estructura que un DB 1 (con indentificacin inicial, palabras de identificacin de las zonas de operandos, identificacin final; vase captulo 10.1.6).

Aceptar la lista de direcciones en el NUEVO ARRANQUE/OB 20:


En primer lugar se tiene que crear el campo de datos en la zona de marcas. Este ocupa los bytes de marcas MB 20 a MB 25: :L :T :L :T :L :T :L :T KB MB KB MB KH MW KB MW 5 20 1 21 0105 22 3 24 Transferir el n de funcin 5 al MB 20 Transferir el n de lista de direcciones 1 al MB 21 Transferir tipo de mdulo DB (1) y n de mdulo 5 al MB 22 y 23 Transferir n de palabra de datos 3 (DW 3 en DB 5 contiene 1 palabra de identificacin) a MB 24 y 25

Una vez que el campo de datos ha sido creado correctamente, hay que transferir al AKKU-1-L el nmero del primer byte de marcas del campo de datos. A continuacin, se llama al OB 126, el cual crea la lista de direcciones: :L KB 20 :SPA OB 126 : : : Campo de datos comienza con MB 20 Llamada para generar la lista de direcciones Evaluar event. los indicadores ...

Observacin:
Las listas de direcciones con el nmero 1 a 4 slo son aceptadas por la CPU llamando al OB 126 desde el OB 20 (NUEVO ARRANQUE): para ello hay que llamar al OB 126 desde el OB 20 con el n de funcin 5.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 23

OB 126: Definir y transferir imagenes de proceso

Emitir la imagen de proceso de las salidas


La siguiente secuencia de programa STEP 5 se puede encontrar en cualquier nivel de procesamiento del programa (en el OB 1, en un OB de alarma temporizada o en un OB de alarma de proceso, etc.). El efecto que causa es que la imagen de proceso de todas las salidas se emite en la lista de direcciones 1. :L :T :L :T :L :SPA : : KB MB KB MB KB OB 2 50 1 51 50 126 Transferir el n de funcin 2 al MB 50 Transferir el n de lista de direcciones 1 al MB 51 Campo de datos comienza con MB 50 Llamada para la emisin del PAA Evaluar event. de los indicadores ...

6 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 129: Averiguar el estado de la batera

6.7

OB 129: Averiguar el estado de la batera


El OB 129 permite comprobar desde el programa STEP 5 si la batera est en buen estado o si, por el contrario, est agotada (el OB 129 consulta la seal BAU). Dependiendo del resultado de la comprobacin puede activarse por ejemplo un indicador de fallos (lmpara).

Funcin

Cmo se genera la seal BAU

La fuente de alimentacin contiene dos bateras tampn, una clula de litio (MB = "batera principal") y un acumulador (RB = "batera de reserva"). La seal BAU se genera mediante combinacin lgica AND de ambas seales de supervisin.

Ajuste de los puentes en la fuente de alimentacin

En la fuente de alimentacin del autmata programable se encuentran dos puentes mediante los cuales puede actuarse sobre la supervisin de las bateras. El puente MB-NB determina cundo se genera la seal BAU: si el puente MB-NB no est conectado, la seal BAU se genera una vez despus la CONEXION. Si, por el contrario, est conectado el puente, la supervisin se efectuar cclicamente. La seal de supervisin del acumulador puede desconectarse mediante el puente MA-NA. Las distintas posibilidades de ajustar los puentes determinan las posibilidades de supervisin de la batera por parte del OB 129, descritas en la tabla siguiente:

Puente MB-NB abierto abierto cerrado cerrado

Puente MA-NA abierto cerrado abierto cerrado

Cundo se genera la seal BAU tras CONEXION tras CONEXION cclicamente cclicamente

La seal BAU es generada por la seal de supervisin de ... la clula de litio la clula de litio y del acumulador la clula de litio la clula de litio y del acumulador

Parmetros

ninguno

Resultado

VKE = 0: VKE = 1:

la batera est en buen estado la batera est agotada

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 25

OB 131: Borrar AKKU 1, 2, 3 y 4 Ejemplo


Con la siguiente secuencia de operaciones se puede comprobar si la batera tampn an est en buen estado y, en caso de no estarlo, encender una lmpara de advertencia: : :SPA OB 129 :SPB =BATL : : : :BEA BATL :SU A 22.5 : :BE

VKE = 1 -> la batera est agotada

Lmpara de advertencia a byte de salida 22, activar bit 5

6.8

OB 131: Borrar AKKU 1, 2, 3 y 4


Una sola llamada al mdulo de organizacin de funciones especiales OB 131 permite borrar fcilmente los contenidos de los AKKUs 1 a 4: el OB 131 sobreescribe los cuatro registros con un 0.

Funcin

Parmetros

ninguno

Resultado

Los AKKUs 1 a 4 (32 bit cada uno) estn borrados (0).

Casos de error

ninguno

6 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 132/133: AKKU roll up/AKKU roll down

6.9

OB 132/133: AKKU roll up/AKKU roll down


El OB 132 y el OB 133 hacen avanzar los contenidos de los AKKUs 1 a 4 en direccin ascendente o descendente: El OB 132 (roll up) desplaza el contenido del AKKU 4 al AKKU 1, el contenido del AKKU 1 al AKKU 2, el contenido del AKKU 2 al AKKU 3, etc. El OB 133 (roll down) desplaza los contenidos de los acumuladores en direccin opuesta: contenido del AKKU 1 al AKKU 4, AKKU 4 a AKKU 3, etc.

Funcin

Parmetros

ninguno

Resultado

Las figuras 6-1 y 6-2 muestran los contenidos de los acumuladores antes y despus de la llamada al OB 132 y 133.

Nota Las instrucciones STEP 5 ENT (conjunto de operaciones complementarias) y TAK (operacin de sistema) tambin permiten desplazar los contenidos de los acumuladores (vase captulo 3.4.3).

Casos de error

ninguno

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 27

OB 132/133: AKKU roll up/AKKU roll down

Desplazar contenidos de AKKUs 31 AKKU 4 <AKKU 4> 0 31 <AKKU 3> 0

AKKU 3

<AKKU 3>

<AKKU 2>

OB 132
AKKU 2 <AKKU 2> <AKKU 1>

AKKU 1

<AKKU 1>

<AKKU 4>

antes
Fig. 6-1 Efecto de la funcin "roll up"

despus

Desplazar contenidos de AKKUs 31 AKKU 4 <AKKU 4> 0 31 <AKKU 1> 0

AKKU 3

<AKKU 3>

<AKKU 4>

OB 133
AKKU 2 <AKKU 2> <AKKU 3>

AKKU 1

<AKKU 1>

<AKKU 2>

antes
Fig. 6-2 Efecto de la funcin "roll down"

despus

6 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 141: Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas"

6.10 OB 141: Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas"


Con el OB 141 se puede evitar el anidamiento (intercalacin) de determinados OBs de alarmas temporizadas cclicas (alarmas temporizadas con escala de tiempo fija) en uno o ms lmites consecutivos de mdulos o instrucciones. Por ejemplo, se puede establecer que una parte del programa no pueda ser interrumpida por un OB 10 (perodo 1) ni por un OB 11 (perodo 2). Las dems alarmas temporizadas programadas se procesan como es habitual.

Funcin

El OB 141 tiene consecuencias sobre la reaccin ante alarmas temporizadas cclicas: Activar el "bloqueo individual de alarmas cclicas" significa que, a partir de este instante, ya no se registra ninguna de las alarmas temporizadas cclicas indicadas y que, adems, se borran las alarmas que ya han sido registradas (por ejemplo, las que "esperan" a un lmite de mdulo). Solamente se procesar hasta el final un OB de alarma temporizada (para procesar una alarma temporizada con escala de tiempo fija), si ya ha comenzado a procesarse. Desactivar el "bloqueo individual de alarmas cclicas" significa que, a partir de este instante, vuelven a registrarse todas las alarmas temporizadas cclicas que aparezcan y a procesarse en el prximo lmite de mdulo o de instruccin (segn el ajuste en el DX 0).

Parmetros

1. Palabra de control El OB 121 registra las alarmas temporizadas que deben ser bloqueadas en una palabra de control interna: Bit n 15 Palabra de control 0

Los bits de la palabra de control tienen el siguiente significado: Bit n 0a2 3 = 1 4 = 1 5 = 1 6 = 1 7 = 1 8 = 1 9 = 1 Alarma Reservados, estos bits tienen que estar a 0! Alarmas temporizadas cclicas con escala fija: Perodo 1 (OB 10) Perodo 2 (OB 11) Perodo 3 (OB 12) Perodo 4 (OB 13) Perodo 5 (OB 14) Perodo 6 (OB 15) Perodo 7 (OB 16)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 29

OB 141: Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas"

Bit n (continuacin) 10 = 1 11 = 1 12 a 15 Perodo 8 (OB 17) Perodo 9 (OB 18)

Alarma

Reservados; estos bits tienen que estar a 0!

Mientras un bit est a 1, la alarma correspondiente estar bloqueada.

2. Acumuladores 2a) AKKU-2-L N de funcin, valores admisibles: 1, 2 3 con: 1: El contenido del AKKU 1 se carga en la palabra de control. Todos los bits de la mscara del AKKU 1 que estn marcados con un 1 se ponen a 1 en la palabra de control. La nueva palabra de control se carga en el AKKU 1. Todos los bits de la mscara del AKKU 1 que estn marcados con un 1 se ponen a 0 en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

2:

3:

2b) AKKU 1 nueva palabra de control o mscara, dependiendo de la funcin deseada

Resultado

Tras un procesamiento correcto y exento de errores el programa de sistema pone el VKE a 0. La llamada del OB 141 da los siguientes resultados: N de funcin en AKKU-2-L 1 2 Contenido del AKKU 1 antes Palabra de control Mscara despus Palabra de control Nueva palabra de control Nueva palabra de control

Mscara

6 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 141: Activar/desactivar "Bloqueo individual de alarmas temporizadas cclicas" Casos de error

En caso de error, el programa de sistema pone el VKE a 1. Pueden ocurrir los errores indicados en la tabla siguiente. Si se produce un error, el programa de sistema deposita en el AKKU1-1-L las identificaciones de error que figuran en la tabla.

Tabla 6-9

Identificaciones de error del OB 141 en el AKKU-1-L

Identificacin Significado N de funcin no vlido en AKKU-2-L 1) Uno de los bits reservados en AKKU 1 es 1

8D01H 8D02H
1)

1)

el valor errneo se encuentra en el AKKU-2-L

Consultar la palabra de control

El estado de la palabra de control puede ser consultado mediante la siguiente secuencia de programa: 1. Cargar el n de funcin 2 3 en el AKKU 2 2. Cargar el valor 0 en el AKKU 1 3. Llamar OB 141 4. Leer AKKU 1

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 31

OB 142: Activar/desactivar "Retardar alarmas conjuntamente"

6.11 OB 142: Activar/desactivar "Retardar alarmas conjuntamente"


Un programa STEP 5 puede ser interrumpido en lmites de mdulos o de instrucciones por programas que tengan una prioridad superior. A estos niveles de procesamiento de prioridad superior pertenecen las alarmas de proceso y las alarmas temporizadas. El tiempo de ejecucin del programa interrumpido aumenta en el tiempo de ejecucin de los programas anidados. Con el OB 142 se puede evitar el anidamiento de niveles de procesamiento de prioridad superior en uno o ms lmites consecutivos de mdulos o de instrucciones (segn el ajuste en el DX 0).

Funcin

El OB 142 tiene consecuencias sobre el procesamiento de las 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 de momento las alarmas registradas. Se anulan provisionalmente todos los lmites de instrucciones o de mdulos para el procesamiento de alarmas. Solamente cuando ya ha iniciado un OB que procesa alarmas de proceso o alarmas temporizadas, entonces se ejecuta hasta el final. Desactivar "retardar alarmas" significa que se procesan todas las alarmas registradas en el prximo lmite de mdulo o de instruccin.

Nota El espacio de tiempo durante el cual se retardan las alarmas tiene que ser ms breve que el valor triple del perodo ms breve de alarma temporizada. En caso contrario, se produce una colisin de alarmas temporizadas.

Parmetros

1. Palabra de control El OB 142 registra las alarmas que deben ser retardadas en una palabra de control interna del sistema:

Bit n

15 Palabra de control

6 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 142: Activar/desactivar "Retardar alarmas conjuntamente"

Los bits de la palabra de control tienen el siguiente significado: Bit n 0 = 1 1 = 1 2 = 1 3 = 1 4 a 15 Clase de alarma Alarmas temporizadas cclicas, escala fija Alarma temporizada controlada por reloj Alarmas de proceso Alarma de retardo Reservado; estos bits tienen que estar a 0!

Mientras un bit est a 1, la alarma correspondiente estar bloqueada.

2. Acumuladores 2a) AKKU-2-L N de funcin, valores admisibles: 1, 2 3 con: 1: El contenido del AKKU 1 se carga en la palabra de control. Todos los bits de la mscara del AKKU 1 que estn marcados con un 1 se ponen a 1 en la palabra de control. La nueva palabra de control se carga en el AKKU 1. Todos los bits de de la mscara del AKKU 1 que estn marcados con un 1 se ponen a 0 en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

2:

3:

2b) AKKU 1 nueva palabra de control o mscara, dependiendo de la funcin deseada

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 33

OB 142: Activar/desactivar "Retardar alarmas conjuntamente" Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema pone el VKE a 0. La llamada del OB 142 da los siguientes resultados: N de funcin en AKKU-2-L 1 2 Contenido del AKKU 1 antes Palabra de control Mscara despus Palabra de control Nueva palabra de control Nueva palabra de control

Mscara

Casos de error

En caso de error, el programa de sistema pone el VKE a 1. Pueden ocurrir los errores indicados en la tabla siguiente. Si se produce un error, el programa de sistema deposita en el AKKU-1-L las identificaciones de error que figuran en la tabla.

Tabla 6-10

Identificacin de error del OB 142 en AKKU-1-L

Identificacin Significado N de funcin no vlido en AKKU-2-L 1) Uno de los bits reservados (n 4 a 15) en AKKU 1 es 1 1) Modo de operacin errneo (por ej., cuando la alarma de retardo debe ser bloqueada y el DX 0 contiene el parmetro "Byte Entrada 0 Alarma Proceso = si".

8E01H 8E02H 8EFFH

1)

el valor errneo se encuentra en el AKKU-2-L

Consultar la palabra de control

El estado de la palabra de control puede ser consultado mediante la siguiente secuencia de programa: 1. Cargar el n de funcin 2 3 en el AKKU-2-L 2. Cargar el valor 0 en el AKKU 1 3. Llamar OB 142 4. Leer AKKU 1

6 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 143: Activar/desactivar "Retardar alarmas cclicas individualmente"

6.12 OB 143: Activar/desactivar "Retardar alarmas cclicas individualmente"


Con el OB 143 se puede evitar el anidamiento (intercalacin) de determinados OBs que procesan alarmas temporizadas cclicas (alarmas temporizadas con escala de tiempo fija) en uno o ms lmites consecutivos de mdulos o instrucciones. Por ejemplo, se puede establecer que una parte del programa no pueda ser interrumpida por un OB 10 (perodo 1) ni por un OB 11 (perodo 2). Las dems alarmas temporizadas programadas se procesan como es habitual.

Funcin

El OB 143 tiene consecuencias sobre la reaccin ante alarmas temporizadas cclicas: Activar "retardar alarmas cclicas individualmente" significa que se siguen registrando todas las alarmas que aparezcan y que quedan registradas las alarmas temporizadas que ya estn en cola de espera. Sin embargo, no se procesan de momento las alarmas indicadas en la palabra de control. Se anulan provisionalmente todos los lmites de instrucciones o de mdulos para el procesamiento de estas alarmas. Solamente cuando ya ha iniciado un OB que procesa alarmas temporizadas (para el procesamiento de una alarma temporizada con escala fija), entonces se procesa hasta el final. Desactivar "retardar alarmas cclicas individualmente" significa que se procesan todas las alarmas registradas en el prximo lmite de mdulo o de instruccin (segn el ajuste en el DX 0).

Parmetros

1. Palabra de control El OB 143 registra las alarmas temporizadas que deben ser retardadas en una palabra de control interna del sistema: Bit n 15 Palabra de control Los bits de la palabra de control tienen el siguiente significado: Bit n 0a2 3 = 1 4 = 1 5 = 1 6 = 1 7 = 1 8 = 1 9 = 1 Alarma Reservados, estos bits tienen que estar a 0! Alarmas temporizadas cclicas con escala fija: Perodo 1 (OB 10) Perodo 2 (OB 11) Perodo 3 (OB 12) Perodo 4 (OB 13) Perodo 5 (OB 14) Perodo 6 (OB 15) Perodo 7 (OB 16) 0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 35

OB 143: Activar/desactivar "Retardar alarmas cclicas individualmente"

Bit n (continuacin) 10 = 1 11 = 1 12 a 15 Perodo 8 (OB 17) Perodo 9 (OB 18)

Alarma

reservados; estos bits tienen que estar a 0!

Mientras un bit est a 1, la alarma correspondiente estar bloqueada.

2. Acumuladores 2a) AKKU-2-L N de funcin, valores admisibles: 1, 2 3 con: 1: El contenido del AKKU 1 se carga en la palabra de control. Todos los bits de la mscara del AKKU 1 que estn marcados con un 1 se ponen a 1 en la palabra de control. La nueva palabra de control se carga en el AKKU 1. Todos los bits de de la mscara del AKKU 1 que estn marcados con un 1 se ponen a 0 en la palabra de control. La nueva palabra de control se carga en el AKKU 1.

2:

3:

2b) AKKU 1 nueva palabra de control o mscara, dependiendo de la funcin deseada

Resultado

Tras un procesamiento correcto y exento de errores, el programa de sistema pone el VKE a 0. La llamada del OB 143 da los siguientes resultados: N de funcin en AKKU-2-L 1 2 Contenido del AKKU 1 antes Palabra de control Mscara despus Palabra de control Nueva palabra de control Nueva palabra de control

Mscara

6 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 143: Activar/desactivar "Retardar alarmas cclicas individualmente" Casos de error

En caso de error, el programa de sistema pone el VKE a 1. Pueden ocurrir los errores indicados en la tabla siguiente. Si se produce un error, el programa de sistema deposita en el AKKU-1-L las identificaciones de error que figuran en la tabla.

Tabla 6-11

Identificaciones de error del OB 143 en el AKKU-1-L

Identificacin Significado N de funcin no vlido en AKKU-2-L 1) Uno de los bits reservados en AKKU 1 es 1

8F01H 8F02H
1)

1)

el valor errneo se encuentra en el AKKU-2-L

Consultar la palabra de control

El estado de la palabra de control puede ser consultado mediante la siguiente secuencia de programa: 1. Cargar el n de funcin 2 3 en el AKKU-2-L 2. Cargar el valor 0 en el AKKU 1 3. Llamar OB 143 4. Leer AKKU 1

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 37

OB 150: Ajustar/leer la hora del sistema

6.13 OB 150: Ajustar/leer la hora del sistema


Caractersticas de la hora y fecha del sistema
El reloj del sistema es respaldado por una batera tampn situada en el bastidor del autmata programable. Una vez ajustada la hora, aunque tenga lugar un fallo de tensin de red no se pierde el valor actual. La resolucin es de 10 ms en la lectura y de 1 s en el ajuste. Se consideran los aos bisiestos. Ajuste horario a elegir entre formato 24 horas o 12 horas "am" (ante meridium) y "pm" (post meridium). Se indica el da de la semana Las entradas y salidas se efectan en cdigo BCD.

Funcin

El OB 150 permite ajustar o leer la hora y fecha de la CPU 948 en el programa de usuario.

Nota El reloj de sistema se pone en marcha - partiendo de un valor prefijado - tras enchufar la CPU.

Parmetros

1. Campo de datos para los parmetros de tiempo Al ajustar la hora del sistema, el OB 150 toma los valores a ajustar 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 creado en un mdulo de datos o en una de ambas zonas de marcas (marcas M o S). El campo de datos consta de cuatro palabras. 1a) Formato del campo de datos durante el ajuste de la hora del sistema

Bit n 15 1a palab. 2a palab. Formato 3a palab. 4a palab.

12 11 Segundos Horas Da del mes Ao

3 0 Minutos Da de la semana Mes

6 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 150: Ajustar/leer la hora del sistema

1b) Formato del campo de datos durante la lectura de la h. del sistema

Bit n 15 a 1 palab. 2a palab. Formato 3a palab. 4a palab.

12 11 Segundos Horas Da del mes Ao

4 3 1/100 segundo Minutos Da de la semana Mes

Los parmetros de tiempo tienen el significado, las zonas de valores admisibles y la representacin siguientes: Parmetros Segundos 1/100 segundos Minutos Horas Da de semana Da del mes 1) Mes Ao Formato Campo de valores admisible Representacin

0 a 59 Formato 0 a 99 ("Ajustar hora del sistema = 0) BCD 0 a 59 0 a 23 1 a 12, segn la indicacin de "formato" 0 a 6 de lunes a domingo 1 a 31 1 a 12 0 a 99 Formato para el campo de la hora: Bit 15 = 0: Formato 12 horas (seleccin de "am" o "pm" en bit 14) Bit 15 = 1: Formato 24 horas (bit 14 = 0) Bit 14 = 0: "am" Bit 14 = 1: "pm"

1) Despus de llamar al OB 150 se comprueba si la fecha del valor indicado es lgicamente correcta considerando los aos bisiestos.

Campo de datos en la zona de marcas

Cuando se crea el campo de datos en una zona de marcas se debe tener en cuenta la siguiente asignacin de las palabras del campo de datos a los bytes de marcas. El parmetro x es el parmetro "n de la primera palabra del campo de datos", que debe ser depositado en el AKKU-1-L al llamar al OB 150: Bit n 1a pal. campo dat. 2a pal. campo dat. 3a pal. campo dat. 4a pal. campo dat. 15 8 Byte de marcas x Byte de marcas x+2 Byte de marcas x+4 Byte de marcas x+6 7 0 Byte de marcas x+1 Byte de marcas x+3 Byte de marcas x+5 Byte de marcas x+7

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 39

OB 150: Ajustar/leer la hora del sistema

2. Acumuladores 2a) AKKU-2-L El AKKU-2-L contiene informaciones referentes a la funcin deseada y al campo de datos utilizado. Debe tener la siguiente estructura: Bit n 15 N de funcin 12 11 8 Tipo de zona de direcciones 7 4 3 N del mdulo de datos 0

Parmetros en el AKKU-2-L N de funcin, valores admisibles: 1 = ajustar la hora del sistema 2 = leer la hora del sistema Tipo de zona de direc., valores admisibles: 1 = Mdulo de datos DB 2 = Mdulo de datos DX 3 = Zona de marcas M 4 = Zona de marcas S N del mdulo 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 de mdulo es irrelevante)

2b) AKKU-1-L Nmero de la primera palabra del campo de datos, valores admisibles (en funcin del tipo de zona de direcciones): DB, DX: Marcas M: Marcas S: 0 a 2039 0 a 248 (= n de byte de marcas x ) 0 a 4088 (= n de byte de marcas x )

Resultado

Si el OB 150 ha sido procesado correctamente, el VKE, los bits indicadores ODER, ERAB y OVFLS = 0.

Casos de error

Pueden ocurrir los errores indicados en la tabla siguiente. En caso de error, el programa de sistema pone el VKE a 1 y deposita en el AKKU 1 las identificaciones de error que figuran en la tabla.

6 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 150: Ajustar/leer la hora del sistema

Tabla 6-12

Identificaciones de error del OB 150 en el AKKU-1-L

Identificacin Significado 9601H 960FH 9611H 9612H 9613H 9614H 9615H 9621H 9622H 9623H 9624H 9625H 9626H 9627H 9628H 9629H Mdulo de datos no cargado Mltiple llamada al mdulo N de funcin no vlido Tipo de zona de direcciones no vlida N de mdulo de datos no vlido "N de la 1 palabra del campo de datos" no vlido Longitud del mdulo de datos < 4 palabras Ao no vlido en campo de datos Mes no vlido en campo de datos Da del mes no vlido en campo de datos Da de semana no vlido en campo de datos Hora no vlida en campo de datos Minutos no vlidos en campo de datos Segundos no vlidos en campo de datos 1/100 de seg. no vlidas en campo de datos Formato de hora no coincide con ajuste en OB 151

Nota Si en la funcin "Ajustar la hora del sistema" se efecta una parametrizacin incorrecta y la hora ha sido ajustada de forma correcta por lo menos una vez con anterioridad, entonces se transfieren dichas identificaciones de error, pero sigue funcionando la hora de sistema ajustada.

Ejemplos

"Ajustar la hora del sistema":


Se desea ajustar la hora del sistema de la siguiente manera: "Ju, 21.10.1993, 11:30 horas 0 segundos, formato 24 horas" Los parmetros de tiempo estn depositados en el mdulo de datos DB 10 a partir de la palabra de datos DW 0. DB 10 0: KH = 0 0 0 0 1: KH = 9 1 3 0 2: KH = 2 4 3 0 3: KH = 9 3 1 0 byte izquierdo = segundos (BCD), byte derecho = 0 91 30 21 30 93 10 = = = = = = formato (=80H) + hora (=11 BCD) minutos (BCD) da del mes (BCD) da de la semana (3 = jueves) + bit 0 a 3 = 0 ao (BCD) mes (BCD)

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 41

OB 150: Ajustar/leer la hora del sistema

"Ajustar la hora del sistema" (continuacin)

Operaciones depositadas en el OB 1 para la llamada al OB 150: : : :L KH 1 1 0 A : : : :L KF +0 : :SPA OB 150 :

Valores para AKKU-2-L: N DB = 10 Tipo zona de dir. = 1 para "campo de datos en DB" N de funcin = 1 para "ajustar" AKKU-1-L: N de la primera palabra del campo de datos = 0 Llamar OB 150

"Leer la hora del sistema":


La hora actual del sistema debe ser escrita en el mdulo de datos DB 10 a partir de la palabra de datos DW 4. Para ello hay que llamar al OB 150 con los siguientes parmetros: : :L : : : :L : :SPA :A :

KH

2 1 0 A

KF +4 OB 150 DB 10

Valores para AKKU-2-L: N DB = 10 Tipo de zona dir. = 1 para "campo de datos en DB" N de funcin = 2 para "leer" AKKU-1-L: N de primera palabra del campo de datos = 4 Llamar OB 150 Abrir DB 10 Evaluar DB 10

Despus de la llamada al OB 150, la hora actual del sistema queda registrada en el mdulo de datos DB 10 con el formato siguiente: ("ju, 21.10.93, 11:30 horas 20 segundos, 13 centsimas de segundo, formato 24 horas"): DW 4: DW 5: DW 6: DW 7: KH = 2 0 1 3 KH = 9 1 3 0 KH = 2 1 3 0 KH = 9 3 1 0 Segundos = 20 (BCD) 1/100 segundos = 13 (BCD) formato = 24 horas (bit 15 = 1, bit 14 = 0), horas = 11(BCD), minutos = 30 (BCD) da del mes = 21 (BCD) da de la semana = 3 = jueves ao = 93 (BCD) mes = 10 (BCD)

6 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj

6.14 OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj
Funcin
Llamando al OB 151 se puede ordenar que la CPU 948 active en un tiempo determinado la alarma temporizada controlada por reloj ("peticin de tiempo" - OB 9, vase captulo 4.5.3): - cada minuto - cada hora - cada da - cada semana - cada mes - cada ao - una vez, que lea el estado momentneo de una peticin de tiempo, que anule una peticin de tiempo ya generada. El OB 151 puede ser llamado en los estados operativos ARRANQUE y RUN. Una alarma temporizada controlada por reloj que ya ha sido creada no se pierde en caso de un REARRANQUE (automtico o manual). En caso de NUEVO ARRANQUE se borra la peticin de tiempo existente. Si se genera otra peticin de tiempo, se anula automticamente la peticin en curso. Por consiguiente, solamente puede estar activada una nica alarma temporizada controlada por reloj.

Parmetros

1. Campo de datos para parmetros de peticiones Al generar o anular una peticin de tiempo, el OB 151 toma los parmetros de peticiones necesarios de un campo de datos. Al leer el estado actual de la administracin de las peticiones, el OB 151 transfiere los parmetros actuales a un campo de datos. Este campo de datos se puede crear en un mdulo 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 crear y leer la peticin de tiempo:

Bit n 15 1a palab. 2a palab. Formato 3a palab. 4a palab.

12 11 Segundos Horas Da del mes Ao

3 0 0 Minutos Da de semana Tipo de peticin Mes

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 43

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj

El significado, las zonas de valores admisibles y la representacin de los parmetros son los siguientes: Parmetros Zona de valores admisibles 0: Anular peticin o no hay peticin 1: cada minuto 2: cada hora 3: cada da 4: cada semana 5: cada mes 6: cada ao 7: una vez Segundos 1/100 segundos Minutos Horas Da de semana Da del mes 1) Mes Ao Formato
2)

Represent. Formato BCD

Tipo de peticin 0 a 7 con:

0 a 59 0 0 a 59 0 a 23 1 a 12, segn indicado bajo "formato" 0 a 6 de lunes a domingo 1 a 31 1 a 12 0 a 99 Formato para el campo de la hora, significado: Bit 15 = 0: Formato 12 horas Bit 15 = 1: Formato 24 horas (bit 14 = 0) Bit 14 = 0: "am" Bit 14 = 1: "pm"

Formato BCD

1) Despus de llamar al OB 151 se comprueba si la fecha del valor indicado es lgicamente correcta considerando los aos bisiestos. 2) Significado de "am" y "pm": vase OB 150 en el captulo precedente. El "formato" tiene que coincidir con el formato indicado al ajustar la hora del sistema mediante el OB 150!

Campo 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 asignacin de las palabras del campo de datos a los bytes de marcas. El parmetro x es el parmetro "n de la primera palabra del campo de datos", el cual debe ser depositado en el AKKU-1-L al llamar al OB 151: Bit n 1a pal. campo dat. 2a pal. campo dat. 3a pal. campo dat. 4a pal campo dat. 15 8 Byte de marcas x Byte de marcas x+2 Byte de marcas x+4 Byte de marcas x+6 7 0 Byte de marcas x+1 Byte de marcas x+3 Byte de marcas x+5 Byte de marcas x+7

6 - 44

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj

2. Acumuladores 2a) AKKU-2-L El AKKU-2-L contiene informaciones referentes a la funcin deseada y al campo de datos utilizado. Ha de tener la siguiente estructura: Bit n 15 N de funcin 12 11 8 Tipo de zona de direcciones 7 4 3 N de mdulo de datos 0

Parmetros en el AKKU-2-L N de funcin, valores admisibles: 1 = crear la peticin 2 = leer el estado de la peticin Tipo de zona de direc., valores admisibles: 1 = Mdulo de datos DB 2 = Mdulo de datos DX 3 = Zona de marcas M 4 = Zona de marcas S N de mdulo 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 de mdulo es irrelevante)

2b) AKKU-1-L Nmero de la primera palabra del campo de datos, valores admisibles (en funcin del tipo de zona de direcciones): DB, DX: Marcas M: Marcas S: 0 a 2039 0 a 248 (= n de byte de marcas x ) 0 a 4088 (= n de byte de marcas x )

Nota No conviene generar una peticin de tiempo de forma cclica (por ej. mediante una llamada absoluta del OB 151 con el n de funcin 1 en el OB 1).

Resultado

Si el OB 151 ha sido procesado correctamente, el VKE, los bits de indicadores ODER , ERAB y OVFLS = 0.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 45

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj

Nota Si al leer la peticin de tiempo en el campo de datos, el tipo de peticin es 0 y los restantes parmetros son F o FF (hexadecimal), significa que no est activada ninguna peticin. Esto puede ocurrir a) cuando se ha ejecutado un NUEVO ARRANQUE sin generar una peticin de tiempo, b) cuando ha vencido una peticin de tiempo nica o c) cuando se ha anulado una peticin.

Casos de error

Pueden ocurrir los errores indicados en la tabla siguiente. En caso de error, el programa de sistema pone el VKE a 1 y deposita en el AKKU 1 las identificaciones de error que figuran en la tabla.

Tabla 6-13

Identificaciones de error del OB 151 en el AKKU-1-L

Identificacin Significado 9701H 970FH 9710H 9711H 9712H 9713H 9714H 9715H 9721H 9722H 9723H 9724H 9725H 9726H 9727H 9728H 9729H 972AH Mdulo de datos no cargado Mltiple llamada al mdulo Modo de operacin errneo ("Byte Entrada 0 Alarma proceso = si") N de funcin no vlido Tipo de zona de direcciones no vlido N de mdulo de datos no vlido "N de la 1 palabra del campo de datos" no vlido Longitud del mdulo de datos < 4 palabras Ao no vlido en campo de datos Mes no vlido en campo de datos Da del mes no vlido en campo de datos Da de semana no vlido en campo de datos Hora no vlida en campo de datos Minutos no vlidos en campo de datos Segundos no vlidos en campo de datos 1/100 de seg. en campo de datos no es igual a cero. Formato de la hora no coincide con el ajuste en OB121/OB 150 Tipo de peticin no vlido

Nota Si se efecta una parametrizacin incorrecta y ya ha sido generada una peticin de tiempo vlida, entonces se transfieren dichas identificaciones de error, pero la peticin de tiempo generada con anterioridad sigue en vigor.

6 - 46

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj Aspectos a tener en cuenta respecto a los parmetros de tiempo

Dependiendo de cundo se deba activar una alarma temporizada controlada por reloj (peticin de tiempo), es necesario predefinir cada uno de los parmetros con determinadas combinaciones. Para ello es absolutamente necesario indicar ciertos parmetros - dependiendo del momento elegido para la alarma temporizada controlada por reloj mientras que otros no son evaluados por el programa de sistema. La tabla siguiente indica qu parmetros de tiempo deben ser indicados con qu peticiones de tiempo (XXX = indicacin necesaria, --- = irrelevante).

Tabla 6-14

Asignacin "peticin de tiempo - parmetro de tiempo"

Hora de alarma

Segundos XXX XXX XXX XXX XXX XXX XXX

Minutos --XXX XXX XXX XXX XXX XXX

Horas

cada minuto cada hora cada da cada por semana cada mes cada ao una vez

----XXX XXX XXX XXX XXX

Da de la semana ------XXX -------

Da del mes --------XXX XXX XXX

Mes

Ao

----------XXX XXX

------------XXX

Durante la lectura de los parmetros de tiempo se ocupan los parmetros irrelevantes con FFH.

Particularidades

Si para el tipo de peticin "cada ao" (= 6) se elige como da del mes y mes el "29 de febrero", entonces el OB 9 slo ser llamado cada ao bisiesto. Si para el tipo de peticin "cada mes" (= 5) se elige como da del mes el valor "29", "30" "31", el OB 9 slo ser llamado en los meses en los que exista el da elegido.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 47

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj Ejemplos

Distintas peticiones de tiempo (en formato de 24 horas):


1. "Peticin cada minuto en el segundo 29" (12:44:29, 12:45:29, etc.): Se debe indicar: Tipo de peticin = 1 (N func. en AKKU-2-L = 1) Segundos = 29

2. "Peticin cada hora, a las xx:14:15 respectivamente": Se debe indicar: Tipo de peticin = 2 (N func. en AKKU-2-L = 1) Segundos = 15 Minutos = 14

3. "Peticin cada da a las 5:32:47": Se debe indicar: Tipo de peticin Segundos Minutos Formato/h. = 3 (N func. en AKKU-2-L = 1) = 47 = 32 = 85

4. "Peticin cada semana, los martes a las 10:50:00": Se debe indicar: Tipo de peticin Segundos Minutos Formato/h. Da semana = = = = = 4 (N func. en AKKU-2-L = 1) 00 50 90 01

5. "Peticin cada mes, el 14. a las 7:30:15 respectivamente": Se debe indicar: Tipo de peticin Segundos Minutos Formato/h. Da del mes = = = = = 5 (N func. en AKKU-2-L = 1) 15 30 87 14

6. "Peticin cada ao, el 1.5. a las 00:01:45 respectivamente": Se debe indicar: Tipo de peticin Segundos Minutos Formato/h. Da del mes Mes = = = = = = 6 (N func. en AKKU-2-L = 1) 45 01 80 01 05

Contina en la pgina siguiente

6 - 48

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj

Distintas peticiones de tiempo (en formato de 24 horas), continuacin :


7. "Peticin una sola vez, el 31.12.1999 a las 23:55:00": Se debe indicar: Tipo de peticin Segundos Minutos Formato/h. Da del mes Mes Ao = = = = = = = 7 (N func. en AKKU-2-L = 1) 00 55 A3 31 12 99

8. "Anular peticin": Se debe indicar: Tipo de peticin = 0 (N de func. en AKKU-2-L = 1)

9. "Leer tipo de peticin": Se debe indicar: N de funcin en AKKU-2-L = 2

En caso de que no est activada ninguna peticin, en el campo de datos aparece el resultado siguiente: Palabra Palabra Palabra Palabra del del del del campo campo campo campo de de de de datos datos datos datos 0: 1: 2: 3: FFFF FFFF FFF0 FFFF H H H H

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 49

OB 153: Ajustar/leer la hora para la alarma de retardo

6.15 OB 153: Ajustar/leer la hora para la alarma de retardo


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" (vase OB 6, captulo 4.5.3).

Funcin

Mediante una llamada al OB 153 se puede definir y arrancar un tiempo de retardo, detener un tiempo de retardo activado (anular una peticin 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 peticin de retardo

Sin embargo, una alarma de retardo que ha sido activada mediante una peticin de retardo slo es activada por el programa de sistema en el modo RUN (llamada del OB 6). Las peticiones cuyo vencimiento no tenga lugar en modo RUN, son rechazadas por el programa de sistema sin aviso previo. Tambin se rechaza una peticin en curso (an no vencida) cuando la CPU pasa a STOP y en caso de DESCONEXION.

Parmetros

Acumuladores a) AKKU-2-L Al AKKU-2-L se le dar el n de funcin 1 ("definir tiempo de retardo") solamente al llamar al OB 153: Tiempo de retardo en milisegundos (mx. 65535) Valores admisibles: 0001H a FFFFH

b) AKKU-1-L N de funcin Valores admisibles: 1 = Definir y arrancar el tiempo de retardo 2 = Detener el tiempo de retardo (= anular peticin) 3 = Leer el tiempo restante actual

6 - 50

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 153: Ajustar/leer la hora para la alarma de retardo

Nota Si al definir un tiempo de retardo, an no ha transcurrido un tiempo de retardo definido con anterioridad, entonces se ignora ste ltimo y se arranca el nuevo tiempo de retardo.

Resultado

Si el OB 153 ha sido procesado correctamente, el VKE, los bits indicadores ODER, ERAB y OVFLS = 0. Si se llama al OB 153 con el n de funcin 2 3, el AKKU-1-L contiene el tiempo restante en milisegundos. Si al llamar al OB 153 con el n de funcin 2 3, no hay ninguna peticin de retardo activada, entonces el AKKU-1-L contiene el valor 0.

Casos de error

Pueden ocurrir los errores indicados en la siguiente tabla. En caso de error, el programa de sistema pone el VKE a 1 y deposita en el AKKU 1 las identificaciones de error que figuran en la lista.

Tabla 6-15

Identificaciones de error del OB 153

Identificacin Significado 990FH 9910H 9911H 9921H Llamada mltiple al mdulo Modo errneo ("Byte Entrada 0 Alar. Proceso = si") N de funcin no vlido Tiempo de retardo no vlido

Ejemplos

Definir y arrancar el tiempo de retardo:


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 se arranca en el mdulo de organizacin 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: N de funcin = 1 para : "definir y arrancar tiempo de retardo" :SPA OB 153 Llamar al OB 153

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 51

OB 153: Ajustar/leer la hora para la alarma de retardo

Detener el tiempo de retardo (anular la peticin):


Operaciones STEP 5 para llamar al OB 153: : : :L KF +2 Valor para AKKU-1-L: N de funcin = 2 para : "detener el tiempo de retardo" :SPA OB 153 Llamar al OB 153 :

Leer el tiempo restante de una peticin de retardo:


Operaciones STEP 5 para llamar al OB 153: : : :L KF +3 : :SPA OB 153 : : : :

Valor para AKKU-1-L: N de funcin = 3 para "leer el tiempo restante" Llamar al OB 153 El AKKU-1-L contiene el tiempo restante de la peticin de retardo.

6 - 52

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 180: Acceso variable a mdulos de datos

6.16 OB 180: Acceso variable a mdulos de datos


Aplicacin del OB 180
El OB 180 se utiliza para trabajar con mdulos de datos de una longitud superior a 261 palabras (incluidas 5 palabras para el encabezamiento): El OB 180 permite desplazar una ventana de acceso de 256 palabras de datos a razn de mltiplos de 16 palabras en un mdulo de datos (a direcciones de prrafo). Llamando repetidas veces al OB 180, la ventana de acceso se desplazar en mayor medida. A diferencia de la CPU 928B, la CPU 948 no permite desplazar la ventana de acceso gradualmente sino a razn de mltiplos de 16.

Funcin

El OB 180 desplaza la direccin inicial del mdulo de datos tantas posiciones como se haya definido y en direccin hacia el fin del mdulo, teniendo en cuenta que la longitud an disponible del DB disminuye (los registros DBA y DBL - vase captulos 8.3 y 9.2.1 - se cargan en funcin del desplazamiento).

Nota Antes de llamar al OB 180 tiene que haberse abierto un mdulo de datos suficientemente largo (DB o DX).

Parmetros

AKKU-1-L Nmero de desplazamiento V: Nmero de palabras de datos que se va a desplazar la direccin inicial del mdulo de datos 0 V DBL, V = n * 16 (16, 32, 48 ...)

Valores admisibles:

Resultado

Si el OB 181 ha sido llamado con xito, la direccin relativa de la DW 0 ha sido desplazada tantas posiciones como indique el valor depositado en AKKU-1-L (los registros DBA y DBL se han actualizado correspondientemente). se borra el VKE (VKE = 0), se borran los restantes indicadores de bits y de palabras, el contenido de AKKU-1-L = 0.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 53

OB 180: Acceso variable a mdulos de datos Casos de error

Se pueden producir los errores indicados en la tabla siguiente. En caso de producirse un error, el programa de sistema pone el VKE a 1 y deposita en el AKKU 1 la identificacin de error representada en la tabla. Los restantes indicadores de bits y de palabras se borran. Los valores de DBA y DBL no cambian.

Tabla 6-16

Identificaciones de error del OB 180

Identificacin Significado B401H B410H B411H No hay ningn mdulo de datos abierto. El nmero de desplazamiento V no es mltiplo de 16. a) El nmero de deplazamiento V es demasiado alto; la nueva posicin de la ventana sobrepasara el fin del mdulo. b) El nmero de desplazamiento V es negativo.

Restablecer la posicin inicial de la ventana de acceso

Abriendo nuevamente el mdulo de datos con las operaciones A DB o AX DX se restablece la posicin normal de la ventana de acceso.

Comportamiento con anidamiento de mdulos

Desplazando en un mdulo de cdigo la ventana de acceso con el OB 180 y llamando despus otro mdulo de cdigo se mantiene la posicin de la ventana de acceso del mdulo de cdigo llamado hasta volver a llamar el OB 180 (los valores de DBA/DBL no cambian). Por el contrario, en caso de desplazar la ventana de acceso en un mdulo de cdigo llamado utilizando el OB 180, entonces, al retornar del mdulo llamado (operacin fin de mdulo), se restablece la posicin que tena al llamar el mdulo de cdigo anidado.

6 - 54

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 180: Acceso variable a mdulos de datos Ejemplo


Se ha de desplazar la direccin inicial del mdulo de datos (DBA = 4152H en el DB 17 (longitud = 256 DW) 32 palabras de datos hacia el final del mdulo. :A :L DB KB 17 32 Arir DB 17 Desplazamiento / correr como constante Llamar OB 180: Desplazar ventana de acceso

:SPA OB

180

Despus de llamar el OB 180 ya no se puede acceder p. ej. con DW 35 a la palabra de datos almacenada en la direccin 4 1543H, sino con DW 3 etc. (vase figura 6-3). Puesto que al mismo tiempo ha cambiado el registro DBL queda garantizada la deteccin de errores: la operacin T DW 223 est permitida mientras que T DW 224/L DW 224 es errnea.

Llamando repetidas veces el OB 180 se puede aumentar el DBA (disminuyendo el DBL): la operacin A DB 17 restablece el estado normal (DBA = 4152H, longitud = 256 DW). Si el DB 17 tuviera una longitud de por ejemplo 258 palabras de datos, entonces ya no sera posible acceder con operaciones de STEP 5 a DW 256 y DW 257. Desplazando el registro DBA 16 posiciones se puede acceder a las palabras de datos 256 y 257 con DW 240 y DW 241.

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 55

OB 180: Acceso variable a mdulos de datos

Ejemplo (continuacin)
DB 17

Direccin 4 151BH

5 palabras encabezamiento 4 151FH 4 1520H

DBA antiguo (4152H)

"00"

4 1530H

"16"

DBL antiguo

DBA nuevo (4154H)

4 1540H 4 1541H 4 1542H 4 1543H 4 1544H 4 1545H 4 1545H

"32" "33" "34" "35" "36" "37" "38"

DW 0 DW 1 DW 2 DW 3 DW 4 DW 5 DW 6 DBL nuevo

15

Figure 6-3

Desplazamiento de la direccin inicial del DB

6 - 56

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 181: Comprobar mdulos de datos (DB/DX)

6.17 OB 181: Comprobar mdulos de datos (DB/DX)


El mdulo de organizacin de funciones especiales OB 181 permite comprobar si existe un determinado mdulo de datos DB o DX, la direccin de la primera palabra del mdulo de datos, la cantidad de palabras de datos que contiene este mdulo.

Aplicacin del OB 181

Es recomendable utilizar la funcin "Comprobar DB/DX" antes de las instrucciones TNB/TNW, E DB/EX DX y antes de llamar a los mdulos de organizacin de funciones especiales OB 182, OB 254 y OB 255. As, por ejemplo, antes de transferir palabras de datos en bloque puede llamarse al OB 181 para asegurarse de que el mdulo de datos de destino sea vlido y suficientemente largo para acoger todas las palabras de datos que se desean copiar.

Funcin

El OB 181 comprueba si existe el mdulo de datos indicado y da como resultado los parmetros caractersticos del mdulo de datos.

Parmetros

AKKU-1-L a) AKKU-1-LL Nmero del mdulo, valores admisibles:

1 a 255

b) AKKU-1-LH Identificacin del mdulo, valores admisibles: 1 = DB 2 = DX

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 57

OB 181: Comprobar mdulos de datos (DB/DX) Resultado

Si la funcin es ejecutada sin errores y el mdulo comprobado se encuentra efectivamente en la CPU, el programa de sistema transfiere los siguientes resultados a los acumuladores: AKKU-1-L: Direccin de la 1 palabra de datos (DW 0), direccin de 20 bit Longitud del mdulo de datos en palabras (sin contar el encabezamiento) Ejemplo: el AKKU-2-L contiene el valor 7: el mdulo de datos consta de las palabras de datos DW 0 a DW 6 =0

AKKU-2-L:

VKE:

Casos de error

Se pueden dar los casos de error indicados en la siguiente tabla. En caso de error, el programa de sistema pone el VKE a 1 y activa o desactiva los dems indicadores expuestos en la tabla. Adems deposita una identificacin de error en el AKKU-1-L.

Tabla 6-17

Indicadores de error del OB 181 y su consulta

VKE ANZ 1 ANZ 0 AKKU-1-L Significado 1 0 1 B501H Mdulo no existente

Consulta SPB SPM SPN SPB SPP SPN SPB SPP SPN

B502H

Nmero de mdulo errneo

B503H

Identificacin de mdulo errnea

6 - 58

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 182: Copiar zona de datos

6.18 OB 182: Copiar zona de datos


Funcin
El OB 182 copia un bloque de datos de longitud variable de un mdulo de datos a otro. Como mdulos fuente y destino pueden utilizarse mdulos de datos DB y DX. El principio del bloque en el mdulo fuente y destino puede elegirse a voluntad. El OB 182 puede copiar mximo 4091 palabras de datos.

Nota El mdulo de datos fuente y destino pueden ser idnticos. Las zonas de datos de fuente y destino pueden solaparse. Los datos originales de la zona fuente se copian en el destino sin ser modificados, an en caso de solaparse. La zona solapada en la fuente queda sobreescrita tras el proceso de copia. Esta propiedad de la funcin puede utilizarse para desplazar una zona de datos dentro de un mismo mdulo.

Parmetros

1. Campo de datos con parmetros de copia Antes de llamar al OB 182 hay que proveer un campo de datos de los parmetros necesarios para el proceso de copia deseado. Este campo de datos puede crearse en un mdulo de datos DB o DX, o bien en la zona de marcas M o S.

El campo de datos designa el mdulo de datos fuente y destino, la direccin inicial del mdulo, as como la cantidad de palabras de datos a transferir. El campo de datos consta de cinco palabras:

Bit n 1 palab. 2 palab. 3 palab. 4 palab. 5 palab.

15

Tipo de DB fuente N de DB fuente N de la 1 palabra de datos a transferir en el DB fuente Tipo de DB destino N de DB destino N de la 1 palabra de datos a transferir en el DB destino Cantidad de palabras de datos

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 59

OB 182: Copiar zona de datos

Los parmetros tienen el significado y los campos de valores admisibles siguientes: Parmetros Tipo de mdulo de datos (fuente y destino) N de mdulo de datos (fuente y destino) N de 1 pal. de datos (fuente y destino) Cantidad de palabras de datos Campo de valores admisible 1 = DB 2 = DX de 3 a 255 de 0 a 4090 de 1 a 4091

Campo de datos en la zona de marcas

En caso de crear el campo de datos en una zona de marcas hay que tener en cuenta la siguiente asignacin de las palabras del campo de datos a los bytes de marcas: x es el parmetro "n de la 1 palabra de datos", el cual ha de ser depositado en el AKKU-1-L al llamar al OB 182: Bit n. 15 87 0 1 pal. campo dat. Byte de marcas x Byte de marcas x+1 2 pal. campo dat. Byte de marcas x+2 Byte de marcas x+3 3 pal. campo dat. Byte de marcas x+4 Byte de marcas x+5 4 pal. campo dat. Byte de marcas x+6 Byte de marcas x+7 5 pal. campo dat. Byte de marcas x+8 Byte de marcas x+9

2. Acumuladores 2a) AKKU-2-L El AKKU-2-L contiene informaciones referentes al campo de datos utilizado. Su estructura ha de ser la siguiente: Bit n 15 8 Tipo de zona de direcciones 7 N del mdulo de datos 0

Parmetros en el AKKU-2-L Tipo de zona de direcciones, valores admisibles: 1 = Mdulo de datos DB 2 = Mdulo de datos DX 3 = Zona de marcas M 4 = Zona de marcas S N del mdulo de datos, valores admisibles: de 3 a 255 (slo si el tipo de zona de direcciones es 1 2; si es 3 4 es irrelevante)

6 - 60

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 182: Copiar zona de datos

2b) AKKU-1-L Nmero de la 1 palabra del campo de datos, valores posibles (depende del tipo de zona de direcciones): DB, DX: de 0 a 2038 Marcas M: de 0 a 246 (= n del byte de marcas x) Marcas S: de 0 a 4086 (= n del byte de marcas x)

Resultado

Una vez procesado correctamente el OB 182, el VKE, los bits indicadores ODER, ERAB y OVFLS estarn a 0.

Casos de error

En caso de error se deposita una identificacin de error en el AKKU 1 (vase tabla siguiente).

Tabla 6-18

Identificaciones de error del OB 182 en el AKKU-1-L

AKKU-1-L Significado B601H B60FH B611H B612H B613H B621H B622H B623H B624H B625H B626H B627H B628H B629H B62AH B62BH B62CH Mdulo de datos no cargado Llamada mltiple al mdulo Escritura errnea en el mdulo de datos Tipo de zona de direcciones no vlido N del mdulo de datos no vlido "N de la 1 palabra del campo de datos" no vlido "Tipo de mdulo de datos fuente" no vlido "N del mdulo de datos fuente" no vlido "N de la 1 palabra de datos a transferir en el DB fuente" no vlido Longitud del mdulo de datos fuente en el encabezamiento < 5 palabras "Tipo de mdulo de datos destino" no vlido "N del mdulo de datos destino" no vlido "N de la 1 palabra a escribir en el DB destino" no vlido Logitud del mdulo de datos destino en el encabezamiento < 5 palabras "Cantidad de palabras de datos a transferir" no vlida (= 0 > 4091) Mdulo de datos fuente demasiado corto Mdulo de datos destino demasiado corto

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 61

OB 202 a 205: Comunicacin en multiprocesamiento

6.19 OB 202 a 205: Comunicacin en multiprocesamiento


En el captulo 10 se encuentran instrucciones detalladas sobre estos mdulos de organizacin de funciones especiales. Los mdulos de organizacin de funciones especiales OB 200 y OB 202 a OB 205 permiten transferir datos en modo multiprocesador entre las distintas CPUs utilizando el coordinador K C. OB 200: Inicializar Este mdulo de organizacin de funciones especiales instala en el coordinador la memoria intermedia, en la que se almacenan temporalmente los bloques de datos a transferir. OB 202: Emitir Esta funcin transfiere un bloque de datos a la memoria intermedia del coordinador K C e indica la cantidad de bloques de datos que todava pueden ser transmitidos. OB 203: Test de emisin El OB 203 de funciones especiales averigua la cantidad de bloques de memoria libres existentes en la memoria intermedia del coordinador K C. OB 204: Recibir Esta funcin recoge un bloque de datos de la memoria intermedia del coordinador K C e indica la cantidad de bloques de datos que todava pueden ser recibidos. OB 205: Test de recepcin El mdulo de organizacin de funciones especiales OB 205 averigua la cantidad de bloques de memoria ocupados en la memoria intermedia del coordinador K C.

6 - 62

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 222: Arrancar nuevamente el tiempo de supervisin de ciclo

6.20 OB 222: Arrancar nuevamente el tiempo de supervisin de ciclo


La funcin especial OB 222 provoca un trigger (disparo) posterior del tiempo de supervisin de ciclo, es decir, se arranca nuevamente el temporizador de supervisin. Al llamar a esta funcin especial se prolonga el tiempo de ciclo mximo del ciclo actual en el valor ajustado a partir del instante en que se produjo la llamada.

Parmetros

ninguno

Casos de error

ninguno

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 63

OB 223: Comparar los modos de arranque

6.21 OB 223: Comparar los modos de arranque


Funcin
Mediante la llamada al OB 223 se puede comprobar si los modos de arranque de todas las CPUs que estn en modo multiprocesador son idnticos, de forma que se pueda reaccionar con el programa ante un eventual error.

Parmetros

ninguno

Resultado

Despus de llamar al OB 223, el programa de sistema pone el VKE a 0 y deposita en el AKKU-1-LL el valor 01H, si los modos de arranque son idnticos. Modos de arranque no idnticos Otros errores, vase indicadores

Casos de error

Indicadores

En caso de error, el programa de sistema pone el VKE a 1 y transfiere al AKKU-1-LL una identificacin de error.

Tabla 6-19

Identificaciones de error del OB 223 en el AKKU-1-LL

Identificacin 01H 02H 03H 04H

Significado Modos de arranque idnticos Error de sistema interno Modos de arranque no idnticos Modo monoprocesador: no es posible comparar los modos de arranque

6 - 64

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 254/255: Copiar/duplicar mdulos de datos

6.22 OB 254/255: Copiar/duplicar mdulos de datos


Con las funciones especiales OB 254/255 se copian mdulos de datos individuales desde una Memory Card a la memoria de usuario o se duplican mdulos de datos dentro de la memoria de usuario. Las funciones especiales OB 254 y OB 255 se ejecutan de la misma manera, con la diferencia que el OB 254 est destinado exclusivamente para mdulos de datos DX y el OB 255 para mdulos de datos DB.

Nota Durante el proceso de copia o de duplicado estn bloqueadas las alarmas de usuario: no logran pasar ni las alarmas temporizadas ni las alarmas de proceso o interrupciones.

Aplicacin

Copiar mdulos de datos de la Memory Card o duplicar mdulos de datos en la memoria de usuario asignndoles otro nmero de mdulo.

Copiar Condiciones
En la aplicacin "copiar" de ambas funciones especiales (llamada al OB 254 u OB 255) deben cumplirse las siguientes condiciones: La Memory Card debe insertarse en su emplazamiento antes de efectuar el BRADO TOTAL, depus de lo cual no debe ser extrada. El mdulo de datos de destino no ha de existir an. La funcin on line "comprimir memoria" no ha de estar activada.

Funcin

Se transfiere un mdulo de datos desde la Memory Card a la memoria de usuario sin perder su nmero de mdulo original. La direccin inicial se registra en la lista de direcciones del DB 0.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 65

OB 254/255: Copiar/duplicar mdulos de datos Parmetros

1. AKKU-1-LL Nmero del mdulo a copiar. Son vlidos los nmeros de mdulo siguientes: Tipo de mdulo DB (OB 255) DX (OB 254) 2. AKKU-1-LH El AKKU-1-LH debe ser igual a 0. Nmero de mdulo 3 a 255 3 a 255

Duplicar Funcin
Se duplica un nmero de datos dentro de la memoria de usuario y se le asigna otro nmero de datos. La direccin inicial del nuevo mdulo de datos se registra en la lista de direcciones del DB 0. La direccin inicial del mdulo antiguo del DB 0 no se pierde, es decir, el mdulo de datos original sigue siendo vlido. La direccin inicial se registra en el DB 0 slo cuando haya concluido la transferencia entera y estn correctamente registradas todas las identificaciones en el encabezamiento del mdulo. El programa de sistema da por vlido al mdulo duplicado, es decir, detecta su existencia slo tras una transferencia completa.

Parmetros

1. AKKU-1-LL Nmero del mdulo a duplicar (fuente).

2. AKKU-1-LH Nmero del nuevo mdulo (destino). Son vlidos los nmeros de mdulo siguientes: Tipo de mdulo DB (OB 255) DX (OB 254) Nmero de mdulo 3 a 255 3 a 255

6 - 66

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

OB 254/255: Copiar/duplicar mdulos de datos Resultado despus de copiar y duplicar

Tras un procesamiento correcto y exento de errores, el programa de sistema pone el VKE a 0 y borra los indicadores ANZ 1 y ANZ 0. Mediante la llamada al OB 254/255 se modifican los contenidos de los AKKU 1 a AKKU 4. El registro BR permanece inalterado.

Casos de error y advertencias al copiar y duplicar

En caso de error o de advertencia, el programa de sistema interrumpe el procesamiento del OB 254/255 y contina con el procesamiento del programa a partir de la prxima operacin STEP 5. Adems, pone el VKE a 1 y deposita en el AKKU-1-LL una identificacin (vase tabla 6-20). En caso de interrumpirse una funcin a causa de una advertencia, en determinadas circunstancias puede lograrse un procesamiento correcto del OB 254/255 repitiendo la llamada a la funcin especial (una o ms veces). En el siguiente caso, el OB 254/255 es abortado con advertencia: Durante los ltimos 10 ms ha sido llamado un OB 124, OB 125, OB 254 u OB 255. (Por cada 10 ms se admite una sola llamada a estas funciones especiales. De este modo se impide que, por mltiples llamadas a los OBs mencionados, se deje de procesar la interfaz con el aparato de programacin).

Indicadores despus de copiar y duplicar

Despus de llamar al OB 254/255 se puede determinar en base al resultado de combinacin (VKE) y a los indicadores ANZ 1 y ANZ 0 si la funcin especial ha sido ejecutada correctamente o si ha sido abortada con "error" o con "advertencia". El resultado puede ser evaluado mediante instrucciones de salto condicionales.

Indicadores de resultado
Tabla 6-20 Indicadores de resultado del OB 254/255

VKE 0 1

ANZ 1 ANZ 0 Significado 0 1 0 0 La funcin especial fue procesada correctamente El procesamiento de la funcin especial fue abortado con "advertencia" El procesamiento de la funcin especial fue abortado con "error"

Consulta SPB SPZ SPB SPP SPN SPB SPM SPN

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

6 - 67

OB 254/255: Copiar/duplicar mdulos de datos Identificaciones en el AKKU-1-LL

El programa de sistema deposita en el AKKU-1-LL identificaciones referentes al resultado del procesamiento, las cuales especifican ms detalladamente la causa de la advertencia o del error.

Bit n

7 A

6 E

5 Causa del error/advertencia

Se han definido los siguientes indicadores colectivos: Bit n 7 (A) = 1: Bit n 6 (E) = 1: Advertencia Error

Tabla 6-21

Identificaciones de resultado del OB 254/255 en AKKU-1-LL

Identificacin Significado 01H 41H 43H 48H 4AH 4BH 4CH 4DH 4EH 8DH 8EH La funcin fue procesada correctamente Error: Encabezamiento no vlido en Memory Card Capacidad de memoria insuficiente Mdulo de datos fuente no existente Nmero o tipo de mdulo no vlido/DB fuente Nmero o tipo de mdulo no vlido/DB destino Mdulo destino ya existe en memoria de usuario Funcin on line COMPRIMIR MEMIA activa Memory Card no insertada Advertencia: Conflicto con una funcin on line (excepto "Comprimir memoria") El tiempo de espera 10 ms an no ha transcurrido

Ejemplos
1. "Copiar":
:L KY 0,120 :SPA OB 254 : : : Esta secuencia de instrucciones copia el mdulo de datos DX 120 de la Memory Card en la memoria de usuario.

2. "Duplicar":
:L KY 80,85 :SPA OB 255 : : : : Esta secuencia de instrucciones duplica el mdulo de datos DB 85; el nuevo mdulo de datos obtiene el n 80. Los contenidos del DB 80 y DB 85 son idnticos.

6 - 68

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulo de datos ampliado DX 0

Indice - Captulo 7
7.1 7.2 7.2.1 7.3 7.4 7.4.1 7.4.2 Aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 4 Estructura del DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 5 Ejemplo de entrada del DX 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 7 Parmetros para el DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 8 Ejemplos de parametrizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 12 Programacin STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 12 Parametrizacin mediante la mscara del aparato de programacin . . . . . . . . . . . . . . . 7 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7-1

Indice

7-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Mdulo de datos ampliado DX 0

Este captulo explica en qu casos se puede utilizar el mdulo de datos DX 0 y cmo est estructurado. Informa asimismo sobre el significado de los distintos parmetros DX 0. Por medio de ejemplos se muestra cmo crear un mdulo de datos DX 0 o cmo parametrizarlo mediante una mscara.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7-3

Aplicacin

7.1

Aplicacin
El usuario puede adaptar a sus necesidades determinadas funciones del programa de sistema modificando los parmetros estndar (marcados con una "E" en la tabla de parmetros) en el DX 0. Los ajustes estndar del programa de sistema (E) se activan automticamente cada vez que se ejecuta un NUEVO ARRANQUE. Despus se evala el DX 0. Si el usuario no ha parametrizado ni cargado el mdulo DX 0, entonces seguirn siendo vlidos los ajustes estndar; en caso contrario, valen los ajustes parametrizados por el usuario. Los ajustes del DX 0 se efectan programando los valores de la misma manera como se programan en un mdulo de datos cualquiera (vase captulo 7.2 a 7.4.1) o bien - con el software de sistema para PG S5_DOS a partir de la versin 3.0 - introduciendo los valores a travs de una mscara especial del aparato de programacin (vase captulo 7.4.2). Se pueden utilizar todas las funciones de la mscara DX 0, siempre y cuando se haya instalado en el PG el software STEP 5/ST, versin 6.3 o bien STEP 5/MT, versin 6.0 + el respectivo "Disquete Delta CPU 948". Nota Las entradas y modificaciones que se efecten en el DX 0 slo tendrn efecto despus de ejecutar un NUEVO ARRANQUE. Si durante un NUEVO ARRANQUE se acepta un DX 0 modificado, seguirn siendo vlidos los parmetros que no hayan sido modificados!

Diferencias respecto a la CPU 946/947

La parametrizacin del DX 0 en la CPU 948 presenta respecto a la CPU 946/947 las siguientes diferencias: Modos de operacin: Se ha suprimido el modo 150U/155U y en su lugar se ha previsto la "interrupcin en lmites de mdulos" y la "interrupcin en lmites de instrucciones". Procesamiento de las interrupciones de sistema: La CPU 948 tambin permite combinar "Byte Entrada o Alarma Proceso = no" (= procesamiento de interrupciones de sistema) con "interrupcin en lmites de mdulos". Por ello ahora tambin se puede utilizar el modo multiprocesador en el modo "interrupcin en lmites de mdulos". Alarmas temporizadas adicionales: Si se ha activado el modo "Byte Entrada o Alarma Proceso", adems de las alarmas temporizadas habituales, se dispone adicionalmente de la alarma de retardo (OB 6) y de la alarma temporizada controlada por reloj (OB 9).

7-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estructura del DX 0

7.2

Estructura del DX 0
El DX 0 se divide en tres partes: la identificacin inicial del DX 0 (DW 0, 1 y 2) , varios bloques de distinta longitud (segn la cantidad de parmetros) y la identificacin final.

Identificacin inicial

Caracteres ASCII MASKX0 en DW 0 a DW 2

Bloque

Un bloque del DX 0 consta de 1 a n palabras de datos. Estas contienen: la identificacin del bloque, la longitud del bloque y los parmetros del bloque.

Identificacin del bloque

La identificacin del bloque indica el significado de los parmetros que le siguen. Cada bloque est asignado a una parte determinada del programa de sistema o a una determinada funcin del sistema (por ejemplo, la identificacin de bloque 04 indica el bloque de parmetros para el procesamiento cclico del programa).

Longitud del bloque

La longitud del bloque indica la cantidad de palabras de datos que ocupan los siguientes parmetros.

Parmetros

Los parmetros posibles se encuentran en el captulo 7.3. Los valores numricos indicados estn en formato hexadecimal (KH).

Identificacin final

Indica el final del DX 0 con EEEEH en la ltima palabra de datos.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7-5

Estructura del DX 0 Estructura

Bi t n

15

DW 0 1 2 3

4 5 5

D 3 8

4 4 3

1 B 0

Caracteres ASC I I :

M A S K X 0

Identif. de bloque 1

Long. de bloque 1

Parmetro Parmetro Parmetro

Bl o q u e 1

Identif. de bloque 2

Long. de bloque 2

Parmetro

Bl o q u e 2

Identif. de bloque n

Long. de bloque n

Parmetro Parmetro Parmetro

Bl o q u e n

DW m

Identif. final

Fig. 7-1

Estructura del DX 0

7-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Estructura del DX 0

7.2.1 Ejemplo de entrada del DX 0

Identificacin inicial

DW 0: DW 1: DW 2: DW 3: DW 4: DW 5: DW 6: DW 7: DW10:

KH = 4D41 KH = 534B KH = 5830 KH = 0101 KH = 1001 KH = 0402 KH = 1000 KH = 0040 KH = EEEE Bloque 1

Ident./longitud de bloque Parmetro (ocupa 1 DW) Ident./longitud de bloque Parmetro (ocupa 2 DW)

Bloque 2

Identificacin final

Observar las siguientes indicaciones al parametrizar el DX 0: No hace falta indicar los bloques que no se requieran. Hay que respetar el orden de los bloques (introducir por ejemplo el bloque con la identificacin 02 antes que el bloque con la identificacin 05). Un bloque determinado no debe aparecer en el DX 0 ms que una sola vez. La cantidad de parmetros ha de corresponder a la longitud de bloque indicada al principio del bloque. Hay que respetar el orden de los parmetros. Los parmetros de un bloque que no sean necesarios y que se encuentren al principio del bloque han de ser prefijados. Una vez introducido el ltimo bloque hay que finalizar el DX 0 siempre con la identificacin final "KH=EEEE".

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7-7

Parmetros para el DX 0

7.3

Parmetros para el DX 0

Tabla 7-1

Parmetros DX 0 y su significado

Identificacin /longitud de bloque

Parmetro 1 palabra/ 2 palabra

Significado

1)

Modos de operacin 01xx


2)

1000 1001

E Interrupcin en lmites de mdulos 3) (CPU 946/947: modo 150U) Interrupcin en lmites de instrucciones (CPU 946/947: modo 155U) Procesamiento del programa de arranque

4)

02xx

1000 1001 1002 2000 2001 BB00 00yy


5)

E REARRANQUE AUTOMATICO tras CONEXION NUEVO ARRANQUE AUTOMATICO tras CONEXION NUEVO ARRANQUE MANUAL/REARRANQUE MANUAL tras CONEXION E Sincronizacin del ARRANQUE en modo multiprocesador Sin sincronizacin del ARRANQUE en modo multiproces. Cantidad de temporizadores a actualizar yy: Valores admisibles: 00H a FFH E yy = FF (temporizador T 0 a T 255)
6)

4000 4001

E Modo de rearranque = REARRANQUE Modo de rearranque = NUEVO ARRANQUE CON MEMORIA Procesamiento cclico del programa

04xx

1000

00yy

Ajuste del tiempo de supervisin de ciclo: 7) Tiempo de supervisin de ciclo = (yy * 10 ms) Valores admisibles: 01H a FFH E yy = 14H (200 ms) E Actualizacin de la imagen de proceso y de las marcas de acoplamiento sin proteccin de semforos Actualizacin de la imagen de proceso y de las marcas de acoplamiento con proteccin de semforos (en bloque, vase captulo 10.1.3)

4000 4001

Procesamiento de alarmas: alarmas temporizadas 05xx 1000 1001 000c 0000 E Procesamiento de alarmas temporizadas: "si" Procesamiento de alarmas temporizadas "no" c = prioridad de niveles, valores admisibles: 1 a 5 E c = 1 (prioridad ms alta)

7-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Parmetros para el DX 0

Identificacin /longitud de bloque


Tabla 7-1 (continuacin):

Parmetro 1 palabra/ 2 palabra

Significado

1)

05xx 2000

Procesamiento de alarmas: alarmas temporizadas (continuacin) 00yy Base de tiempo para el procesamiento de alarmas temp.: Base de tiempo = (yy * 10 ms) Valores admisibles: 01H a FFH E yy = 0A (100 ms) E Base de tiempo segn escala 1 (1, 2, 5, 10 ...) Base de tiempo segn escala 2 (2n) (vase captulo 4.5.2) Procesamiento de alarmas: alarmas de proceso va bus S5/interrupciones de sistema 4000 4001 5000 5001 6000 6001 7000 7001 000c 0002 000c 0002 000c 0002 000c 0002 Interrup. de sistema X "on" E Interrup. de sistema X "off" Interrup. de sistema E "on" E Interrup. de sistema E "off" Interrup. de sistema F "on" E Interrup. de sistema F "off" c = prioridad de niveles, valores admisibles: 1 a 5 X = A, B, C o D E c = 2 (prioridad 2)

3000 3001

(El procesamiento de las interrupciones de sistema puede ser combinado en la CPU 948 Interrup. de sistema G "on" con " interrupcin en lmites E Interrup. de sistema G "off" de mdulos"). E "Byte Entrada 0 Alarma Proceso = si" "Byte Entrada 0 Alarma Proceso = no" c = prioridad de niveles, valores admisibles de 1 a 2 E c = 2 (prioridad 2) Si "Byte Entrada 0 Alarma Proceso = si": - slo modo monoprocesador, - slo "interrupcin en lmites de mdulos". Identificacin final

8000 8001

000c 0000

EEEE
1) 2)

E = preajuste estndar si el DX 0 no est cargado o si falta el bloque. xx = longitud del bloque (cantidad de palabras de datos ocupadas por los parmetros).

3) Utilizando una CPU 948 tambin puede ser combinado con interrupcin de sistema.
4) 5) 6) 7)

No puede ser combinado con alarmas de proceso mediante EB 0. Tratndose de parmetros que ocupen dos palabras de datos, hay que asignar el valor 2 al indicar la longitud de bloque. Para ms informacin respecto a la actualizacin de los temporizadores, consultar las indicaciones en la pgina siguiente. Ajuste del tiempo de supervisin de ciclo con OB 31 o DX 0: Si el tiempo de supervisin de ciclo se ajusta tanto con el OB 31 como con el DX 0, el programa de sistema aceptar el ajuste del OB 31, puesto que ya ha evaluado el DX 0 con anterioridad. Por este motivo no conviene utilizar ambas posibilidades al mismo tiempo. Se recomienda ajustar el tiempo de supervisin de ciclo solamente en el DX 0.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7-9

Parmetros para el DX 0 Actualizacin de los temporizadores


De forma estndar se actualizan los temporizadores T 0 a T 255. Si en el DX 0 se registra la cantidad 0, no se actualizan los temporizadores ni aunque se encuentren en el programa. Tampoco se emite ningn aviso de error. Los temporizadores se actualizan de la siguiente manera:

Entrada

2 T0a T2

3 T0a T3

4 T0a T4

.... ....

Actualizacin ninguna T 0 a T1

Prioridades de los niveles

Se pueden establecer distintas prioridades para los niveles de procesamiento del programa, bien a travs del preajuste o bien indicando parmetros en el DX 0. Prioridades con parametrizacin "Byte Entrada 0 Alarma Proceso = si" (nivel ALARMAS DE PROCESO) Estas prioridades estn prefijadas en el DX 0 con los valores siguientes: Alarmas temporizadas: "Byte Entrada 0 Alarma Proceso" : Prioridad 1 (prioridad ms alta)

Prioridad 2 (prioridad ms baja)

En el DX 0 se pueden intercambiar ambas prioridades.

Prioridades con parametrizacin "Byte Entrada 0 Alarma Proceso = no" (= procesamiento de las interrupciones de sistema nivel INTERRUPCIONES) En este modo de operacin se han establecido de forma estndar las siguientes prioridades: Alarmas temporizadas: Interrupciones de sistema: Prioridad 1 (prioridad ms alta) Prioridad 2 (prioridad ms baja)

7 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Parmetros para el DX 0

Estas prioridades pueden ser modificadas individualmente en el DX 0 para los siguientes niveles de procesamiento, asignando valores de 1 a 5 (1 equivale a la prioridad ms alta): alarmas temporizadas, interrupcin de sistema INT X (X = A, B, C o D), interrupcin de sistema INT E, interrupcin de sistema INT F, interrupcin de sistema INT G.

Ejemplo
Asignacin de prioridades en el procesamiento de alarmas "interrupciones de sistema": Interrup. de sistema INT A/B/C/D Priodidad 1 Alarmas temporizadas Interrup. de sistema INT E Interrup. de sistema INT F Interrup. de sistema INT G Priodidad 2 Priodidad 3 Priodidad 4 Priodidad 5 Priodidad decreciente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7 - 11

Ejemplos de parametrizacin

7.4

Ejemplos de parametrizacin

7.4.1 Programacin STEP 5

Ejemplo A:
Se desean emplear tres CPUs en modo multiprocesador: CPU A, B, y C. La CPU A y la CPU B cooperan estrechamente, intercambiando datos frecuentemente y procesando un programa de arranque extenso. Independientemente de estas dos CPUs, la CPU C procesa un programa breve en funcin de tiempo. De forma estndar, todas las CPUs empiezan a procesar el programa cclicamente en modo multiprocesador, es decir, cada una de las CPUs espera a que las dems hayan finalizado su arranque y slo entonces pasan simultneamente al procesamiento cclico del programa. Puesto que la CPU C ejecuta su programa independientemente de las dems CPUs y adems est procesando un programa de arranque muy breve, no es necesario sincronizar su arranque. Mediante parametrizacin del DX 0 se consigue que la CPU C, una vez finalizado el arranque, pase al procesamiento cclico sin esperar a que las CPUs A y B hayan terminado el arranque. El parmetro de sincronizacin de las CPUs en modo multiprocesador es el segundo parmetro del primer bloque. Puesto que es necesario respetar el orden de los parmetros, hay que prefijar con "REARRANQUE AUTOMATICO tras CONEXION" el primer parmetro para el comportamiento en el arranque.

Programacin del DX 0 para la CPU C: DX 0 Ident. inicial "MASKX0" DW DW DW DW DW DW DW 0: 1: 2: 3: 4: 4: 5: KH KH KH KH KH KH KH = = = = = = = 4D41 534B 5830 0202 1000 2001 EEEE

1 ident./long. de bloque Parmetro 1 Parmetro 2 Ident. final

En caso de haber cargado este DX 0 en la memoria de programa, el DX 0 tendr efecto a partir del prximo NUEVO ARRANQUE. Ya que la CPU C est procesando un programa de arranque muy breve y no espera a las CPUs A y B, inmediatamente despus del arranque se enciende su LED RUN verde. Sin embargo, la seal BASP (bloqueo de salidas) se desactiva slo cuando las tres CPUs hayan finalizado el arranque. Esto significa que la CPU no puede acceder a la periferia digital.

7 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de parametrizacin

Ejemplo B:
Con la siguiente parametrizacin del DX 0 se - ajusta el modo de operacin "interrupcin en lmites de instrucciones", - desconecta la actualizacin de los temporizadores, - ajusta el tiempo de ciclo a 2,5 s, - ajusta la prioridad de las alarmas temporizadas a 2 y se - activa la interrupcin de sistema INT E con prioridad 1. DX 0 Ident. inicial "MASKX0" DW 0: DW 1: DW 2: DW 3: DW 4: DW 5 DW 6: DW 7: DW 8 DW 9: DW10: DW11: DW12: DW13: DW14: DW15: DW16: KH KH KH KH KH KH KH KH KH KH KH KH KH KH KH KH KH = = = = = = = = = = = = = = = = = 4D41 534B 5830 0101 1001 0202 BB00 0000 0402 1000 00FA 0504 1000 0002 5000 0001 EEEE

1 Ident./longitud Parmetro 2 Ident./longitud Parmetro 1) 3 Ident./longitud Parmetro 1) 4 Ident./longitud Parmetro 1) Parmetro 1) Ident. final

Esta parametrizacin del DX 0 tiene las siguientes repercusiones sobre el procesamiento del programa: La interrupcin del procesamiento del programa por niveles de mayor prioridad no se efeca en lmites de mdulos sino en lmites de instrucciones. El tiempo de ejecucin del programa de sistema disminuye escasamente, puesto que no se actualizan temporizadores. Los errores de ciclo slo se detectan cuando el tiempo de ejecucin del programa de usuario y del programa de sistema juntos superan 2,5 s. El byte de entrada EB 0 no procesa alarmas de proceso sino la interrupcin de sistema INT E. Debido a que su prioridad es mayor, sta interrumpe el procesamiento de las alarmas temporizadas, de la alarma de retardo as como el procesamiento de una peticin de tiempo.
1)

Bajo "longitud de bloque" se debe indicar la cantidad de palabras de datos que ocupa un parmetro.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7 - 13

Ejemplos de parametrizacin

7.4.2 Parametrizacin mediante la mscara del aparato de programacin

Para definir los parmetros para la CPU 948 en el DX 0 se pueden utilizar las mscaras que ofrece el software de sistema del PG. El software de PG crea automticamente el mdulo de datos DX 0, de acuerdo con los parmetros que haya introducido el usuario. Para poder efectuar estas parametrizaciones se requieren dos mscaras. El manual del STEP 5 describe las operaciones bsicas para seleccionar y rellenar las mscaras del aparato de programacin.

Estructura de las mscaras

La mscara del aparato de programacin prevista para rellenar el DX 0 consta de dos partes: La primera mscara (fig. 7-2) contiene los grupos de parmetros - Modo de interrupcin - Arranque tensin (modo de arranque tras CONEXION) - Funcionamiento en el rearranque - Nmero temporizadores - Vigilancia tiempo ciclo - Sincronizar arranque multiproceso - Transferir marcas de acoplamiento

D X 0 - P A R A M E T R I Z A C I O N (AG 155U)
1)

INTERRUPCION EN:

LIMITES DE MODULOS

ARRANQUE DE TENSION:

(1 = REARRANQUE 2 = ARRANQUE 3 = ARRANQUE MANUAL)

FUNCIONAM. REARRANQUE:

(1 = REARRANQUE 2 = ARRANQUE CON MEMORIA)

NUMERO TEMPORIZADORES: VIGILANCIA T. CICLO (X 10 MS): SINCRONIZAR ARRANQUE MULTIPROCESO: TRANSFERIR MARCAS DE ACOPLAMIENTO:

256 (0...256) 20 SI NO (1...255)

F1

F2

F3 ELEGIR

F4

F5

F6 SEGUIR

F7

F8

1)

En versiones antiguas de software de PG se indica en lugar de: INTERRUPCION LIMITES DE MODULOS: INTERRUPCION LIMITES DE INSTRUCCIONES: MODO DE SERVICIO 150U MODO DE SERVICIO 155U

Fig. 7-2

Mscara del aparato de programacin para parametrizacin del DX 0 / 1 parte

7 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de parametrizacin

En la segunda mscara se encuentran los siguientes parmetros (fig. 7-3): - alarmas de tiempo, - alarmas de proceso hardware, - alarmas de proceso byte de entrada 0.

D X

- P A R A M E T R I Z A C I O N (AG 155U)
1)

A. DE TIEMPO:

ELABORACION AL. TIEMPO: RELOJ BASE (X 10 MS): PROCES. FRECUENCIA:

SI 10 1

PRIORIDAD: 1 (1...255) (1 = FACTOR 1, 2, 5, 10 ... 2 = FACTOR 1, 2, 4, 8 ...)

ALARMAS PROC. HARDWARE INTERR. SISTEMA A/B: INTERR. SISTEMA E: INTERR. SISTEMA F: INTERR. SISTEMA G:

2)

NO NO NO NO

PRIORIDAD: 2 PRIORIDAD: 2 PRIORIDAD: 2 PRIORIDAD: 2

BYTE ENTRADA 0 ALARMAS PROCESO: 3) ALRMAS PROC.: SI PRIORIDAD: 2

F1

F2

F3 ELEGIR

F4

F5

F6 SEGUIR

F7

F8

1)

En caso necesario hay que activar adicionalmente la alarma de retardo y la alarma temporizada controlada por reloj desconectando las alarmas de proceso (activacin del procesamiento de interrupciones). CPU 948: las interrupciones de sistema pueden ser procesadas en caso de "interrupcin en lmites de mdulos" o "interrupcin en lmites de instucciones".

2)

Fig. 7-3

Mscara del aparato de programacin para parametrizacin del DX 0 / 2 parte

Manejo

El siguiente diagrama de operaciones indica cmo rellenar las dos mscaras y los campos respectivos, as como la manera de almacenar los parmetros y de cargar el mdulo de datos DX 0 creado.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7 - 15

Ejemplos de parametrizacin Diagrama de operaciones para rellenar las mscaras DX 0

Hay que modificar parmetros en la 1 mscara?

NO
Repetir la siguiente operacin hasta haber realizado todas las modificaciones necesarias en la 1 mscara: - Seleccionar el campo de entrada: Posicionar el cursor delante del campo de parmetros. El campo indicador F3 en el margen inferior de la pantalla indica si existen distintas opciones a elegir ("ELEGIR") o si se puede modificar el valor del parmetro ("ENTRADA").

SI

- ELEGIR: Pulsar repetidamente la tecla de funcin F3 hasta que se visualice la opcin deseada. - "ENTRADA": Pulsar una vez la tecla F3; el cursor salta al principio del campo. A continuacin se puede sobreescribir el campo con un valor numrico vlido. Hay que modificar parmetros en la 2 mscara?

NO
Pulsar la tecla F6 ("SEGUIR"); se visualiza la 2 mscara. Modificar los parmetros como descrito para la 1 mscara.

SI

Pulsar la tecla de aceptacin: el software del aparato de programacin acepta todos los ajustes efectuados en ambas mscaras y crea con ellos el mdulo de datos DX 0. El DX 0 queda registrado en el aparato de programacin. Puede ser cargado en el autmata programable mediante la funcin del aparato de programacin "TRANSFERIR".

Ejemplo
Se desea parametrizar el DX 0 para obtener un comportamiento del sistema distinto al prefijado: - Modo de operacin "interrupcin en lmites de instrucciones", - Sin actualizacin de temporizadores - Tiempo de supervisin de ciclo = 2,5 s,

- Prioridad para alarmas de tiempo = 2 - Interrupcin de sistema INT E con prioridad = 1 .

Contina en la pgina siguiente

7 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ejemplos de parametrizacin

Ejemplo (continuacin) Rellenar la mscara de la manera siguiente: Primera mscara DX 0:

Seleccionar bajo el parmetro ARRANQUE DE TENSION el ajuste "interrupcin


en lmites de instrucciones" mediante la tecla de funcin F3.

Pulsar bajo el parmetro NUMERO TEMPORIZADORES la tecla de funcin F3 e introducir a continuacin la cifra 0 (= sin temporizador) En el parmetro VIGILANCIA T. CICLO hay que pulsar primeramente la tecla
de funcin F3 e introducir las cifras 250 (= 2,5 s).

Pulsar la tecla de funcin F6 (SEGUIR). A continuacin se visualiza la


segunda mscara DX 0. Segunda mscara DX 0:

Seleccionar bajo el parmetro ELABORACION AL. TIEMPO/PRIORIDAD el valor


2 mediante la tecla de funcin F3.

Seleccionar bajo el parmetro INTERR. SISTEMA E el ajuste SI mediante


la tecla de funcin F3.

Seleccionar bajo el parmetro INTERR. SISTEMA E/PRIORIDAD el valor 1


mediante la tecla de funcin F3.

Seleccionar bajo el parmetro ALARMAS PROC. el ajuste NO mediante la


tecla de funcin F3.

Confirmar todos los ajustes mediante la tecla de aceptacin.


Seguidamente, el software de sistema crea el mdulo de datos DX 0.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

7 - 17

Ejemplos de parametrizacin

7 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin y organizacin de la memoria

Indice - Captulo 8
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 8.3.6 Estructura de la zona de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 4 Distribucin de la zona de direcciones de la CPU 948. . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 5 Distribucin de la zona de direcciones de la RAM de sistema . . . . . . . . . . . . . . . . . . . . 8 - 6 Distribucin de la zona de direcciones de la periferia . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 8 Organizacin de la memoria de usuario de la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 10 Encabezamientos de mdulos en la memoria de usuario . . . . . . . . . . . . . . . . . . . . . . . . Listas de direcciones de mdulos en el mdulo de datos DB 0 . . . . . . . . . . . . . . . . . . . Zona BA/BB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zona BS/BT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ocupacin de los bits de las palabras de datos de sistema . . . . . . . . . . . . . . . . . . . . . . . Zona de datos de sistema libremente direccionable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 12 8 - 13 8 - 14 8 - 15 8 - 18 8 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8-1

Indice

8-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin y organizacin de la memoria

Este captulo explica cmo est organizada la memoria de la CPU 948. En l se encuentran informaciones importantes para el usuario y que han sido depositadas en algunas palabras de datos del sistema.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8-3

Estructura de la zona de memoria

8.1

Estructura de la zona de memoria


La zona de memoria de la CPU 948 se divide bsicamente en las siguientes zonas:

Tabla 8-1

Estructura de la zona de memoria

Zona de memoria Memoria de usuario para: Zona de interfase: Zona de sistema: Contadores: Temporizadores: Marcas: Marcas: Imagen de proceso (PA) de las entradas y salidas: Zona de periferia, se divide en: Periferia P Periferia Q Marcas de acoplamiento Coordinador (semforo, ...) Pginas (CP, IP, KOR 923C) Periferia descentralizada Registro HW
1)

Anchura 16 bit 16 bit 16 bit 16 bit 16 bit 8 bit 8 bit 8 bit

Posicin

OB, FB, FX, PB, SB, DB, DX BA, BB BS, BT Z T M S PAE, PAA

en la CPU
1)

8 bit 8 bit 8 bit 8 bit 8/16 bit 8 bit 8/16 bit

en el bus S5

Las marcas S de 8 bit se encuentran en la zona de 16 bit. El byte alto no est definido.

Las direcciones exactas de estas zonas estn indicadas en los esquemas de ocupacin de memoria que muestran las pginas siguientes.

Nota El acceso STEP 5 a una clula de memoria que se encuentre dentro de una zona de operandos (por ejemplo: marcas) no debe ser efectuado jams directamente a travs de la direccin absoluta de esta clula, sino exclusivamente con la direccin relativa de la zona de operandos respectiva. Los accesos directos a las zonas E, A y M proporcionan en el byte alto FFH, en el byte bajo el dato. En accesos directos a las marcas S, el byte alto no est definido!

8-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Distribucin de la zona de direcciones de la CPU 948

8.2

Distribucin de la zona de direcciones de la CPU 948


La CPU 948 se puede suministrar en dos diferentes versiones de la memoria de usuario (RAM): la CPU 948-1 con 640 Kbyte de memoria de usuario, la CPU 948-2 con 1664 Kbyte de memoria de usuario. La figura 8-1 muestra la distribucin de la zona de direcciones de la CPU 948, indicando la posicin de las 2 versiones de memoria de

Bit n Direccin: 15 0 0000H 1 0000H 2 0000H 3 0000H 4 0000H 5 0000H 6 0000H 7 0000H 8 0000H 9 0000H A 0000H B 0000H C 0000H D 0000H E 0000H F 0000H F FFFFH RAM de sistema Memoria de usuario de 1664 Kbyte (CPU 948-2) Memoria de usuario de 640 Kbyte (CPU 948-1)
1)

1)

Zona de periferia (bus S5)

1) Las ltimas 20 palabras de la memoria de usuario no pueden ser utilizadas

Fig. 8-1

Distribucin de la zona de direcciones de la CPU 948/esquema

usuario.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8-5

Distribucin de la zona de direcciones de la CPU 948

8.2.1 Distribucin de la zona de direcciones de la RAM de sistema

Bit n Direccin: 15 87 0 D 0000H Programa de sistema y datos de sistema E 9FFFH E A000H E AFFFH E B000H E DEAFH E DEB1H E DF6FH E DF7CH E DFA1H E E1F0H E E1FBH E E200H Marcas S Datos del programa de sistema BSTACK (60 entradas) Reservado Entrada USTACK - 1 USTACK (16 entradas) Reservado Encabezamiento DB 0 Lista de direcciones OB 0 a OB 255 Reservado E E400H Lista de direcciones PB 0 a PB 255 Reservado E E600H Lista de direcciones SB 0 a SB 255 Reservado E E800H Lista de direcciones FB 0 a FB 255 Reservado E EA00H Lista de direcciones FX 0 a FX 255 Reservado E EC00H Lista de direcciones DB 0 a DB 255 Reservado E EE00H Lista de direcciones DX 0 a DX 255 Reservado
Fig. 8-2 Distribucin de la zona de direcciones de la RAM/ 1 parte

DB 0 (contiene las direcciones de prrafo de todos los mdulos, es decir, los bits de direcciones bit n 4 a bit n 19)

8-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Distribucin de la zona de direcciones de la CPU 948

Bit n Direccin: 15 E F000H

87 Zona BS (datos de sistema, 256 palabras) Reservado

E F200H

Zona BT (ampliacin datos de sist., 256 palabras) Reservado

E F400H

Zona BA (interfase, 256 palabras) Reservado

E F600H

Zona BB (ampliacin interfase, 256 palabras) Reservado

E F800H

Contadores (256) Reservado

E FA00H

Temporizadores (256) Reservado

E FC00H E FD00H E FE00H E FE80H E FF00H

Marcas M Reservado PAE PAA

Reservado E FFFFH
Fig. 8-3 Distribucin de la zona de direcciones de la RAM/ 2 parte

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8-7

Distribucin de la zona de direcciones de la CPU 948

8.2.2 Distribucin de la zona de direcciones de la periferia

Bit n Direccin: 15 F 0000H F D000H F F000H

87 Zona libre de direcciones de la periferia (52K palabras) Reservado Periferia digital (con PA, 128 E/128 A)

F F080H

Zona P Periferia analgica (sin PA, 128 E/128 A) Periferia ampliada (slo en EG) Marcas de acoplamiento en KOR y/o CP Semforos (32) en KOR

F F100H

Zona Q

F F200H

F F300H

F F400H

Zona de transferencia de datos para CP 1 K bytes o palabras (pginas) Zona adicional de datos para CP (ampl. de pginas)

F F800H

1 K bytes o palabras Periferia descentralizada, vol. direcc. ampl. con IM 304, IM 307 e IM 308

F FC00H

F FE00H F FFFFH

Registro HW

Fig. 8-4

Distribucin de la zona de direcciones de la periferia (8 bit) en el bus S5

8-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Distribucin de la zona de direcciones de la CPU 948

Zonas de direcciones para la periferia y su programacin Zona (direccin absoluta) E FE00 E FE7F PAE (imagen de proceso entradas) Acceso con L EB / T EB L EW / T EW L ED / T ED U E / UN E / O E / ON E S E/ R E / = E L AB / L AW / L AD / UA / SA / T AB T AW T AD UN A / O A / ON A RA/=A Parmetros 0 0 0 0.0 a a a a 127 126 124 127.7

E FE80 E FEFF

PAA (imagen de proceso salidas)

0 0 0 0.0

a a a a

127 126 124 127.7

Periferia P con imagen de proceso

Durante el procesamiento de las operaciones slo se modifica la imagen de proceso. Solamente al final del ciclo se emite a la periferia el nuevo estado de la imagen de proceso de las salidas. L PY / T PY L PW / T PW 0 0 a 127 a 126

F F000 F F07F F F080 F F0FF Periferia P F F100 F F1FF Periferia Q

Periferia digital entradas/ salidas

Periferia digital o analgica entradas/salidas

L PY / T PY L PW / T PW

128 a 255 128 a 254

El acceso a las entradas o salidas se efecta de forma directa byte por byte o palabra por palabra. L QB / T QB L QW / T QW 0 0 a 255 a 254

Periferia ampliada entradas/salidas

El acceso a las entradas o salidas se efecta directamente, byte por byte o palabra por palabra. Las instrucciones STEP 5 permiten acceder a la periferia directamente o por medio de la imagen de proceso. Hay que tener en cuenta que la imagen de proceso slo existe para los byte de entrada y salida de la periferia P con las direcciones byte 0 a 127! Nota El usuario puede acceder con su programa a las zonas de direcciones descentralizadas a travs de las interfases 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, slo puede accederse a estas zonas mediante direccionamiento absoluto, o tambin con el mdulo FB 196 del paquete de software "funciones bsicas" (vase catlogo ST59).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8-9

Organizacin de la memoria de usuario de la CPU 948

8.3

Organizacin de la memoria de usuario de la CPU 948


La memoria de usuario comprende dependiendo de la versin de CPU 948 que se utilice la zona de memoria desde 0 0000H a C FFFFH. Al cargar los diferentes mdulos del programa de usuario, stos se almacenan en orden arbitrario (direcciones crecientes).

Administracin de los mdulos

Al corregir los mdulos, el mdulo "antiguo" se declara no vlido y se registra un nuevo mdulo en la memoria y en la lista de direcciones. De la misma forma, cuando se borran los mdulos, stos no son realmente borrados sino declarados no vlidos. El borrado de los mdulos crea huecos que se administran como espacios de memoria libres y que sern nuevamente utilizados cuando se carguen nuevos mdulos. Con la funcin on line del aparato de programacin COMPRIMIR MEMORIA se agrupan todos los mdulos vlidos existentes en la memoria. En STOP, la funcin COMPRIMIR MEMORIA provoca el desplazamiento de todos los mdulos que no estn juntos. Por el contrario, en RUN, por razones de consistencia de datos, los mdulos de datos DB/DX largos (> 512 palabras de datos) no son desplazados. De esta forma se obtienen grandes zonas de memoria libres que pueden ser utilizadas para cargar otros mdulos. Cuando se interrumpe la funcin on line COMPRIMIR MEMORIA (por ejemplo, por DESCONEXION), finaliza la compresin y no se reanuda al efectuar la CONEXION.

Comprimir memoria

Posicin de los mdulos en la memoria de usuario

Por lo general, los mdulos se almacenan en la CPU 948 de modo que la palabra de datos DW 0 o la primera instruccin STEP 5 de cada mdulo se encuentre en una direccin de prrafo. Las direcciones de prrafo son lmites de 16 palabras. En la memoria, todos los encabezamientos comienzan, por consiguiente, con la direccin xxxxBH (bit n 0 a 3 = BH) y todos los cuerpos con la direccin yyyy0H (bit n 0 a 3 = 0H). Cada espacio libre entre el final de un mdulo y el principio del siguiente es rellenado por mdulos de datos no vlidos, de forma que todos los mdulos se encuentren en la memoria uno detrs del otro. Estos mdulos de datos no vlidos se denominan "mdulos de reemplazo". Estos son procesados por la memoria de la misma forma que los mdulos vlidos. Su estructura es la siguiente: Identificacin inicial: Tipo/nmero de mdulo: Identificacin del PG: Nmero de biblioteca: Longitud de mdulo: Datos: 7070H 01FBH 00FFH FFFFH 00XXH FFFFH : : FFFFH ; ; DB 251 no vlido ; irrelevante ; irrelevante ; longitud 5 - 20 palabras ; segn ; la ; longitud; ; facultativos

Mdulos de reemplazo

8 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Organizacin de la memoria de usuario de la CPU 948 Ejemplo

Lista de mdulos DB 0 Bit n 15 0 Bit n 15

Memoria 0

Encabezamiento 1 Dir. inicial mdulo 1 x x x x x Dir. inicial mdulo n x x x x x x Encabezamiento n P Cuerpo n xxxx0H P Cuerpo 2 P Cuerpo 1 xxxx0H

Mdulo de reemplazo Encabezamiento 2 xxxx0H Direcciones crecientes

P = Direcciones de prrafo (lmites de 16 palabras)

Fig. 8-5

Ejemplo: almacenamiento de los mdulos en la memoria

La longitud de cada uno de los mdulos de reemplazo resulta de la diferencia entre la direccin final del ltimo mdulo almacenado y la prxima direccin de prrafo. Diferencia 0a5 6 7 a 10 11 a 15 Longitud del mdulo de reemplazo (inclusive encabezamiento) Diferencia + 10 Ningn mdulo de reemplazo Diferencia + 10 Diferencia - 6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 11

Organizacin de la memoria de usuario de la CPU 948

8.3.1 Encabezamientos de mdulos en la memoria de usuario

Cada mdulo en la memoria empieza por un encabezamiento de 5 palabras de longitud. 1 palabra: 2 palabra: Identificacin inicial del mdulo: 7070H Byte alto = tipo de mdulo

Bit n

15

14

13

12

11

10

01H 02H 04H 05H 08H 0CH 10H 0 0 0 1

Mdulo Mdulo Mdulo Mdulo Mdulo Mdulo Mdulo

de de de de de de de

datos DB pasos SB programa PB funciones FX funciones FB datos DX organizacin OB

Mdulo no vlido, no registrado en la lista de direcciones DB 0. Mdulo en la memoria vlido, registrado en la lista de direcciones DB 0.

Byte bajo = nmero de mdulo El nmero de mdulo (0 a 255) se encuentra en el byte bajo de la 2 palabra del encabezamiento y est en cdigo binario: 00 a FFH. 3 palabra: El byte alto de la 3 palabra contiene las identificaciones del aparato de programacin; el byte bajo contiene una parte del nmero de biblioteca. La 4 palabra contiene el resto del nmero de biblioteca. En la 5 palabra (byte bajo y alto) se encuentra la longitud del mdulo, incluido el encabezamiento del mdulo. La longitud se indica en palabras.

4 palabra: 5 palabra:

8 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Organizacin de la memoria de usuario de la CPU 948

8.3.2 Listas de direcciones de mdulos en el mdulo de datos DB 0

El mdulo de datos DB 0 se encuentra en la RAM del sistema de la CPU (a partir de la direccin E E200H) y contiene la lista de direcciones iniciales de todos los mdulos que se encuentran en la memoria de usuario de la CPU. Esta lista de direcciones es creada por el programa de sistema tras CONEXION; se comprueba en el REARRANQUE y se actualiza automticamente cada vez que se efecta una entrada o una modificacin de los mdulos. Por cada tipo de mdulo existe en el mdulo DB 0 una lista de direcciones reservada con una longitud de 256 palabras. Los mdulos no cargados o borrados tienen la direccin inicial 0. Las direcciones iniciales de cada lista de direcciones de mdulos estn definidas (vase captulo 8.2.1). Las direcciones iniciales de los mdulos que figuran en las listas de direcciones indican siempre la primera palabra que sigue al encabezamiento: en los mdulos de datos indican la palabra de datos DW 0. en los mdulos de cdigo indican la primera instruccin STEP 5 (en los FBs indican la instruccin SPA antes del nombre y de la lista de parmetros). Puesto que cada mdulo est situado en una direccin de prrafo (lmite de 16 palabras), cada direccin inscrita en la lista de direcciones DB 0 se limita a 1 palabra con los bit n 4 a 20 de la direccin.

Direcciones iniciales de las listas de direcciones

Direcciones iniciales de los mdulos

Almacenamiento de las direcciones de mdulos en el DB 0

n = E E400H (direccin inicial de la lista de direcciones de mdulos de programa)

DB0 15 n n+1 n+2 Direccin PB 0 Direccin PB 1 Direccin PB 2 Si la direccin tiene e l va lo r 0 , e l m d u lo n o est cargado. n+178 n+179 Direccin PB 178 Direccin PB 179 0

Fig. 8-6

Direcciones de mdulos en el DB 0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 13

Organizacin de la memoria de usuario de la CPU 948 Ejemplo de averiguacin de una direccin de mdulo

Las direcciones iniciales de los mdulos de programa se encuentran en el DB y comienzan con la direccin E E400H. Por consiguiente, la direccin inicial del PB 22 puede leerse mediante un acceso a la direccin E E416H (= direccin inicial de los PB + 16H).

8.3.3 Zona BA/BB

La zona BA tiene una longitud de 256 palabras y se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E F400H a E F4FFH. La zona BB tiene una longitud de 256 palabras y se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E F600H a E F6FFH. El conjunto de las zonas BA (BA 0 a BA 255) y BB (BB 0 a BB 255) puede ser utilizado por el usuario para sus propias necesidades. La zona BA/BB se borra, es decir, se rellena con ceros solamente con un BORRADO TOTAL!

8 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Zona BS/BT

8.3.4 Zona BS/BT

Las zonas BS y BT contienen tanto informaciones para el programador del sistema como datos internos del sistema. La zona BS tiene una longitud de 256 palabras y se encuentra en la RAM interna del sistema de la CPU. Este ocupa las direcciones E F000H a E F0FFH.

Precaucin Solamente pueden escribirse las palabras de datos de sistema BS 60 a BS 63: Los restantes datos de sistema slo pueden ser leidos: La escritura de uno de estos datos de sistema puede tener consecuencias sobre el funcionamiento del autmata programable y del aparato de programacin conectado: pueden tener lugar averas graves que pueden poner en peligro a personas y a mquinas.

La zona BT tiene una longitud de 256 palabras y se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E F200H a E F2FFH. La zona BT (BT 0 a BT 255) puede ser utilizada por el usuario para sus propias necesidades solamente en caso de, 1. no utilizar FBs estndar y 2. no utilizar funciones del aparato de programacin va SINEC-H1 y el bus S5 paralelo.

La zona BS/BT se borra solamente con un BORRADO TOTAL.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 15

Zona BS/BT

Las informaciones de algunos datos del sistema (estructura interna de la CPU, versin del software, identificacin de la CPU, etc.) tambin pueden consultarse mediante la funcin on line PARAMETROS DE SISTEMA (SYSPAR)

Ocupacin de la zona BS

Tabla 8-2

Ocupacin de la zona BS

BS 0 1 2a4 5 6 7 8 9 a 15 16 17 a 23

Descripcin Imagen del byte de entrada EB 0 (alarmas de proceso) Alarmas de proceso en espera (EB 0) Programa de sistema Tiempo de ciclo requerido actualmente Programa de sistema Identificaciones de STOP (USTACK) Identific. de arranque (USTACK) Programa de sistema Zona de error bytes de salida 0 a 15 Zona de error bytes de salida 16 a 127

DIR. E F000H E F001H E F005H E F007H E F008H E F010H E F011H a E F017H E F018H a E F01FH E F020H a E F02FH

24 a 31

Zona de error bytes de entrada 0 a 127

32 a 47 48 a 49 50 51 a 59 60 a 63 64 a 67 68 a 71 72 a 74 75

Zona de error bytes de marcas de acoplamiento 0 a 255 Programa de sistema Byte PAFE para "funciones del bus en la pared posterior" Programa de sistema A disposicin del usuario Programa de sistema Direccin de error en caso de QVZ y PARE Programa de sistema Aviso del sistema, nmero de funcin

E F032H

E F03CH a E F03FH E F044H a E F047H E F04BH

8 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Zona BS/BT

BS
Tabla 8-2 (continuacin):

Descripcin

DIR.

76 77 78 79 a 95 96 97 98 99 100 a 119 120 121 a 135 136 a 137 138 139 140 a 252 253 254 a 255

Aviso del sistema, parmetro 1 Aviso del sistema, parmetro 2 Aviso del sistema, parmetro 3 Programa de sistema Hora actual (segundos) Hora actual (horas) Hora actual (das) Hora actual (ao/mes) Programa de sistema Proteccin del software/contrasea Programa de sistema Clulas para la funcin de autotest Programa de sistema Tiempo de ciclo consumido al redisparar Programa de sistema Libre para periferia descentralizada Programa de sistema

E F04CH E F04DH E F04EH E F060H E F061H E F062H E F063H E F078H E F088H a E F089H E F08BH E F0FDH

De forma complementaria a la representacin de la tabla indicaremos a continuacin las ocupaciones de los bits de algunos datos de sistema que pueden ser evaluados por el usuario mediante operaciones STEP 5 o mediante el aparato de programacin (el significado de las abreviaturas que ah se encuentran se explica en el captulo 5.4).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 17

Ocupacin de los bits de las palabras de datos de sistema

8.3.5 Ocupacin de los bits de las palabras de datos de sistema

Dato de sistema BS 0

Imagen del byte de entrada EB 0 (alarmas de proceso) Direccin: E F000H

Tabla 8-3

Ocupacin BS 0 (imagen EB 0)

Byte alto Bit n 15 14 13 12 11 10 9 8 Byte bajo 7 6 5 4 3 2 1 0 Estado E 0.7 Estado E 0.6 Estado E 0.5 Estado E 0.4 Estado E 0.3 Estado E 0.2 Estado E 0.1 Estado E 0.0 Ocupados por el programa del sistema Ocupacin

8 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Dato de sistema BS 1

Indicacin de las alarmas de proceso en cola de espera Direccin: E F001H

Tabla 8-4

Ocupacin BS 1 (alarmas de proceso actuales)

Byte alto Bit n 15 14 13 12 11 10 9 8 Byte bajo 7 6 5 4 3 2 1 0 Bit = 1: flanco E 0.7 Bit = 1: flanco E 0.6 Bit = 1: flanco E 0.5 Bit = 1: flanco E 0.4 Bit = 1: flanco E 0.3 Bit = 1: flanco E 0.2 Bit = 1: flanco E 0.1 Bit = 1: flanco E 0.0 Todos los bits tienen el valor 0 Ocupacin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 19

Ocupacin de los bits de las palabras de datos de sistema Dato de sistema BS 5

Tiempo de ciclo actual Direccin: E F005H

Tabla 8-5

Ocupacin BS 5 (tiempo de ciclo)

Byte alto y byte bajo Bit n 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Ocupacin

Valor dual registrado * 10 ms = duracin del ltimo ciclo procesado

Ejemplo

Bit n Valor

15 14 13 12 11 10 9 0 0 0 0 0 0 0

8 0

7 0

5 0

4 1

3 1

2 0

1 0

0 0

El tiempo de duracin del ltimo ciclo equivale a: (24 + 23) * 10 ms = (16 + 8) * 10 ms = 240 ms

8 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Dato de sistema BS 7

Identificaciones de STOP del autmata programable (USTACK) Direccin: E F007H

Tabla 8-6

Ocupacin BS 7 (identif. de STOP del autmata programable)

Byte alto Bit n 15 14 13 12 11 10 9 8 Profundidad USTACK errnea Modo de arranque no vlido (UANL) Interrupcin en bucle de stop Llamada no vlida mdulo de sistema (SYSFHL) Error en mdulo de arranque (AFEL) Byte bajo 7 6 5 4 3 2 1 0 Interrupcin por el sistema (USYS rearranque posible) Interrupcin por error de programacin (UPROG nuevo arranque necesario) "Fin control procesamiento" (BEARBE) Interruptor STOP (STOPS) STOP al final de instruccin (STS) STOP al final del ciclo (STP) STOP en modo multiprocesador (HALT) STOP por PG (PGSTP) Reservado Ocupacin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 21

Ocupacin de los bits de las palabras de datos de sistema Dato de sistema BS 8

Identificaciones de arranque (USTACK) Direccin: E F008H

Tabla 8-7

Ocupacin BS 8 (identificaciones de arranque)

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Preajuste: NUEVO ARRANQUE MANUAL / REARRANQUE (MSEG) Preajuste: NUEVO ARRANQUE AUTOMATICO (ANEG) Preajuste: REARRANQUE AUTOMATICO (AWEG) BORRADO TOTAL necesario (URLER) REARRANQUE admisible (WIEZU) NUEVO ARRANQUE admisible (NEUZU) BORRADO TOTAL ejecutado (URLDF) REARRANQUE ejecutado (WIEDF) Byte bajo 7 6 5 4 3 2 1 0 NUEVO ARRANQUE ejecutado (NEUDF) Arranque automtico tras fallo de tensin NAU Arranque manual NUEVO ARRANQUE CON MEMORIA Borrado total por PG Arranque sistema por PG Rearranque por PG Nuevo arranque por PG

8 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 16 a BS 47

Zonas de error BS xx BS 16 BS 17 a BS 23 BS 24 a BS 31 BS 32 a BS 47 Direccion(es) E F010 E F011 a E F017 E F018 a E F01F E F020 a E F02F Zona de error Bytes de salida 0 a 15 Bytes de salida 16 a 127 Bytes de entrada 0 a 127 Bytes de marcas de acoplamiento 0 a 255

BS 16

Direccin: E F010H

Tabla 8-8

Ocupacin BS 16 (zona de error bytes de salida 0 a 15)

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Byte de salida 0 Byte de salida 1 Byte de salida 2 Byte de salida 3 Byte de salida 4 Byte de salida 5 Byte de salida 6 Byte de salida 7 Byte bajo 7 6 5 4 3 2 1 0 Byte de salida 8 Byte de salida 9 Byte de salida 10 Byte de salida 11 Byte de salida 12 Byte de salida 13 Byte de salida 14 Byte de salida 15

Si durante la actualizacin de la imagen de proceso de las salidas (o entradas o marcas de acoplamiento) se producen errores, los bits correspondientes se ponen a 1. Las palabras de datos del sistema BS 17 a 47 estn estructuradas de forma correspondiente al BS 16.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 23

Ocupacin de los bits de las palabras de datos de sistema Ejemplo de BS 16


El contenido del dato de sistema BS 16 es

"8020" hexadecimal "1000 0000 0010 0000" binario. Esto significa que la actualizacin de la imagen de proceso para los bytes de salida 0 y 10 se ha realizado errneamente.

Dato de sistema BS 50

Bytes PAFE para "funciones de bus en la pared posterior" En el dato de sistema BS 50 se registra el byte de error de parametrizacin para las "funciones del bus en la pared posterior". 15 87 0 BS 50 PAFE E F032H

Palabras de datos de sistema BS 68 a BS 71

Direcciones de errores QVZ y PARE

En caso de producirse un error QVZ o PARE, en estas palabras se registra la direccin en la que se produjo el error. 15 0 BS 68 Error de direccin QVZ alta E F044H BS 69 Error de direccin QVZ baja E F045H BS 70 Error de direccin PARE alta E F046H BS 71 Error de direccin PARE baja E F047H

8 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 75 a BS 78

Aviso del sistema

Las informaciones registradas en los datos de sistema BS 75 a BS 78 se refieren al ltimo error aparecido. El aviso se compone de las cuatro palabras de datos de sistema y tiene la siguiente estructura: 15 0 BS 75 Nmero de error Tipo de parmetro E F04BH BS 76 Parmetro 1 E F04CH BS 77 Parmetro 2 E F04DH BS 78 Parmetro 3 E F04EH

BS 75

El byte alto contiene el nmero de error que permite clasificar el error aparecido. Mediante el nmero de error puede atribuirse el error a una de las siguientes zonas: 01H a 2FH: 30H a 3FH: 40H error de usuario, error en DX 0 o DB 1, error de sistema.

Grupos de errores

Tipo de parmetro

El byte bajo contiene el tipo de parmetro que describe la estructura del bloque de parmetros siguiente en BS 76 a BS 78. Existen los tipos de parmetro de 00H a 10H. La estructura correspondiente del bloque de parmetros se describe ms adelante. En las dos tablas representadas a continuacin se exponen los errores pertenecientes a los grupos de errores "errores generales" y "errores en el DX 0 o DB 1".

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 25

Ocupacin de los bits de las palabras de datos de sistema

Errores generales

Tabla 8-9

BS 75: Errores generales

N de error 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 11H 12H 13H 14H 15H 16H 17H 18H 19H 1AH 1BH 1CH 1DH 1EH

Tipo de parmetro 01H 01H 01H 01H 02H 03H 01H 01H 04H 05H 03H 03H 07H 03H 03H 03H 03H 01H 01H 01H 01H 01H 01H 01H 01H 01H 01H 08H 08H 00H

Significado

El mdulo llamado no est cargado Error de direccionamiento Error de tiempo de ciclo Error de sustitucin Retardo en acuse de recibo (QVZ) en la periferia descentralizada QVZ en la memoria de usuario Error de carga/transferencia en mdulos de datos DB/DX Desbordamiento del contador de parntesis Mdulo de datos a abrir no existe Error de alarmas temporizadas/interrupciones QVZ en la zona de pginas QVZ en la zona global de comunicacin QVZ en la actualizacin de la imagen de proceso QVZ en las marcas de acoplamiento zona de sincronizacin Retardo en acuse de recibo en periferia P/Q QVZ, porque falta interfase descentralizada (IM 3/IM 4) Error de paridad en la memoria de usuario QVZ transferencia de la imagen de proceso QVZ byte de entrada EB 0 Desbordamiento de BSTACK Instruccin STS Selector en STOP Seal de parada del coordinador No ocupado Error de carga/transferencia en la actualizacin de la imagen de proceso Error de carga/transferencia en direccionamiento a travs del registro BR Periferia no disponible QVZ/error de paridad en inicializacin REARRANQUE AUTOMATICO no posible; NUEVO ARRANQUE necesario Modo de arranque no vlido

8 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema

N de error

Tipo de parmetro

Significado

Tabla 8-9 (continuacin):

1FH

01H

20H 21H 22H 23H 24H 25H 26H 27H 28H 29H

09H 09H 09H 05H 00H 00H 00H 01H 01H 08H

Error de carga/transferencia en una instruccin de transferencia de bloque (lmites de zona errneos en TNW, TXB, TXW) Longitud no vlida en E DB/EX DX DB/DX existe ya en E DB/EX DX Memoria insuficiente para E DB/EX DX La interrup. de sistema enmascarada logra pasar Funcin (comprimir, transferir, introducir) en STOP, ejecutar NUEVO ARRANQUE Fallo de la batera; arranque no posible El cambio de modo monoprocesador a modo multiprocesador impide un REARRANQUE STOP por operacin STP Ready permanente (tarjeta de E/S defectuosa) Error en estructura del DB 0 tras BORRADO TOTAL

Errores DX 0/DB 1
Tabla 8-10 BS 75: Errores en el DX 0 o DB 1

N de error

Tipo de parmetro 00H 00H 00H 06H 07H 07H 06H 06H 07H 07H 07H 07H 07H

Significado

30H 32H 33H 34H 35H 36H 38H 39H 3AH 3BH 3CH 3DH 3EH

Errores en el DX 0 Falta el DX 0 en modo multiprocesador Alarma de proceso e interrupcin del sistema seleccionadas simultneamente Alarmas y modo de operacin incompatibles Encabezamiento del DX 0 no vlido Error en la identificacin del bloque DX 0 Error en parmetros DX 0 Errores en el DB 1 Falta el DB 1 en modo multiprocesador Encabezamiento del DB 1 no vlido Asignacin mltiple de la identificacin DB 1 Offset del byte DB 1 sin identificacin La periferia indicada en el DB 1 no est conectada Offset demasiado grande (error de parmetro) Demasiados offsets

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 27

Ocupacin de los bits de las palabras de datos de sistema

Indicadores de error de las funciones de autotest


Tabla 8-11 BS 75: Indicadores de error de las funciones de autotest

N de error 61H 62H 63H 64H 65H 66H 67H 68H

Tipo de parmetro 0BH 0AH 0BH 0CH 0CH 00H 00H 00H

Significado

Error de suma de seguridad en el cdigo del programa de sistema Error de suma de seguridad en el cdigo de los mdulos de cdigo STEP 5 Error en decodificador de direcciones Error en comprobacin de la memoria de usuario organizada palabra por palabra Error en comprobacin de la memoria de usuario organizada byte por byte Error en comprobacin de la supervisin del tiempo de ciclo Error en comprobacin de la seal BASP Error en comprobacin del reloj hardware

8 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema

Estructura del bloque de parmetros (BS 76 a BS 78)

Tabla 8-12

BS 76 a BS 78: Tipos de parmetros

Tipo de parmetro 00H 01H 02H

Estructura del bloque de parmetros Ningn parmetro; parmetro 1, 2, 3 = 0 Parmetro 1: Tipo/nmero de mdulo (identificaciones del encabezamiento) Parmetro 2: Instruccin que ha causado la interrupcin Parmetro 1: Nmero de la interfase (periferia descentralizada) Parmetro 2: Nmero de la interfaz defectuosa Parmetro 3: Offset de byte errneo

03H

Parmetro 1: No ocupado Parmetro 2: Direccin de error alta Parmetro 3: Direccin de error baja

04H

Parmetro 1: Tipo/nmero de mdulo (identificaciones del encabezamiento) Parmetro 2: Instruccin que ha causado la interrupcin Parmetro 3: Tipo y nmero del DB/DX a abrir

05H

Parmetro 1: Los siguientes bits se ponen a "1" en funcin del error: Bit 0 Bit n1 : : Bit n 7 Bit n 8 Bit n 9 Bit n 10 Bit n 11 Bit n 12 Bit n 13 Bit n 14 Bit n 15 = 1: = 1: : = 1: = 1: = 1: = 0: Alarma temporizada/perodo 1 Alarma temporizada/perodo 2 : Alarma temporizada/perodo 8 Alarma temporizada/perodo 9 Base de tiempo enmascarada demasiado tiempo Desbordamiento de la cola de espera

Reservado Reservado = 1: = 1: = 1: = 1: Interrupcin G Interrupcin F Interrupcin E Interrupcin X

06H 07H

Parmetro 1 Parmetro 2 Parmetro 1 Parmetro 2 Parmetro 3

Palabra de datos "nominal" en el encabezamiento del DX 0 o DB 1 Palabra de datos "efectiva" en el encabezamiento del DX 0 o DB 1 Identificacin de bloque o palabra de identificacin en el DX 0 o DB 1 Parmetro 1 errneo en el DX 0 o DB 1 (FFFFH: parmetro irrelevante) Parmetro 2 errneo en el DX 0 o DB 1 (FFFFH: parmetro irrelevante)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 29

Ocupacin de los bits de las palabras de datos de sistema

Tipo de parmetro
Tabla 8-12 (continuacin):

Estructura del bloque de parmetros

08H

Parmetro 1

Los bits siguientes se ponen a "1" en funcin del error: Bit n 0 Bit n 1 Bit n 2 Bit n 3 Bit n 4 Bit n 5 Bit n 6 Bit n 7 Bit n 8 Bit n 9 a 15 = 1: = 1: = 1: = 1: = 1: = 1: QVZ en inicializacin PARE en inicializacin la Memory Card contiene demasiados datos error del sistema operativo identificacin de mdulo errnea identificacin final del mdulo errnea

Reservado Reservado = 1: DB 0 modificado desde el ltimo NUEVO ARRANQUE

Reservado

Parmetro 2 Parmetro 3 09H Parmetro 1 Parmetro 2 Parmetro 3 10H 0AH Parmetro 1 Parmetro 2 Parmetro 3 0BH Parmetro 1 Parmetro 2

Direccin de error alta, (si bit 2, 4 5 del parmetro 1 = 1 Direccin de error baja, (si bit 2, 4 5 del parmetro 1 = 1 Cdigo de operacin "EX DX" o "E DB" (de aqu resulta el tipo de mdulo) Nmero de mdulo Longitud del mdulo de datos Tipo/nmero de mdulo (identificaciones del encabezamiento) Suma de seguridad nominal Suma de seguridad efectiva FFFFH Direccin de error alta en caso de error de cdigo de direccin, suma de seguridad efectiva alta al comprobar el cdigo del programa de sistema Direccin de error baja en caso de error de cdigo de direccin, suma de seguridad efectiva baja al comprobar el cdigo del programa de sistema Criterio de comprobacin en el test de la memoria de usuario Direccin de error alta Direccin de error baja

Nmero de error interno del sistema

Parmetro 3

0CH

Parmetro 1 Parmetro 2 Parmetro 3

8 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Ejemplo de un aviso del sistema

BS 75 BS 76 BS 77 BS 78

21H 7804H 0064H 0078H

09H

E F04BH E F04CH E F04DH E F04EH

BS 75, nmero de error = BS 75, BS 76, BS 77, BS 78,

21H: El error se ha producido en el programa de usuario STEP 5 al crear un DB/DX. tipo de parmetro = 09H: El bloque de parmetros en BS 76 a BS 78 contiene 3 parmetros. parmetro 1 = 7804H: Cdigo de operacin = "EX DX", de ah resulta el tipo de mdulo "DX". parmetro 2 = 0064H: Nmero de cdigo = 100 (dec.) parmetro 3 = 0078H: Longitud del mdulo de datos = 120 palabras de datos

Significado del aviso:


En el programa de usuario STEP 5 se pretenda crear el mdulo de datos DX 100 con una longitud de 120 palabras de datos. Sin embargo, este mdulo ya existe.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 31

Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 96 a BS 99

Reloj de tiempo real

En la zona de datos de sistema BS 96 a BS 99 se incluye la fecha y la hora actual, donde puede ser leda en caso necesario. 15 0 BS 96 Segundos 1/10, 1/100 segundos E F060H BS 97 Horas Minutos E F061H BS 98 Da Da de la semana E F062H BS 99 Ao Mes E F063H

La hora es actualizada en intervalos de 10 ms.

BS 96

Segundos y centsimas de segundos (direccin: E F060H):

Tabla 8-13

Ocupacin BS 96 (reloj de tiempo real: segundos, 1/100 seg.)

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Segundos, decenas, valores posibles: 00H a 05H

Segundos, unidades, valores posibles: 00H a 09H

Byte bajo 7 6 5 4 3 2 1 0 1/10 segundo, valores posibles: 00H a 09H

1/100 segundo, valores posibles: 00H a 09H

8 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema BS 97

Horas y minutos: (direccin: E F061H):


Tabla 8-14 Ocupacin BS 97 (reloj de tiempo real: horas, minutos)

Byte alto Bit n 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Ocupacin 0 = formato 12h, 1 = formato 24 h 0 = AM, 1= PM Horas, decenas, valores posibles: 00/01H en caso de formato 12h, 00/02H en caso de formato 24h Horas, unidades, valores posibles: 00H a 09H Byte bajo Minuto, decenas, valores posibles: 00H a 05H

Minuto, unidades, valores posibles: 00H a 09H

BS 98

Da y da de la semana (direccin: E F062H):


Tabla 8-15 Ocupacin BS 98 (reloj de tiempo real: da, da de la semana)

Byte alto Bit n 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Ocupacin Da, decenas, valores posibles: 00H a 03H Da, unidades, valores posibles: 00H a 09H Byte bajo Da de la semana, valores posibles: 00H a 06H para lunes a domingo 0

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 33

Ocupacin de los bits de las palabras de datos de sistema BS 99

Ao y mes (direccin: E F063H):


Tabla 8-16 Ocupacin BS 99 (reloj de tiempo real: ao, mes)

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Ao, decenas, valores posibles: 00H a 09H

Ao, unidades, valores posibles: 00H a 09H

Byte bajo 7 6 5 4 3 2 1 0 Mes, decenas, valores posibles: 00/01H

Mes, unidades, valores posibles: 00 a 09H

8 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Dato de sistema BS 120

Proteccin del software El dato de sistema BS 120 controla la funcin de sistema "Proteccin del software". Con esta funcin se puede impedir mediante una contrasea que los mdulos sean leidos, sobreescritos o borrados con el aparato de programacin (por ej. por personal no autorizado).

Contrasea

La funcin "Proteccin del software" est ligada a una contrasea, la cual es comunicada al programa de sistema a travs del BS 120.

Definir la contrasea/activar la La proteccin del software se activa automticamente en cuanto se proteccin del software define una contrasea en el BS 120. Para definir una nueva contrasea hay que borrar primero la anterior.

Borrar contrasea/desactivar la proteccin del software

Borrando la contrasea se desactiva automticamente la proteccin del software. Para borrar una contrasea hay que comunicrselo al programa de sistema a travs del BS 120.

mx. 5 tentativas

En caso de introducir contraseas errneas al borrar la contrasea actual, el programa de sistema las rechaza y cuenta. Tras 5 tentativas, el programa de sistema comienza a procesar la contrasea. A partir de ahora, sta slo podr ser borrada tras un NUEVO ARRANQUE. El "contador de errores" se borra cuando la contrasea ha sido borrada satisfactoriamente, o bien con un NUEVO ARRANQUE.

Cmo se define y borra la contrasea?

La contrasea se define/borra (y la proteccin del software se activa/ desactiva) escribiendo una determinada configuracin binaria en el dato de sistema BS 120 (vase "ocupacin al escribir") mediante el programa STEP 5 o una peticin del aparato de programacin "Salida Direccin".

Nota En el estado de suministro de la CPU y tras un BORRADO TOTAL, la contrasea est borrada y, por tanto, la proteccin del software desactivada.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 35

Ocupacin de los bits de las palabras de datos de sistema Cundo se activa o desactiva la proteccin del software?

La contrasea puede definirse en cualquier momento. Despus de haber definido una contrasea, la proteccin del software se activar, sin embargo, en tiempos determinados: en el estado operativo STOP PARCIAL: una vez tras llamar al OB 38 1), cclicamente antes de llamar al OB 39 1). en el estado operativo ARRANQUE: una vez tras llamar a los OBs de arranque (OB 20, OB 21, OB 22), en el estado operativo RUN: cclicamente antes de llamar al OB 1.

Ocupacin del dato de sistema - escritura

Para llamar la funcin de proteccin del software hay que escribir en el dato de sistema BS 120 una configuracin binaria que corresponda a la funcin a ejecutar. La tabla siguiente muestra cmo ha de estar estructurada. Direccin: E F078H

Tabla 8-17

Ocupacin BS 120 (proteccin software) escritura

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Bit de accin: 1 = ejecutar funcin Bit de funcin: 1 = activar contrasea, 0 = borrar contrasea

Bits n 8 a 13 de una contrasea de 14 bits

Byte bajo 7 6 5 4 3 2 1 0
1)

Bits n 0 a 7 de una contrasea de 14 bits

La peticin se procesa independientemente de que est o no cargado el OB 38 u OB 39. Por ello es posible activar por ejemplo la proteccin del software durante el estado STOP.

Lectura del dato de sistema BS 120

Leyendo el dato de sistema BS 120 puede comprobarse si se ejecut "una peticin" mediante escritura del dato de sistema, puesto que el programa de sistema deposita un aviso en el dato de sistema.

8 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema

Ocupacin del dato de sistema - lectura: Despus de haber llamado la funcin de proteccin del software puede evaluarse el aviso del programa de sistema para obtener informaciones acerca de la peticin ejecutada. Direccin: E F078H

Tabla 8-18

Ocupacin BS 120 (proteccin software) lectura

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin 0 Bit de error: 0 = ningn error, 1 = error 0 0 0 Contador dual de las tentativas de borrado Byte bajo 7 6 5 4 3 2 1 0 0 0 0 1 = no se ha activado contrasea 1 = no puede borrarse, contrasea errnea 1 = Proteccin software (contrasea) ya activada 1 = contrasea no vlida 1 = desbordamiento del contador de tentativas

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 37

Ocupacin de los bits de las palabras de datos de sistema Avisos vlidos


Indicacin 0000H 4x01H 4x02H 4x04H 4x08H Significado Ningn error Se desbord el contador de tentativas de borrado. Para rearmarlo, hay que efectuar un NUEVO ARRANQUE. Contrasea no vlida (0000H 3FFFH) Se intent definir una contrasea estando activada otra (x = cantidad de tentativas de borrado) Se intent borrar la contrasea actual (desactivar la proteccin del software) con una contrasea errnea. Se increment el contador de tentativas de borrado. El estado del contador x se transfiere con el aviso (nmero dual en bit n 8 a n 10). Se intent borrar una contrasea no existente.

4010H

Cundo conviene activar la proteccin del software?

La proteccin ms efectiva se consigue activndola en el OB 38/ OB 39 (estado operativo STOP PARCIAL). De este modo, la proteccin se activar inmediatamente despus del BORRADO TOTAL, incluso habiendo insertado la Memory Card.

Reacciones en caso de violar la proteccin

En caso de haber activado la proteccin del software, el programa de sistema reaccionar ante violaciones debidas a peticiones del aparato de programacin. La tabla siguiente muestra las reacciones ante las distintas peticiones del aparato de programacin.

Funcin del PG Borrar mdulo Leer mdulo

Aviso en el PG "Tipo y nmero del mdulo no vlidos" Visualizacin de un mdulo dummy (falso): FB/FX: nmero FB NOMB. :DUMMY :BE DB/DX: OB/PB/SB: DW0 6500

Sobreescribir mdulo (el mdulo an no existe) Sobreescribir mdulo (mdulo ya existente)

:BE Se registra el mdulo "Mdulo ya existe"; tras confirmar mediante la tecla de aceptacin se visualiza el aviso "Tipo y nmero del mdulo no vlidos".

8 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Ejemplo de escritura y lectura del BS 120
Activar la proteccin del software en los mdulos de arranque:
(La activacin de la proteccin del software por programa debe efectuarse en uno de los OBs de arranque (OB 20, OB 21, OB 22, OB 38). : :L : :T :

KH C0AF BS 120

KH = configuracin binaria "definir contrasea" (contrasea = 00AFH)

Evaluar aviso en BS 120:


Introduciendo la siguiente secuencia de operaciones STEP 5 en el OB 1 u OB 39 puede reaccionarse ante un error debido a una contrasea incorrecta, evaluando el aviso. Hay que tener en cuenta que el aviso slo puede ser evaluado tras determinadas operaciones del programa de sistema (vase pg. 8 - 35)! : :L :L :><F :SPB :

BS 120 KB 0 FB yyy Llamar mdulo de funciones para tratamiento de error PW-FEHLER

NOMB.

Borrar y modificar la contrasea con el aparato de programacin mediante la funcin SALIDA DIRECCION:
Situacin de partida: La CPU se encuentra en RUN o STOP.

Efectuar las siguientes operaciones en el aparato de programacin: 1. Hacer visualizar el contenido de la direccin E F078H. 2. Borrar la antigua contrasea sobreescribiendo el contenido de la direccin con el nmero hexadecimal 80AFH ("00AFH" = anterior contrasea). 3. Esperar como mn. a que transcurra el tiempo de ciclo del OB 39 u OB 1. 4. Hacer visualizar nuevamente el contenido de la direccin E F078H. 5. Introducir la nueva contrasea "1234H" sobreescribiendo el contenido de la direccin con el nmero hexadecimal D234H.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 39

Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 136 a BS 137

Para funcin de autotest

Las palabras de datos del sistema BS 136 a BS 137 se utilizan para la funcin de autotest.

BS 136

Cantidad de segmentos de tiempo, "time slices" (direccion: E F088H)

BS 137

Bits de control (direccin: E F089H) Los bits de control activan y desactivan las funciones de autotest (vase captulo 5.7). Bit = 1: funcin de autotest activada. Bit = 0: funcin de autotest desactivada.

Tabla 8-19

Ocupacin BS 137 (bits de control para funciones de autotest)

Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Comprobacin de la memoria No ocupado Comprobacin de la supervisin del tiempo de ciclo No ocupado Comprobacin de la seal BASP Comprobacin de los relojes No ocupado No ocupado Byte bajo 7 6 5 4 3 2 1 0 Comprobacin de las lneas de direcciones No ocupado Comprobacin de cdigos de los mdulos de cdigo STEP 5 en la memoria de usuario No ocupado No ocupado Comprobacin de cdigo del programa de sistema No ocupado No ocupado

8 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Ocupacin de los bits de las palabras de datos de sistema Dato de sistema BS 139

Tiempo de ciclo consumido al redisparar Direccin: E F08BH En esta palabra de datos del sistema se registra el tiempo transcurrido desde el ltimo punto de control del sistema (inicio OB 1) hasta redisparar el ciclo con OB 222 (en caso de llamar el OB 222 repetidas veces en un mismo ciclo se trata del tiempo transcurrido hasta el ltimo redisparo). El tiempo medido es: contenido de BS 139 * 10 ms.

Dato de sistema BS 253

Lista de las interfases conectadas Direccin: E F0FDH


Tabla 8-20 Ocupacin BS 253 (lista de las interfases conecadas)

Byte alto Bit n 15 14 13 12 11 10 9 8 Interfase n 11 Interfase n 10 Interfase n 9 Interfase n 8 Byte bajo 7 6 5 4 3 2 1 0 Reservado (interfase n 8) Reservado (interfase n 7) Reservado (interfase n 6) Reservado (interfase n 5) Reservado (interfase n 4) Reservado (interfase n 3) Reservado (interfase n 2) Reservado (interfase n 1) Reservado Ocupacin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 41

Zona de datos de sistema libremente direccionable

8.3.6 Zona de datos de sistema libremente direccionable

La zona de memoria E 8200H a E DEF0H es utilizada por el programa de sistema como zona de datos de sistema libremente direccionable.

Bloque de identificacin del autmata programable

Al principio de esta zona se encuentra un bloque de informacin de 12 palabras, en el cual se registra una identificacin referente al autmata programable utilizado. Este bloque tiene la siguiente estructura:

Palabra 0 1 2 3 4 5 6 7 8 9 10 11 A 1 5 C U 4 V . 0 0 0 0 E 820BH G 5 U P 9 8 x y E 8200H E 8201H E 8202H E 8203H E 8204H E 8205H E 8206H E 8207H

En x e y se registra el nmero de versin actual.

8 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Zona de datos de sistema libremente direccionable Parmetros del sistema

A partir de la direccin E 8210H figuran los parmetros de sistema son los siguientes:

Palabra 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Dir. inicial generador seal de entrada Dir. inicial generador seal de salida Dir. inicial imag. de proc. de entradas Dir. inicial imag. de proc. de salidas Direccin inicial marcas Direccin inicial temporizadores Direccin inicial contadores Direccin inicial - datos de sistema Ident. de estado Salida software AG Direccin final - memoria de usuario Memoria de programa de sistema Longitud de la lista de DB Longitud de la lista de SB Longitud de la lista de PB Longitud de la lista de FB Longitud de la lista de OB Longitud de la lista de FX Longitud de la lista de DX Longitud de la lista de direcciones DB (DB 0) Ident. puesto conexin (vase abajo) Identificacin de la CPU 1 (vase abajo) Identificacin de la CPU 2 (vase abajo) Versin del software de interfase de PG E 8210H E 8211H E 8212H E 8213H E 8214H E 8215H E 8216H E 8217H E 8218H E 8219H E 821AH E 821BH E 821CH E 821DH E 821EH E 821FH E 8220H E 8221H E 8222H E 8223H E 8224H E 8225H

Longitud encabezamiento

Las informaciones referentes a ciertos datos del sistema (por ej. a la estructura interna de la CPU, la versin del software, la identificacin de la CPU, etc.) pueden obtenerse asimismo a travs de la funcin on line del aparato de programacin PARAMETROS SISTEMA (SYSPAR).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 43

Zona de datos de sistema libremente direccionable Palabra 19 y palabra 21

Estructura de las palabras 19 y 21:

Palabra 19
Bit n 15 14 13 12 11 10 9 8 Ocupacin byte alto 0 0 0 0 Identificacin del puesto de conexin CPU 4 Identificacin del puesto de conexin CPU 3 Identificacin del puesto de conexin CPU 2 Identificacin del puesto de conexin CPU 1 Ocupacin byte bajo 7 6 5 4 3 2 1 0 Identificacin de la CPU 2: 1000 = S5-155U Tipo de CPU: 0010 = CPU 948 (slo vlido en relacin con la identificacin de la CPU!)

8 - 44

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Zona de datos de sistema libremente direccionable Palabra 21


Bit n 15 14 13 12 11 10 9 8 Bit n 7 6 5 4 3 2 1 0 Ejemplo: 13H corresponde a la versin "V1.3" Versin del software de interfase para PG en formato "xyH" Ocupacin byte bajo Ocupacin byte alto Reservado

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

8 - 45

Zona de datos de sistema libremente direccionable

8 - 46

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de direcciones absolutas

Indice - Captulo 9
9.1 9.2 9.2.1 9.2.2 9.2.3 9.3 9.4 9.4.1 9.4.2 9.4.3 9.4.4 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 4 Accesos a la memoria a travs de la direccin registrada en AKKU 1 . . . . . . . . . . . . . . 9 - 8 LIR/TIR: Carga/transferencia indirecta de registros de 16 bit . . . . . . . . . . . . . . . . . . . . . 9 - 9 Ejemplos de accesos a DW > 255 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 15 LDI/TDI: Carga/transferencia indirecta de registros de 32 bit . . . . . . . . . . . . . . . . . . . . 9 - 17 Transferencia de bloques de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 19 Operaciones con el registro base de direcciones (registro BR) . . . . . . . . . . . . . . . . . . . 9 - 22 Operaciones de transferencia entre registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria de pginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 23 9 - 24 9 - 25 9 - 29

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9-1

Indice

9-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de direcciones absolutas

El siguiente captulo explica cmo acceder a travs de direcciones absolutas a los datos que se encuentran en determinadas zonas de la memoria, utilizando operaciones y registros especiales del programa STEP 5.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9-3

Introduccin

9.1

Introduccin
El lenguaje de programacin STEP 5 contiene operaciones que permiten acceder a toda la zona de direcciones. Estas operaciones forman parte de las "operaciones de sistema". Las operaciones descritas a continuacin trabajan con direcciones absolutas de 20 bit y dependen, por lo tanto, de la capacidad de memoria, del tipo de memoria, de la periferia y de los procesadores de comunicacin y las tarjetas de periferia inteligentes etc., utilizadas en el autmata programable.

Precaucin En caso de utilizar inadecuadamente estas operaciones, pueden ser sobreescritos los mdulos STEP 5 y los datos de sistema. Esto puede producir estados operativos inoportunos. Por este motivo, las instrucciones del sistema que operan con direcciones absolutas slo deben ser utilizadas por usuarios que tengan muy buenos conocimientos del sistema.

Memoria local

La memoria local es una zona de memoria que existe en todas las CPUs (memoria de usuario, zonas BA, BB, BS y BT, contadores, temporizadores, marcas, imagen de proceso).

Memoria global

Slo existe una memoria global para todas las CPUs en modo multiprocesador y se direcciona a travs del bus S5.

Organizacin de la memoria

Las zonas de memoria estn organizadas byte por byte o palabra por palabra. Organizacin byte por byte: cada direccin direcciona un byte. Organizacin palabra por palabra: cada direccin direcciona una palabra de 16 bit (= 2 bytes). La organizacin de la memoria local est prefijada (vase captulo 8) La organizacin de la memoria global depende del tipo de tarjetas utilizadas:

9-4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Introduccin

interna, local, mltiple (correspondiendo al nmero de CPUs conectadas)

15 0 0000H

externa, global, a travs del bus S5, nica (por cada autmata) E FBFFH E FC00H E FFFFH F EFFFH F F000H F F400H F FC00H F FE00H F FEFFH F FFFFH Registro de direcciones de pginas (registro de seleccin) Pginas 1024 byte/palabras 2048 byte/palabras 0 2 1 15 FFH F 0000H 7 0 255 15 7 0

Fig. 9-1

Memoria global y local

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9-5

Introduccin Accesos a la memoria

Las siguientes instrucciones permiten el acceso a zonas de memoria locales y globales a travs de direcciones absolutas (vase tambin fig. 9-2).

Accesos a la zona local y global

Es posible acceder tanto a la zona local como a la global: a la zona local (direcciones 0 0000H a E FFFFH) y a la zona global (direcciones F 0000H a F FFFFH) se accede con: LIR, TIR, LDI, TDI, TNW, TXB, TXW, a la parte de la zona local organizada palabra por palabra (direcciones 0 0000H a E FBFFH) o byte por byte (direcciones E FC000 a E FFFF) se accede con: LRW, TRW, LRD, TRD.

Accesos solamente a la zona global

Es posible acceder a las siguientes partes de la zona global: a la parte de la zona global organizada byte por byte (direcciones F 0000H a F FFFFH) se accede con: LB GB, LB GW, LB GD, TB GB, TB GW, TB GD, TSG, a la parte de la zona global organizada palabra por palabra (direcciones F 0000H a F FFFFH) se accede con: LW GW, LW GD, TW GW, TW GD, TSG .

Accesos a la zona de pginas Es posible acceder a las siguientes partes de la zona de pginas:
a la parte de la zona global organizada byte por byte (direcciones F F400H a F FBFFH, = zona de pginas): 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 F F400H a F FBFFH, = zona de pginas): LW CW, LW CD, TW CW, TW CD, TSC

9-6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Introduccin

Acceso no posible

Acceso posible

El acceso en modo multiprocesador puede ocasionar errores

a) LIR, TIR, LDI, TDI, TNW, TXB TXW

b) LRW, TRW, LRD, TRD

c) LB GB, LB GW, LB GD, TB GB, TB GW, TB GD, (TSG)

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 travs de direcciones absolutas

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9-7

Accesos a la memoria a travs de la direccin registrada en AKKU 1

9.2

Accesos a la memoria a travs de la direccin registrada en AKKU 1


Las operaciones aqu indicadas sirven especialmente para acceder a mdulos de datos y dems zonas de operandos. Sin embargo, no deben utilizarse para acceder a mdulos que contengan programas STEP 5 (OBs, PBs y SBs). Para los accesos pueden utilizarse distintos registros de 16 32 bits. A estos registros pertenecen los acumuladores AKKU 1 a AKKU 4, adems de otros registros especiales utilizados por la CPU como recursos.

Aplicacin

Operaciones

Tabla 9-1

Operac. para accesos indirectos a la memoria mediante registros

Operacin Operando Funcin LIR Registro n 0 a 15 Registro n 0 a 15 Nombre del registro Nombre del registro Cargar el registro de 16 bit con el contenido de una palabra de memoria direccionada por AKKU 1 (direccin 20 bit) Cargar el contenido del registro de 16 bit en la palabra de memoria direccionada por AKKU 1 (direccin 20 bit) Cargar el registro de 32 bit con el contenido de las palabras de memoria n y n+1 direccionadas por AKKU 1 (direccin 20 bit) Cargar el contenido del registro de 32 bit en las palabras de memoria n y n+1 direccionadas por AKKU 1 (direccin 20 bit)

TIR

LDI

TDI

La direccin absoluta de la palabra de memoria o bien de la primera de ambas palabras est indicada en el AKKU 1 de la siguiente manera:

Bit n 31

AKKU-1-H 16 15 20 19 Bits de dir. 0 16 a 19

AKKU-1-L 0 Bits de direc. 0 a 15

A continuacin se explica qu registros se pueden utilizar en las operaciones. Los ejemplos expuestos a continuacin describen ms detalladamente cmo aplicar las operaciones.

9-8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de la direccin registrada en AKKU 1

9.2.1 LIR/TIR: Carga/transferencia indirecta de registros de 16 bit

La tabla siguiente indica los nmeros de los registros que pueden utilizarse en la CPU 948 para las operaciones LIR y TIR as como su ocupacin.

Tabla 9-2

Registro de 16 bit para LIR/TIR

N del registro 0 1 2 3 5 6 8 9 10 11 12
1)

Ocupacin de los registros (16 bit respectivamente) AKKU-1-H (palabra izq. de AKKU1, bit 16 - 31)1) AKKU-1-L (palabra der. de AKKU1, bit 0 - 15)1) AKKU-2-H AKKU-2-L Puntero de la pila de mdulos (offset) DBA (direccin inicial del mdulo de datos) DBL (longitud del mdulo de datos) AKKU-3-H AKKU-3-L AKKU-4-H AKKU-4-L

En caso de cargar el contenido de la clula de memoria direccionada en el registro 0 1, se sobreescribe la direccin registrada en el AKKU 1.

La CPU 948 no dispone de los registros 4, 7, 13, 14 y 15. Por consiguiente, no deben utilizarse con las operaciones LIR y TIR .

Acceso LIR/TIR a zonas de memoria de 8 bit

Cuando se accede a zonas de memoria de solamente 8 bit de ancho mediante las instrucciones LIR/TIR, hay que tener en cuenta lo siguiente: con LIR se sobreescribe el byte alto del registro con valores no definidos, (excepto si se trata de marcas, PAE y PAA; en estas zonas el byte alto se sobreescribe con FFH) y con TIR solamente se transfiere el byte bajo del registro (el byte alto se pierde). Las figuras 9-3 y 9-4 muestran la diferencia que radica entre accesos con LIR/TIR a las zonas de memoria organizadas palabra por palabra y byte por byte:

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9-9

Accesos a la memoria a travs de la direccin registrada en AKKU 1

15

19

Clula de memoria direccionada LIR n

15

Registro n

AKKU 1

19

Clula de memoria direccionada TIR n

15

Registro n

AKKU 1

Fig. 9-3

Acceso LIR/TIR a zonas de memoria de 16 bit (organizadas palabra por palabra)

19

Clula de memoria direccionada LIR n

15

Registro n

AKKU 1

19

Clula de memoria direccionada TIR n

15

Registro n

AKKU 1

Fig. 9-4

Acceso LIR/TIR a zonas de memoria de 8 bit (organizadas byte por byte)

9 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de la direccin registrada en AKKU 1 Registros 0 a 3 y 9 a 12: AKKU 1, 2, 3 y 4

Durante el procesamiento del programa, la CPU utiliza los acumuladores como memoria intermedia. Con las instrucciones LIR y TIR se puede transferir el contenido de los acumuladores a las clulas de memoria de direccionamiento absoluto o cargar el contenido de las clulas de memoria de direccionamiento absoluto en los acumuladores. La direccin absoluta de la clula de memoria se encuentra en el AKKU 1, bit n 0 a 19.

Ejemplos
El contenido de la clula de memoria con direccin E F8000 se carga en la palabra de marcas MW 100. :L DH 000E F800 Cargar dir. E F800 de la clula de memoria en el AKKU 1 :LIR 1 Cargar contenido de la clula de memoria direccionada : por AKKU 1 en el registro 1 = AKKU-1-L :T MW 100 Depositar la direccin E F800 en la palabra de marcas : MW 100 :BE

El contenido de la palabra de marcas 200 se transfiere a la clula de memoria de direccin E F800. :L MW 200 Cargar palabra de marcas MW 200 en AKKU 1 :L DH 000E F800 Cargar direccin E F800, a la que se debe transferir el : contenido, en AKKU 1 (palabra de marcas MW 200 a AKKU 2) :TIR 3 Transferir el contenido del registro 3 = AKKU-2-L a la : clula direccionada por AKKU 1 :BE

Registro 6: DBA (direccin inicial del mdulo de datos)

Cuando se abre un mdulo de datos con las instrucciones A DB y AX DX, el registro 6 se carga con la direccin de la DW 0 del mdulo de datos abierto. Esta direccin se encuentra en la lista de direcciones de mdulos del DB 0 . El registro DB A se pone a 0 antes de cada llamada del OB 1. El registro DBA permanece inalterado si el procesamiento del programa contina en otro mdulo debido a una instruccin de salto (SPA/SPB) o se anida otro nivel de procesamiento.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 11

Accesos a la memoria a travs de la direccin registrada en AKKU 1

Este se modifica cuando se abre otro mdulo de datos o se retrocede a un mdulo de orden superior despus de haber abierto otro mdulo de datos en el mdulo llamado (vase tambin captulo 2.4.3).

Ejemplo

Efecto de la operacin "AX DX 17" sobre el registro DBA:

Direcciones 4 151BH 4 151CH 4 151DH 4 151EH 4 151FH DBA 4 1520H 4 1521H 4 1522H

DX17

5 palabras Encabezamiento del mdulo

KH = 0000 KH = 0001 . . .

DW 0 (en direccin de prrafo) DW 1 DW 2

Fig. 9-5

Utilizacin del registro DBA

Cuando se llama al DX 17, la direccin de la palabra de memoria, en la que se encuentra la DW 0 se deposita en el registro DBA; en el ejemplo: DBA = 4152H. Nota: La direccin depositada en el registro DBA se indica bajo DB-ADR en la pila USTACK ("PILA DE INTERRUPCIONES").

9 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de la direccin registrada en AKKU 1 Registo 8: DBL = longitud del mdulo de datos

Cada vez que se llama un mdulo se carga el registro DBL adems del registro DBA. Este registro contiene la longitud (en palabras) del mdulo de datos llamado, no estando comprendido el encabezamiento del mdulo. El registro DBL se pone a 0 antes de cada llamada al OB 1. El registro DBL permanece inalterado cuando el procesamiento contina en otro mdulo debido a una instruccin de salto (SPA/SPB) o se anida (intercala) otro nivel de procesamiento.

Este se modifica cuando se abre otro mdulo de datos o se retrocede a un mdulo de orden superior despus de haber abierto otro mdulo de datos en el mdulo llamado (vase tambin captulo 2.4.2).

Nota Los registros DBA y DBL pueden ser modificados mediante operaciones LIR para acceder a direcciones de mdulos de datos superiores a 255. El registro DBA contiene direcciones de prrafo. Sin embargo, hay que tener en cuenta que en caso de modificar el registro DBA no se actualiza automticamente el registro DBL y viceversa. Por este motivo, la supervisin de errores de transferencia ya no est garantizada! En la CPU 948 se anulan las modificaciones del registro DBA/ DBL en cuanto finaliza el mdulo actual (entradas BSTACK!). Por lo tanto, las modificaciones efectuadas en el registro DBA/ DBL slo tendrn efecto en el mdulo en el que fueron efectuadas!

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 13

Accesos a la memoria a travs de la direccin registrada en AKKU 1 Ejemplo


Efecto de la operacin "AX DX 17" sobre el DBL:

Direcciones 4 151BH 4 151CH 4 151DH 4 151EH 4 151FH DBA 4 1520H 4 1521H 4 1522H 4 1523H 4 1524H 4 1525H 4 1526H 4 1527H

DX17

5 palabras Encabezamiento del mdulo

aaaa bbbb cccc dddd eeee ffff gggg hhhh

DW 0 DW 1 DW 2 DW 3 DBL DW 4 DW 5 DW 6 DW 7

Fig. 9-6

Utilizacin del registro DBL

Cuando se llama al DX 17, el nmero de palabras de datos disponibles se deposita en el registro DBL; en el ejemplo: DBL = 8 (DW 0 a DW 7) Nota: El nmero depositado en el registro DBL se indica en la pila USTACK ("PILA DE INTERRUPCIONES) bajo "DBL-REG".

9 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de la direccin registrada en AKKU 1

9.2.2 Ejemplos de accesos a DW > 255


Ejemplo 1: Se pretende leer el contenido de la palabra de datos DW 300 en el DB 100 y transferirlo a la palabra de marcas MW 100. (Modificando las instrucciones STEP 5 escritas en negrita tambin puede ser utilizado para leer otros mdulos de datos (DB o DX). FB 5 0000 Leer la DW 300 del DB 100

SEGMENTO 1 NOMB. :LIR DW 0005 0008 000A 000B 000C 000D 000E 0010 0011 0012 0013 :L :L :+D : :LIR :SLD :L :+D :LIR :T :BE DH KF

000E EC00 +100

KF

1 4 +300

1 MW 100

Direccin inicial de la lista DB + el nmero DB = entrada en la lista de dir. del DB 100(bit 4 a 19) Direccin inicial DB 100 a AKKU 1 Convertir dir. en dir. fsica Leer la DW 300 Dir. = dir. inicial del DB + dir. DW Transferir contenido de DW 300 a AKKU 1 almacenar en MW 100

Ejemplo 2: En todas las palabras de datos de un mdulo de datos debe escribirse una constante. El programa expuesto ms adelante escribe en todas las palabras de datos del DB 100 la constante KH = A5A5. Modificando las instrucciones escritas en negrita puede ser utilizado para escribir otros mdulos de datos (DB o DX) con valores arbitrarios. Cuando se detectan mdulos no existentes se salta a la marca NIVO. El programa utiliza tres acumuladores. Dentro del bucle no se modifica la ocupacin de los acumuladores. El AKKU 1 contiene inicialmente la direccin de la primera palabra de datos y aumenta de 1 en 1 cada vez que se procesa un bucle. El AKKU 2 contiene la direccin de la ltima palabra de datos + 1. El bucle se interrumpe en cuanto el contenido del AKKU 1 es igual al contenido del AKKU 2. Para escribir las palabras de datos se utiliza la instruccin TIR 10, la cual almacena el contenido del AKKU-3-L (la constante) en la direccin que figura en el AKKU 1. Ocupacin de los acumuladores dentro del bucle: AKKU 1: AKKU 2: AKKU 3: Direccin de la palabra de datos actual a escribir Direccin de la ltima palabra de datos a escribir + 1 Constante

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 15

Accesos a la memoria a travs de la direccin registrada en AKKU 1

Ejemplo 2 (continuacin): Ocupacin de las marcas: MW 10: MW 12: MD 14: Bit 4 a 19 de la direccin inicial del DB/DX (indica la DW 0) Longitud del DB/DX (cantidad de palabras de datos) Dir. de la ltima palabra de datos existente en el DB/DX + 1 (dir. fs.)

FB

6 0000 Rellenar un DB con una constante Marcas requeridas: MB 10 a MB 17!

SEGMENTO 1 NOMB. :FILL DB 0005 :

0006 0009
000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F 0020 0021

:L :L
:+D : :LIR :T :L :!=F :SPB : :L :SLD :L :-D :LIR :ADD : :T : :L :L :SLD :+D :T :

DH KF

000E EC00 +100

Direccin inicial de la lista DB + nmero DB


= entrada en lista de direcciones del DB 100 (bit 4 a 19) Direccin inicial DB 100 a AKKU 1 Almacenar direccin inicial de forma intermedia (direccin de prrafo) Si direccin inicial = 0, no existe el DB Direccin inicial del DB (1 DW) Convertir direccin en direccin fsica Averiguar longitud del DB en base a la 5 palabra del encabezamiento del mdulo Longitud inclusive encabezamiento a AKKU 1 Cant. DW = long. total - 5 pal. (encabezamiento) Almacenar longitud de forma intermedia Cantidad de palabras de datos + direccin inicial (DW 0 convertida en direccin fsica ) da por resultado direccin de la ltima DW + 1

MW KB =NIVO MW KB

1 10 0

10 4 1 1 -5 12 12 10 4 14

BF MW MW MW

MD

0022
0024 0025 0026 0027 0028 0029 002A 002B SCHL 002C 002D 002E 002F 0030 0031 0032 0035 0036 0037 0038 0039 WEIT 003A 003B 003C 003D 003E NIVO 003F

:L
: :L :ENT : :L :SLD : : : : : :TIR : : :ADD : :><D :SPB : : : : :BEA : : :BE

KH
MD

A5A5
14

Constante que se va a escribir en


todas las palabras de datos Direccin de la ltima DW + 1 Desplazar constante a AKKU-3-L (= registro 10) Convertir direccin de la 1 palabra de datos (DW 0) en direccin fsica Bucle: AKKU 1: direccin de la DW a escribir AKKU 2: direccin de la ltima DW + 1 AKKU 3: Constante Almacenar el valor de AKKU-3-L en la DW con la direccin que figura en AKKU 1 Aumentar la direccin en 1 Consultar si se ha alcanzado la ltima DW (de lo contrario retorno a bucle)) Continuacin del programa ... una vez escritas todas las DWs ...

MW

10 4

10

DH

0000 0001

=SCHL

si DB 100 no existe

9 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Accesos a la memoria a travs de la direccin registrada en AKKU 1

9.2.3 LDI/TDI: Carga/transferencia indirecta de registros de 32 bit

La tabla siguiente muestra los nombres de registro que pueden utilizarse en la CPU 948 para las operaciones LDI y TDI as como su ocupacin.

Tabla 9-3

Registro de 32 bit para LDI/TDI

Nombre del registro A1 A2 SA BA BR


1)

Ocupacin del registro (32 bit respectivamente) AKKU 1 (AKKU1, bit 0 - 31) 1) AKKU 2 (AKKU1, bit 0 - 31) Contador de direcciones STEP (bit 0 - 19) Registro BA (direc. inicial del mdulo, bit 0 - 19) Registro BR (registro base, bit 0 - 19)

En caso de que el contenido de la clula de memoria direccionada deba ser cargado en el registro A1, se sobreescribe la direccin depositada en el AKKU 1.

Direcciones de byte

En caso de acceder con las instrucciones LDI/TDI a zonas de memoria organizadas byte por byte, hay que tener presente que con LDI se sobreescriben los bytes altos del registro direccionado con valores no definidos, (excepto si se trata de marcas, PAE y PAA; en estas zonas el byte alto se sobreescribe con FFH) y con TDI, se transfieren slo los bytes bajos del registro llamado (los bytes altos se pierden vase ejemplo en la pgina siguiente).

Registro de datos con LDI/TDI


Registro alto aaaa Direccin DW n DW n+1 15 aaaa bbbb 0 Registro bajo 16 15 bbbb 0

31

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 17

Accesos a la memoria a travs de la direccin registrada en AKKU 1 Registro SA: SAZ = Contador de direcciones STEP

Una vez procesada una operacin STEP 5, el registro SA contiene la direccin absoluta de 20 bit de la prxima operacin a procesar.

Registro BA: Direccin inicial del mdulo

Durante el procesamiento del programa de usuario STEP 5, el registro BA contiene la direccin absoluta de 20 bits de la operacin que va a ser procesada a continuacin en el mdulo de orden superior (corresponde a la direccin de retroceso).

Registro BR: Registro base de direcciones libre

El registro base de direcciones (20 bit) permite el clculo de direcciones y operaciones indirectas de carga y transferencia de registros sin necesidad de utilizar los acumuladores. Puede ser utilizado a voluntad durante el procesamiento del programa STEP 5.

Ejemplo del TDI en la zona de bytes


:L DH 1234 5678 :L DH 000E FC00 : :TDI A2 : Cargar dato Cargar direccin del byte de marcas MB 0 Almacenar el contenido del AKKU 2

E FC00 = 34 E FC01 = 78

(los valores 12H y 56H del AKKU 2 se pierden)

9 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Transferencia de bloques de memoria

9.3

Transferencia de bloques de memoria


Las operaciones expuestas a continuacin permiten transferir zonas de datos de una longitud de hasta 255 palabras que se encuentran en determinadas zonas de direcciones a otras zonas de la memoria.

Aplicacin

Operaciones
Tabla 9-4 Operaciones para la transferencia de bloques

Operacin TNW TXB TXW


1)

Operando Funcin 0 a 255 --Transferir bloque 0 a 255 palabras (en la zona de memoria de 16 bit)
1)

Transferir bloque de la memoria de 8 bit a la de 16 bit Transferir bloque de la memoria de16 bit a la de 8 bit

Tambin puede utilizarse para transferencias "de una zona de byte a otra".

Parmetros

Longitud de bloque Con TNW: Con TXB/TXW Operando = Cantidad de palabras (0 a 255) AKKU 3 = Cantidad de palabras (0 a 127)

Direccin final de la zona fuente AKKU 2 = Direccin final de la zona fuente (20 bit)

Direccin final de la zona destino AKKU 1 = Direccin final de la zona destino (20 bit)

La zona fuente y la zona destino deben encontrarse completas en una de las zonas indicadas en la tabla 9-5 y no deben solaparse, es decir, sobrepasar el lmite de memoria respectivo.

Zonas de memoria admisibles

Tabla 9-5

Zonas de memoria admisibles para TNW, TXB y TXW

Direcciones 0 0000H a C FFFFH

Zona de memoria Memoria de usuario: Zona 16 bits (depende de la ampliacin de memoria)

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 19

Transferencia de bloques de memoria

Direcciones
Tabla 9-5 (continuacin):

Zona de memoria RAM de sistema: Datos de sistema, 16 bit Datos de sistema (BA/BS, temporizadores, contadores, etc.), 16 bit Marcas S, 8 bit, byte bajo en la palabra de 16 bit (byte alto no definido) Marcas, imagen de proceso, 8 bit (byte alto = FFH) Periferia, 8/16 bit

E 8000H a E 9FFFH E B000H a E FBFFH

E A000H a E AFFFH

E FC00H a E FFFFH

F 0000H a F FFFFH

(Vase tambin captulo 8)

Ejecucin

La transferencia de bloques se efecta de forma decreciente, es decir, comenzando con la direccin ms alta de la zona fuente (= direccin final) y finalizando con la ms baja.

TNW, TXB y TXW

Las instrucciones TNW, TXB y TXW son operaciones STEP 5 de larga duracin y, por lo tanto, slo pueden ser interrumpidas mediante DESCONEXION y QVZ.

Particularidades Interrupciones por DESCONEXION

Si la ejecucin de una de estas instrucciones se interrumpe a consecuencia de un fallo de la tensin de red (NAU), y a continuacin se realiza un rearranque, la operacin respectiva no se sigue procesando a partir del punto de interrupcin, sino que se procesa desde el principio. Si durante la transferencia tiene lugar un retardo en acuse de recibo (QVZ) se interrumpe la operacin y se llama al OB de error correspondiente. Como direccin de error se indica siempre aquella direccin en la que se ha producido un error (vase captulo 5.6.3).

Interrupciones por QVZ

9 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Transferencia de bloques de memoria ADF durante la transferencia

Si durante la transferencia se produce una o ms veces un error de direccionamiento (ADF), entonces se transfieren en primer lugar todos los bloques parciales y despes se llama una sola vez al OB 25 antes de ejecutar la siguiente operacin.

Ejemplo

TXB y TXW entre zonas de memoria de 8 y 16 bit:


7 0 15 0

87

Direcciones ascendentes Byte Byte Byte Byte Byte Byte Direccin fuente/destino 6 5 4 3 2 1 TXB Byte 6 Byte 4 Byte 2 TXW Byte 5 Byte 3 Byte 1

Direcciones ascendentes

Direccin fuente/destino

Fig. 9-7

Transferencia de bloques de memoria

Transferencia de los byte 1 a 6 de la zona de 8 bit a la zona de 16 bit: :L <longitud de bloque en palabras> :L <direccin fuente> :ENT :L <direccin destino> :TXB por ej. :L KH 0003 :L DH EFC10 :ENT :L DH EF208 :TXB

Transferencia de los byte 1 a 6 de la zona de 16 bit a la zona de 8 bit: :L <longitud de bloque en palabras> :L <direccin fuente> :ENT :L <direccin destino> :TXW por ej. :L KH 0003 :L DH EF008 :ENT :L DH EFC10 :TXW

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 21

Operaciones con el registro base de direcciones (registro BR)

9.4

Operaciones con el registro base de direcciones (registro BR)


El registro base (20 bit) permite el clculo 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 clula de memoria cuya direccin absoluta se calcula a partir de la suma del contenido del registro BR y de una constante: Direccin absoluta = contenido del registro BR + constante

Aplicacin

Operaciones
Tabla 9-6 Operaciones de carga/transferencia con el registro BR

Operacin MBR

Operando Funcin Constante (0H a F FFFFH) Constante (-32 768 a +32 767) Cargar el registro BR con una constante de 20 bit

ABR

Sumar una constante de 16 bit al contenido del registro BR

Modificacin del registro BR

El registro BR no se modifica si el procesamiento contina en otro mdulo que pertenezca al mismo nivel de procesamiento a debido a una instruccin de salto (SPA FB/SPB FB). El registro BR no se modifica en caso de anidar (intercalar) otro nivel de procesamiento . El registro BR se pone a 0 cuando el programa de sistema efecta una llamada a otro nivel de procesamiento.

9 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones con el registro base de direcciones (registro BR)

9.4.1 Operaciones de transferencia entre registros

Aplicacin

Las operaciones expuestas a continuacin pueden ser utilizadas para intercambiar rpidamente valores entre los registros AKKU 1 (32 bit), el contador de direcciones (SAZ 20 bit) y el registro BR (20 bit).

Operaciones
Tabla 9-7 Operaciones de registro a registro

Operacin MAS

Operando Funcin -Transferir el contenido de AKKU 1 al contador de direcciones STEP (20 bit) Transferir el contenido de AKKU 1 al registro base de direcciones (20 bit) Transferir el contenido del contador de direcciones STEP (20 bit) al AKKU 1 1) Transferir el contenido del contador de direcciones STEP (20 bit) al registro base de direcciones (20 bit) Transferir el contenido del registro base de direcciones (20 bit) al AKKU 1 1) Transferir el contenido del registro base de direcciones (20 bit) al contador de direcciones STEP (20 bit)

MAB

--

MSA

--

MSB

--

MBA

--

MBS

---

1)

Los bits 220 a 231 se ponen a 0.

La figura siguiente muestra cmo se modifican los registros con dichas operaciones.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 23

Operaciones con el registro base de direcciones (registro BR)

31 xx . . . . . .

20 19 xx

0 AKKU 1

31 00

20 19 . . . . . . 00

0 AKKU 1

MAS, MAB 19 0 BR, SAZ 19

MSA, MBA 0 BR, SAZ

19

0 SAZ

19

0 SAZ

MSB 19 0 BR 19

MBS 0 BR

Fig. 9-8

Operaciones de transferencia entre registros

9.4.2 Accesos a la memoria local

Aplicacin

Con las operaciones siguientes se puede acceder a la memoria local organizada byte por byte a travs de una direccin de memoria absoluta. La direccin absoluta es la suma del contenido del registro BR y de la constante de 16 bit contenida en la instruccin (-32768 a +32767).

Operaciones
Tabla 9-8 Operaciones para accesos a la memoria local

Operacin LRW

Operando Descripcin Constante (-32768 a +32767) Constante (-32768 a +32767) Constante (-32768 a +32767) Sumar la constante indicada al 1) contenido del registro BR y cargar la palabra as direccionada en el AKKU 1-L Sumar la constante indicada al 1) 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

LRD

TRW

9 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones con el registro base de direcciones (registro BR)

Operacin TRD

Operando Descripcin Constante (-32768 a +32767) Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU 1 a la palabra doble as direccionada

Tabla 9-8 (continuacin):

1)

AKKU 2 nuevo = AKKU 1antiguo

Reaccin ante error

Si la direccin calculada de la clula de memoria no se encuentra entre 0 0000H y E FFFFH, entonces la CPU detecta un error de carga/transferencia (TRAF) y llama al OB 32. Si el OB 32 no est cargado la CPU se pondr en STOP dando el aviso de error TRAF (USTACK).

9.4.3 Accesos a la memoria global

Aplicacin

Con las siguientes operaciones se puede acceder a la memoria global organizada byte por byte o palabra por palabra a travs de una direccin de memoria absoluta. La direccin absoluta es la suma del contenido del registro BR y de la constante contenida en la instruccin (- 32768 a 32767).

Comprobacin y forzado de una clula ocupada en la zona global

El acceso de cada una de las CPUs a zonas de memorias utilizadas conjuntamente se puede controlar mediante una clula ocupada. A cada zona de memoria utilizada de forma conjunta se le asigna una clula ocupada que debe ser comprobada antes de cada acceso por todas las CPUs participantes. Esta clula contiene bien el valor 0 o la indicacin del puesto de conexin de la CPU, que en ese momento utiliza la zona de memoria y que debe liberarla de nuevo sobreescribiendo la clula ocupada con 0. (Vanse las explicaciones referentes a las operaciones "Activar semforo/SES" y "Desactivar semforo/SEF" en el captulo 3.5.5.) La operacin TSG se encarga de comprobar y activar una clula ocupada.

Operacin TSG

Operando Descripcin -32768 a +32767 Sumar la constante indicada al contenido del registro BR y comprobar y activar la clula ocupada as direccionada

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 25

Operaciones con el registro base de direcciones (registro BR) Ejecucin

La clula utilizada es el byte bajo de la palabra correspondiente a la direccin que resulta de la suma del registro BR + la constante. En caso de que el contenido del byte bajo sea 0, la instruccin TSG registra la identificacin del puesto de conexin de la CPU en la clula. La comprobacin (= lectura) y la ocupacin (= escritura) constituyen una unidad de programa que no puede ser interrumpida.

Resultado

El resultado de la comprobacin puede evaluarse por medio de los indicadores ANZ 0 y ANZ 1:

ANZ 1 0

ANZ 0 0

Significado El contenido de la clula es 0; la CPU registra su propia identificacin de puesto de conexin. La identificacin del puesto de conexin ya ha sido registrada en la clula.

1 La clula contiene otra identificacin de puesto de conexin.

Nota La operacin TSG ha de ser utilizada por todas las CPUs que tengan que acceder de forma sincronizada a una zona de memoria global conjunta.

Reaccin ante error

La direccin absoluta debe encontrarse entre F 0000H y F FFFFH. En caso contrario, la CPU detecta un error de carga/transferencia (TRAF) y llama al OB 32. Si el OB 32 no est cargado, la CPU se pone en STOP, dando el aviso de error TRAF (USTACK).

9 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones con el registro base de direcciones (registro BR) Operaciones de carga y transferencia en la memoria global organizada byte por byte

Tabla 9-9

Operaciones para accesos a la memoria global organizada byte por byte

Operacin LB GB

Operando Descripcin -32768 a +32767 Sumar la constante indicada al contenido del registro BR y cargar el byte as direccionado en el AKKU-1-LL 1) 3) Sumar la constante indicada al contenido del registro BR y cargar la palabra as direccionada en el AKKU-1-L 2) 3) Sumar la constante indicada al contenido del registro BR y cargar la palabra doble as direccionada 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 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

LB GW

-32768 a +32767

LB GD

-32768 a +32767

TB GB

-32768 a +32767

TB GW

-32768 a +32767

TB GD

-32768 a +32767

1) 2) 3)

AKKU-1-LH y AKKU-1-H se ponen a 0. AKKU-1-H se pone a 0. AKKU 2 nuevo : = AKKU 1antiguo

Reaccin ante error

La direccin absoluta debe encontrarse entre F 0000H y F FFFFH (con LB GB, TB GB), entre F 0000H y F FFFEH (con LB GW, TB GW) o entre F 0000H y F FFFCH (con LB GD, TB GD).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 27

Operaciones con el registro base de direcciones (registro BR)

En caso contrario, la CPU detecta un error de carga/transferencia (TRAF) y llama al OB 32. Si el OB 32 no est cargado, la CPU se pone en STOP dando el aviso de error TRAF (USTACK).

Operaciones de carga y transferencia en la memoria global organizada palabra por palabra

Tabla 9-10

Operaciones para accesos a la memoria global organizada palabra por palabra

Operacin LW GW

Operando Descripcin -32768 a +32767 Sumar la constante indicada al contenido del registro BR y cargar la palabra as direccionada en el AKKU-1-L 1) 2) Sumar la constante indicada al contenido del registro BR y cargar la palabra doble as direccionada 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 Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU 1 a la palabra doble as direccionada

LW GD

-32768 a +32767

TW GW

-32768 a +32767

TW GD

-32768 a +32767

1) 2)

AKKU-1-H se pone a 0. AKKU 2 nuevo : = AKKU 1antiguo

Reaccin ante error

La direccin absoluta debe encontrarse entre F 0000H y F FFFFH (con LW GW, TW GW) o entre F 0000H y F FFFEH (con LW GD, TW GD). En caso contrario, la CPU detecta un error de carga/transferencia (TRAF) y llama al OB 32. En AKKU 1 est depositada la identificacin de error 1A01H. Si el OB 32 no est cargado, la CPU se pone en STOP, dando el aviso de error TRAF (USTACK).

9 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones con el registro base de direcciones (registro BR)

9.4.4 Accesos a la memoria de pginas

Aplicacin

Con las siguientes operaciones se puede acceder a pginas organizadas byte por byte o palabra por palabra a travs de una direccin de memoria absoluta. La direccin absoluta es la suma del contenido del registro BR y de las constantes contenidas en la instruccin (-32768 a 32767). La zona global contiene una "pgina" entre las direcciones F F400H a F FBFFH para la insercin de mx. 256 zonas de memoria (= pginas). Una pgina ocupa mx. 2K de direcciones y puede estar organizada byte por byte o palabra por palabra. Antes de cada acceso a una zona de pginas se tiene que seleccionar una de las 256 pginas registrando su nmero de pgina en el registro de seleccin (registro de direcciones de pginas). El proceso de "escritura del registro de seleccin y consecutivo acceso a la zona de pginas" no puede ser interrumpido. Antes de cada acceso (carga/transferencia) a la zona de pginas debe abrirse una de las 256 pginas. Adems, hay que transferir el nmero de la pgina que va a ser abierta al AKKU-1-L; ste nmero se registra en el registro de pginas interno de la CPU por medio de la instruccin ACR. Antes de acceder a las pginas, todas las operaciones con pginas escriben el contenido del registro de pginas en el registro de seleccin de las tarjetas correspondientes en el bus S5. El registro de pginas no se modifica cuando se efecta una llamada a otro mdulo. Cuando el registro de pginas es modificado en un mdulo, su valor no se pierde si al final del mdulo se retrocede al mdulo que ha efectuado la llamada. El registro de pginas no se modifica cuando se anida otro nivel de procesamiento.

Forma de acceder a pginas

Modificacin del registro de pginas

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 29

Operaciones con el registro base de direcciones (registro BR) Apertura de una pgina
Operacin ACR Parmetro Descripcin Abrir la pgina cuyo nmero se encuentra en AKKU-1-L , valores admisibles: 0 a 255

El nmero de pgina debe encontrarse entre 0 y 255. En caso contario, la CPU detecta un error de sustitucin (SUF) y llama al OB 27. Si el OB 27 no est cargado, la CPU se pone en STOP.

Comprobacin y activacin de una clula ocupada en la zona de pginas

El acceso de cada una de las CPUs a zonas de memorias utilizadas conjuntamente se puede controlar mediante una clula ocupada. A cada zona de memoria utilizada de forma conjunta se le asigna una clula ocupada que debe ser comprobada antes de cada acceso por todas las CPUs participantes. Esta clula contiene bien el valor 0 o la indicacin del puesto de conexin de la CPU, que en ese momento utiliza la zona de memoria y que debe liberarla de nuevo sobreescribiendo la clula ocupada con 0. (Vanse las explicaciones referentes a las operaciones "Activar semforo/SES" y "Desactivar semforo/SEF" en el captulo 3.5.5.) La instruccin TSC se encarga de comprobar y activar una clula ocupada en la pgina abierta.

Operacin TSC

Operando Descripcin -32 768 a +32 767 Sumar la constante indicada al contenido del registro BR y comprobar y activar la clula ocupada as direccionada en la pgina abierta

Ejecucin

La clula utilizada es el byte bajo de la palabra correspondiente a la direccin que resulta de la suma del registro BR + la constante. En caso de que el contenido del byte bajo sea 0, la instruccin TSC registra la identificacin del puesto de conexin en la clula. La comprobacin (= lectura) y ocupacin (= escritura) forman una unidad de programa que no puede ser interrumpida.

9 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones con el registro base de direcciones (registro BR) Resultado

El resultado de la operacin TSC se puede evaluar por medio de los indicadores ANZ 0 y ANZ 1:

ANZ 1 0

ANZ 0 0

Significado El contenido de la clula es 0; la CPU registra su propia identificacin de puesto de conexin. La identificacin del puesto de conexin ya ha sido registrada en la clula. La clula contiene otra identificacin de puesto de conexin.

Nota La operacin TSC debe ser utilizada por todas las CPUs que tengan que acceder de forma sincronizada a una zona de memoria global conjunta (zona de pginas).

Reaccin ante error

La clula ocupada debe encontrarse en la tarjeta correspondiente y en la pgina utilizada conjuntamente entre F F400H y F FBFFH. En caso contrario, la CPU detecta un error de transferencia (TRAF) y llama al OB 32 . Si el OB 32 no est cargado, la CPU se pone en STOP, dando el aviso de error TRAF (USTACK).

Operaciones de carga y transferencia para pginas organizadas byte por byte

Tabla 9-11

Operaciones para accesos a pginas organizadas byte por byte

Operacin LB CB

Operando Descripcin -32768 a +32767 Sumar la constante indicada al contenido del registro BR y cargar el byte as direccionado en la pgina abierta en el AKKU-1-LL 1) 3) Sumar la constante indicada al contenido del registro BR y cargar la palabra as direccionada en la pgina abierta en el AKKU-1-L 2) 3) Sumar la constante indicada al contenido del registro BR y cargar la palabra doble as direccionada en la pgina abierta en el AKKU 1 3)

LB CW

-32768 a +32767

LB CD

-32768 a +32767

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 31

Operaciones con el registro base de direcciones (registro BR)

Operacin TB CB

Operando Descripcin -32768 a +32767 Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-LL al byte as direccionado en la pgina abierta Sumar la constante indicada al contenido del registro BR y tranferir el contenido del AKKU-1-L a la palabra as direccionada en la pgina 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 pgina abierta

Tabla 9-11 (continuacin):

TB CW

-32768 a +32767

TB CD

-32768 a +32767

1) 2) 3)

AKKU-1-LH y AKKU-1-H se ponen a 0. AKKU-1-H se pone a 0. AKKU 2 nuevo: = AKKU 1antiguo

Reaccin ante error

La direccin absoluta debe encontrarse entre F F400H y F FBFFH (con LB CB, TB CB), entre F F400H y F FBFEH (con LB CW, TB CW) o entre F F400H y F FBFCH (con LB CD, TB CD). En caso contrario, la CPU detecta un error de carga/transferencia (TRAF) y llama al OB 32. Si el OB 32 no est cargado, la CPU se pone en STOP, dando el aviso de error TRAF (USTACK).

9 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Operaciones con el registro base de direcciones (registro BR) Operaciones de carga y transferencia en pginas organizadas palabra por palabra

Tabla 9-12

Operaciones para accesos a pginas organizadas palabra por palabra

Operacin LW CW

Operando Descripcin -32768 a +32767 Sumar la constante indicada al contenido del registro BR y cargar la palabra as direccionada en la pgina abierta en el AKKU-1-L 1) Sumar la constante indicada al contenido del registro BR y cargar la palabra doble as direccionada en la pgina 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 pgina 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 pgina abierta

LW CD

-32768 a +32767

TW CW

-32768 a +32767

TW CD

-32768 a +32767

1) 2)

AKKU-1-H se pone a 0. AKKU 2 nuevo: = AKKU 1antiguo

Reaccin de error

La direccin absoluta debe encontrarse entre F F400H y F FBFFH (con LW CW, TW CW) o entre F F400H y F FBFEH (con LW CD, TW CD). En caso contrario, la CPU detecta un error de carga/transferencia (TRAF) y llama al OB 32. Si el OB 32 no est cargado, la CPU se pone en STOP, dando el aviso de error TRAF (USTACK).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

9 - 33

Operaciones con el registro base de direcciones (registro BR)

9 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador y comunicacin del S5-155U

10

Indice - Captulo 10
10.1 10.1.1 10.1.2 10.1.3 10.1.4 10.1.5 10.1.6 10.1.7 10.1.8 10.2 10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6 10.2.7 10.2.8 10.3 10.4 10.4.1 10.4.2 10.4.3 10.4.4 Modo multiprocesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4 Cundo utilizar el modo multiprocesador? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4 De qu mecanismos de comunicacin se dispone? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4 Intercambio de datos a travs de marcas de acoplamiento . . . . . . . . . . . . . . . . . . . . . . . 10 - 5 Intercambio de datos a travs de mdulos de comunicacin . . . . . . . . . . . . . . . . . . . . . 10 - 8 Qu se debe programar para utilizar el modo multiprocesador?. . . . . . . . . . . . . . . . . . 10 - 9 Cmo se crea el mdulo de datos DB 1?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 9 Qu hay que saber acerca del arranque en modo multiprocesador? . . . . . . . . . . . . . . 10 - 13 Que hay que saber acerca del modo "test"?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 14 Comunicacin en multiprocesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 15 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo se identifica el emisor y el receptor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Porqu se almacenan datos de forma intermedia? . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo se procesa y administra la memoria intermedia? . . . . . . . . . . . . . . . . . . . . . . . Aspectos a tener en cuenta al arrancar el sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lo que hay que tener en cuenta al llamar los OBs de comunicacin. . . . . . . . . . . . . . Cmo se parametrizan los OBs de comunicacin? . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo se evalan los parmetros de salida? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 15 10 - 16 10 - 17 10 - 18 10 - 21 10 - 22 10 - 23 10 - 24

Tiempo de ejecucin de los OBs de comunicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 31 Funcin INICIALIZAR (OB 200) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 33 Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 33 10 - 35 10 - 35 10 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 1

Indice

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

Funcin EMITIR (OB 202) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 40 Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 40 10 - 40 10 - 40 10 - 42

Funcin TEST DE EMISION (OB 203) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 45 Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 45 10 - 45 10 - 45 10 - 45

Funcin RECIBIR (OB 204) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 47 Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 47 10 - 47 10 - 47 10 - 48

Funcin TEST DE RECEPCION (OB 205) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 51 Funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 51 10 - 51 10 - 51 10 - 51

Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 53 Llamada a los OBs de funciones especiales por medio de mdulos de funciones . . . 10 - 53 Transferencia de mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 60 Ampliacin de la zona de marcas de acoplamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 66

10 - 2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador y comunicacin del S5-155U

10

Este captulo explica cundo se puede utilizar el modo multiprocesador y qu posiblidades de intercambio de datos existen. Tambin explica qu debe hacer y tener en cuenta el programador a la hora de trabajar en modo multiprocesador (vase captulo 10.1). Finalmente se encuentran instrucciones detalladas con ejemplos de aplicacin referentes al intercambio de grandes cantidades de datos en modo multiprocesador (comunicacin en multiprocesamiento, captulos 10.2 a 10.9).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 3

Modo multiprocesador

10.1 Modo multiprocesador


Definicin del concepto
El modo multiprocesador tiene lugar desde el momento en que un coordinador se encuentra conectado al aparato central, independientemente del nmero de CPUs que estn utilizndose. Las CPUs deben estar conectadas una al lado de la otra, de modo que no queden espacios libres!

10.1.1 Cundo utilizar el modo multiprocesador?

Cuando el programa de usuario sea demasiado extenso para una sola CPU y el espacio de memoria sea insuficiente, es necesario repartir el programa entre varias CPUs. Cuando una determinada parte de la instalacin deba ser procesada de forma especialmente rpida, se saca dicha parte del programa y se hace procesar por una CPU "rpida". Si la instalacin se compone de varias partes que pueden ser fcilmente delimitadas y comandadas o reguladas de forma relativamente independiente, se puede hacer corresponder la parte 1 a la CPU 1, la parte 2 a 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 se van a utilizar en cada caso.

10.1.2 De qu mecanismos de comunicacin se dispone?

Para el intercambio cclico de datos binarios entre las CPUs (CPU 948, CPU 946/947, CPU 928B, CPU 928 y CPU 922) o entre las CPUs y los procesadores de comunicacin se dispone de las "marcas de acoplamiento". Para el intercambio de grandes cantidades de datos (por ej. mdulos de datos completos) entre las CPU 948, CPU 946/947, CPU 928B, CPU 928 y CPU 922 se pueden utilizar las "funciones especiales para comunicacin en multiprocesamiento" OB 200 a OB 205 (para ms informacin vase el captulo 10.2 y siguientes). Para la comunicacin con tarjetas de E/S inteligentes (IPs) y con los procesadores de comunicacin (CPs) se dispone de los "mdulos de comunicacin" (que deben pedirse por separado).

10 - 4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador

10.1.3 Intercambio de datos a travs de marcas de acoplamiento

Para el intercambio cclico 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) CPU(s) CPU(s) Procesador(es) de comunicacin

El programa de sistema transfiere las marcas de acoplamiento una vez por ciclo. En caso de transferir datos entre varias CPUs, las marcas de acoplameinto son memorizadas fsicamente y de forma intermedia en el coordinador. Las marcas de acoplamiento son bytes de marcas que se tranfieren. Estas estn definidas para cada CPU en el mdulo DB 1 como marcas de acoplamiento de entradas o salidas. Si, por ejemplo, se ha definido el byte de marcas 50 en la CPU 1 como marca de acoplamiento de salida, entonces se transfiere cclicamente su estado lgico a travs del coordinador a aquella CPU, en la que se haya definido el byte de marcas 50 como marca de acoplamiento de entrada.

Nota No se emite aviso de error si el byte de entrada existe fsicamente pero slo se escribe por una parte y no se lee nunca o viceversa.

Zona de memoria

En el coordinador y los procesadores de comunicacin, la zona de memoria reservada para las marcas de acoplamiento abarca en la CPU 948 las direcciones de F F200H a F F2FFH. Por cada CPU/ procesador de comunicacin se dispone de 256 byte de marcas de acoplamiento.

Ajuste de los puentes

Para evitar ocupaciones dobles (de los 256 bytes de marcas de acoplamiento disponibles), es necesario asignar prioridades en las tarjetas KOR o CP. Se pueden insertar o suprimir bloques de 32 bytes cada uno. (El manual del sistema informa cmo ajustar los puentes).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 5

Modo multiprocesador Ejemplo

CPU 1 Salidas de marcas de acopl.: MB 96 a MB 119 Entradas de marcas de acopl.: MB 120 a MB 125 Escritura

Coordinador

Lectura Zonas habilitadas mediante puentes:

CPU 2 Salidas de marcas de acopl.: MB 120 a MB 125 Entradas de marcas de acopl.: MB 96 a MB 119 Escritura

Bytes de marcas de acoplamiento MB 96 a MB 127

Lectura

Fig. 10-1

Transferencia de marcas de acoplamiento en modo multiprocesador

Nota Como marcas de acoplamiento slo pueden ser utilizados aquellos bytes de marcas que han sido habilitados en el coordinador o en el (los) correspondiente(s) procesadore(es) de comunicacin (CP). No utilizar las marcas S como marcas de acoplamiento! Si en una o varias CPUs se ha definido un determinado byte de marcas como marca de acoplamiento de entrada, este byte debe definirse en otra CPU o en otro CP como marca de acoplamiento de salida. Y: Un byte de marcas no deber definirse como marca de acoplamiento de salida ms que en una sola CPU. Sin embargo, este byte puede definirse 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"! En el DB 1 slo hay que indicar las marcas de acoplamiento que se precisen: cuanto menor sea la cantidad de marcas de acoplamiento, tanto ms breve ser el tiempo de transferencia!

10 - 6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador Intercambio de datos entre CPUs y procesadores de comunicacin

Si hay que transferir datos entre una CPU y un procesador de comunicacin, es necesario habilitar la cantidad necesaria de marcas de acoplamiento en el procesador de comunicacin (CP). Ah se dispone tambin de 256 byte, divisibles en zonas de 32 byte. Si hay que transferir datos de una CPU a varios procesadores de comunicacin, las zonas habilitadas en los procesadores de comunicacin y en el coordinador no deben solaparse, para evitar que las direcciones estn doblemente ocupadas. Si se desean utilizar simultneamente marcas de acoplamiento en el coordinador y en uno o varios procesadores de comunicacin tambin habr que evitar un doble direccionamiento: Las marcas de acoplamiento en el coordinador y en las CPs han de ser divididas en zonas de 32 byte. Los bytes de marcas de acoplamiento utilizados en el procesador de comunicacin han de ser enmascarados en el coordinador retirando los puentes correspondientes (vase manual del sistema). En este caso, tampoco puede definirse un byte de marcas como marca de acoplamiento de salida ms que en una sola CPU. Por el contrario, un byte de marcas determinado puede definirse como marca de acoplamiento de entrada en varias CPUs.

Ejemplo

CPU 1 CP 1 CP 2

CP 1 Zona habilitada: Bytes de marcas de acoplamiento MB 96 a MB 127

Salidas de marcas de acopl.: CP 1: MB 96 a MB 119 CP 2: MB 201 a MB 205

CP 2 Zona habilitada: Entradas de marcas de acopl.: CP1: MB 120 a MB125 CP 2: MB195 a MB 200 CP 1 CP 2 Bytes de marcas de acoplamiento MB 192 a MB 223

Fig. 10-2

Ejemplo de zonas de marcas de acoplamiento en CPs

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 7

Modo multiprocesador Transferencia de marcas de acoplamiento en modo multiprocesador

Las marcas de acoplamiento indicadas en el DB 1 se transfieren al final del ciclo junto con la actualizacin de la imagen de proceso solamente cuando la CPU ha recibido la seal de acceso libre al bus. El coordinador enva sucesivamente a cada CPU la seal de acceso libre al bus. En esta ocasin, cada CPU slo puede transferir un byte. Debido a este tipo de transmisin encadenada puede ocurrir que se descompongan informaciones homogneas de las marcas de acoplamiento y que, por consiguiente, se opere con valores errneos. Si hay que transferir informaciones que comprendan ms de un byte, parametrizando correspondientemente el mdulo de datos DX 0, se puede conseguir que todas las marcas de acoplamiento del DB 1 sean transferidas en bloque (vase captulo 7). Una CPU que est transfiriendo marcas de acoplamiento no puede ser interrumpida por otra CPU mientras dure la transferencia. Puesto que la prxima CPU tiene que esperar a poder realizar su transferencia, se retrasa durante este tiempo el procesamiento cclico del programa. Hay que tener en cuenta que este ajuste del DX 0 puede provocar una prolongacin apreciable del tiempo de ciclo.

Comunicacin en multiprocesamiento

Para transferir mdulos de datos o, ms preciso, bloques de datos de mx. 64 byte (= 32 palabras de datos) se dispone de las siguientes funciones especiales - integradas en la CPU: OB 200: INICIALIZAR: OB 202: EMITIR: OB 203: TEST DE EMISION: OB 204: RECIBIR: OB 205: TEST DE RECEPCION: Prefijar Emitir un bloque de datos

Comprobar posibilidad de emisin Recibir un bloque de datos

Comprobar posibilidad de recepcin

10.1.4 Intercambio de datos a travs de mdulos de comunicacin

Los mdulos de comunicacin pueden utilizarse en modo multiprocesador. Por lo tanto, no es necesario parametrizar el modo multiprocesador para su utilizacin. Para informaciones ms detalladas respecto a los mdulos de comunicacin, consltese el manual correspondiente.

10 - 8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador

10.1.5 Qu hay que programar para utilizar el modo multiprocesador?

Para que el coordinador pueda coordinar los accesos de las distintas CPUs a la zona de periferia es necesario programar el mdulo de datos DB 1. Aunque la CPU no utilice periferia o marcas de acoplamiento tiene que existir un DB 1 (vaco). (Para ms informacin al respecto, vase el captulo 10.1.6) Tambin tiene que existir el mdulo de datos DX 0. Hay que parametrizarlo de forma que las alarmas de proceso por medio del EB 0 estn desconectadas y las interrupciones del sistema estn activadas.

10.1.6 Cmo se crea el mdulo de datos DB 1?

En modo multiprocesador hay que programar para cada CPU el mdulo de datos DB 1. De este modo se definen las entradas y salidas (direcciones de byte 0-127) y las marcas de acoplamiento de entradas y salidas con las cuales va a trabajar cada una de las CPUs.

Nota Durante la actualizacin de la imagen de proceso solamente se tienen en cuenta los bytes de entrada y salida definidos en el DB 1!

Entrada/Modificacin del DB 1

Crear/modificar el DB 1 en el aparato de programacin con la mscara DB 1 o Editar el DB 1 como mdulo de datos con el aparato de programacin y tranferirlo despus a la CPU.

Nota Solamente se acepta el DB 1 introducido o modificado mediante un NUEVO ARRANQUE de la CPU!

Crear a travs de la mscara DB 1

1. Seleccionar en el aparato de programacin el editor correspondiente a la mscara DB 1 (vase figura 10-3). 2. Introducir los valores deseados para las "entradas digitales" etc. en forma de nmeros decimales.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 9

Modo multiprocesador

3. Confirmar los valores entrados pulsando la tecla de aceptacin del aparato de programacin. A continuacin, el aparato de programacin crear el DB 1. 4. Transferir el DB 1 a la CPU.

Nota No se tiene en cuenta la entrada correspondiente al campo de parmetros "longitud bloque temporizadores"! Este parmetro debe indicarse en el DX 0 (vase captulo 7).

Ejemplo de la mscara DB 1

DB 1
Entradas digitales: Salidas digitales: Marcas acopl. entrada: Marcas acopl. salida: Long. bloq. temp.:

Asignacin periferia:
, 0, 1, 2, 3, 7, 10, , 0, 2, 4, 12, , 50, 51, 60, , 70, 72,100, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Fig. 10-3

Mscara del aparato de programacin para crear el DB 1

Editar el DB 1 como mdulo de datos

1. Escribir la identificacin inicial del DB 1 en las palabras de datos 0, 1 y 2: DW 0: DW 1: DW 2: KH = 4D41 KH = 534B KH = 3031 (M A) (S K) (0 1)

10 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador

2. Introducir a continuacin (a partir de la palabra de datos 3) las distintas zonas de operandos. Antes de cada zona de operandos debe introducirse una identificacin determinada. Las palabras de identificacin posibles son: Palabra de identificacin para entradas digitales KH = DE00 Palabra de identificacin para salidas digitales KH = DA00 Palabra de ident. para marcas de acopl. entradas KH = CE00 Palabra de ident. para marcas de acopl. salida KH = CA00 Detrs de la palabra de identificacin hay que introducir los nmeros de las entradas y salidas utilizadas, en formato de coma fija. 3. Concluir las entradas con la identificacin final del DB 1 "KH = EEEE" y transferir el DB 1 a la CPU.

Nota El orden de las entradas es arbitrario. Obsrvese que la imagen de proceso de las entradas y salidas es actualizada 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, por ej. para fines de comprobacin. Hay que tener presente que la imagen de proceso de los bytes repetidos ser actualizada repetidamente.

Ejemplo de edicin del DB 1

DB1 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:

FD: CPU948ST.S5D KH KH KH KH KF KF KF KF KF KF KH KF KF KF KF KH KF KF KF KH KF KF KF KH = = = = = = = = = = = = = = = = = = = = = = = = 4D41; 534B; 3031; DE00; +00000; +00001; +00002; +00003; +00007; +00010; DA00; +00000; +00002; +00004; +00012; CE00; +00050; +00051; +00060; CA00; +00070; +00072; +00100; EEEE; DW 0-2: Identificacin inicial para DB 1 Palabra de ident. para entradas digitales Byte de entrada 0 Byte de entrada 1 Byte de entrada 2 Byte de entrada 3 . Byte de entrada 10 Palabra de ident. para salidas digitales Byte de salida 0 Byte de salida 2 . Byte de salida 12 Palab. ident. para entradas marcas acoplamiento Byte de marcas 50 . Byte de marcas 60 Palab. ident. para salidas marcas acoplamiento Byte de marcas 70 . Byte de marcas 100 Identificacin final

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 11

Modo multiprocesador Aceptacin del DB 1

El DB 1 es aceptado por el programa de sistema durante el NUEVO ARRANQUE. Este verifica entonces si las entradas y salidas o marcas de acoplamiento indicadas en DB 1 dan el acuse de recibo a las tarjetas correspondientes. En caso contrario, la CPU se pone en 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, rigen las siguientes reglas: Los accesos a las tarjetas de E/S por medio de la imagen de proceso slo son posibles para las entradas y salidas definidas en el DB 1 (operaciones L.../T... ...EB, ...EW, ...ED, ...AB, ...AW, ...AD y las operaciones de combinacin con entradas y salidas). Los accesos a direcciones de la imagen de proceso que no estn registradas en el DB 1 producen un error de direccionamiento. La carga directa de bytes de periferia, sin pasar por la imagen de proceso, con las operaciones L PB/L PY, L PW, L QB, L QW es posible para todas las entradas que acusen recibo, independientemente de que estn o no registradas en el DB 1. La transferencia directa (T PB/T PY, T PW) a los byte 0 a 127 slo es posible para las salidas indicadas en el DB 1, puesto que la transferencia directa va acompaada siempre de la actualizacin de la imagen de proceso. Los accesos de escritura a direcciones de la periferia que no estn registradas en el DB 1 producen un error de direccionamiento. Transferencia sin imagen de proceso: La transferencia directa a direcciones de byte > 127 es posible, independientemente de que estn registradas en el DB 1. Tambin es posible la transferencia directa de direcciones de byte de la zona de periferia ampliada (T QB, T QW), independientemente de que estn registradas o no en el DB 1.

10 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Modo multiprocesador

10.1.7 Qu hay que saber acerca del arranque en modo multiprocesador?

En modo multiprocesador, el coordinador se arranca de la manera siguiente:

Situacin de partida:

El selector RUN-STOP de todas las CPUs conecconectadas est en posicin RUN. El selector del coordinador est en posicin STOP. Accionar el selector RUN-STOP del coordinador de STOP a RUN. (El autmata programable puede ser arrancado en modo multiprocesador arrancando simplemente el coordinador, pero solamente si ste ltimo ha sido el verdadero causante del STOP).

Mando:

o: Situacin de: partida: Mando: Los selectores RUN-STOP de todas las CPUs conectadas y del coordinador estn en posicin RUN. Con la funcin del aparato de programacin "Forzado AG, AG-Start" se arranca la CPU que ha causado el STOP en el modo de arranque deseado.

Arranque de las CPUs

El modo de arranque de cada una de las CPU depende de las operaciones efectuadas durante el STOP. As es posible que algunas CPUs realicen un REARRANQUE MANUAL y otras un NUEVO ARRANQUE. Si las CPUs no han sido manipuladas durante el STOP, efectan un REARRANQUE MANUAL.

Nota En caso de que el autmata estuviera previamente en CICLO, los diferentes modos de arranque pueden dar lugar a la transmisin de estados lgicos incorrectos de una CPU a la otra a travs de las marcas de acoplamiento. Esto se puede evitar programando adecuadamente los mdulos de organizacin de arranque OB 20, OB 21 y OB 22.

Llamando al OB 223 puede comprobarse adems si los modos de arranque de todas las CPUs que participan en el modo multiprocesador son iguales (vase captulo 6).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 13

Modo multiprocesador Fallo de la tensin de red y retorno de la tensin

En caso de un fallo de la tensin de red seguido de un retorno de la tensin, el coordinador arranca automticamente. En este caso, las CPUs efectan un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO, dependiendo del ajuste prefijado en el DX 0 (vase captulo 7). El ARRANQUE de cada CPU en modo multiprocesador est sincronizado, es decir, cada CPU espera a que todas las restantes CPUs hayan terminado su arranque para empezar a funcionar cclicamente. En todo momento puede suprimirse esta sincronizacin del arranque, parametrizando el mdulo DX 0 adecuadamente.

10.1.8 Qu hay que saber acerca del modo "test"?

Proceder de la siguiente manera:

1. Asegurarse de que la funcin "test" del coordinador est libre. 2. Accionar el selector del coordinador de STOP a TEST. El LED BASP se apaga. 3. Efectuar las operaciones de NUEVO ARRANQUE o de REARRANQUE en las CPUs que deban ponerse en RUN.

Particularidades del modo "test"

En el modo "test" es posible hacer funcionar cada CPU de manera aislada o combinarlas a voluntad. Sin embargo, las CPUs que se encuentran en STOP ya no pueden bloquear todo el autmata programable. El ARRANQUE de las CPUs en modo "test" no est sincronizado. Dependiendo de la longitud de los mdulos de organizacin para el arranque OB 20, OB 21 u OB 22, las unidades centrales empiezan a funcionar cclicamente en momentos diferentes. Si se produce un error en una CPU, solamente esta CPU se pondr en STOP durante el "test". Ello no influye sobre las dems CPUs.

Precaucin Debido a que en el modo "test" ninguna CPU puede emitir la seal BASP en caso de error, es absolutamente necesario desactivar el modo "test" despus de la puesta en marcha, a fin de evitar situaciones crticas o peligrosas en la instalacin!

10 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento

10.2 Comunicacin en multiprocesamiento


Definicin del concepto
Por comunicacin en multiprocesamiento se entiende el intercambio de cantidades de datos extensas (mdulos de datos) entre CPUs que funcionan en modo multiprocesador. Para este tipo de comunicacin se requiere un coordinador KOR C.

10.2.1 Introduccin

Para la transferencia de mdulos de datos, ms exactamente, de bloques de datos de mximo 64 byte (= 32 palabras de datos), se dispone de manera integrada en la CPU de las siguientes funciones especiales: OB 200: INICIALIZAR: OB 202: EMITIR: OB 203: TEST DE EMISION: OB 204: RECIBIR: OB 205: TEST DE RECEPCION: Prefijar Emitir un bloque de datos

Comprobar posibilidad de emisin Recibir un bloque de datos

Comprobar posibilidad de recepcin

En adelante, los OBs de funciones especiales OB 200 y OB 202 a OB 205 se denominan "OBs de comunicacin", a fin de simplificar su lectura.

Conocimientos necesarios

Para la utilizacin de estas funciones bastan conocimientos bsicos del lenguaje de programacin STEP 5 y del funcionamiento de los autmatas programables SIMATIC S5. Estos conocimientos bsicos se obtienen estudiando las obras listadas en la bibliografa.

Ejecucin

Para transferir datos, en la CPU emisora ha de activarse la funcin EMITIR y en la CPU receptora la funcin RECIBIR. En este caso, las palabras de datos consecutivas de un mdulo de datos DB o DX que se encuentren en la CPU emisora, se transportan mediante el coordinador 923C a la CPU receptora, y all se almacenan en un mdulo de datos DB o DX, con el mismo nmero y la misma direccin 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 mdulo de datos (sin encabezamiento) no sea un mltiplo de 32 palabras, en el ltimo bloque se tranfieren excepcionalmente menos de 32 palabras.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 15

Comunicacin en multiprocesamiento

El mdulo de datos de la CPU recptora puede ser ms largo o ms corto que el mdulo de datos de emisin. Lo importante es que las palabras de datos transferidas por la funcin EMITIR estn presentes en el mdulo de datos de recepcin; de lo contrario, la funcin RECIBIR detecta un error.

Ejemplo:
Datos de emisin en la CPU emisora:
Mdulo de datos: Direccin palabra de datos: DB 17 DW 32 a DW 63

Datos de recepcin en la CPU receptora:


DB 17 DW 32 a DW 63

10.2.2 Cmo se identifica el emisor y el receptor?

Cada bloque de datos intercambiado entre las CPUs se identifica con un nmero de la CPU emisora y un nmero de la CPU receptora. Las CPUs son numeradas de tal manera que la CPU conectada en el extremo izquierdo recibe el nmero 1 y las siguientes hacia la derecha reciben nmeros ascendentes, aumentando de uno en uno respectivamente.

Ejemplo

S5 135U/155U:

. .

K O R C

C P U 1

C P U 2

C P U 3

C P

C P

I M

. .
Fig. 10-4 Identificacin emisor/receptor

10 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento

10.2.3 Porqu 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 idnticas y, ya que adems pueden variar las caractersticas de las CPUs participantes, el procesamiento del programa en modo multiprocesador se ejecuta siempre de forma asincrnica. 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 coordinador 923C. La fuente o destino de un bloque de datos quedan determinados por el nmero de la "propia" CPU, as como por el nmero del receptor durante la emisin, o viceversa, por el nmero del emisor durante la recepcin.

Ejemplo

Transferencia de datos de la CPU 3 a la CPU 2:


1er paso:

EMITIR, parmetro de la "CPU receptora" = 2 . . K O R C C P U 1 C P U 2 C P U 3


. .

C P

C P

I M

La CPU 3 registra sus datos en la memoria intermedia del coordinador.

2 paso:
RECIBIR, prametro de la "CPU emisora" = 3 . . K O R C C P U 1 C P U 2 C P U 3
. .

C P

C P

I M

Cuando la CPU 2 est lista para recibir, copia los datos de la memoria intermedia del coordinador al DB de destino.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 17

Comunicacin en multiprocesamiento

10.2.4 Cmo se procesa y administra la memoria intermedia?

Procesamiento

La memoria intermedia est basada en el principio FIFO (primera entrada primera salida, principio de cola de espera). Con ello el orden de recepcin es igual al orden de emisin. Esto vale para todas las lneas de comunicacin (identificadas por la CPU emisora y la CPU receptora) y es completamente independiente de las dems lneas.

Salvaguarda de datos

La memoria intermedia se alimenta de una batera tampn; gracias a ello puede efectuarse ilimitadamente un "rearranque automtico tras un fallo de la tensin de red". Si tiene lugar un fallo de la tensin de red durante una transferencia de datos, no se pierden los datos del autmata programable.

Administracin

La capacidad mxima de memoria del coordinador 923C se remonta a 48 bloques con una longitud fija de 32 palabras cada uno. La funcin INICIALIZAR asigna estos bloques de memoria a las diferentes lneas de comunicacin. Cada bloque de memoria ocupa exactamente un bloque de datos. Su longitud puede ser de 1 a 32 palabras. Un bloque de datos se registra con una funcin EMITIR en un bloque de memoria y se retira con una funcin RECIBIR. La cantidad de bloques de memoria asignados a una lnea de comunicacin est en relacin directa con los parmetros "capacidad de emisin" (funcin EMITIR, TEST DE EMISION) y "capacidad de recepcin" (funcin RECIBIR, TEST DE RECEPCION). La capacidad de emisin indica cuntos de los bloques de memoria reservados para una lnea de comunicacin estn libres en un determinado momento. La capacidad de recepcin indica cuntos de los bloques de memoria reservados para una lnea de comunicacin estn ocupados en un determinado momento. La suma de la capacidad de emisin y de recepcin, siempre es igual a la cantidad de bloques de memoria asignados a la lnea de comunicacin.

10 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento Ejemplo

Ocupacin de la memoria intermedia por una lnea de comunicacin:


Se inicializa la lnea "de la CPU 3 a la CPU 2". Se le asignan siete bloques de memoria en la memoria intermedia del coordinador. A continuacin, se realiza por ejemplo la siguiente transmisin:
Capacidad de transmisin (cantidad de bloques de memoria libres)
Inicializar TransTransmitir mitir 4 bloques bloque A B, C, D, E Transmitir 4 bloques F, G, H, I Transmitir 2 bloques K, L

7 6 5 4

Emisor: CPU 3
3 2 1

7
0 1 2 3

6 1

2 5

4 3

0 7

5 2

5 2

7
Tiempo

Receptor: CPU 2
4 5 6 7
Recibir bloques A, B Recibir Recibir bloques C, bloques H, I D, E, F, G Recibir bloques K, L

Capacidad de recepcin (cantidad de bloques de memoria libres)

Fig. 10-5

Ejemplo de ocupacin de la memoria intermedia del KOR

La emisin y recepcin de n bloques de datos significa que las correspondientes funciones son llamadas n veces consecutivas. Para conseguir una representacin ms simplificada, en este ejemplo se realiza primero la emisin o la recepcin. La emisin (CPU 3) y la recepcin (CPU 2) simultnea es posible y conveniente ("procesamiento paralelo en el autmata programable multiprocesador"). En el ejemplo, durante la emisin de los bloques de datos K y L se reciben los bloques de datos H e I. El ejemplo aclara la organizacin de la cola de espera de la memoria intermedia: los bloques de datos transferidos en primer lugar (A,B,C...) tambin son los primeros en ser recibidos (A,B,C...).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 19

Comunicacin en multiprocesamiento Resumen

La memoria intermedia del coordinador KOR 923C tiene la tarea de equiparar los procesos asincrnicos de las CPUs de emisin y recepcin 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 (funcin TEST DE RECEPCION, capacidad de recepcin > 0) o, debiera intentar retirar los datos almacenados (funcin RECEPCION). Conviene repetir la funcin RECEPCION tantas veces como sea necesario hasta alcanzar la capacidad de recepcin 0. Este procedimiento hace que los datos emitidos no queden almacenados en la memoria intermedia demasiado tiempo, sino que estn actualmente a disposicin del receptor. Adems as se liberan bloques de memoria (la capacidad de emisin aumenta); y se evita el bloqueo del emisor (es decir, capacidad de emisin "agotada", es decir = 0).

Nota Mientras la capacidad de recepcin 0 representa el estado ideal (todos los datos emitidos han sido retirados por el receptor), la capacidad de emision 0 indica errores de configuracin de la instalacin: la funcin EMITIR se llama con demasiada frecuencia la funcin RECIBIR no se llama con la frecuencia necesaria o a la lnea de comunicacin 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 emisin y de recepcin.

10 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento

10.2.5 Aspectos a tener en cuenta durante el arranque del sistema

La comunicacin en multiprocesamiento exige que todas las CPUs ejecuten el paso de STOP a RUN (= ARRANQUE) idnticamente, es decir, que ejecuten uniformemente un NUEVO ARRANQUE, o bien un REARRANQUE. Mediante un correspondiente mando (conmutador frontal, aparato de programacin) parametrizacin (DX 0) y/o programacin (por medio del mdulo de organizacin 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 participen en la comunicacin (vase captulo 10.1.7).

NUEVO ARRANQUE

La memoria intermedia ha de ser instalada en el mdulo de organizacin OB (NUEVO ARRANQUE) por una sola CPU mediante la funcin INICIALIZAR (en el KOR 923C). En este caso se destruyen los datos eventualmente existentes. A continuacin, es decir, an en el ARRANQUE, en las CPUs se pueden llamar las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION. Mediante una programacin adecuada hay que asegurar que esto ocurra slo cuando la inicializacin 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 instruccin del OB 1.

REARRANQUE

En los mdulos de organizacin OB 21 (REARRANQUE MANUAL) y OB 22 (REARRANQUE AUTOMATICO) no se debe utilizar la funcin INICIALIZAR. La llamada de las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION puede ocasionar problemas; vanse 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 contina a partir del punto de interrupcin. El punto de interrupcin se puede encontrar, por ejemplo dentro de la funcin EMITIR.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 21

Comunicacin en multiprocesamiento

10.2.6 Lo que hay que tener en cuenta al llamar los OBs de comunicacin

Proceder del siguiente modo:

1. Llamar la funcin INICIALIZAR slo en el mdulo de organizacin OB 20 de nuevo arranque en una CPU. 2. Llamar la funcin EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION solamente durante el procesamiento cclico del programa o solamente en el procesamiento controlado por tiempo.

Llamada doble

Dependiendo de la parametrizacin del DX 0 ("interrupcin en lmites de instrucciones") y el tipo de procesamiento de programa (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 de usuario anidada en el punto de interrupcin contiene asimismo una de las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION, stas detectan una llamada no admisible (llamada doble) y sealizan el error con el correspondiente indicador de error (error n 67, captulo 10.2.8).

Procesamiento paralelo

Una vez prefijada la memoria intermedia (funcin INICIALIZAR), en todas las CPUs se pueden procesar paralela y simultneamente las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION en cualquier combinacin y con cualquier parametrizacin. Observando una sola lnea de comunicacin (por ej. de la CPU 2 a la CPU 3), se puede procesar simultneamente la funcin EMITIR (CPU 2) y la funcin 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 mdulos de organizacin de funciones especiales no requieren ninguna zona de trabajo (por ej. para el almacenamiento intermedio de variables) y tampoco abren mdulos de datos. Acceden a zonas que contienen parmetros, pero solamente se modifican los parmetros indicados como parmetros de salida.

10 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento Indicadores de resultado

Los indicadores de resultado (ANZ 1/ANZ 0, VKE, etc.) son influidos por los OBs de comunicacin. Para ms informacin consultar el captulo 10.2.8. CPU 922, CPU 928, CPU 928B:

Modificacin de los acumuladores

Los contenidos de los AKKU 1 a AKKU 4 y los contenidos de los registros no son modificados por los OBs de funciones especiales.

CPU 946/947, CPU 948:

Todos los contenidos de los registros y AKKU 1, 2 y 3 permanecen inalterados; slo se modifica el AKKU 4.

10.2.7 Cmo se parametrizan los OBs de comunicacin?

Los OBs de comunicacin presentan las siguientes clases de parmetros: parmetros de entrada, parmetros de salida y parmetros de llamada. Los parmetros de entrada y de salida se encuentran en un campo de datos de mx. 10 bytes en la zona de marcas M. El campo de datos se divide en una zona para parmetros de entrada y otra para parmetros de salida.

Parmetros de entrada

Los parmetros de entrada determinan el modo en que se ha de ejecutar una funcin. Estos son leidos y evaluados parcial o completamente por los OBs de funciones especiales. No se ejecutan accesos de escritura.

Parmetros de salida

Los parmetros de salida contienen todas las informaciones requeridas por el programa que efecta la llamada (por ej.: indicadores de error) referentes al resultado de una peticin solicitada. Estos son leidos y evaluados parcial o completamente por los OBs de funciones especiales. No se ejecutan accesos de lectura.

Nota Se puede preveer una zona de marcas de 10 bytes de marcas para todas las funciones de comunicacin. Sin embargo, cada una de las funciones requiere una cantidad diferente de bytes. Estas estn indicadas en las funciones individuales (captulo 10.4 y siguientes).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 23

Comunicacin en multiprocesamiento Parmetro de llamada

Como parmetro de llamada se transfiere en todos los OBs de comunicacin el nmero del primer byte de marcas del campo de datos (= indicador seala el campo de datos) al AKKU-1-L. Valores admisibles: de 0 a 246.

Ejemplo
Campo de datos con parmetros de la funcin RECIBIR (OB 204)
MB x + 0: CPU emisora MB x + 1: MB x + 2: Byte indicador MB x + 3: Capacidad de recepcin MB x + 4: Identificacin de mdulo MB x + 5: Nmero de mdulo MB x + 6: Direccin de la primera MB x + 7: palabra de datos recibida MB x + 8: Direccin de la ltima MB x + 9: palabra de datos recibida Parmetro de entrada no ocupado Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida

Este ejemplo muestra cmo el nmero 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 parmetros de hasta 10 bytes superara los lmites de la zona de marcas (MB 255).

10.2.8 Cmo se evalan los parmetros de salida?

Los parmetros de salida indican entre otras cosas si la funcin pudo ser procesada. De lo contrario, indican la razn del aborto de la funcin.

Indicadores de resultado

Las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION influyen sobre los indicadores de resultado (vanse instrucciones de programacin de las correspondientes CPUs, observaciones generales referentes a las operaciones STEP 5): los bits OVFLy OVFLS (indicadores de palabras) siempre se borran, los bits ODER, STATUS, ERAB (indicadores de bit) siempre se borran, VKE, ANZ 1 y ANZ 0 indican si una funcin ha sido ejecutada completa y correctamente.

10 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento

Tabla 10-1

Indicadores de los OBs de comunicacin

Indicadores Evaluacin VKE 0 ANZ 1 ANZ 0 0 0 SPB= La funcin ha sido procesada completa y correctamente Funcin abortada; indicador no debe sealar el campo de datos (>246) Funcin abortada por un conflicto de inicializacin Funcin abortada a causa de un error (error n 1 a 9) Funcin abortada a causa de una advertencia (advertencia n 1 2) Significado

SPB=

SPB= y SPM= SPB= y SPP=

En lo sucesivo se presupone que el puntero que seala 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 parmetros de entrada.

Byte indicador
Bit n 7 A 6 E 5 I 4 0 3 2 1 Nmero 0

A = 1: E = 1: I = 1: Nmero:

Advertencia Error Conflicto de inicializacin - de una advertencia - de un error - de un conflicto de inicializacin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 25

Comunicacin en multiprocesamiento

El primer byte del campo de parmetros de salida (byte indicador) tambin indica si una funcin ha sido procesada correcta y completamente. La causa del aborto de una funcin se representa ms detalladamente en los indicadores de resultado. Partiendo de la condicin mencionada anteriormente, segn la cual por lo menos el puntero el campo de datos debe contener un valor correcto, este byte siempre ser relevante. Si la funcin ha sido ejecutada correcta y completamente, se borran todos los bits (= 0), y todos los dems parmetros de salida tambin son relevantes. Si la funcin es abortada con una advertencia (bit n 7 = 1), slo sigue siendo relevante el puntero que seala la capacidad de emisin/recepcin. Otros parmetros de salida (en caso de existir) permanecen inalterados. Si la funcin ha sido abortada con un error (bit n 6 = 1) o con un conflicto de inicializacin (bit n 5 = 1), todos los dems parmetros de salida permanecen inalterados.

Evaluacin del byte indicador

Las identificaciones A, E e I indican, entre otras cosas, el significado de la informacin "nmero". Aparte de esta evaluacin bit por bit, tambin es posible interpretar todo el byte indicador como nmero de coma fija sin signo. En el caso de interpretar globalmente (byte por byte) el byte indicador, resultan grupos numricos que significan lo siguiente:

Tabla 10-2

Byte indicador de los OBs de comunicacin/grupos numricos

Campo de valores 0 33 a 42

Significado Funcin ejecutada correcta y completamente Funcin abortada por conflicto de inicializacin Funcin abortada a causa de un error Funcin abortada a causa de una advertencia

65 a 73 129 a 130

Los errores son detectados y visualizados siguiendo el orden ascendente de los nmeros de error. Esto significa que pueden existir varios errores aunque (en este instante) slo se visualice un error. Los dems errores se irn visualizando a medida que se efecten ms llamadas.

10 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento Ejemplo

La funcin EMITIR indica error y no se ejecuta. Si a continuacin se efectan modificaciones en el programa y/o en los parmetros y la funcin EMITIR indica nuevamente un error con un nmero mayor que el anterior, se puede suponer que se ha eliminado uno de los errores.

Conflicto de inicializacin

El conflicto de inicializacin slo puede producirse con la funcin INICIALIZAR. Este exige una modificacin del programa o de la parametrizacin. Nmeros de conflictos de inicializacin (evaluacin global del byte indicador)

Tabla 10-3

Byte indicador: nmeros de conflictos de inicializacin

Byte ind. 33

Significado Las pginas utilizadas para la comunicacin en multiprocesamiento (n 252 a 255) no existen o no estn completas. Las pginas requeridas para la comunicacin en multiprocesamiento (n 252 a 255) son defectuosas. El parmetro "automtico/manual" no es vlido. Hay que diferenciar los siguientes casos: - la identificacin "automtico/manual es menor que 1, - la identificacin "automtico/manual es mayor que 2. El parmetro "cantidad de CPUs" no es vlido. Hay que diferenciar los siguientes casos: - la cantidad de CPUs es menor que 2, - la cantidad de CPUs es mayor que 4. El parmetro "identificacin de mdulo" no es vlido. Hay que diferenciar los siguientes casos: - la identificacin de mdulo es menor que 1, - la identificacin de mdulo es mayor que 2. El parmetro "nmero de mdulo" no es vlido ya que se trata de un mdulo de datos de significado especial. Hay que diferenciar los siguientes casos: - en caso de identif. de mdulo = 1 : DB 0, DB 1, - en caso de identif. de mdulo = 2 : DX 0 El parmetro "nmero de mdulo" es errneo ya que el mdulo de datos parametrizado no existe. El parmetro "direccin inicial de la lista de asignaciones" es demasiado grande o el mdulo de datos es demasiado corto.

34 35

36

37

38

39 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 27

Comunicacin en multiprocesamiento

Byte ind.
Tabla 10-3 (continuacin):

Significado

41 42

La lista de asignaciones en el mdulo de datos no est estructurada correctamente. La suma de los bloques de memoria asignados es mayor que 48.

Errores

Cuando se produce un error es necesario modificar la parametrizacin o la programacin. Nmeros de errores (evaluacin global del byte indicador):

Tabla 10-4

Byte indicador: nmeros de errores

Byte ind. 65

Significado El parmetro "CPU receptora" (EMITIR, TEST DE EMISION) no es vlido. Hay que diferenciar los siguientes casos: - el nmero de la "CPU receptora" es mayor que 4, - el nmero de la "CPU receptora" es menor que 1, - el nmero de la "CPU receptora" es igual al n "propio". El parmetro "CPU receptora" (RECIBIR, TEST DE RECEPCION) no es vlido. Hay que diferenciar los siguientes casos: - el nmero de la "CPU emisora" es mayor que 4, - el nmero de la "CPU emisora" es menor que 1, - el nmero de la "CPU emisora" es igual al n "propio". La llamada al mdulo de organizacin de funciones especiales es errnea (EMITIR, RECIBIR, TEST DE EMISION, TEST DE RECEPCION). Hay que diferenciar los siguientes casos: - Error consecutivo, ya que la funcin INICIALIZAR no ha sido llamada o ha finalizado con un conflicto de inicializacin, - Llamada doble: la llamada a esta funcin (EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION) no es vlida, puesto que en esta CPU ya ha sido llamada en un nivel de procesamiento de orden inferior (por ej. procesamiento cclico de programa), una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, - El "propio" nmero de CPU es errneo (se han destruido datos del sistema); despus de DESCONEXION / CONEXION, el nmero de CPU vuelve a ser generado por el programa de sistema.

66

67

10 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Comunicacin en multiprocesamiento

Byte ind.
Tabla 10-4 (continuacin):

Significado

68

Los datos de administracin (administracin de cola de espera) de las lneas de comunicacin seleccionadas son errneos; hay que volver a instalar la memoria intermedia del coordinador 923C con la funcin INICIALIZAR (EMITIR, RECIBIR, TEST DE EMISION, TEST DE RECEPCION). El parmetro "identificacin de mdulo" (EMITIR) o la identificacin de mdulo suministrada por el emisor (RECIBIR) no es vlida. Hay que diferenciar los siguientes casos: - la identificacin del mdulo es menor que 1, - la identificacin del mdulo es mayor que 2. El parmetro "nmero de mdulo" (EMITIR) o, segn el caso, el nmero de mdulo suministrado por el emisor (RECIBIR) no es vlido, ya que se trata de un mdulo de datos de significado especial. Hay que diferenciar los siguientes casos: - en caso de identif. de mdulo = 1 : DB 0, DB 1 - en caso de identif. de mdulo = 2 : DX 0

69

70

71

El parmetro "nmero de mdulo" (EMITIR) o, segn el caso, el nmero de mdulo suministrado por el emisor (RECIBIR) es errneo. El mdulo de datos parametrizado no existe. El parmetro "nmero de bloque" (EMITIR) es errneo. El mdulo de datos es demasiado corto o el nmero de bloque es demasiado alto. El mdulo de datos es demasiado pequeo para recibir al bloque de datos suministrado por el emisor (RECIBIR).

72

73

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 29

Comunicacin en multiprocesamiento Advertencia

La funcin no ha podido ser ejecutada; la llamada de la funcin ha de repetirse, por ejemplo, en el ciclo siguiente. Nmeros de advertencia (evaluacin global del byte indicador):

Tabla 10-5

Byte indicador: nmeros de advertencia

Byte aviso 129

Significado La funcin EMITIR no puede transferir datos, puesto que la capacidad de emisin al llamar la funcin ya era igual a cero. La funcin RECIBIR no puede aceptar datos, puesto que la capacidad de recepcin al llamar la funcin ya era igual a cero.

130

10 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Tiempos de ejecucin de los OBs de comunicacin

10.3 Tiempos de ejecucin de los OBs de comunicacin


El "tiempo de ejecucin" es el tiempo de procesamiento de los mdulos de organizacin de funciones especiales; el tiempo que transcurre entre la llamada de un mdulo y su terminacin puede aumentar considerablemente si es interrumpido por actividades de prioridad superior (por ej., actualizacin de temporizadores, etc.).

Tabla 10-6

Tiempos de ejeucin de los OBs de comunicacin

OB de funciones especiales Nombre del mdulo OB 200/ Inicializar OB 202/ Emitir

CPU 922

CPU 928

CPU 928B

CPU 946/ 947 128 ms

CPU 948

230 ms

130 ms

130 ms

90 ms

806 s (294 s 666 s (250 s 696 s (280 s 762 s (426 s 542 s (220 s carga bsica carga bsica carga bsica carga bsica carga bsica + 16 s/pal.); + 13 s/pal.); + 13 s/pal.); + 21 s/pal. + 19 s/pal. 118 s en 115 s en 145 s en doble); doble); caso de caso de caso de 243 s en 110 s en advertencia advertencia advertencia caso de caso de advertencia advertencia 72 s 50 s 80 s 207s 115 s

OB 203/ Test de emisin OB 204/Recibir

825 s (281 s 660 s (244 s 690 s (274 s 772 s (421 s 506 s (218 s carga bsica carga bsica carga bsica carga bsica carga bsica + 17 s/pal.); + 13 s/pal.); + 13 s/pal.); + 22 s/pal. + 18 s/pal. 115 s en 98 s en caso 128 s en doble); doble); caso de de advertencia caso de 243 s en 132 s en advertencia advertencia caso de caso de advertencia advertencia 70 s 48 s 78 s 223 s 120 s

OB 205/ Test de recepcin

Los tiempos de ejecucin indicados en la tabla 10-6 resultan a condicin de que, de las cuatro CPUs conectadas, acceda al bus S5 slo aquella CPU, cuyos tiempos de ejecucin se estn midiendo. Si las otras CPUs tambin utilizan el bus de forma intensiva, aumenta el tiempo de ejecucin, especialmente durante la emisin/recepcin.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 31

Tiempos de ejecucin de los OBs de comunicacin Tiempo de transferencia

Una importante caracterstica de una lnea de comunicacin (de CPU 1 a CPU 2) es la totalidad del tiempo de transferencia de datos. Este se compone de los siguientes tiempos: tiempo de emisin (vase tiempo de ejecucin), tiempo de almacenamiento intermedio (en el coordinador KOR 923C) y tiempo de recepcin (vase tiempo de ejecucin)

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").

10 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin INICIALIZAR (OB 200)

10.4 Funcin INICIALIZAR (OB 200)


10.4.1 Funcin Para poder transmitir datos de una CPU a otra, los datos tienen que ser almacenados provisionalmente en una memoria intermedia. Para ello, la funcin INICIALIZAR instala una memoria intermedia en el coordinador KOR 923C. La capacidad de memoria se instala (inicializa) en bloques de un tamao fijo 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 funcin EMITIR y se retira con una funcin RECIBIR.

En caso de haber dos CPUs conectadas, resultan dos lneas de comunicacin (direcciones de transferencia, "canales"):

CPU 1

CPU 2

En caso de haber tres CPUs conectadas, resultan seis lneas de comunicacin:

CPU 1

CPU 2

CPU 3

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 33

Funcin INICIALIZAR (OB 200)

En caso de haber cuatro CPUs conectadas, resultan doce lneas de comunicacin:

CPU 1

CPU 2

CPU 3

CPU 4

Con la funcin INICIALIZAR se determina la forma de asignar la totalidad de los 48 bloques de memoria disponibles al mximo posible de 12 lneas de comunicacin. Es decir, cada una de las posibles lneas de comunicacin identificada por los parmetros "CPU emisora" y "CPU receptora" dispone de una determinada capacidad de memoria.

Nota Antes de que en las CPUs se puedan llamar las funciones EMITIR/ RECIBIR/TEST DE EMISION/TEST DE RECEPCION, es necesario llamar la funcin INICIALIZAR en una CPU, la cual tiene que haber sido procesada completamente y sin errores.

En caso de que la funcin INICIALIZAR sea llamada varias veces consecutivas, vale la ltima asignacin parametrizada. Mientras que la funcin INICIALIZAR es procesada por una CPU, en las otras CPUs no se pueden llamar otras funciones de la comunicacin en multiprocesamiento, es decir, tampoco se puede llamar la funcin INICIALIZAR.

10 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin INICIALIZAR (OB 200)

10.4.2 Parmetros de llamada

Estructura del campo de datos (de parmetros)

Antes de llamar al OB 200 hay que poner a disposicin un campo de datos para los parmetros de entrada. El OB 200 requiere en el campo de datos 8 bytes de marcas M para los parmetros de entrada y de salida: MB x + 0: MB x + 1: MB x + 2: MB x + 3: MB x + 4: MB x + 5: MB x + 6: MB x + 7: Modo de operacin (automtico/manual) Cantidad de CPUs Identificacin de mdulo Nmero de mdulo Direccin inicial de la lista de asignaciones Byte indicador Capacidad total

Parmetro de entrada Parmetro de entrada Parmetro de entrada Parmetro de entrada Parmetro de entrada

Parmetro de salida Parmetro de salida

AKKU-1-L

Al llamar al OB 200 se debe transferir al AKKU-1-L el n de byte de marcas, con el que comienza el campo de datos de parmetros: AKKU-1-LH: AKKU-1-LL: 0 0 a 246

10.4.3 Parmetros de entrada

Modo de operacin (automtico/manual)

Modo de operacin = 1: Modo de operacin = 2: Modo de operacin = 0 3 a 255:

Automtico Manual No vlido, conduce a un conflicto de inicializacin

Cantidad de CPUs

Este parmetro slo es relevante si se ha seleccionado el modo de operacin "automtico". Si se selecciona el modo de operacin "automtico", los bloques de memoria disponibles se distribuyen por partes iguales, segn la cantidad de CPUs: Cantidad de CPUs 2 3 4 0; 1; 5 a 255 Cantidad de lneas de comunicacin 2 6 Bloques de memoria por lnea de comunicacin 24 8

12 4 No vlido, conduce a conflicto de inicializacin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 35

Funcin INICIALIZAR (OB 200) Identificacin de mdulo, nmero de mdulo, direccin de la lista de asignaciones

Estos parmetros slo son relevantes si se ha seleccionado el modo de operacin "manual". A continuacin se debe preparar en un mdulo de datos una lista de asignaciones en la que, segn un esquema establecido, se asignen los 48 (o menos) bloques de memoria a las mx. 12 lneas de comunicacin. Esta funcin es especialmente conveniente si las CPUs intercambian volmenes de datos distintos. No es necesario ni conveniente asignar bloques de memoria a las CPUs que no intervengan en la comunicacin. Con los parmetros identificacin de mdulo, nmero de mdulo y direccin inicial de la lista de asignaciones se determina dnde se registra la lista de asignaciones.

Identificacin de mdulo

Identificacin = 1: Identificacin = 2: Identificacin = 0 3 a 255 :

Mdulo de datos DB Mdulo de datos DX No vlida, conduce a un conflicto de inicializacin

Nmero de mdulo

Como nmero de mdulo se debe indicar el nmero del mdulo de datos DB o DX, en el que se encuentra la lista de asignaciones.

Direccin inicial de la lista de asignaciones:

Esta determina, junto con la identificacin y el nmero de mdulo, la zona (ms exactamente: la direccin inicial de la zona) del mdulo de datos, en el que est depositada la lista de asignaciones. Indicar como direccin de la lista de asignaciones en los bytes de marcas MB x+4 (byte alto) y MB x+5 (byte bajo) el nmero de la palabra de datos con el que comienza la lista de asignaciones.

10 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin INICIALIZAR (OB 200) Lista de asignaciones

Con la lista de asignaciones se determina cuntos de los 48 bloques de memoria existentes deben ser asignados a las distintas lneas de comunicacin. La lista no es modificada por el programa de sistema. Su estructura es la siguiente:

Tabla 10-7

Lista de asignaciones para OB 200 (inicializar)

Palabra de datos DW DW DW DW DW DW DW DW DW DW DW DW DW DW DW DW n+ 0 n+ 1 n+ 2 n+ 3 n+ 4 n+ 5 n+ 6 n+ 7 n+ 8 n+ 9 n + 10 n + 11 n + 12 n + 13 n + 14 n + 15

Formato KC KY KY KY KC KY KY KY KC KY KY KY KC KY KY KY

Valor S1 2,a 3,b 4,c S2 1,d 3,e 4,f S3 1,g 2,h 4,i S4 1,k 2,l 3,m Emisor Receptor Receptor Receptor Emisor Receptor Receptor Receptor Emisor Receptor Receptor Receptor Emisor Receptor Receptor Receptor

Significado = CPU 1 = CPU 2 = CPU 3 = CPU 4 = CPU 2 = CPU 1 = CPU 3 = CPU 4 = CPU 3 = CPU 1 = CPU 2 = CPU 4 = CPU 4 = CPU 1 = CPU 2 = CPU 3

En vez de las letras minsculas de "a" hasta "m" (aqu en negrita) se pueden poner nmeros entre 0 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 se hayan conectado menos de cuatro CPUs.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 37

Funcin INICIALIZAR (OB 200) Ejemplo


Se han conectado tres CPUs. De la CPU 2 se han de transferir grandes cantidades de datos a las otras dos. Estas por su parte, slo retransmiten pocos datos a la CPU 2 como respuesta, en un trfico lgico de acuses. Entre las CPU 1 y CPU 3 no se requiere ningn intercambio de datos. La lista de asignaciones se deposita en el mdulo de datos DB 40, a partir de la DW 0 y tiene los siguientes parmetros:

DB40 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:

FD: KC KY KY KY KC KY KY KY KC KY KY KY KC KY KY KY

CPU948ST.S5D = = = = = = = = = = = = = = = = S1; 2,2 ; 3,0; 4,0; S2; 1,22; 3,22; 4,0; S3; 1,0; 2,2; 4,0; S4; 1,0 ; 2,0; 3,0; Emisor: Receptor: Receptor: Receptor: Emisor: Receptor: Receptor: Receptor: Emisor: Receptor: Receptor: Receptor: Emisor: Receptor: Receptor: Receptor: CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU 1 2/2 bloques 3/ningn bloque 4 (no existe)/ningn bloque 2 1/22 bloques 3/22 bloques 4 (no existe)/ningn bloque 3 1/ningn bloque 2/2 bloques 4 (no existe)/ningn bloque 4 (no existe) 1/ningn bloque 2/ningn bloque 3/ningn bloque

10.4.4 Parmetros de salida

Byte indicador

Este byte informa si la funcin INICIALIZAR ha sido procesada correcta y completamente. Los conflictos de inicializacin representados son detectados e indicados por la funcin siguiendo el orden ascendente de sus nmeros. Cuando aparece un conflicto de inicializacin es necesario modificar la programacin/parametrizacin. En el byte indicador pueden aparecer todos los nmeros representados en la tabla 10-3.

Conflicto de inicializacin

10 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin INICIALIZAR (OB 200) Error

En la funcin INICIALIZAR no puede aparecer un indicador del grupo de nmeros "error".

Advertencia

En la funcin INICIALIZAR no puede aparecer un indicador del grupo de nmeros "advertencia".

Capacidad total

Este parmetro indica cuntos de los 48 bloques de memoria totales se han asignado a las lneas de comunicacin. En el modo de operacin "automtico", este parmetro contendr en todo caso, el valor 48. En el modo de operacin "manual", este valor puede ser menor que 48. Esto significa que la capacidad de memoria no es aprovechada en su totalidad.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 39

Funcin EMITIR (OB 202)

10.5 Funcin EMITIR (OB 202)


10.5.1 Funcin La funcin EMITIR transfiere un bloque de datos a la memoria intermedia del coordinador KOR 923C. Adicionalmente indica cuntos bloques de datos an pueden ser transmitidos y almacenados de forma intermedia.

10.5.2 Parmetros de llamada

Estructura del campo de datos (de parmetros)

Antes de llamar al OB 202 se tienen que poner a disposicin los parmetros de entrada en el campo de datos. El OB 202 requiere en el campo de datos 6 bytes de marcas M para los parmetros de entrada y de salida: MB x + 0: MB x + 1: MB x + 2: MB x + 3: MB x + 4: MB x + 5: CPU receptora Identificacin de mdulo Nmero de mdulo Nmero de bloque Byte indicador Capacidad de emisin Parmetro de entrada Parmetro de entrada Parmetro de entrada Parmetro de entrada Parmetro de salida Parmetro de salida

AKKU-1-L

Al llamar al OB 202 se debe transferir al AKKU-1-L el n de byte de marcas, con el que comienza el campo de datos de parmetros: AKKU-1-LH: AKKU-1-LL: 0 0 a 246

10.5.3 Parmetros de entrada

CPU receptora

Nmero de la CPU del receptor (destino); el valor admisible se encuentra entre 1 y 4, pero no debe ser igual a su "propio" nmero.

10 - 40

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin EMITIR (OB 202) Identificacin de mdulo

Identificacin = 1: Identificacin = 2: Identificacin = 0 3 a 255:

Mdulo de datos DB Mdulo de datos DX No vlido, conduce a un aviso de error

Nmero de mdulo

El nmero de mdulo, junto con la identificacin de mdulo y con el nmero de bloque da como resultado la zona, de la que se extraen los datos de emisin (y la zona en la que son depositados en la CPU receptora). Aqu hay que tener en cuenta que determinados mdulos de datos tienen un significado especial, por ejemplo: DB 0, DB 1 o DX 0 (vanse las instrucciones de programacin de las correspondientes CPUs). Estos mdulos de datos no deden ser utilizados para la tranferencia de datos aqu descrita! La utilizacin de estos nmeros de mdulo conduce a un aborto de la funcin, con el correspondiente aviso de error.

Nmero de bloque

El nmero de bloque identifica la zona de datos fuente.

Nmero de bloque 0 1 2 3 4 5 6 7 8 9 : :

Zona de datos Primera palabra de datos DW 0 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 : :

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 41

Funcin EMITIR (OB 202)

Cabe diferenciar los siguientes casos: El DB es ms largo que la zona fuente: Si el mdulo de datos es suficientemente largo, resulta una zona de 32 palabras segn la tabla anterior. El DB es demasiado largo: Si el fin del mdulo de datos se encuentra dentro del bloque parametrizado, se transfiere una zona de una longitud entre 1 y 31 palabras. El bloque se encuentra fuera del DB: Si la primera direccin de palabra de datos de un bloque ha sido averiguada y ya se encuentra fuera de la longitud del mdulo, la funcin EMITIR detecta e indica un error.

Ejemplo
Un mdulo de datos de 80 palabras: DW 0 a DW 74, 5 palabras forman el encabezamiento. N de bloque: 0 1 2 3 y mayor primera pal. de datos: DW 0 DW 32 DW 64 ltima pal. de datos: DW 31 DW 63 DW 74 longitud:

32 pal. 32 pal. 11 pal.

Parametrizacin errnea

10.5.4 Parmetros de salida

Byte indicador

Este byte informa si la funcin EMITIR ha sido procesada completa y correctamente.

Conflicto de inicializacin

No es relevante en relacin con la funcin EMITIR.

10 - 42

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin EMITIR (OB 202) Error

Al llamar la funcin EMITIR pueden aparecer los siguientes nmeros de error (evaluacin global del byte indicador): Byte indicador 65 Significado El parmetro "CPU receptora" no es vlido. Hay que diferenciar los casos siguientes: - el nmero de la "CPU receptora" es mayor que 4, - el nmero de la "CPU receptora" es menor que 1, - el nmero de la "CPU receptora" es igual al nmero "propio". La llamada al mdulo de organizacin de funciones especiales es errnea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la funcin INICIALIZAR no ha sido llamada o ha finalizado con un conflicto de inicializacin. - Llamada doble: la llamada a esta funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado, en un nivel de procesamiento de orden inferior (por ej. procesamiento cclico de programa), una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION. - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXION/CONEXION, el nmero de la CPU es generado nuevamente por el programa de sistema. Los datos de administracin (administracin de cola de espera) de las lneas de comunicacin seleccionadas son errneos; la memoria intermedia del coordinador 923C tiene que volver a ser instalada por medio de la funcin INICIALIZAR. El parmetro "identificacin de mdulo" no es vlido. Hay que diferenciar los casos siguientes: - la identificacin de mdulo es menor que 1, - la identificacin de mdulo es mayor que 2. El parmetro "nmero de mdulo" no es vlido, ya que se trata de un mdulo de datos de significado especial. Hay que diferenciar los casos siguientes: - en caso de identif. de mdulo = 1 : DB 0, DB 1 - en caso de identif. de mdulo = 2 : DX 0 El parmetro "nmero de mdulo" es errneo. El mdulo de datos parametrizado no existe. El parmetro "nmero de bloque" es errneo. El mdulo de datos es demasiado corto o el nmero de bloque es demasiado alto.

67

68

69

70

71 72

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 43

Funcin EMITIR (OB 202) Advertencia

La funcin no ha podido ser ejecutada; hay que repetir la llamada a la funcin, por ejemplo en el ciclo siguiente. Puede aparecer el siguiente nmero de advertencia (evaluacin global del byte indicador):

Byte indicador 129

Significado La funcin EMITIR no puede transferir datos, ya que la capacidad de emisin (vase abajo) era igual a cero al llamar la funcin.

Capacidad de emisin

El parmetro "capacidad de emisin" indica cuntos bloques de datos pueden ser emitidos y almacenados de forma intermedia.

10 - 44

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin TEST DE EMISION (OB 203)

10.6 Funcin TEST DE EMISION (OB 203)


10.6.1 Funcin La funcin TEST DE EMISION determina la cantidad de bloques de memoria libres en la memoria intermedia del coordinador KOR 923C. De acuerdo con este valor m, la funcin EMITIR puede ser llamada m veces para tranferir m bloques de datos.

10.6.2 Parmetros de llamada

Estructura del campo de datos (de parmetros)

Antes de llamar al OB 203 se tienen que poner a disposicin los parmetros de entrada en el campo de datos . El OB 203 requiere en el campo de datos 4 bytes de marcas M para los parmetros de entrada y de salida: MB x + 0: MB x + 1: MB x + 2: MB x + 3: CPU receptora Byte indicador Capacidad de emisin Parmetro de entrada no ocupado Parmetro de salida Parmetro de salida

AKKU-1-L

Al llamar al OB 203 hay que transferir al AKKU-1-L el n de byte de marcas, con el que comienza el campo de datos de parmetros: AKKU-1-LH: AKKU-1-LL: 0 0 a 246

10.6.3 Parmetros de entrada

CPU receptora

El nmero de la CPU "propia", as como el nmero de la CPU receptora identifican la lnea de comunicacin, de la cual se va a averiguar la capacidad de emisin.

10.6.4 Parmetros de salida

Byte indicador

Este byte informa si la funcin TEST DE EMISION ha sido ejecutada completa y correctamente.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 45

Funcin TEST DE EMISION (OB 203) Conflicto de inicializacin

No es relevante en relacin con la funcin TEST DE EMISION.

Error

Al llamar a la funcin TEST DE EMISION pueden aparecer los siguiente nmeros de error (evaluacin global del byte indicador):

Byte indicador 65

Significado El parmetro "CPU receptora" no es vlido. Hay que diferenciar los casos siguientes: - el nmero de la "CPU receptora" es mayor que 4, - el nmero de la "CPU receptora" es menor que 1, - el nmero de la "CPU receptora" es igual al nmero "propio". La llamada al mdulo de organizacin de funciones especiales es errnea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la funcin INICIALIZAR no ha sido llamada o ha finalizado con un conflicto de inicializacin. - Llamada doble: la llamada a esta funcin EIMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado, en un nivel de procesamiento de orden inferior (por ej. procesamiento cclico de programa), una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION. - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXION/CONEXION, el nmero de la CPU es generado nuevamente por el programa de sistema. Los datos de administracin (administracin de cola de espera) de las lneas de comunicacin seleccionadas son errneos; con la funcin INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador 923 C.

67

68

Advertencia

En la funcin TEST DE EMISION no puede aparecer un indicador del grupo de nmeros "advertencia".

Capacidad de emisin

El parmetro "capacidad de emisin" indica cuntos bloques de datos pueden ser emitidos y almacenados de forma intermedia.

10 - 46

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin RECIBIR (OB 204)

10.7 Funcin RECIBIR (OB 204)


10.7.1 Funcin La funcin RECIBIR acepta un bloque de datos de la memoria intermedia del coordinador KOR 923C. Adicionalmente indica cuntos bloques de datos estn almacenados de forma intermedia y an pueden ser recibidos. Hay que llamar la funcin RECIBIR 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 Parmetros de llamada

Estructura del campo de datos (de parmetros)

Antes de llamar al OB 204 se tienen que poner a disposicin los parmetros de entrada en el campo de datos. El OB 204 requiere en el campo de datos 10 bytes de marcas M para los parmetros de entrada y de salida:

MB x + 0: MB x + 1: MB x + 2: MB x + 3: MB x + 4: MB x + 5: MB x + 6: MB x + 7: MB x + 8: MB x + 9:

CPU emisora Byte indicador Capacidad de recepcin Identificacin de mdulo Nmero de mdulo Direccin de la primera palabra de datos recibida Direccin de la ltima palabra de datos recibida

Parmetro de entrada no cupado Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida Parmetro de salida

AKKU-1-L

Al llamar al OB 204 hay que transferir al AKKU-1-L el n de byte de marcas, con el que comienza el campo de datos de parmetros: AKKU-1-LH: AKKU-1-LL: 0 0 a 246

10.7.3 Parmetros de entrada

CPU emisora

El mdulo de recepcin recibe datos suministrados por la CPU emisora. Indicar el n de la CPU emisora. El valor admisible est entre 1 y 4, pero tiene que ser diferente al nmero "propio".

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 47

Funcin RECIBIR (OB 204)

10.7.4 Parmetros de salida

Byte indicador

Este byte informa si la funcin RECIBIR ha sido ejecutada correctamente y sin errores.

Conflicto de inicializacin

No es relevante en relacin con la funcin RECIBIR.

Error

Al llamar a la funcin RECIBIR pueden aparecer los siguiente nmeros de error (evaluacin global del byte indicador):

Byte indicador 66

Significado El parmetro "CPU emisora" no es vlido. Hay que diferenciar los casos siguientes: - el nmero de la "CPU emisora" es mayor que 4, - el nmero de la "CPU emisora" es menor que 1, - el nmero de la "CPU emisora" es igual al nmero "propio". La llamada al mdulo de organizacin de funciones especiales es errnea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la funcin INICIAINICIALIZAR no ha sido llamada o ha finalizado con un conflicto de inicializacin. - Llamada doble: la llamada a esta funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado, en un nivel de procesamiento de orden inferior (por ej. procesamiento cclico de programa), una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION. - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXION/CONEXION, el nmero de la CPU es generado nuevamente por el programa de sistema. Los datos de administracin (administracin de cola de espera) de las lneas de comunicacin seleccionadas son errneos; con la funcin INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador 923 C. La identificacin de mdulo suministrada por el emisor no es vlida. Hay que diferenciar los casos siguientes: - la identificacin de mdulo es menor que 1, - la identificacin de mdulo es mayor que 2.

67

68

69

10 - 48

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin RECIBIR (OB 204)

Byte indicador
Nmeros de error (continuacin):

Significado

70

71 73

El nmero de mdulo suministrado por el emisor no es vlido, ya que se trata de un mdulo de datos de significado especial. Hay que diferenciar los casos siguientes: - en caso de identific. de mdulo = 1 : DB 0, DB 1 - en caso de identific. de mdulo = 2 : DX 0 El nmero de mdulo suministrado por el emisor es errneo. El mdulo de datos parametrizado no existe. El mdulo de datos es demasiado pequeo para recibir el bloque de datos suministrado por el emisor.

Advertencia

La funcin no ha podido ser ejecutada; la llamada de funcin ha de ser repetida, por ejemplo en el ciclo siguiente. Puede aparecer el siguiente nmero de advertencia (evaluacin global del byte indicador):

Byte indicador 130

Significado La funcin RECIBIR no puede recibir datos, ya que la capacidad de recepcin al llamar la funcin era igual a cero.

Capacidad de recepcin

El parmetro "capacidad de recepcin" indica cuntos bloques de datos todava pueden ser almacenados de forma intermedia y recibidos.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 49

Funcin RECIBIR (OB 204) Identificacin de mdulo:

Identificacin = 1: Identificacin = 2: Identificacin = 0 3 a 255:

Mdulo de datos DB Mdulo de datos DX No vlido, conduce a un aviso de error

Nmero de mdulo

Nmero de mdulo del DB/DX, en el que han sido recibidos y depositados los datos (y del cual han sido recogidos en la CPU emisora con la funcin EMITIR). Los mdulos de datos de recepcin tienen que encontrarse en una memoria de escritura/lectura (RAM); la utilizacin de memorias de slo lectura (EPROM) nicamente es conveniente en caso de mdulos de datos de emisin.

Direccin de la primera palabra de datos recibida

Nmero de la palabra de datos dentro del DB/DX, en el que ha sido depositada la primera palabra de datos emitida/recibida.

Direccin de la ltima palabra de datos recibida

Nmero de la palabra de datos dentro del DB/DX, en el que ha sido depositada la ltima palabra de datos emitida/recibida.

Nota La diferencia entre las direcciones de la primera y la ltima palabra de datos transmitida se remonta mximo a 31, ya que por cada llamada a la funcin se transmiten mximo 32 palabras.

10 - 50

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcin TEST DE RECEPCION (OB 205)

10.8 Funcin TEST DE RECEPCION (OB 205)


10.8.1 Funcin La funcin TEST DE RECEPCION determina la cantidad de bloques de memoria ocupados en la memoria intermedia del coordinador KOR 923C. Segn esta cantidad m, la funcin RECIBIR puede ser llamada m veces para recibir m bloques de datos.

10.8.2 Parmetros de llamada

Estructura del campo de datos (de parmetros)

Antes de llamar al OB 205 se tienen que poner a disposicin los parmetros de entrada en el campo de datos. El OB 205 requiere en el campo de datos 4 bytes de marcas M para los parmetros de entrada y de salida: MB x + 0: MB x + 1: MB x + 2: MB x + 3: CPU emisora Byte indicador Capacidad de recepcin Parmetro de entrada no ocupado Parmetro de salida Parmetro de salida

AKKU-1-L

Al llamar al OB 204 hay que transferir al AKKU-1-L el n de byte de marcas, con el que comienza el campo de datos de parmetros: AKKU-1-LH: AKKU-1-LL: 0 0 a 246

10.8.3 Parmetros de entrada

CPU emisora

El nmero de la CPU "propia" as como el nmero de la CPU emisora, identifican la lnea de comunicacin de la que se est averiguando la capacidad de recepcin.

10.8.4 Parmetros de salida

Byte indicador

Este byte informa si la funcin TEST DE RECEPCION ha sido ejecutada completamente y sin errores.

Conflicto de inicializacin

No es relevante en relacin con la funcin TEST DE RECEPCION.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 51

Funcin TEST DE RECEPCION (OB 205) Error

Al llamar a la funcin TEST DE RECEPCION pueden aparecer los siguiente nmeros de error (evaluacin global del byte indicador):

Byte indicador 66

Significado El parmetro "CPU receptora" no es vlido. Hay que diferenciar los casos siguientes: - el nmero de la "CPU receptora" es mayor que 4, - el nmero de la "CPU receptora" es menor que 1, - el nmero de la "CPU receptora" es igual al nmero "propio". La llamada al mdulo de organizacin de funciones especiales es errnea. Hay que diferenciar los casos siguientes: - Error consecutivo, ya que la funcin INICIALIZAR no ha sido llamada o ha finalizado con un conflicto de inicializacin, - Llamada doble: la llamada a esta funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado, en un nivel de procesamiento de orden inferior (por ej. procesamiento cclico de programa), una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION. - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXION/CONEXION, el nmero de la CPU es generado nuevamente por el programa de sistema. Los datos de administracin (administracin de cola de espera) de las lneas de comunicacin seleccionadas son errneos; con la funcin INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador 923 C.

67

68

Advertencia

En la funcin TEST DE RECEPCION no puede aparecer un indicador del grupo de nmeros "advertencia".

Capacidad de emisin

El parmetro "capacidad de recepcin" indica cuntos bloques de datos estn almacenados de forma intermedia y pueden ser recibidos.

10 - 52

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

10.9 Aplicaciones
A continuacin se explica mediante algunos ejemplos cmo programar la comunicacin en multiprocesamiento.

Nota En caso de utilizar los mdulos de funciones indicados a continuacin y de procesar al mismo tiempo alarmas (por ej. mediante el OB 2) hay que tener en cuenta que al principio del tratamiento de una interrupcin se salvan las "marcas de trabajo", las cuales vuelven a ser escritas al final. Esto tambin vale para el ajuste "interrupcin en lmites de mdulos", ya que la llamada a los mdulos de organizacin de funciones especiales representa un lmite de mdulo.

10.9.1 Llamada de los OBs de funciones especiales por medio de mdulos de funciones

Los cinco mdulos de funciones que se indican a continuacin (FB 200 y FB 202 a FB 205) contienen la llamada al correspondiente mdulo de organizacin de funciones especiales para la comunicacin en multiprocesamiento (OB 200 y OB 202 a OB 205). Los nmeros de los mdulos de funciones han sido seleccionados arbitrariamente y pueden ser modificados. Los parmetros de los OBs de funciones especiales se transfieren como parmetros actuales durante la llamada a los mdulos de funciones. Si bien la llamada directa a los mdulos de organizacin de funciones especiales resulta ms conveniente en cuanto al tiempo de ejecucin, debido a la falta de parmetros formales tambin resulta ms difcil de leer.

N de FB FB 200 FB 202 FB 203 FB 204 FB 205

Nombre del FB INITIAL Prefijar SENDEN SEND-TST EMPFANG EMPF-TST

Funcin

Emitir un bloque de datos Comprobar posibilidad de emisin Recibir un bloque de datos Comprobar posibilidad de recepcin

La zona de marcas de MB 246 hasta mx. MB 255 es utilizada por los mdulos de funciones como campo de parmetros para los mdulos de organizacin de funciones especiales. El significado exacto de los parmetros de entrada y salida puede consultarse en la descripcin del mdulo de organizacin de funciones especiales utilizado.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 53

Aplicaciones

Nota Los siguientes ejemplos de aplicacin son aplicaciones acabadas que el usuario puede transcribir directamente a su propio programa.

Programacin de los mdulos de funciones

FB 200: Prefijar las comunicaciones


FB 200 INICIAL (1) (2) (3) (4) AUMA ANZC TNZU ANFZ INIK GKAP (5) (6)

Nombre del parmetro AUMA ANZC TNZU

Significado Automtico/manual Cantidad de CPUs Tipo (byte alto) y nmero (byte bajo) del mdulo de datos que contiene la lista de asignaciones Direccin inicial de la lista de asignaciones Conflicto de inicializacin Capacidad total

Clase E E E

Tipo BY BY W

Campo de parmetros MB 246 MB 247 MW 248

ANFZ

MW 250

INIK GKAP

A A

BY BY

MB 252 MB 253

Contina en la pgina siguiente

10 - 54

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 200 (continuacin):
FB 200 SEGMENTO 1 NOMB.:INICIAL BEZ :AUMA BEZ :ANZC BEZ :TNZU BEZ :ANFZ BEZ :INIK BEZ :GKAP 0017 0018 0019 001A 001B 001C 001D 001E 001F 0020 0021 0022 0023 0024 0025 0026 0027 :L :T :L :T :L :T :L :T : :L LON=45 0000 E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: =AUMA MB 246 =ANZC MB 247 =TNZU MW 248 =ANFZ MW 250 KB 246 E E E E A A BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BY BY W W BY BY

Automtico/manual Cantidad de CPUs Tipo DB, N DB Direccin inicial de la lista de asignaciones OB FE:

:SPA
: :L :T :L :T :BE

OB 200
MB 252 =INIK MB 253 =GKAP

"Inicializar"
Conflicto de inicializacin Capacidad total

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 55

Aplicaciones

FB 202: Emitir un bloque de datos


FB 202 EMITIR (1) (2) (3) ECPU TNDB BLNR FEWA SKAP (4) (5)

Nombre del parmetro ECPU TNDB

Significado CPU receptora Tipo (byte alto) y nmero (byte bajo) del mdulo de datos fuente Nmero de bloque Error/advertencia Capacidad de emisin

Clase E E

Tipo BY W

Campo de parmetros MB 246 MB 247

BLNR FEWA SKAP

E A A

BY BY BY

MW 249 MW 250 MB 251

FB 202 SEGMENTO 1 NOMB.:EMITIR BEZ :ECPU BEZ :TNDB BEZ :BLNR BEZ :FEWA BEZ :SKAP 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F 0020 0021 0022 :L :T :L :T :L :T : :L 0000 E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: E/A/D/B/T/Z: =ECPU MB 246 =TNDB MW 247 =BLNR MB 249 KB 246 E E E A A BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BY W BY BY BY

LON=40

CPU receptora Tipo DB, N DB Nmero de bloque

OB FE:

:SPA
: :L :T :L :T :BE

OB 202
MB 250 =FEWA MB 251 =SKAP

"Emitir un bloque de datos"


Error/advertencia Capacidad de emisin

10 - 56

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 203: Comprobar la posibilidad de emisin


FB 203 TST-EMIS (1) ECPU FEHL SKAP (2) (3)

Nombre del parmetro ECPU FEHL SKAP

Significado CPU receptora Error Capacidad de emisin

Clase E A A

Tipo BY BY BY

Campo de parmetros MB 246 MB 248 MB 249

FB 203 SEGMENTO 1 0000 NOMB.:TST-EMIS BEZ :ECPU E/A/D/B/T/Z: E BEZ :FEHL E/A/D/B/T/Z: A BEZ :SKAP E/A/D/B/T/Z: A 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 :L :T : :L =ECPU MB 246 KB 246

LON=30

BI/BY/W/D: BI/BY/W/D: BI/BY/W/D:

BY BY BY

CPU receptora

OB FE:

:SPA
: :L :T :L :T :BE

OB 203
MB 248 =FEHL MB 249 =SKAP

"Comprobar posibilidad de emisin"


Error Capacidad de emisin

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 57

Aplicaciones

FB 204: Recibir un bloque de datos


FB 204 RECIBIR (1) SCPU FEWA EKAP TNDB ANFA ENDA (2) (3) (4) (5) (6)

Nombre del parmetro SCPU FEWA EKAP TNDB CPU emisora

Significado

Clase E A A A

Tipo BY BY BY W

Campo de parmetros MB 246 MB 248 MB 249 MW 250

Error/advertencia Capacidad de recepcin Tipo (byte alto) y nmero (byte bajo) del mdulo de datos destino Direccin de la primera palabra de datos recibida (direccin inicial) Direccin de la ltima palabra de datos recibida (direccin final)

ANFA

MW 252

ENDA

MW 254

Contina en la pgina siguiente

10 - 58

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 204 (continuacin):
FB 204 SEGMENTO 1 0000 NOMB.:RECIBIR BEZ :SCPU E/A/D/B/T/Z: BEZ :FEWA E/A/D/B/T/Z: BEZ :EKAP E/A/D/B/T/Z: BEZ :TNDB E/A/D/B/T/Z: BEZ :ANFA E/A/D/B/T/Z: BEZ :ENDA E/A/D/B/T/Z: 0017 0018 0019 001A 001B 001C 001D 001E 001F 0020 0021 0022 0023 0024 0025 0026 0027 :L :T : :L =SCPU MB 246 KB 246 LON=45

E A A A A A

BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D:

BY BY BY W W W

CPU emisora

OB FE:

:SPA
: :L :T :L :T :L :T :L :T :L :T :BE

OB 204
MB 248 =FEWA MB 249 =EKAP MW 250 =TNDB MW 252 =ANFA MW 254 =ENDA

"Recibir un bloque de datos"


Error/advertencia Capacidad de recepcin Tipo DB, N DB Direccin inicial Direccin final

FB 205: Comprobar posibilidad de recepcin


FB 205 TST-RECEP (1) SCPU FEHL EKAP (2) (3)

Nombre del parmetro SCPU FEHL EKAP CPU emisora Error

Significado

Clase E A A

Tipo BY BY BY

Campo de parmetros MB 246 MB 248 MB 249

Capacidad de recepcin

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 59

Aplicaciones

FB 205 (continuacin):
FB 205 SEGMENTO 1 0000 NOMB.:TST-RECEP BEZ :SCPU E/A/D/B/T/Z: E BEZ :FEHL E/A/D/B/T/Z: A BEZ :EKAP E/A/D/B/T/Z: A LON=30

BI/BY/W/D: BI/BY/W/D: BI/BY/W/D:

BY BY BY

000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018

:L :T : :L

=SCPU MB 246 KB 246

CPU emisora

OB FE:

:SPA
: :L :T :L :T :BE

OB 205
MB 248 =FEHL MB 249 =EKAP

"Comprobar posibilidad de recepcin"


Error Capacidad de recepcin

10.9.2 Transferencia de mdulos de datos

Con el mdulo de funciones UEBT-DAT (FB 110) se transfiere en el ejemplo una cantidad parametrizable de bloques de datos desde un mdulo de datos de una CPU a un mdulo de datos del mismo tipo y mismo nmero de otra CPU. El nmero del FB (FB 110) es arbitrario y puede ser modificado. En primer lugar se describe cmo programar el FB 110 y despus su aplicacin.

Programacin del FB 110

FB 110: Transferir un mdulo de datos Tarea


La zona de datos a transferir se determina con los parmetros de entrada ERSB (= nmero del primer bloque de datos a tranferir) y con ANZB (= cantidad de bloques de datos a transferir). Un bloque de datos normalmente consta de 32 palabras. Segn la longitud del mdulo 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 parmetro de salida REST es igual a cero, esto significa que el mdulo de funciones UEBT-DAT ha podido emitir todos los bloques de datos (segn parmetro ANZB).

Contina en la pgina siguiente

10 - 60

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 110 (continuacin 1):


Si el parmetro de salida REST contiene un valor mayor que cero, hay que efectuar, por ejemplo, en el ciclo siguiente, llamadas consecutivas. En este caso, la totalidad del conjunto de parmetros (es decir, los valores de todos los parmetros) puede ser modificada por el usuario slo cuando el parmetro de salida REST haya llegado al valor cero, es decir, cuando haya finalizado la transferencia. Es posible llamar repetidamente al mdulo de funciones UEBT DAT utilizando respectivamente conjuntos de parmetros distintos. En este caso se transfieren simultneamente diferentes zonas de datos ("intercaladas entre s"). Adems se pueden utilizar "directamente" los mdulos de organizacin de funciones especiales para la comunicacin en multiprocesamiento, OB 202 a OB 205. Esta posibilidad se ha utilizado en el ejemplo de aplicacin. Si en el mdulo de funciones UEBT-DAT no se ha podido procesar correctamente la funcin EMITIR (OB 202), se transfiere el correspondiente nmero de error al parmetro de salida FEHL, el VKE = 1 y el parmetro de salida REST = 0. El mdulo de funciones UEBT-DAT utiliza los bytes de marcas MB 246 a MB 251 como marcas de trabajo. Todas las dems variables, cuyo valor contina siendo significativo hasta que, tras mltiple ejecucin del mdulo de funciones UEBT-DAT, el parmetro de salida REST = 0, obtienen la asignacin de espacios de memoria mediante el mecanismo de los parmetros formales/actuales. Este procedimiento es necesario para poder transferir simultneamente diferentes mdulos de datos.

Realizacin
FB 110 UEBT-DAT (1) (2) (3) (4) (5) STAR ECPU TNDB ANZB ERSB FEHL REST AKBN FLAM (6) (7) (8) (9)

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 61

Aplicaciones

FB 110 (continuacin 2):

Nombre del parmetro STAR

Significado Iniciar transferencia del mdulo de datos despus del flanco positivo. CPU receptora Tipo (byte alto) y nmero (byte bajo) del mdulo de datos a transferir. Cantidad de bloques de datos a transferir. Nmero del primer bloque de datos a transferir. Error Cantidad de bloques de datos que quedan por transferir. Nmero actual de bloque Marca de flanco

Clase E

Tipo BI

ECPU TNDB

E E

BY W

ANZB ERSB FEHL REST AKBN 1) FLAM 1)


1)

E E A A A A

BY BY BY BY BY BI

Marcas intermedias internas, no estn previstas para su evaluacin.

FB 110 SEGMENTO 1 0000 NOMB.:UEBT-DAT BEZ :STAR E/A/D/B/T/Z: BEZ :ECPU E/A/D/B/T/Z: BEZ :TNDB E/A/D/B/T/Z: BEZ :ANZB E/A/D/B/T/Z: BEZ :ERSB E/A/D/B/T/Z: BEZ :FEHL E/A/D/B/T/Z: BEZ :REST E/A/D/B/T/Z: BEZ :AKBN E/A/D/B/T/Z: BEZ :FLAM E/A/D/B/T/Z: 0020 0021 0022 0023 0024 :L :T :L :T : =ECPU MB 246 =TNDB MW 247

LON=89

E E E E E A A A A

BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D: BI/BY/W/D:

BI BY W BY BY BY BY BY BI

Prefijar campo de parmetros para OB FE 202

Contina en la pgina siguiente

10 - 62

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 110 (continuacin 3):


0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F 0030 0031 0032 0033 0034 0035 0036 0038 0039 003A 003B 003C 003D 003E 003F 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 :L :L :><F :SPB : :UN :RB :ON :O :SPB :S : :L :T :L :T : :L SCHL :L :!=F :SPB UEBT :L :T :L :L :SPM :SPP :L :I :T :L :D :T :SPA : GUT :U :UN :L :T :BEA : FEHL :T :L :T :BE =REST KB 0 =UEBT =STAR =FLAM =STAR =FLAM =GUT =FLAM =ANZB =REST =ERSB =AKBN =REST KF+0 =GUT =AKBN MB 249 KB 246 MB 250 =FEHL =GUT =AKBN 1 =AKBN =REST 1 =REST =SCHL M 0.0 M 0.0 KB 0 =FEHL Flanco positivo en la entrada START? Emitir primeramente bloques de datos eventualmente existentes

Inicializar las marcas globales tras un flanco positivo en la entrada START

Mientras REST sea ><0, seguir intentando emitir bloques de datos

OB FE:

:SPA OB 202

"Emitir un bloque de datos"


Abortar en caso de error Abortar si cap. de emisin = 0 Nmero de bloque Incrementar Cantidad de bloques restantes, decrementar bloques

Fin regular del programa: VKE = 0, FEHL = 0

=FEHL KB 0 =REST

Fin de programa en caso de error: VKE = 1, FEHL contiene nmero de error

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 63

Aplicaciones Aplicacin del FB 110

Aplicacin del FB 110 en el autmata programable S5-155U Tarea


En el programa usuario cclico, la CPU 1 ha de transmitir los bloques 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 tambin se ha de llamar en el programa de usuario cclico la funcin RECIBIR (OB 04).

Realizacin

Funcin Inicializar (OB 200) Organizacin de emisin (FB 1) Organizacin de recep. (FB 2) DB de emisin DB de recepcin

CPU 1 llamada en: OB 20 OB 1 existente: DB 3; DB 4

CPU 2 llamada en: OB 1 existente: DB 3; DB 4

El programa de usuario, en el mdulo de funciones FB 1 de la CPU 1, contiene dos veces la llamada al mdulo de funciones UEBT-DAT, con dos conjuntos diferentes de parmetros. Despus de un flanco positivo en la entrada E 2.0 comienza la tranferencia del primer mdulo de datos DB 3. Un flanco positivo en la entrada E 2.1 inicia la tranferencia del segundo mdulo de datos DB 4.

FB 1 SEGMENTO 1 NOMB.:S-ORG 0000 :L 0001 :T 0002 :L 0003 :T 0004 :L 0005 :T 0006 :L 0007 :T 0008 : 0000 KB MB KY MW KB MB KB MB 2 0 1,3 1 4 3 2 4 emitir a la CPU 2 ..

LON=yy

.. del mdulo de datos DB 3 .. cuatro bloques de datos .. a partir del bloque de datos 2

Contina en la pgina siguiente

10 - 64

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

Ejemplo de aplicacin (continuacin 1):


0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F 0020 0021 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F 0030 0031 0032 0033 0034 0035 0036 00xx :SPA FB 110 NOMB. :UEBT-DAT STAR : E 2.0 ECPU : MB 0 TNDB : MW 1 ANZB : MB 3 ERSB : MB 4 FEHL : MB 5 REST : MB 6 AKBN : MB 7 FLAM : M 8.0 : : :SPB =HALT : :L KB 2 :T MB 10 :L KY 1,4 :T MW 11 :L KB 3 :T MB 13 :L KB 1 :T MB 14 : :SPA FB 110 NOMB. :UEBT-DAT STAR : E 2.1 ECPU : MB 10 TNDB : MW 11 ANZB : MB 13 ERSB : MB 14 FEHL : MB 5 REST : MB16 AKBN : MB17 FLAM : M 8.1 : : :SPB =HALT :BEA : HALT : : : : : :BE

Aborto despus de error emitir a la CPU 2 .. .. del mdulo de datos DB 4 .. tres bloques de datos .. a partir del bloque de datos 1

Aborto despus de error

Aqu se ejecuta el tratamiento de errores (por ej. stop, salida de avisos por la impresora, ...)

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 65

Aplicaciones

Ejemplo de aplicacin (continuacin 2):


En la CPU 2, la funcin RECIBIR (OB 204) que ha sido llamada por el FB 2, transfiere cada bloque de datos emitido al mdulo de datos correspondiente. La recepcin completa de los mdulos de datos se puede repartir entre varios ciclos.

FB 2 SEGMENTO 1 NOMB.:E-ORG 0000 :L 0001 :T 0002 : 0003 SCHL :L 0004 :SPA 0005 :SPM 0006 :L 0007 :L 0008 :><F 0009 :SPB 000A : 000B :BEA 000C FEHL : 000D : 000E : 000F : 00xx :BE 0000 KB 1 MB 246 KB 246

LON=yy

Recibir datos de la CPU 1

OB FE:

OB 204
=FEHL MB 249 KB 0 =SCHL

"Recibir"
Aborto en caso de error La funcin "recibir" se llama hasta que la memoria intermedia no contenga ms bloques de datos, es decir, la capacidad de recepcin = 0. Aqu se ejecuta el tratamiento de errores (por ej. stop, salida de avisos por impresora, ...)

10.9.3 Ampliacin de la zona de marcas de acoplamiento

Tarea

En el autmata programable S5-135U/155U, cada uno de los 256 bytes de marcas puede convertirse en una marca de acoplamiento de entrada/salida registrndolo en el mdulo de datos DB 1. Sin embargo, con ello se reduce la cantidad de bytes de marcas que pueden ser utilizadas "normalmente". Adems, para transferir un conjunto de datos (varios bytes) se requieren medidas adicionales (variables de semforo o parametrizacin DX 0 "transferencia de marcas de acoplamiento en bloque"). Esto se hace para evitar que el receptor evale un conjunto de datos transmitido slo parcialmente.

10 - 66

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones Solucin

Las palabras consecutivas de un mdulo de datos DB o DX, a partir de la DW 0, se definen como "palabras de datos de acoplamiento". Cada lnea de comunicacin recibe "su propio" mdulo de datos y es completamente independiente de las dems lneas de comunicacin. Al principio del mdulo de ciclo, las palabras de datos de acoplamiento son recibidas haciendo uso de los mdulos de organizacin de funciones especiales para comunicacin en multiprocesamiento. Luego sigue el programa cclico "regular", el cual evala los datos recibidos y genera los datos de emisin. Por su parte, stos son emitidos al final del ciclo mediante los mdulos de organizacin de funciones especiales para la comunicacin en multiprocesamiento. As pueden ser recibidos por las dems CPUs al comienzo del ciclo. Para cada una de las mximo 12 lneas de comunicacin posibles, e independientemente de las dems rige: La CPU emisora slo entra en actividad si la CPU receptora ha retirado todos los datos "antiguos" de la memoria intermedia del KOR 923C. La CPU receptora slo entra en actividad si la CPU emisora ha depositado todos los datos "nuevos" en la memoria intermedia del KOR 923C. As pues, la CPU receptora dispone de un conjunto de datos completamente nuevo o el conjunto de datos antiguos permanece inalterado: los datos "antiguos" y los "nuevos" no se mezclan!

Estructura de los datos

La lista de comunicaciones describe qu palabras de datos (denominadas en lo sucesivo zona de palabras de datos) deben transferirse de qu CPU a qu CPU (vase tabla en la pgina siguiente). La lista se encuentra en un mdulo de datos adicional, el cual tiene que existir en todas las CPUs participantes. Las zonas de palabras de datos siempre comienzan a partir de la palabra de datos DW 0; 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 mdulo de datos de emisin est "cortado", es decir, si abarca entre una y 31 palabras de datos, se transfieren por consiguiente menos palabras de datos. Si un mdulo de datos de emisin es ms 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 mdulo de datos de recepcin tiene mayor longitud que la zona de datos recibida, las palabras de datos sobrantes pueden ser utilizadas en la CPU correspondiente.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 67

Aplicaciones Estructura de la lista de comunicaciones

Tabla 10-8

Lista de comunicaciones para la ampliacin de la zona de marcas de acoplamiento

LISTA PARCIAL 1 Lnea de comunicacin De CPU 1 a ... ... CPU 2 ... CPU 3 ...CPU 4 De CPU 2 a ... ... CPU 1 ... CPU 3 ... CPU 4 De CPU 3 a ... ... CPU 1 ... CPU 2 ... CPU 4 De CPU 4 a ... ... CPU 1 ... CPU 2 ... CPU 3 DW 0 DW 1 DW 2 DW 3 DW 4 DW 5 DW 6 DW 7 DW 8 DW 9 DW 10 DW 11 DW 12 DW 13 DW 14 DW 15 ... ... ... 2 15
1)

LISTA PARCIAL 2 N DB Cantidad de bloques DW 16 ... ... ... DW 17 DW 18 DW 19 DW 20 ... DW 21


1)

Tipo DB S1 ... ... ... S2 ... 1 ... S3 ... ... ... S4


1)

S1 2 3 4 S2 1 3 4 S3 1 2 4 S4 1 2 3 2 15 ... ... ... 20 ... ... ... ... 2 ...


1)

... ... ...

10 ...

DW 22 DW 23 DW 24

... ... ...

DW 25 DW 26 DW 27 DW 28

... ... ... 20

DW 29 DW 30 DW 31

Vase ejemplo en la pgina siguiente

10 - 68

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

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 (S1, S2, S3, S4), para la descripcin de cada lnea de comunicacin se han previsto 3 entradas: Cantidad de bloques La cantidad de bloques determina el tamao (= la cantidad de palabras de datos) de la zona de palabras de datos a transferir. (Las lneas no existentes o no utilizadas se caracterizan por la cantidad de bloques = 0; lo mismo vale para el tipo y el nmero de DB.) Tipo de DB Tipo de mdulo de datos que contiene la zona de palabras de datos a transferir. Nmero de DB Nmero del mdulo de datos que contiene la zona de palabras de datos a transferir.

Estas entradas pueden ser ledas y rellenadas lnea por lnea en la representacin anterior. Por ejemplo, para transferir los dos primeros bloques de datos del mdulo de datos DB 10 de la CPU 2 (S2) a la CPU 3, es necesario efectuar la siguiente entrada:

CPU 2 (S 2) emite ..

DW 22 ..a

3 CPU 3

DW 6

1 DB

10 10

2 bloques de datos del

La lista parcial 2 es idntica a la lista de asignaciones (modo de operacin "manual") requerida para la funcin INICIALIZAR (OB 200). Dentro del mdulo de datos, la lista parcial 1 tiene que ocupar las palabras de datos 0 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 programacin CPU 948 C79000-G8578-C848-04

10 - 69

Aplicaciones Estructura del programa

Durante el arranque provocado por la llamada a la funcin INICIALIZAR (OB 200) una CPU reserva en el coordinador por cada lnea de comunicacin una cantidad de bloques de memoria equivalente a la cantidad de bloques de datos que va a ser transferida en este lnea. Para la emisin y recepcin de zonas de palabras de datos, en cada CPU se reservan dos mdulos de funciones:

N FB FB 100

Nombre SEND-DAT

Funcin Emisin de zonas de palabras de datos a las dems CPUs Recepcin de zonas de palabras de datos de las dems CPUs

FB 101

EMPF-DAT

Los nmeros FB son arbitrarios y pueden ser modificados. Los mdulos de funciones SEND-DAT y EMPF-DAT leen en la lista de comunicaciones qu zonas de palabras de datos deben ser emitidas o recibidas de qu mdulos de datos. Siempre se emite o recibe la zona de datos completa. En caso de que todava no se puedan efectuar estas operaciones por falta de capacidad de emisin o recepcin, se prescinde de la emisin o recepcin.

Nota Este ejemplo (aplicacin de las marcas de acomplamiento mediante los mdulos de funciones SEND-DAT y EMPF-DAT) se ejecutar correctamente siempre que en las CPUs no se llamen adicionalmente a los mdulos de organizacin de funciones especiales destinados a la comunicacin en multiprocesamiento OB 202 a OB 205. Los mdulos de funciones SEND-DAT y EMPF-DAT contienen los mdulos de organizacin de funciones especiales para la comunicacin en multiprocesamiento OB 202 a OB 205. No est permitido llamar adicionalmente a estos mdulos de organizacin fuera de SEND-DAT / EMPF-DAT!

10 - 70

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

OB 20 OB de nuevo arranque p a r a p r e f ija r la m e m o r ia in t e r m e d ia e n e l c o o r d in a d o r 9 2 3 C


. . SPA . .
1) 1)

OB 200

El O B 2 0 0 s lo p u e d e s e r lla m a d o e n u n a CPU.

BE

OB 1 Pr o g r a m a d e u s u a r io c c lic o a m p lia d o c o n la lla m a d a d e lo s m d u lo s d e f u n c io n e s EM PF - DAT y SEND- DAT A SPA . . A SPA BE DB xxx FB 101

DB xxx FB 100

M d u lo d e f u n c io n e s : SEND- DAT Em it ir m d u lo s d e d a t o s

FB 100 . . BE

M d u lo d e f u n c io n e s : EM PF - DAT Re c ib ir m d u lo s d e d a t o s

FB 101 . . BE

DB xxx M d u lo d e d a t o s q u e c o n t ie n e la lis t a d e c o m u n ic a c io n e s KC = S1 KY = 1 , . . . . . es evalu a d o por ...

M x im o t r e s m d u lo s d e e n t r a d a y t r e s d e s a lid a

DB yyy o/y DX zzz

Fig. 10-6

Esquema de los mdulos requeridos por cada una de las CPUs

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 71

Aplicaciones Programacin de los mdulos de funciones


FB 100: Emitir zonas de palabras de datos
Antes de llamar al FB 100 tiene que abrirse el mdulo de datos que contiene la lista de comunicaciones. El mdulo de funciones SEND-DAT requiere, para la evaluacin de las informaciones contenidas en las lista de comunicaciones, el nmero de la CPU desde la que ha sido llamado. Si dentro de un mdulo de funciones no ha podido ser ejecutada correctamente la funcin EMITIR (OB 202), se transfiere el correspondiente nmero de error o de advertencia al parmetro de salida FEWA y el VKE se pone a 1. Adicionalmente, si el parmetro de entrada CPUN no es vlido (nmero de CPU), FEWA contiene el valor 16 (bit n 4 = 1). El mdulo de funciones SEND-DAT utiliza los bytes de marcas MB 239 a MB 251 como marcas de trabajo.

FB 100 SEND-DAT (1) CPUN FEWA (2)

Nombre del parmetro SCPUN

Significado Nmero de la CPU en la que se llama al FB 100. Son vlidos los nmeros 1 a 4. Error/advertencia (vase funcin EMITIR / OB 202)

Clase D

Tipo KF

FEWA

FB 100 SEGMENTO 1 0000 NOMB.:SEND-DAT BEZ :CPUN E/A/D/B/T/Z: BEZ :FEWA E/A/D/B/T/Z: 000B 000C 000D 000E 000F 0010 0011 0012 :LW :L :-F :SPM :L :>F :SPB :TAK =CPUN KB 1 =FEWA KB 3 =FEWA

LON=90

D A

KM/KH/KY/KC/KF/KT/KZ/KG:KF BI/BY/W/D: BY CPUN = CPUN - 1 Error en caso: N CPU < 1

N CPU > 4

Contina en la pgina siguiente

10 - 72

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 100 (continuacin 1):


0013 0014 0015 0016 0017 0018 0019 001A SCHL 001B 001C 001D 001E 001F 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F 0030 0031 0032 0033 : :SLW :T : :L :T : :L :L :+F :T :ADD :T : :B :L :T :L :!=F :SPB : :B :L :T :L :L :SPB : :L :L :><F :SPB

2 MB 245 KB 1 MB 244 MB 245 MB 244 MW 240 BF+16 MW 242 MW DR MB KB 242 0 239 0

CPUN = CPUN * 4 Direccin base

Contador de comunicaciones Direccin base + contador

+ offset

Cantidad de bloques reservados = 0?

=LEER MW DL MB KB 242 0 246 246

N de la CPU receptora OB FE:

:SPA OB 203
MB 248 =OBFE MB 249 MB 239 =LEER

"Comprobar posibilidad de emisin"


Abortar en caso de error"

Capacidad de emisin >< cantidad de bloques reservados?

0034 : 0035 :L 0036 :T 0037 : 0038 :B 0039 :L 003A :T 003B : 003C UEBT :L 003D :SPA
003E 003F 0040 0041 0042 0043 0044 0045 :L :SPB : :L :I :T :L :<F

KB 0 MB 249 MW 240 DW 0 MW 247 KB 246 OB 202


MB 250 =OBFE MB 249 1 MB 249 MB 239

Contador de bloques

Tipo y nmero del DB fuente OB FE: Emitir un bloque de datos


Abortar en caso de error/advertencia N de bloque = N de bloque + 1 Transferir todos los bloques?

0046 0047

:SPB =UEBT :

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 73

Aplicaciones

FB 100 (continuacin 2):


0048 LEER:L 0049 :I 004A :T 004B :L 004C :<F 004D :SPM 004E :L 004F :T 0050 :BEA 0051 : 0052 FEWA:L 0053 OBFE:T 0054 :BE MB 244 1 MB 244 KB 4 =SCHL KB 0 =FEWA Incrementar contador de comunicaciones Se han procesado todas las lneas de comunicacin? Fin regular de programa: VKE = 0, FEWA = 0

KB 16 =FEWA

Fin de programa en caso de error: VKE = 1, FEWA contiene nmero de error/advertencia

FB 101: Recibir zonas de palabras de datos


Antes de llamar al FB 101 tiene que abrirse el mdulo de datos que contiene la lista de comunicaciones. El mdulo de funciones EMPF-DAT requiere para la evaluacin de las informaciones contenidas en las lista de comunicaciones, el nmero de la CPU en la que ha sido llamado. Si dentro de un mdulo de funciones no ha podido ser ejecutada correctamente la funcin RECIBIR (OB 204), se transfiere el correspondiente nmero de error o de advertencia al parmetro de salida FEWA y VKE = 1. Adems, si el parmetro de entrada CPUN no es vlido, FEWA recibe el valor 16 (bit n 4 = 1). El mdulo de funciones EMPF-DAT utiliza los bytes de marcas MB 242 a MB 255 como marcas de trabajo.

FB 101 EMPF-DAT (1) CPUN FEWA (2)

Nombre del parmetro SCPUN

Significado Nmero de la CPU en la que se llama al FB 101. Son vlidos los nmeros 1 a 4. Error/advertencia (vese funcin RECIBIR / OB 204)

Clase D

Tipo KF

FEWA

Contina en la pgina siguiente

10 - 74

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

FB 101 (continuacin 1):


FB 101 SEGMENTO 1 0000 NOMB.:EMPF-DAT BEZ :CPUN E/A/D/B/T/Z: BEZ :FEWA E/A/D/B/T/Z: 000B 000C 000D :LW :L :<F =CPUN KB 1 LON=88

D KM/KH/KY/KC/KF/KT/KZ/KG: KF A BI/BY/W/D: BY Error en caso:

000E :SPB 000F :LW 0010 :L 0011 :>F 0012 :SPB 0013 : 0014 :L 0015 :T 0016 : 0017 :L 0018 :T 0019 : 001A SUCH :L 001B :I 001C :T 001D :B 001E :L 001F :LW 0020 :><F 0021 :SPB 0022 : 0023 :B 0024 :L 0025 :T 0026 :L 0027 :!=F 0028 :SPB 0029 : 002A :L 002B :L 002D :UW 002E :SRW 002F :I 0030 :T 0031 : 0032 :L 0033 :SPA
0034 0035 0036

=FEWA =CPUN KB 4 =FEWA KB 1 MB 242 KB 16 MW 244 MW 244 1 MW 244 MW 244 DL 0 =CPUN =SUCH MW DR MB KB 244 0 243 0

N CPU <1

N CPU >4 Contador de comunicaciones

Puntero sobre lista parcial 2 Rastrear la lista parcial 2 hasta encontrar la siguiente entrada para la CPU receptora con el nmero CPUN.

Cantidad de bloques de memoria reservados = 0 ?

=LEER MW 244 KM 00000000 00001100 2 1 MB 246 KB 246 OB 205 OB FE: "Comprobar posibilidad de recepcin"
Aborto en caso de error

Determinar el nmero de la CPU emisora, del puntero a la lista parcial 2.

:L MB 248 :SPB = OBFE :

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 75

Aplicaciones

FB 101 (continuacin 2):


0037 0038 0039 003A :L MB 249 :L MB 243 :><F :SPB =LEER Capacidad de recepcin = cantidad de bloques de memoria reservados?

003B : 003C EMPF :L KB 246 003D :SPA OB 204


003E :L 003F :SPM 0040 :L 0041 :L 0042 :><F 0043 :SPB 0044 : 0045 LEER :L 0046 :I 0047 :T 0048 :L 0049 :<F 004A :SPM MB 248 =OBFE MB 249 KB 0 =EMPF MB 242 1 MB 242 KB 4 =SUCH

OB FE: "Recibir un bloque de datos"


Aborto en caso de error/advertencia si capacidad de recep. = 0 procesar la siguiente lnea de comunicacin

Incrementar contador de comunicaciones Se han procesado todas las lneas de comunicacin?

004B :L 004C :T 004D :BEA 004E : 004F FEWA :L 0050 OBFE :T 0051 :BE

KB 0 =FEWA

Fin regular de programa: VKE = 0, FEWA = 0

KB 16 =FEWA

Fin de programa en caso de error: VKE = 1, FEWA contiene nmero de error/advertencia

10 - 76

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones Ejemplo de aplicacin

Aplicacin del FB 100/101 en el autmata programable S5-155U Tarea


Se han de intercambiar datos entre tres CPUs: - de CPU 1 a CPU 2: - de CPU 1 a CPU 3: mdulo de datos DB 3, DW 0 a DW 127 (= 4 bloques) mdulo de datos DB 4, DW 0 a DW 63 (= 2 bloques) mdulo de datos DB 5, DW 0 a DW 95 (= 3 bloques)

- de CPU 2 a CPU 1 y CPU 3:

DX 4, 2 bloques C PU 1

DB 5, 3 bloques

DB 3, 4 bloques

DB 5, 3 bloques C PU 2 C PU 3

Fig. 10-7

Intercambio de datos entre 3 CPUs

En las tres CPUs, el mdulo de funciones FB 1 ha de constituir la interfaz con el programa de usuario cclico. En caso de NUEVO ARRANQUE, la CPU 1 ha de llamar a la funcin INICIALIZAR (OB 200). La lista de comunicaciones ha de encontrarse en el mdulo de datos DB 100.

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 77

Aplicaciones

Ejemplo de aplicacin (continuacin 1):


Realizacin
1. Cargar mdulos Adems del OB 1 hay que cargar los siguientes mdulos en las distintas CPUs:

Funcin OB de arranque Programa de usuario FB: SEND-DAT FB: EMPF-DAT Lista de comunicaciones DB de entrada DB de salida

CPU 1 OB 20 FB 1 FB 100 FB 101 DB 100 DB DB 5 3; DX FB 1 FB 100 FB 101 DB 100 DB DB 3 5

CPU 2 FB 1 FB 100 FB 101 DB 100 DB

CPU 3

5; DX

2. Generar lista de comunicaciones Primeramente se genera la lista de comunicaciones y se registra en el DB 100: DB 100 LON=37 HOJA

Lista parcial 1 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: KC KY KY KY KC KY KY KY KC KY KY KY KC KY KY KY = = = = = = = = = = = = = = = = S1; 001,003; 002,004; 000,000; S2 ; 001,005; 001,005; 000,000; S3; 000,000; 000,000; 000,000; S4; 000,000; 000,000; 000,000; de CPU 1 a .. .. CPU 2, emitir DB 3 .. CPU 3, emitir DX 4 de CPU 2 a .. .. CPU 1, emitir DB 5 .. CPU 3, emitir DB 5

Contina en la pgina siguiente

10 - 78

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Aplicaciones

Ejemplo de aplicacin (continuacin 2):


Lista parcial 2 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: KC KY KY KY KC KY KY KY KC KY KY KY KC KY KY KY = = = = = = = = = = = = = = = = S1; 002,004; 003,002; 004,000; S2; 001,003; 003,003; 004,000; S3; 001,000; 002,000; 004,000; S4; 001,000; 002,000; 003,000; de CPU 1 a .. .. CPU 2, emitir 4 bloques de datos .. CPU 3, emitir 2 bloques de datos de CPU 2 a .. .. CPU 1, emitir 3 bloques de datos .. CPU 3, emitir 3 bloques de datos

Las palabras de datos DW 16 a DW 31 contienen la lista de asignaciones necesaria para la funcin INICIALIZAR manualmente (OB 200). 3. Programar la llamada del OB 200 en el mdulo de arranque OB 20 para la CPU 1 El OB 200 listado a continuacin es llamado durante el arranque por el OB 20 de la CPU 1. OB 20 SEGMENTO 0000 0001 0002 0003 0005 0006 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 00xx 1 :L :T : :L :T :L :T : :L :SPA : :UN :BEB : : : : : : :BE LON=yyABS

KB 2 MB 246 KY 1,100 MW 248 KF+16 MW 250 KB 246 OB 200 M 252.5

Inicializacin manual de las pginas En el DB 100 est registrada la lista de asignaciones a partir de la palabra de datos DW 16

OB FE: "Inicializar" Fin de mdulo si no se produce conflicto de inicializacin Aqu se intercala el tratamiento de errores en caso de conflicto de inicializacin (por ej. stop, salida de aviso por la impresora, o ...)

Contina en la pgina siguiente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

10 - 79

Aplicaciones

Ejemplo de aplicacin (continuacin 3):


4. Programar las llamadas de los mdulos de funciones en los FB 1 de las CPUs En cada una de las CPUs se ampla el programa de usuario con la llamada a los mdulos de funciones EMPF-DAT y SEND-DAT. El mdulo de funciones FB 1, listado a continuacin, est destinado para la CPU 1. Para ejecutar el programa en las otras CPUs simplemente se tiene que modificar el parmetro de entrada CPUN (nmero de CPU). FB 1 SEGMENTO 1 0000 NOMB.:EM-SE 0000 0000 :A DB100 0001 :SPA FB101 0002 : 0003 NOMB. :EMPF-DAT 0004 CPUN : KF+1 0005 FEWA : MB0 0006 :SPB =FEWA 0007 : 0008 : 0009 : 000A : 000B : 000C : 000D : 000E : 000F : 0010 :A DB 100 0011 :SPA FB100 0012 : 0012 NOMB. :SEND-DAT 0013 CPUN : KF+1 0014 FEWA : MB0 0015 :SPB =FEWA 0016 :BEA 0017 : 0018 FEWA : 0019 : 001A : 001B : 001C : 00xx :BE LON=yy

Lista de comunicaciones DB 100 Recibir los mdulos de datos de entrada

Aborto en caso de error/advertencia

Aqu se intercala el programa de usuario cclico que lee datos del mdulo de entrada y registra los datos en los mdulos de datos de salida.

Lista de comunicaciones DB 100 Emitir los mdulos de datos de salida

Abortar si hay error/advertencia

Despus de error/advertencia ejecutar tratamiento de errores (aqu se intercala el tratamiento de errores, por ej. stop, salida de aviso de error por la impresora o por el monitor, o...)

10 - 80

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Interfaces y funciones del aparato de programacin

11

Indice - Captulo 11
11.1 11.2 11.2.1 11.2.2 11.2.3 11.3 11.4 11.4.1 11.4.2 11.4.3 11.5 11.5.1 11.5.2 11.5.3 11.5.4 Resumen sinptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 4 Funciones del aparato de programacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 5 Informacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 6 Puesta en funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 7 Test del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 8 Acoplamiento PG AG a travs de la 1 2 interfaz serie . . . . . . . . . . . . . . . . . . . . 11 - 16 Funcionamiento paralelo de dos interfaces serie de PG . . . . . . . . . . . . . . . . . . . . . . . . 11 - 17 Puesta en funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 19 Servicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 19 Ejecucin en determinados estados operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 21 Funciones de PG va bus S5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 27 Aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funcionamiento de las funciones de PG va bus S5 . . . . . . . . . . . . . . . . . . . . . . . . . . . Puesta en funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indicacin de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 27 11 - 29 11 - 31 11 - 35

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 1

Indice

11 - 2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Interfaces y funciones del aparato de programacin

11

El captulo siguiente explica cmo acoplar el aparato de programacin (PG) a una CPU 948, as como las ayudas que ofrece el software del aparato de programacin para comprobar el programa STEP 5. En caso de utilizar nicamente la interfaz estndar del PG (1 interfaz serie) no es necesario leer el captulo 11.4. En este captulo se explica cmo acoplar un PG a una CPU con otras interfaces. Se exponen asimismo los aspectos a tener en cuenta en caso de utilizar las funciones del aparato de programacin en ambas interfaces.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 3

Resumen sinptico

11.1 Resumen sinptico


El programa de usuario se carga y comprueba mediante las funciones on line del software STEP 5. Para ello es necesario acoplar la CPU al aparato de programacin. Se dispone de las siguientes interfaces: Acoplamiento a travs de la interfaz serie estndar "PG - AG", Acoplamiento a travs de la 2 interfaz serie de la CPU 948, Acoplamiento a travs del bus S5 con SINEC H1. Las funciones del aparato de programacin se ejecutan paralelamente en ambas interfaces serie. Por el contrario, en el caso de acoplamiento a travs del bus S5, las funciones del aparato de programacin slo se ejecutan alternativamente a las ejecutadas en las interfaces serie. Las funciones del PG ofrecen las siguientes ayudas para poner en funcionamiento y comprobar el programa STEP 5:

Tabla 11-1

Ayudas para la puesta en funcionamiento y test

Ayuda

Apartado

Informacin Capacidad de la RAM interna y "Extensin de memoria" de la memoria libre de usuario Lista de mdulos cargados "Lista de mdulos" Visualizar contenido de palabras/ "Salida direccin" bytes de memoria y bytes de periferia Administracin de la memoria Borrar toda la memoria "Borrado total" Comprimir espacio de memoria "Comprimir memoria" libre Administrar mdulos "Cargar/borrar mdulos" Test del programa Arrancar/parar CPU "AG-Start/AG-Stop" Comprobar secuencia de "Status" instrucciones en un mdulo Comprobar pasos del programa "Control de elaboracin" individualmente Visulizar el estado lgico de "Status variables" variables de proceso Emitir seales de salida en STOP "Forzado" Visualizar/modificar variable de "Controlar variables" proceso

11 - 4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones del aparato de programacin

11.2 Funciones del aparato de programacin


Nota Los conceptos utilizados a continuacin para las funciones del aparato de programacin pueden diferir de los conceptos empleados en el software del aparato de programacin utilizado. Consultar a este respecto el manual STEP 5 correspondiente.

Llamada y mando

En el manual correspondiente al aparato de programacin utilizado se explica cmo llamar y operar con las funciones del PG.

Puntos de control

En la CPU se ejecutan las funciones del aparato de programacin en puntos de control definidos. La CPU 948 dispone de 4 puntos de control diferentes. A cada uno de ellos se le han asignado determinadas funciones de ayuda para ejecutar el test. Punto de control "stop" En este punto de control se llaman las funciones on line que se pueden ejecutar en STOP (por ej. "AG-Start", "Borrado total", "Comprimir memoria" en STOP). Este punto de control se encuentra antes de la llamada al OB 39 (mdulo para el procesamiento cclico en STOP PARCIAL). Punto de control "ciclo" En este punto de control se llaman las funciones on line que deben ser ejecutadas durante el procesamiento cclico del programa (por ej. "Comprimir memoria" en RUN, "AG-Stop", "status"). Este punto de control se encuentra antes de la actualizacin de la imagen de proceso de las entradas (PAE an sin actualizar). Punto de control "test" Aqu se llaman aquellas funciones que tienen que ejecutarse tan pronto como haya sido alcanzado el punto de parada siguiente indicado por el usuario (en caso de "Control de elaboracin", vase captulo 11.2.3). Punto de control "funciones generales" Este punto de control se da tanto en STOP como en RUN. Aqu se llaman las funciones on line que pueden ser ejecutadas en todos los estados operativos del autmata programable (por ej. "Mdulos/Cargar/Borrar", "Status variables"). En STOP, este punto de control se encuentra antes del OB 39 (mdulo para el procesamiento cclico del programa en STOP PARCIAL). En el ciclo se encuentra entre la imagen de proceso de las entradas (PAE ya actualizado) y el OB 1 (mdulo para el procesamiento cclico en RUN).

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 5

Funciones del aparato de programacin

11.2.1 Informacin

Extensin de memoria

La CPU 948 se suministra con dos versiones de memoria diferentes, cuya capacidad de memoria puede consultarse mediante la funcin del aparato de programacin "Extensin memoria". Mediante esta funcin se tranfieren al aparato de programacin los datos expuestos a continuacin, referentes a la memoria de usuario (a partir de la versin de software del aparato de programacin V6.0 + "Disquete Delta" para CPU 948): Capacidad de memoria (640 kbyte/1664 kbyte) Mayor bloque de memoria RAM libre Suma de todos los bloques de RAM libres El software del aparato de programacin V6.3 + "Disquete Delta" para la CPU 948 indica la extensin de memoria exacta. En las versiones anteriores del software del aparato de programacin (p.ej. V3.0 o MT1.0) la "Extensin memoria" se visualiza del mismo modo que en la CPU 946/947 (vase fig. 11-1). La extensin total de la memoria de la CPU 948 se calcula partiendo de la suma de los valores de las tarjetas de extensin de memoria.

I N F O R M A C I O N - A G
E S T R U C T U R A TARJETA 0 1 1 1 2 2 2 MOD. 1 1 2 3 1 2 3 TIP RAM RAM RAM M E M O R I A A G 1 5 5

SIMATIC S5 / OSS0C
U LONGITUD 64 KW 128 KW 128 KW
1)

DIR. COMIENZO 00000 10000 30000

DIR. FINAL 0FFFF 2FFFF 4FFFF

MODULO VACIO O NO COLOCADO MODULO VACIO O NO COLOCADO MODULO VACIO O NO COLOCADO MODULO VACIO O NO COLOCADO

MAYOR BLOQUE DE MEMORIA RAM LIBRE SUMA DE TODOS LOS BLOQUES RAM LIBRES

: 314800 WORDS : 315664 WORDS

F1
SAL. DIR

F2
ESTRUC.

F3
SYSPAR

F4
BSTACK

F5
USTACK

F6

F7

F8
RETORNO

1) corresponde a la extensin de memoria de la CPU 948-1: 320 kW = 640 kbyte

Fig. 11-1

Visualizacin de la extensin de memoria en el aparato de programacin

11 - 6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones del aparato de programacin Directorio

Cuando se hace visualizar en el aparato de programacin una lista de todos los mdulos programados, la CPU 948 visualiza el OB 0 en lugar de los mdulos del programa de sistema. Esta funcin puede ser utilizada en los estados RUN, STOP PARCIAL, STOP TOTAL y puede ser llamada asimismo desde la funcin "Control de elaboracin".

Salida direccin

Con la funcin "Salida direccin (SAL. DIR)" puede hacerse visualizar en el aparato de programacin el contenido de las direcciones de memoria y de periferia en cdigo hexadecimal. Tambin es posible acceder a todas las direcciones (RAM, bus S5, zonas no ocupadas). En la zona de la imagen de proceso no se activa ningn ADF y en la zona de periferia no se produce ningn QVZ. En la zona direccionable byte por byte (marcas, imagen de proceso) se representa el byte alto como FF.

11.2.2 Puesta en funcionamiento

Borrado total

Con la funcin "Mdulos/Borrar/Todos mdulos" se puede efectuar un borrado total de una CPU con el aparato de programacin. El borrado total se realiza de forma incondicional (vase captulo 4.3.3).

Comprimir memoria

Con esta funcin se desplazan hacia el principio de la memoria de usuario todos los mdulos vlidos de dicha memoria. Los espacios libres que resultan de borrar o corregir los mdulos se eliminan. En este caso se desplaza cada vez un mdulo completo hasta el principio de la memoria de usuario. En el caso ideal, los espacios pequeos formarn un espacio grande en el que posteriormente se pueden cargar mdulos. Esta funcin puede ser llamada en el estado RUN y en STOP PARCIAL. En RUN, los mdulos de datos DB y DX que tienen una longitud superior a 512 palabras de datos no se desplazan. En STOP se desplazan todos los mdulos. Para que en caso de un fallo de la tensin de red no se pierda ningn dato, los mdulos son desplazados a travs de una memoria intermedia. En caso que esta memoria no sea suficiente, se contina la compresin con el siguiente espacio libre de la memoria. Por este motivo, pueden quedar espacios restantes durante la compresin. Vase para ello el captulo 8.3.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 7

Funciones del aparato de programacin "Mdulos/Transferir"

Con esta funcin se transfieren los mdulos de cdigo y de datos nuevos o ya existentes a la memoria de usuario de la CPU. En caso de que uno de los mdulos ya se encuentre en la memoria de usuario de la CPU, a ste se le asigna una marca que lo declara no vlido. El mdulo nuevo recibe a su vez una marca que lo declara vlido.

"Mdulos/Borrar"

Esta funcin permite declarar no vlidos a los mdulos de cdigo y de datos de la memoria de usuario de la CPU. El espacio de memoria en el que estaban almacenados dichos mdulos queda libre y, por tanto, puede ser utilizado.

11.2.3 Test del programa

AG-Start/AG-Stop

El mando del aparato de programacin corresponde al accionamiento manual. Llamando a la funcin de aparato de programacin "AG-Stop" en el estado RUN, el autmata programable se pone en STOP. En los bits de control est marcado con una cruz el campo PGSTP. En modo multiprocesador se activa el bit de control HALT en las restantes CPUs. El estado STOP PARCIAL se abandona mediante NUEVO ARRANQUE o REARRANQUE. En modo monoprocesador, la CPU abandona el estado STOP, mientras que en modo multiprocesador se registra en primer lugar el modo de arranque (bit de control NEUDF o WIEDF activado), quedando la CPU en STOP. Activando a continuacin la funcin "AG-Start", se arranca el autmata programable, lo que corresponde al mando del coordinador (selector en posicin RUN). En modo multiprocesador, la funcin "AG-Start" permite ejecutar sucesivamente el arranque deseado en todas las CPUs y arrancar el autmata programable cuando haya arrancado la ltima CPU.

11 - 8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones del aparato de programacin Status mdulo

La funcin "Status" (estado) permite comprobar en cualquier lugar del programa de usuario determinadas secuencias de instrucciones (operaciones STEP 5) de un mdulo. Por cada instruccin ejecutada en el mdulo se visualizan en el aparato de programacin los estados lgicos de los operandos, el contenido de los acumuladores, el VKE, etc. (paso a paso). Del mismo modo tambin es posible verificar la parametrizacin de mdulos de funciones (de bloque en bloque): se visualizan los estados lgicos de los operandos actuales.

Llamada de la funcin e indicacin del punto de parada

El llamado "Punto de parada" se prefija activando la funcin "Status" del aparato de programacin e introduciendo el tipo y nmero del mdulo (indicando eventualmente el orden de anidamiento y el criterio de bsqueda) que se desea comprobar. Si se activa esta funcin durante el procesamiento del programa en RUN, el procesamiento continuar hasta alcanzar en el orden de anidamiento correcto la instruccin marcada con el punto de parada prefijado. A continuacin, se ejecutan las instrucciones supervisadas hasta el lmite de la instruccin. Los resultados del procesamiento de las ins-trucciones se visualizan en el aparato de programacin.

Nota El resultado del procesamiento de las instrucciones no se visualiza en cada recorrido.

Anidamiento e interrupciones

Una secuencia de instrucciones marcada por un punto de parada prefijado se recorre de forma completa, tambin cuando se ha anidado y procesado otro nivel de procesamiento (por ej. un OB de alarma o de reaccin ante errores) en un lmite de instruccin. Tambin existe la posibilidad de comprobar si se han modificado datos a causa de un anidamiento. Si la CPU se pone en STOP a causa de una interrupcin en el nivel de procesamiento anidado, entonces se visualizan en el estado STOP los datos procesados hasta la ltima instruccin ejecutada antes del anidamiento. Los datos de las instrucciones restantes se rellenan con 0 (tambin SAZ = 0). La funcin "Status" se puede efectuar en RUN, en ARRANQUE (OB 20, OB 21 y OB 22) y en STOP PARCIAL (slo OB 39).

Operaciones B MW/B DW

Si mientras se est ejecutando la funcin "Status mdulo" se posiciona el cursor sobre la operacin siguiente a B MW o B DW, el aparato de programacin visualizar el aviso "Instruccin no ejecutada". Solucin: No posicionar el cursor sobre la operacin siguiente a B MW o B DW.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 9

Funciones del aparato de programacin Versiones anteriores del software de PG

Si en anteriores versiones del software de PG se mueve rpidamente el cursor en la funcin de PG "Status mdulo", se produce un tiempo de espera de entre 3 y 5 segundos aproximadamente por cada movimiento del cursor (lnea). Solucin: Abandonar el status mediante la tecla de interrupcin, posicionar nuevamente el cursor y continuar el status. De este modo se evitan tiempos de espera.

Control de elaboracin

Con la funcin "Control de elaboracin" se pueden comprobar en cualquier parte del programa de usuario pasos del programa de forma independiente. Para ello hay que detener el procesamiento del programa y dejar que la CPU procese una instruccin detrs de la otra. Por cada instruccin procesada se visualizan en el aparato de programacin los estados lgicos actuales de los operandos, el contenido de los acumuladores, el VKE, etc. La funcin de ayuda se puede llamar en RUN y en STOP PARCIAL. Para llamar la funcin hay que indicar el tipo y nmero del mdulo (indicando eventualmente el orden de anidamiento) que se desea comprobar, y marcar en el aparato de programacin la primera instruccin cuyos datos se desean obtener. Con ello se habr prefijado el primer punto de parada. Si se ha prefijado el primer punto de parada durante el procesamiento del programa, la CPU contina el procesamiento hasta alcanzar la instruccin marcada como punto de parada. La instruccin se ejecuta hasta el lmite de sta (las instrucciones BMW y BDW se procesan incluida la instruccin sustituida). Ahora la CPU comprueba si el orden actual de anidamiento de mdulos coincide con la indicada por el usuario. En caso contrario, la CPU contina el procesamiento del programa. Cuando no se alcanza el punto de parada indicado (por ej. porque la CPU se encuentra en STOP o como consecuencia de un bucle sin fin en el programa de usuario), en el aparato de programacin se visualiza el aviso "la instruccin no se ejecuta". La funcin y el punto de parada prefijados permanecen activos. Si, por el contrario, el orden de anidamiento es correcto, se bloquean las salidas (LED BASP = act.) y los datos de la instruccin procesada se visualizan en el aparato de programacin. La CPU espera entonces a recibir ms peticiones del aparato de programacin.

Llamar la funcin de ayuda del test y prefijar el primer punto de parada

Operaciones B MW/B DW

Cuando est activada la funcin "Control de elaboracin" no es posible mover el cursor hacia B MW/B DW saltando la operacin consecutiva. Solucin: Abandonar la funcin, saltar a la secuencia de operaciones arriba mencionada y fijar un nuevo punto de parada detrs de la operacin siguiente a B MW o B DW.

11 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones del aparato de programacin Llamar la funcin de ayuda del test en STOP PARCIAL

Tambin se puede llamar la funcin "control de elaboracin" en estado STOP y prefijar un primer punto de parada. La CPU permanece en STOP. A continuacin se puede realizar tanto un NUEVO ARRANQUE como un REARRANQUE MANUAL. La CPU procesa el programa hasta la instruccin marcada y se comporta como antes.

Continuar la funcin y prefijar otro punto de parada

Punto de partida:

La CPU ha procesado el 1er punto de parada.

Para continuar la funcin existen dos posibilidades. 1. Prefijar un punto de parada consecutivo: El punto de parada prefijado se desplaza una instruccin. A partir de ah, la CPU contina el procesamiento del programa hasta esta instruccin. Cuando la instruccin ha sido procesada hasta su lmite, la CPU emite los datos y espera otras instrucciones. Si la instruccin consecutiva es alcanzada en un nivel de programa anidado, la CPU contina el procesamiento. El punto de parada consecutivo permanece prefijado como antes.

Nota En estado STOP no se puede prefijar ningn punto de parada consecutivo!

2. Prefijar un nuevo punto de parada: Definir en el aparato de programacin una instruccin cualquiera en el mismo mdulo o en otro. La CPU contina el procesamiento del programa hasta alcanzar el nuevo punto de parada. La instruccin se procesa hasta su lmite. A continuacin, la CPU emite los datos.

Anular el punto de parada

Si an no se ha alcanzado el punto de parada prefijado se tiene la posibilidad de anularlo posteriormente, pulsando en el aparato de programacin la tecla de interrupcin. A continuacin se puede prefijar un nuevo punto de parada o llamar la funcin "Control elaboracin OFF".

Abandonar la funcin

Llamando la funcin "Control elaboracin OFF" se puede abandonar la funcin durante el procesamiento del programa y en estado STOP. La CPU se pone en STOP PARCIAL (o permanece en STOP). El LED STOP parpadea de forma lenta. En los bits de control hay una cruz en BEARBE. A continuacin se requiere un NUEVO ARRANQUE. Si durante la funcin "Control de elaboracin" se produce un error de interfaz (interrupcin en el cable del aparato de programacin), se interrumpe la funcin como se indica arriba.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 11

Funciones del aparato de programacin Anidamientos en caso de "interrupcin en lmites de instrucciones"

Cuando est activada la funcin "Control de elaboracin" se pueden anidar otros niveles de procesamiento siempre que se haya ajustado el modo "interrupcin en lmites de instrucciones". Si la instruccin se ha procesado en el punto de parada y se ha llamado en este punto otro nivel de procesamiento (por ej. un OB de error o de alarma), entonces se procesa en primer lugar este nivel hasta el final y slo entonces contina el procesamiento en el punto de parada consecutivo.

Nota Los datos se leen y emiten en el lmite de la instruccin. Los anidamientos correspondientes an no han sido procesados.

La fig. 11-2 muestra cmo se ejecuta la funcin "control de elaboracin.

1 punto de parada

Ejecutar instrucc. y leer datos ESTADO DE ESPERA (emitir datos)

Punto de parada consecutivo

< <<<<<
Ejecutar instrucc. y leer datos

Alarma de proceso, alarma temporizada, OB de error

ESTADO DE ESPERA (emitir datos)

< <<<<<

Alarma de proceso, alarma temporizada, OB de error

Fig. 11-2

Ejecucin del test de "Control de elaboracin"

Nota Si se ha procesado la instruccin en el punto de parada y hay una peticin de anidamiento, se tiene la posibilidad de colocar el punto de parada en una instruccin del anidamiento. As, por ejemplo, se puede observar un OB de error de QVZ cuando se ejecuta una instruccin que produce un QVZ.

11 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones del aparato de programacin Interrupciones


Procesamiento del programa estado STOP: Si durante el procesamiento del programa aparece una interrupcin (por ej. STOP en modo multiprocesador, periferia no disponible, selector en STOP, OB de error no programado, etc.) y el punto de parada prefijado an no ha sido alcanzado, la CPU se pone inmediatamente en STOP. Si ahora se efecta un arranque (NUEVO ARRANQUE o REARRANQUE MANUAL) la funcin "Control de elaboracin" permanece activada y el punto de parada sigue estando prefijado. Procesamiento de la instruccin en el punto de parada estado STOP: Si durante el procesamiento de la instruccin en el punto de parada o en el punto de parada consecutivo aparecen solicitudes de STOP (selector STOP, instruccin STEP 5 STS, OB de error no programado), la CPU se pone inmediatamente en STOP PARCIAL y transfiere ah los datos. Si no se prefija otro punto de parada en STOP, la funcin "Control de elaboracin" sigue estando activada despes de efectuar un arranque.

Mientras est activada la funcin "Control de elaboracin" se pueden llamar otras funciones en el aparato de programacin. Son vlidas las siguientes llamadas: Salida AG-INFO/USTACK Salida AG-INFO/BSTACK Mdulo/Cargar Mdulo/Leer Mdulo/Borrar Visualizar lista de mdulos Forzado variables

- Forzado En ocasiones puede ocurrir que la CPU se encuentre en STOP tras finalizar la funcin.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 13

Funciones del aparato de programacin Status variables

Con la funcin de ayuda del test "Status variables" se pueden visualizar estados lgicos actuales de determinados operandos (variables de proceso). Cuando se alcanza un punto de control del sistema, se visualiza el estado lgico actual de las variables de proceso deseadas. Se pueden obtener todas las variables de proceso (entradas, salidas, marcas, temporizadores, contadores y palabras de datos). En la zona de imagen de proceso no se ejecuta ningn ADF.

Ejecucin en RUN

Si se ejecuta la funcin en el estado operativo RUN, los estados lgicos sern consultados y visualizados cuando se alcance el punto de control. Las entradas se leen en la imagen de proceso. Los estados lgicos se actualizan cclicamente a menos que se abandone la funcin.

Nota Si no se alcanza el punto de control del sistema, no se visualizar ningn estado lgico (por ej., a consecuencia de un bucle muy largo en el programa de usuario)!

Ejecucin en STOP PARCIAL

Si se ejecuta la funcin en STOP PARCIAL, se visualizan los estados lgicos de los operandos tal y como se encuentran en el punto de control del sistema. Es importante que las entradas sean consultadas y visualizadas directamente desde la tarjeta de E/S.

Forzado

Con la funcin "Forzado" se pueden forzar manualmente los bytes de salida del autmata programable a un estado lgico determinado.

Nota La funcin "Forzado" slo es vlida en STOP (STOP PARCIAL o en la funcin "Control de elaboracin")!

Ejecucin de la funcin

Llamando esta funcin en estado STOP se desbloquean las salidas (BASP = des.). Se borra toda la periferia digital (valor 0). Durante el borrado de la periferia no se puede interrumpir la funcin. Los posibles retardos en acuse de recibo (QVZ) que puedan producirse son ignorados.

11 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones del aparato de programacin

Las salidas de la periferia se fuerzan byte por byte. En modo multiprocesador se pueden forzar todas las salidas de periferia (independientemente de la asignacin en el DB 1). Se tiene lugar un retardo en acuse de recibo, ste ser detectado cuando se modifiquen las salidas (aviso del aparato de programacin "Falta tarjeta en AG").

Finalizar la funcin

La funcin se finaliza pulsando la tecla de interrupcin en el aparato de programacin. El bloqueo de salidas se activa de nuevo (LED BASP = act.). La funcin finaliza asimismo cuando la CPU se pone en RUN entre la llamada a la funcin y el propio forzado.

Forzado de variables

Con la funcin de ayuda "Forzado variables" se pueden visualizar y modificar los valores de operandos (variables de proceso) en la imagen de proceso. Esto es posible en RUN, en STOP PARCIAL y en la funcin "Control de elaboracin". Se pueden indicar todas las variables de proceso (entradas, salidas, marcas, temporizadores, contadores y palabras de datos).

Particularidades

Las modificaciones tendrn efecto a partir del prximo punto de control, es decir, independientemente del punto de control del sistema (principio o final del ciclo). Hay que tener presente que los valores forzados pueden ser sobreescritos posteriormente (por ej., por el programa de usuario o la actualizacin de la imagen de proceso)!

Nota El aparato de programacin fuerza las variables de proceso byte por byte. En caso de forzar varios operandos al mismo tiempo, los bytes modificados se modificarn en la memoria sucesivamente, a lo largo de varios ciclos.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 15

Acoplamiento PG AG a travs de la 1 2 interfaz serie

11.3 Acoplamiento PG AG a travs de la 1 2 interfaz serie


El acoplamiento "aparato de programacin - autmata programable" a travs de una interfaz serie puede realizarse de distintas maneras: Conexin directa con la CPU - a travs del cable de conexin estndar. Conexin con el aparato de programacin a travs del coordinador KOR C. El aparato de programacin se conecta al coordinador mediante el cable de conexin. De este modo ya no puede utilizarse la 1 interfaz serie. Conexin con el aparato de programacin a travs de un multiplexor 757 para aparatos de programacin. En el manual de sistema 135U/155U/2/ pueden consultarse los cables de conexin vlidos. Conexin con el aparato de programacin a travs de SINEC H1/ L2/L1 y "puente"; es posible interconectar un KOR C o un multiplexor para aparatos de programacin.

11 - 16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcionamiento paralelo de dos interfaces serie de PG

11.4 Funcionamiento paralelo de dos interfaces serie de PG


La segunda interfaz de la CPU 948 (SI 2) puede ser utilizada como interfaz con el aparato de programacin del mismo modo que la primera. Para poder acoplar el aparato de programacin a travs de esta interfaz se deber pedir adicionalmente el mdulo de interfaz del aparato de programacin (el n de referencia se encuentra en el manual del sistema 135U/155U /2/).

Mdulo de interfaz SI2 SI1 PG

PG

PG

Fig. 11-3

Utilizacin de la segunda interfaz como interfaz de PG

Todas las funciones del aparato de programacin pueden ser utilizadas con ambas interfaces. A continuacin se encuentran todas las informaciones necesarias para poder trabajar con aparatos de programacin u OPs utilizando simultneamente ambas interfaces.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 17

Funcionamiento paralelo de dos interfaces serie de PG Ejemplos de configuracin

CPU 948

CP 143

SI1 SI2

PG conectado va SINEC H1 y KOR C PG conectado directamente

"Puente"

SINEC H1

Fig. 11-4

Ejemplo de configuracin 1

CPU 948

SS 1 O P c o n e c t a d o d ir e c t a m e n t e ( p a r a m a n d o y o b s e r v a c i n ) SS 2 PG c o n e c t a d o d ir e c t a m e n t e ( p a r a p r o g r a m a c i n )

OP

PG

Fig. 11-5

Ejemplo de configuracin 2

11 - 18

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcionamiento paralelo de dos interfaces serie de PG

11.4.1 Puesta en funcionamiento

Para poder utilizar la segunda interfaz de la CPU 948 como interfaz del aparato de programacin se debe proceder de la siguiente manera:

Paso 1

Accin Montar el mdulo de interfaz del PG en la CPU 948. (Vanse las instrucciones al respecto en el anexo) Conectar el aparato de programacin a la interfaz serie SI2.

11.4.2 Servicio

En caso de emplear la segunda interfaz serie como interfaz del aparato de programacin, se dispondr en cada interfaz del total de funciones de la interfaz estndar del aparato de programacin, a menos que las funciones no se interfieran mutuamente, por lo que deben ser llamadas una tras otra. Es conveniente dividir las funciones del aparato de programacin en tres grupos para poder entender mejor las excepciones: Grupo Funciones de corta duracin Funciones de larga duracin Caractersticas Funciones que acaban despus de ejecutar una peticin (por ej. "Transferir", "Borrar", etc.) Funciones que ejecutan una cantidad fija de peticiones: - "Forzado", - "Control de elaboracin". Funciones que repiten una peticin hasta que son finalizadas por el usuario: - "Status mdulo", - "Status variables",, - "Forzado variables".

Funciones cclicas

Cuidado En el caso de las funciones cclicas y de larga duracin es necesario coordinar su llamada en ambos aparatos de programacin.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 19

Funcionamiento paralelo de dos interfaces serie de PG

La siguiente tabla muestra las funciones que no pueden ser ejecutadas paralelamente.

Tabla 11-2

Funciones que no se ejecutan paralelamente en dos PGs

En el primer PG se ejecuta la Esta funcin no es vlida en el funcin: segundo PG: "Forzado" "Control de procesamiento" una funcin "Status" una funcin "Status" una funcin "Status" "Status" en mdulos no procesados o de larga duracin toda funcin toda funcin "Forzado" "Control de elaboracin" "Borrado total" toda funcin

En caso de no respetar lo indicado, el segundo aparato de programacin dar un aviso de error, por ej.: "Funcin AS bloqueada". Se visualiza el mismo aviso o bien "Exceso de tiempo en intercambio de datos con AG" cuando la CPU 948 est procesando funciones del otro aparato de programacin que impiden el acceso del aparato durante la supervisin del tiempo. En este caso no se acepta la entrada efectuada y hay que repetirla una vez hayan finalizado las funciones del otro aparato de programacin.

Nota En caso de que difiera el volumen de funciones de los aparatos de programacin y OPs, la supervisin del tiempo y los avisos de error no sern iguales. Si en ambos aparatos de programacin se activa simultneamente la funcin "Extensin de memoria" pueden aparecer indicadores errneos.

Cuidado En caso de introducir, corregir o borrar mdulos en ambos aparatos de programacin simultneamente y de forma on line, hay que tener presente que los mdulos no estn protegidos del acceso por parte del otro aparato de programacin. Si se efecta un "Status" en un mdulo no arrancado o un "Status" en STOP, la otra interfaz quedar bloqueada para todas las funciones.

11 - 20

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcionamiento paralelo de dos interfaces serie de PG

11.4.3 Ejecucin en determinados estados operativos

Funcionamiento paralelo con funciones de corta duracin

En caso de trabajar simultneamente con aparatos de programacin en ambas interfaces, ambos aparatos de programacin intentarn ejecutar las funciones uno independientemente del otro. Mientras enven sus peticiones de forma alternada a la CPU, stas sern ejecutadas en el orden en que sean recibidas. Sin embargo, puede ocurrir que la CPU 948 reciba dos peticiones simultneas, o bien que reciba una peticin del segundo PG mientras se est ejecutando todava una peticin del primero. Puesto que el procesamiento simultneo no es posible, ambas peticiones sern ejecutadas una tras otra. No obstante, los tiempos de espera entre ambas suelen ser tan breves que el usuario apenas puede percibirlos. Por consiguiente, en el caso de peticiones simultneas, las operaciones se ejecutarn en el siguiente orden:

Us ua r io de l PG 1

CPU 9 4 8

Us ua r io de l PG 2

En t r a d a e n PG 1 p o r t e c la d o Pro c e s a r e n t r a d a 1 e n PG 1 Tra n sfe rir p e tici n 1 a la CPU Pro c e s a r p e t ici n 1 e n la CPU Tra n s f e r ir r e s u lta d o 1 a l PG 1 Pro c e s a r d a t o s r e s u lta d o 1 Vis u a liza r r e s u lta d o 1 e n PG 1

En t r a d a e n PG 2 p o r t e c la d o Pro c e s a r e n t r a d a 2 e n PG 2
* El PG 2 debe esperar aqu a * que la CPU haya terminado * de procesar la peticin 1. *

Tra n sfe rir p e tici n 2 a la CPU Pro c e s a r p e t ici n 2 e n la CPU Tra n s f e r ir r e s u lta d o 2 a l PG 2 Pro c e s a r r e s u lta d o 2 e n PG 2 Vis u a liza r r e s u lta d o 2 e n PG 2

Fig. 11-6

Ejecucin en caso de peticiones simultneas

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 programacin estn procesando simultneamente el mismo mdulo, o tambin que un aparato de programacin borre el mdulo que est procesando el otro. Por consiguiente se deber tener en cuenta en cada caso, en qu medida puede quedar afectado el comportamiento del otro aparato de programacin.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 21

Funcionamiento paralelo de dos interfaces serie de PG Funcionamiento paralelo con funciones de larga duracin

Las funciones de larga duracin "Forzado" y "Control de elaboracin" no pueden interrumpir ninguna otra funcin y tampoco pueden ser interrumpidas por otra funcin. Por lo tanto, tampoco pueden ser ejecutadas de forma paralela, es decir, que son tratadas en forma de bloque como una peticin estndar.

Funcionamiento paralelo con funciones cclicas

Las funciones cclicas pueden ser ejecutadas paralelamente a funciones cclicas o de corta duracin. El ejemplo siguiente muestra el orden de ejecucin estndar de la funcin "Status variables".

Usuario del PG 1 El PG 1 comunica a la CPU las variables que deben ser emitidas.

CPU 948

Usuario del PG 2

El PG 1 solicita los datos actuales.

El PG 1 solicita los datos actuales.

PG 2 activa la peticin. El PG 2 debe esperar a que la CPU est libre.

El PG 1 solicita los datos actuales.

Se procesa la peticin del PG 2. El PG 1 debe esperar a que la CPU est libre.

Ha finalizado la peticin del PG 2.

El PG 1 solicita los datos actuales.

Fig. 11-7

Tipica ejecucin paralela de una funcin cclica y una funcin de corta duracin

11 - 22

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcionamiento paralelo de dos interfaces serie de PG

Para que un segundo aparato de programacin pueda enviar su peticin a la CPU, se interrumpe la funcin "Status" entre dos solicitudes y se reanuda despus de haberse intercalado la peticin. Puesto que la funcin interrumpida necesita del rendimiento del sistema de la CPU, hay que repartirlo entre las dos funciones, por ej. en el caso de la funcin "Status variables", los datos a visualizar se actualizan a menor velocidad. Trabajando simultneamente con ambos aparatos de programacin, la ejecucin de las funciones se desarrollar como muestra la fig. 11-8. Esto tambin vale cuando se ejecutan funciones cclicas en ambos aparatos de programacin; ambos aparatos de programacin se reparten el acceso a la CPU.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 23

Funcionamiento paralelo de dos interfaces serie de PG

Usuario del PG 1 El PG 1 comunica a la CPU las variables que deben ser emitidas.

CPU 948

Usuario del PG 2

El PG 1 solicita los datos actuales.

El PG 1 solicita los datos actuales.

El PG 2 entrega la 1 peticin. El PG 2 debe esperar a que la CPU est libre.

El PG 1 solicita los datos actuales. El PG 1 debe esperar a que la CPU est libre.

Se procesa la 1 peticin del PG 2.

Ha finalizado la 1 peticin del PG 2. El PG 2 entrega la 2 peticin. El PG 1 solicita los datos actuales. Se procesa la 2 peticin del PG 2. El PG 1 debe esperar a que la CPU est libre.

Ha finalizado la 2 peticin del PG 2.

Fig. 11-8

Ejecucin paralela de dos funciones cclicas

11 - 24

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funcionamiento paralelo de dos interfaces serie de PG Particularidad en caso de ejecutar funciones cclicas en ambos aparatos de programacin

Si la funcin que ha ocasionado la interrupcin bloquea a la CPU ("Status" en un mdulo que no ejecuta) entonces tambin quedar bloqueada la funcin interrumpida. Esta continuar slo cuando haya finalizado la funcin que ha ocasionado la interrupcin. Cuando ambos aparatos de programacin funcionan simultneamente las operaciones se desarrollan de la siguiente manera:

Usuario del PG 1 El PG 1 comunica a la CPU las variables que deben ser emitidas.

CPU 948

Usuario del PG 2

El PG 1 solicita los datos actuales (el PG indica: "se ejecuta status").

El PG 1 solicita los datos actuales.

El PG 2 entrega la peticin (por ej. "status PB 9"). El PG 2 debe esperar a que la CPU est libre. Se procesa la peticin del PG 2. (El PG indica: "se ejecuta status").

El PG 1 solicita los datos actuales.

El PG 1 debe esperar a que la CPU est libre.

(El PG indica: no se ejecuta esta instruccin).

El PG 2 interrumpe "status"; la CPU procesa la solicitud de interrupcin.

Ha finalizado la peticin del PG 2. El PG 1 recibe nuevos datos.

Fig. 11-9

Ejecucin cuando una funcin bloquea la CPU 948

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 25

Funcionamiento paralelo de dos interfaces serie de PG Indicaciones generales

Si una interfaz emite "Status variables", "Forzado variables (en el indicador de status) o "Status" y en la otra interfaz se ejecuta "Comprimir memoria", "Borrar mdulo" o "Transferir mdulo" los indicadores de status pueden resultar errneos.

11 - 26

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones de PG va bus S5

11.5 Funciones de PG va bus S5


11.5.1 Aplicacin Las funciones de PG va bus S5 permiten cargar y comandar desde un PG 7xx los autmatas programables S5-155U con CPU 948 interconectados va SINEC H1. Con las funciones de PG va bus S5 es posible cargar la CPU 948 a una velocidad hasta ocho veces mayor que a travs de la interfaz del PG. La velocidad depender de la longitud de los mdulos a transferir. En modo multiprocesador tambin pueden utilizarse las funciones de PG va bus S5. Las funciones de PG va bus S5 son parte integrante del programa de sistema de la CPU 948.

Cuidado Las funciones de PG va bus S5 solamente pueden ser utilizadas alternativamente a las funciones de PG a travs de la 1 y 2 interfaz serie. En algunas funciones pueden quedar falsificados datos o mdulos en caso de ejecutarse de forma simultnea o anidada. En la CPU 948, los nmeros de interfaz 232 estn reservados para las funciones de PG va bus S5. Estos nmeros no deben ser utilizados a voluntad para los mdulos de comunicacin!

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 27

Funciones de PG va bus S5

La fig. 11-10 muestra un ejemplo de configuracin en modo multiprocesador.

S5-155U

C O R 9 2 3 C

C P 1 4 3

PG 7xx

SINEC H1
Fig. 11-10

Acoplamiento bus

Acoplamiento bus

Modo multiprocesador con un CP 143 (2 x CPU 948, 1 x CP 143)

no se parametriza la CPU

Para las funciones de PG va bus S5 no es necesario efectuar parametrizaciones en la CPU 948.

Requisitos tcnicos

Para utilizar las funciones de PG va bus S5 con la CPU 948 es imprescindible acoplar el PG y el AG a la red SINEC H1. Para ello se requiere: un PG 7xx con conexin SINEC H1 y software STEP 5 instalado, versin 6.3 (ST) 6.0 (MT) + disquete Delta para CPU 948. en el autmata programable (aparato central o ampliado EG 185) un procesador de comunicacin CP 143, a partir de la versin 06 (versin firmware 3.0) con nmero base de interfaz 232 (el nmero base se ajusta en el hardware mediante los puentes, y en el SYSID mediante COM 143).

11 - 28

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones de PG va bus S5

11.5.2 Funcionamiento de las funciones de PG va bus S5

Uso de pginas

El CP 143 dispone de cuatro pginas (interfaces) para la comunicacin con las CPUs. En caso de no utilizar las funciones de PG va bus S5, se dispone de todas las pginas para la comunicacin a travs de los mdulos de comunicacin (HTBs). En caso de utilizar las funciones va bus S5, las pginas del CP se dividen en dos pginas para mdulos HTB de usuario y dos pginas para funciones de PG. Las pginas para mdulos HTB de usuario pueden ser utilizadas como hasta ahora para las aplicaciones SINEC H1. Sin embargo, hay que tener en cuenta las limitaciones expuestas en el captulo 11.5.3. Las pginas para funciones de PG son utilizadas por el CP 143 y la CPU 948 para las funciones de PG va bus S5 y, por consiguiente, ya no estn disponibles para la comunicacin a travs de los mdulos de comunicacin.

Nmeros de interfaz (SSNR)

Las funciones de PG va bus S5 se activan automticamente en el CP 143 si, al parametrizar el CP, se ajusta como nmero base de interfaz 232 236 (puentes y SYSID!). Los nmeros de interfaz 232 a 239 quedan ocupados. Los nmeros de interfaz 240 a 247 estn reservados para posteriores ampliaciones (por ejemplo, CPs con 8 pginas/ interfaces).

232 233 234 235 236 237 238 239 . .

SINEC H1 SINEC H1

CP 1
Funciones de PG Funciones de PG SINEC H1 SINEC H1

CP 2
Funciones de PG Funciones de PG Reservados (8 pginas)

Fig. 11-11

Ocupacin de las interfaces de las funciones de PG va bus S5

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 29

Funciones de PG va bus S5 Parametrizacin del CP 143

En cuanto a la parametrizacin del CP 143, consultar el manual del CP 143/1/.

Cuidado Los nmeros de interfaz 232 (y siguientes) y 236 (y siguientes) no deben ser parametrizados en el CP 143, en caso de utilizarlo en combinacin con otras CPUs de SIMATIC. En caso de utilizar una CPU 948 con otros CPs no se podrn usar ilimitadamente los nmeros de interfaz 232 a 247.

Modo multiprocesador

Las funciones de PG va bus S5 tambin pueden utilizarse en la CPU 948 en modo multiprocesador. En caso de utilizar un solo CP 143 en el autmata programable S5-155U, de las funciones on line podrn ser utilizadas por dos CPUs (948). El CP 143 tambin puede utilizarse en el aparato de ampliacin (EG 185). En modo multiprocesador, la CPU 1 utiliza la pgina con SSNR 234, la CPU 2 la pgina con SSNR 235. Conectando un segundo CP 143 y parametrizndolo correspondientemente, ste queda reservado para las funciones on line va bus S5 con la CPU 3 y CPU 4 (con SSNR 238 y 239).

11 - 30

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones de PG va bus S5

11.5.3 Puesta en funcionamiento

Antes de la puesta en funcionamiento hay que considerar las siguientes opciones: En caso de utilizar el CP 143 exclusivamente para las funciones de PG va bus S5, no hay que efectuar otras parametrizaciones que las necesarias para SINEC H1. Despus de la CONEXION, las funciones de PG va bus S5 siempre estarn disponibles en la CPU 948, sin necesidad de que el CP 143 haya sido sincronizado con el mdulo HTB SYNCHRON (FB 125). Sin embargo, el selector RUN-STOP de la CPU se deber encontrar en la posicin RUN. En caso de que una CPU 948 est "vaca", puede ser puesta en funcionamiento a travs del bus S5, sin necesidad de ejecutar un BORRADO TOTAL. Despus de la CONEXION, la CPU 948 sincroniza automticamente las pginas que le hayan sido asignadas para las funciones de PG va bus S5 en el CP 143.

CP 143 - solamente para funciones de PG

Para la puesta en funcionamiento se debern efectuar los siguientes pasos:

Paso 1

Accin Ajustar en el CP 143 el nmero de interfaz (SSNR) (puentes): Elegir el SSNR de acuerdo con la configuracin hardware correspondiente (vase abajo). Obsrvense las explicaciones en /6/. Configuracin hardware posible 1 x CPU 948, 1 x CP 143 1 x CPU 948, 2 x CP 143 2 x CPU 948, 1 x CP 143 3 x CPU 948, 2 x CP 143 4 x CPU 948, 2 x CP 143 SSNR correspondiente del CP 143 232 232 en el 1er CP, 236 en el 2 CP 232 232 en el 1er CP, 236 en el 2 CP 232 en el 1er CP, 236 en el 2 CP

2 3 4

Insertar el CP 143 en el S5-155U (el atomata programable no deber estar conectado a la corriente!). Conectar el aparato de programacin a la interfaz de PG del CP 143 y cargar el programa COM. Ajustar en el SYSID del CP 143 con COM 143 el nmero de interfaz ajustado en el paso 1, as como la direccin de Ethernet.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 31

Funciones de PG va bus S5

Paso 5

Accin Cargar los datos de parametrizacin en el CP 143: Los datos de parametrizacin del CP 143 pueden registrarse - en un cartucho de memoria EPROM o - en la RAM del CP 143. Estos datos se pueden transferir a travs de la interfaz serie del PG 7xx. En cuanto a las operaciones necesarias para cargar los parmetros del CP 143 consltese /6/.

6 7 8

Ejecutar un borrado total en la CPU, desconectar y conectar de nuevo la tensin de red del autmata programable. Editar la ruta de la CPU 948 en la mscara de seleccin de bus de STEP 5. Seleccionar en la mscara de preajustes de STEP 5 la ruta de la CPU 948 va SINEC H1/CP 143.

Una vez efectuadas estas operaciones, estarn disponibles las funciones de PG va bus S5. A continuacin se puede proceder a cargar el programa de usuario y ejecutarlo o comprobarlo.

Funcionamiento alternativo utilizando la interfaz serie del PG

En un momento determinado, la CPU 948 solamente ejecuta una sola funcin de PG. Si se est ejecutando una funcin de PG, y al mismo tiempo se intentan activar otras funciones de PG desde un segundo aparato de programacin utilizando la interfaz serie de PG en este aparato de programacin, aparecer el aviso "Funcin AS bloqueada".

Indicaciones

Cuando se interrumpe una funcin de PG por haber accionado el selector RUN-STOP de la CPU de RUN a STOP, o bien a causa de un error, en la comunicacin va SINEC H1 se producen tiempos de espera > 15 s debidos al sistema. Si se efecta una operacin errnea en el PG (por ejemplo, desconexin del PG mientras se ejecuta una funcin de PG) puede ser necesario tener que volver a seleccionar las rutas.

11 - 32

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones de PG va bus S5 CP 143 - para funciones de PG y comunicacin va SINEC H1

Si se desea utilizar el CP 143 no slo para las funciones de PG va bus S5 sino tambin para la comunicacin va SINEC H1, adems de la parametrizacin mencionada en el apartado "CP 143 solamente para funciones de PG" se debern tener en cuenta otros ajustes y particularidades. Para la puesta en funcionamiento se debern efectuar los siguientes pasos:

Paso 1a8 9

Accin Los pasos 1 a 8 son idnticos a los expuestos en la opcin "CP 143 - solamente para funciones de PG". Programar en los OBs de arranque OB 20 y OB 22 la llamada al mdulo HTB SYNCHRON (FB 125) a fin de sincronizar el CP 143 para la comunicacin va SINEC H1 en caso de NUEVO ARRANQUE MANUAL/AUTOMATICO y REARRANQUE AUTOMATICO. El mdulo HTB SYNCHRON slo deber ser llamado cuando se vaya a utilizar la interfaz, puesto que se suprimir la conexin con el PG, debiendo ser restablecida posteriormente de forma manual.

Uso de pginas para la comunicacin por mdulos de comunicacin

La siguiente figura muestra cmo quedan ocupadas las pginas del CP 143 por las funciones de PG va bus S5. Las pginas libres para mdulos HTB de usuario pueden ser utilizadas por las CPU 1 a 4 para la comunicacin va SINEC H1.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 33

Funciones de PG va bus S5

1er CP 143 CPU 1


SSNR 232 Pgina para HTB de usuario CPU 948 SSNR 233 Pgina para HTB de usuario

PG
SSNR 234

CPU 2

Pgina para funcin de PG

CPU 948

SSNR 235

Pgina para funcin de PG

o 2 CP 143

CPU 3
SSNR 236 Pgina 1) para HTB de usuario Pgina 1) para HTB de usuario

CPU 948

SSNR 237 Fin de ruta SSNR 238

CPU 4

Pgina para funcin de PG

CPU 948

SSNR 239

Pgina para funcin de PG

1)

La comunicacin con la CPU 3 y CPU 4 no es posible con HTBs de usuario

Fig. 11-12

Rutas entre PG y CPU 948 y ocupacin de las pginas del CP 143

Particularidades de la comunicacin por pgina para HTBs de usuario

Mediante la sincronizacin del CP 143 para comunicacin (llamada al FB 125 con SSNR 232, 233 236, 237) el CP 143 establece las conexiones existentes. Las rutas deben ser restablecidas, lo que ocasiona tiempos de espera en el PG (incluso pulsando la tecla de interrupcin). La seleccin de las rutas se debe repetir en el PG. Por este motivo no es posible aplicar a los OBs de arranque la funcin de PG "Status mdulo" va bus S5 cuando se utilicen pginas para HTBs de usuario para fines de comunicacin. Por ello slo se podr llamar al FB 125 (HTB SYNCHRON) durante un NUEVO ARRANQUE o durante un arranque tras CONEXION (NUEVO ARRANQUE o REARRANQUE).

11 - 34

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones de PG va bus S5

11.5.4 Indicacin de errores

Cada una de las mximo 4 CPUs (CPU 948), en las que se activan las funciones de PG va bus S5 deposita indicadores en su zona BS y BT cuando se produce un error en las funciones de PG va bus S5. Estos indicadores se componen de un byte de error de parametrizacin (PFE) por cada lnea de comunicacin posible y de una palabra indicadora (ANZW) para indicar la ejecucin actual de los mdulos de emisin y de recepcin. Estos indicadores corresponden en gran parte a los de los mdulos de comunicacin.

BS 50

En la palabra de datos de sistema BS 50 (direccin E F032H) estn registrados los indicadores PAFE de los errores que se han producido durante la sincronizacin de las funciones de PG.

Evaluacin de PAFE en BS 50 El byte PAFE se encuentra siempre en el byte alto del BS 50.
N CPU 1 2 3 4 BS 50 byte alto PAFE SSNR 234 PAFE SSNR 235 PAFE SSNR 238 PAFE SSNR 239 BS 50 byte bajo -

Significado de los indicadores PAFE

Se indican todos los errores que aparecen en relacin con el CP 143. Pueden aparecer los indicadores PAFE siguientes: Valor PAFE 00H 71H 81H 91H A1H B1H C1H D1H Significacin Ningn error Interfaz (pgina) no existe Interfaz no accesible Interfaz saturada Interfaz ocupada por otra CPU Nmero de peticin o tamao del bloque no vlidos (FB SYNCHRON) Interfaz no reacciona o no reacciona a tiempo Otros errores de interfaz, tambin indicador de error del CP

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 35

Funciones de PG va bus S5

Significado del indicador 71H: El indicador 71H significa que la pgina en cuestin no existe. Si aparece este indicador no se podrn utilizar las funciones de PG va bus S5. En este caso se deber comprobar la ocupacin de las interfaces del CP 143: debern estar ajustados los nmeros de interfaz 232 (y siguientes) 236 (y siguientes) (en el puente y en SYSID!)

Zona BT

Slo cuando estn presentes las pginas para las funciones de PG y se haya establecido la conexin con el CP 143, se crear en la zona BT de la CPU 948 un bloque de informacin de 16 palabras, presentando las siguiente estructura:

Nota Mientras no se establezca ninguna conexin con el CP 143 (PAFE = 71), por ejemplo, porque no existe ninguna pgina con SSNR 232 (y siguientes) 236 (y siguientes) no se depositarn informaciones adicionales en la zona BT.

Direccin E F2E8H E F2E9H E F2EAH E F2EBH E F2ECH E F2EDH E F2EEH E F2EFH E F2F0H E F2F1H E F2F2H E F2F3H E F2F4H E F2F5H E F2F6H E F2F7H

Direccin de datos de la CPU al PG para SSNR 234 238 Direccin de datos de la CPU al PG para SSNR 235 239 Reservado Reservado Direccin de datos del PG a la CPU para SSNR 234 238 Direccin de datos del PG a la CPU para SSNR 235 239 Reservado Reservado Reservado PAFE 234 Reservado Reservado Reservado PAFE 235 Reservado Reservado Reservado PAFE 238 Reservado Reservado Reservado PAFE 239 Reservado Reservado

BT 232 BT 233 BT 234 BT 235 BT 236 BT 237 BT 238 BT 239 BT 240 BT 241 BT 242 BT 243 BT 244 BT 245 BT 246 BT 247

11 - 36

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Funciones de PG va bus S5

Nota La zona BT se rearma al efectuar un BORRADO TOTAL! En caso de utilizar las funciones de PG va bus S5, la zona BT quedar ocupada como arriba descrito y, por consiguiente, no estar disponible para otros programas (por ejemplo, FBs estndar). Tngase en cuenta al configurar la instalacin!

ANZW

ANZW contiene el estado actual de los mdulos de emisin y recepcin. Los bits de ANZW tienen el siguiente significado:

Byte alto N bit 15 14 13 12 11 10 9 8 Byte bajo 7 6 5 4 3 2 1 0 No ocupado Recepcin de datos concluida Transferencia de datos concluida 1 : error Peticin concluida con error Peticinn concluida sin error 0 : SEND habilitado 1 : SEND bloqueado
1

Ocupacin

No ocupados

0 : RECEIVE bloqueado 1 : RECEIVE habilitado

1)

para funciones de PG a travs del bus S5

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

11 - 37

Funciones de PG va bus S5

11 - 38

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndices

12

Indice- Captulo 12
Apndice 1: Ajuste de los puentes para las interrupciones de sistema. . . . . . . . . . . . . . 12 - 4 Apndice 2: Montaje y desmontaje del mdulo de interfaz . . . . . . . . . . . . . . . . . . . . . . 12 - 5 Apndice 3: Datos tcnicos de la CPU 948 y CPU 928B . . . . . . . . . . . . . . . . . . . . . . . 12 - 7 Apndice 4: Identificadores de resultado de determinados OBs de funciones especiales en AKKU 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 -10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 1

Indice

12 - 2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndices

12
Este captulo contiene informaciones adicionales referentes a la CPU 948, tales como los ajustes de los puentes para las interrupciones de sistema, indicaciones adicionales referentes al montaje y desmontaje del mdulo de interfaz del aparato de programacin, as como una comparativa de los tiempos de ejecucin de la CPU 948, CPU 946/947 y CPU 928B. Finalmente se encuentran indicadores de resultado de determinados OBs de funciones especiales.

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 3

Apndice 1: Ajuste de los puentes para las interrupciones de sistema

Apndice 1: Ajuste de los puentes para las interrupciones de sistema


Para el procesamiento Apndice 1: Ajuste de controlado los puentespor para interrupciones las interrupciones de la de CPU sistema 948 se dispone de 4 interrupciones de sistema: INT A/B/C/D (dependiendo del puesto de conexin de la CPU, vase el manual del sistema /2/, INT E, INT F y INT G.

Las interrupciones que se deseen utilizar deben ser habilitadas mediante los puentes adjuntos. La conexin de los puentes est situada en la placa base, encima de la ranura para la Memory Card. La siguiente figura muestra su posicin exacta:

INTG INTF INTE INTA/B/C/D

Fig. 12-1

Posicin de la conexin de los puentes

12 - 4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndice 2: Montaje y desmontaje del mdulo de interfaz

Apndice 2: Montaje y desmontaje del mdulo de interfaz


Si se desea Apndice 2: utilizar Montaje uny mdulo desmontaje de interfaz, del mdulo en primer de interfaz lugar hay que montarlo en la CPU (fuera del aparato central).

Cuidado Desconectar la tensin de red del autmata programable antes de extraer la CPU.

Montaje
Nota Los puentes integrados en el mdulo de interfaz vienen de fbrica con el ajuste correcto. En caso de que surgieran problemas despus del montaje, comparar el ajuste de los puentes con la representacin de los mismos en el manual del sistema /2/.

Para montar el mdulo hay que efectuar los siguientes pasos: Paso 1 2 3 4 Accin Desconectar el autmata programable. Extraer la CPU del aparato central. Aflojar los dos tornillos que sujetan la tapa de la ranura prevista para el mdulo y retirar la tapa. Introducir el mdulo por la parte frontal hasta que quede conectado (los componentes tienen la misma orientacin que los de la CPU). Fijar el mdulo con los dos tornillos que sujetaban la tapa. Insertar la CPU en el aparato central. Conectar el autmata programable.

5 6 7

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 5

Apndice 2: Montaje y desmontaje del mdulo de interfaz Desmontaje

Para desmontar el mdulo hay que efectuar los siguientes pasos: Paso 1 2 3 4 Accin Desconectar el autmata programable. Extraer la CPU del autmata programable. Aflojar los dos tornillos que sujetan el mdulo y extraerlo de su emplazamiento. Montar otro mdulo (como descrito anteriormente) o tapar la ranura del mdulo con la tapa correspondiente. Utilizar los tornillos de sujecin del mdulo. Insertar la CPU en el aparato central. Conectar el autmata programable

5 6

Nota Debido a que el mdulo est atornillado a la CPU, los impulsos parsitos se descargan por el apantallamiento de la CPU. Por este motivo, es imprescindible utilizar la CPU slo cuando est cerrada la ranura del mdulo de interfaz (mediante la tapa o el mdulo).

12 - 6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndice 3: Datos tcnicos de la CPU 948 y CPU 928B

Apndice 3: Datos tcnicos de la CPU 948 y CPU 928B

Apndice 3: Datos tcnicos de la CPU 948 y CPU 928B Operacn/Procesamiento CPU 948 CPU 928B Tiempos de ejcucin tpicos para instrucciones de bits: con M, E, A D Operando formal 0,18 s 0,7 s 0,91 s Tiempos de ejcucin tpicos para instrucciones de palabras Operaciones de carga L MB (byte) L MW (palabra) L MD (palabra doble) Aritmtica de coma flotante Aritmtica de coma fija 0,18 s 0,5 s 0,71 s 0,55 ... 3,8 s 3,3 ... 6,3 s 0,81 s 0,9 s 1,6 s 0,94 ... 10,4 s 9,1 ... 15,6 s 0,57 s 3,4 s 2,4 s

Procesamiento cclico (modo monoprocesador) Carga base al llamar OB 1/FB 0 Tiempo aadido en caso de actualizacin de la imagen de proceso, en funcin de la cantidad de bytes E/S (n) siendo 0 < n 128 Tiempo aadido en caso de transferencia de marcas de acoplamiento, en funcin de la cantidad de marcas de acoplamiento (n) siendo 0 < n 256 Tiempo aadido en caso de procesar temporizadores, en funcin de la longitud de los bloques de tiempo (ZBL) ZBL = 0 ZBL 0 n = cantidad de temporizadores en ejecucin (escala de tiempo: 10 ms) 65/- s n 64: 64 s + n 2,3 s n > 64: 92 s + n 2,3 s n 64: 64 s + n 2,1 s n > 64: 92 s + n 2,1 s cada 10 ms 11,6 s 11,6 s + ZBL 0,32 s 104/106 s E: 14 s + n 1,1 s A: 5 s + n 4,1 s E: 14 s + n 1,4 s A: 5 s + n 4,3 s

cada 10 ms 10 s 16 s + ZBL 0,2 s (no hay diferencia entre los temporizadores en ejecucin y los temporizadores sin ejecutar

Procesamiento controlado por alarma Prolongacin del tiempo de ciclo por anidamiento de un OB 2 vaco (sin operaciones STEP 5) en un lmite de mdulo Tiempo de reaccin 262 s 175 s 300 s 270 s

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 7

Apndice 3: Datos tcnicos de la CPU 948 y CPU 928B

Operacn/Procesamiento

CPU 948

CPU 928B

Porcesamiento controlado por tiempo Prolongacin del tiempo de ciclo por anidamiento de un OB 13 vaco (sin operaciones STEP 5) en un lmite de instruccin Base de tiempo de llamada al programa controlado por tiempo (alarmas temporizadas OB 10 a OB 18] 287 s 310 s para el primer OB de alarma temporizada 170 ms por cada OB adicional que deba ejecutarse al mismo tiempo 10, 20, 50, 100, 200, 500 ms, 1, 2, 5 seg.

Base de tiempo variable de 1 ... 255 ms. Indicacin referente a 10 ms: 10, 20, 50, 100, 200, 500 ms, 1, 2, 5 seg. 10, 20, 40, 80, 160, 320, 640 ms, 1,28, 2,56 seg. cada minuto, cada hora, cada da, cada semana cada mes, cada ao, una vez 1 ms

Tiempos de resolucin para alarma temporizada controlado por reloj (OB 9)

cada minuto, cada hora, cada da, cada semana cada mes, cada ao, una vez 1 ms

Tiempos de resolucin para alarma de retardo (OB 6)

Supervisin del tiempo de ciclo Ajuste por defecto regulable entre Disparable (trigger) 200 ms 1 ... 2550 ms s Capacidades de memoria Capacidad del cartucho de memoria de usuario (en K byte) Capacidad de la memoria de mdulos de datos (DB RAM, en K byte) 640 1664 64 46,6 aprox. 150 ms 1 ... 13000 ms s

Temporizadores y contadores, marcas Cantidad de temporizadores y contadores Cantidad de marcas 256 respectivamente 2048 marcas +32768 marcas S 256 respectivamente 2048 marcas +8192 marcas S

12 - 8

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndice 4: Identificaciones de resultado de determinados OBs en el AKKU 1

Apndice 4: Identificaciones de resultado de determinados OBs de funciones especiales en el AKKU 1


Identificaciones de byte en AKKU-1-LL
Apndice AKKU 1 4: Identificaciones de resultado de determinados OBs en el Las identificaciones de byte en parte son utilizadas conjuntamente por distintos OBs de funciones especiales. Su significado depende por lo tanto del OB llamado. OB FE OB 124 AKKU-1-LL 01H 45H 47H 4DH Significado Funcin ejecutada correctamente Error: Clase de mdulo no vlida Mdulo no existente Funcin on line COMPRIMIR MEMORIA activada Advertencia: Conflicto con una funcin on line (excepto "Comprimir memoria") Los 10 ms de espera an no han transcurrido Funcin ejecutada correctamente Error: Mdulo ya existe Espacio de memoria insuficiente Longitud del mdulo no vlida Clase de mdulo no vlida Funcin on line COMPRIMIR MEMORIA activada Advertencia: Conflicto con una funcin on line (excepto "Comprimir memoria") Los 10 ms de espera an no han transcurrido Funcin ejecutada correctamente Error: N de funcin no vlido Puntero en AKKU-1-L (n marca) no vlido Tipo y n de mdulo no vlidos o falta el mdulo DB/DX Falta la 1 palabra de identificacin (n DW errneo) de la palabra de datos indicada o la lista de direcciones contiene una palabra de identificacin errnea N de la lista de direcciones no vlido Llamada de funcin no admisible en este nivel de procesamiento

8DH 8EH OB 125 01H 42H 43H 44H 45H 4DH

8DH 8EH OB 126 01H 02H 03H 04H 05H

06H 07H

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 9

Apndice 4: Identificaciones de resultado de determinados OBs en el AKKU 1

OB FE OB 223

AKKU-1-LL 01H 02H 03H 04H 01H 41H 43H 48H 4AH 4BH 4CH 4DH 4EH 8DH 8EH

Significado Modos de arranque idnticos Error interno de sistema Modos de arranque distintos Modo monoprocesador: no es posible comparar los modos de arranque Funcin ejecutada correctamente Error: Encabezamiento de mdulo en Memory Card no vlido Espacio de memoria insuficiente DB fuente no existe N o tipo de mdulo no vlido/DB fuente N o tipo de mdulo no vlido/DB destino DB destino ya existe en memoria de usuario Funcin on line COMPRIMIR MEMORIA activada Falta Memory Card Advertencia: Conflicto con una funcin on line (excepto COMPRIMIR MEMORIA) Los 10 ms de espera an no han transcurrido

OB 254/ 255

12 - 10

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndice 4: Identificaciones de resultado de determinados OBs en el AKKU 1 Identificaciones de palabra en AKKU-1-L

Las identificaciones de palabras se utilizan una sola vez (salvo en una excepcin). De ah que la tabla siguiente est clasificada segn los valores de las identificaciones. Identif. en Indicacin AKKU-1-L OB FE: 8D01H 8D02H 8E01H 8E02H 8EFFH OB 142 OB 141
2)

Significado N de funcin no vlido en AKKU-2-L Uno de los bits reservados en AKKU 1 es 1 1) N de funcin no vlido en AKKU-2-L
1)

8F01H 8F02H 9601H 960FH 9611H 9612H 9613H 9614H 9615H 9621H 9622H 9623H 9624H 9625H 9626H 9627H 9628H 9629H

OB 143

Uno de los bits reservados (n 4 a 15) en AKKU 1 es 1 1) Modo de operacin errneo (p.ej. cuando se va a bloquear la alarma de proceso y el DX 0 contiene el parmetro "Byte Entrada 0 Alarma proceso = si" N de funcin no vlido en AKKU-2-L
1)

OB 150

Uno de los bits reservados en AKKU 1 es 1 1) Mdulo de datos no cargado Llamada mltiple al mdulo N de funcin no vlido Tipo de zona de direcciones no vlido N de mdulo de datos no vlido "N de la 1 palabra del campo de datos" no vlido Long. mdulo de datos < 4 palabras Ao no vlido en campo de datos Mes no vlido en campo de datos Da del mes no vlido en campo de datos Da de semana no vlido en campo de datos Hora no vlida en campo de datos Minutos no vlidos en campo de datos Segundos no vlidos en campo de datos 1/100 segundos en campo de datos no = 0 Formato hora no coincide con ajuste en OB 151

1)

el valor errneo est depositado en el AKKU 1

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 11

Apndice 4: Identificaciones de resultado de determinados OBs en el AKKU 1

Identif. en Indicacin AKKU-1-L OB FE: 9701H 970FH 9710H 9711H 9712H 9713H 9714H 9715H 9721H 9722H 9723H 9724H 9725H 9726H 9727H 9728H 9729H 972AH 990FH 9910H 9911H 9921H B401H B410H B411H OB 151

Significado Mdulo de datos no cargado Llamada mltiple al mdulo Modo de operacin errneo ("Byte Entrada 0 Alar. Proc. = si") N de funcin no vlido Tipo zona direcciones no vlido N del mdulo de datos no vlido "N de la 1 palabra del campo de datos" no vlido Long. mdulo de datos < 4 palabras Ao no vlido en campo de datos Mes no vlido en campo de datos Da del mes no vlido en campo de datos Da de semana no vlido en campo de datos Hora no vlida en campo de datos Min. no vlidos en campo de datos Seg. no vlidos en campo de datos 1/100 segundos en campo de datos no = 0 Formato hora no coincide con ajuste en OB 121/OB 150 Tipo de peticin no vlido Llamada mltiple al mdulo Modo de operacin errneo ("Byte Entrada 0 Alarma Proceso = si) N de funcin no vlido Tiempo de retardo no vlido No hay ningn mdulo de datos abierto. El nmero de desplazamiento V no es mltiplo de 16. a) El nmero de deplazamiento V es demasiado alto; la nueva posicin de la ventana sobrepasara el fin del mdulo. b) El nmero de desplazamiento V es negativo. Mdulo no existe N de mdulo incorrecto Identif. del mdulo incorrecta

OB 153

OB 180

B501H B502H B503H

OB 181

12 - 12

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Apndice 4: Identificaciones de resultado de determinados OBs en el AKKU 1

Identif. en Indicacin AKKU-1-L OB FE: B601H B60FH B611H B612H B613H B621H B622H B623H B624H B625H B626H B627H B628H B629H B62AH B62BH B62CH F001H F00FH F101H F102H F103H F104H F105H F106H F107H F108H F109H F001H OB 182 (cont.) OB 182

Significado Mdulo de datos no cargado Llamada mltiple al mdulo Escritura errnea del campo de datos Tipo de zona dir. no vlido N de mdulo de datos no vlido "N de 1 pal. de datos" no vlido "Tipo de DB fuente" no vlido "N de DB fuente" no vlido "N de la 1 pal. de datos a transferir en el DB fuente" no vlido Longitud DB fuente en el encabezamiento < 5 palabras "Tipo DB destino" no vlido "N DB destino" no vlido "N de la 1 palabra de datos a escribir en DB destino" no vlido Longitud DB destino en encabezamiento < 5 palabras "Cantidad de palabras de datos a transferir" no vlida (= 0 > 4091) DB fuente demasiado corto DB destino demasiado corto N de funcin no vlido Llamada mltiple al mdulo Ao no vlido Mes no vlido Da no vlido Da de semana no vlido Hora no vlida Minutos no vlidos Segundos no vlidos 1/100...1/10 segundos no vlidos Formato hora no coincide con ajuste en OB 151 N de funcin no vlido

OB 121

OB 122

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

12 - 13

Apndice 4: Identificaciones de resultado de determinados OBs en el AKKU 1

12 - 14

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indices

13

Indice - Captulo 13
Lista de abreviaturas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A - 1 Indice alfabtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indice - 1

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

13 - 1

Indice

13 - 2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Lista de abreviaturas

(El significado de las abreviaturas correspondientes a la PILA DE INTERRUPCIONES (USTACK) se explica en el captulo 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 0 AWL ANZW BASP BCD BR BSTACK CP CPU DB DBA DBL DX EG EPROM ERAB FB FUP FX IM INT IP

Error de direccionamiento Autmata 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") Lista de instrucciones Palabra indicadora Bloqueo de salidas (seal en bus S5) Nmero decimal en cdigo binario Registro base de direcciones Pila de mdulos Procesador de comunicacin central processing unit, procesador central, tarjeta central (ZBG) Mdulo de datos Direccin inicial del mdulo de datos (en registro 6) Longitud del mdulo de datos (en registro 8) Mdulo de datos ampliado Aparato de ampliacin erasable progammable read only memory (memoria programable y borrable slo lectura) Primera consulta (indicador bit) Mdulo de funciones Esquema de funciones Mdulo de funciones ampliado Interface Modul (mdulo de interfaz) Interrupcin (de sistema) Tarjeta de E/S inteligente

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

A-1

Lista de abreviaturas

KB KDB KOP KOR KZU LED NAU OB ODER OVFL OVFLS PA PAA PAE PAFE PARE PB PEU PG QVZ RAM SAZ SB SPU STATUS STS SUF STUEB STUEU TRAF USTACK VKE ZG ZYK

Llamada de un mdulo de datos no cargado Apertura de un mdulo de datos DB/DX no cargado Esquema de contactos Tarjeta coordinadora Desbordamiento de la pila de parntesis light-emitting diode (diodo luminoso) Fallo de la tensin de red Mdulo de organizacin O (indicador bit) Overflow (desbordamiento) (indicador palabra) Overflow (desbordamiento) memorizado (indicador palabra) Imagen de proceso Imagen de proceso de las salidas Imagen de proceso de las entradas Byte de error de parametrizacin Error de paridad Mdulo de programa Fallo de la tensin de red del aparato de ampliacin Aparato de programacin Retardo en acuse de recibo random-accesss memory (memoria de lectura/escritura) Contador de direcciones STEP Mdulo de pasos Procesador del sistema operativo Estado (indicador bit) Instruccin de parada (stop) Error de sustitucin Desbordamiento de la pila de mdulos Desbordamiento de la pila de instrucciones Error de transferencia o carga Pila de interrupciones Resultado de combinacin (=lgico) Aparato central Error de ciclo

A-2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice alfabtico

Indice alfabtico
A Accesos a la DW 255 9-15 Accesos a la memoria a travs de la direccin de AKKU 1 9-8 a travs del registro BR 9-22 generalidades 9-4 Acoplamiento PG-AG a travs de interfaz serie 11-16 Acumuladores 3-15, 6-26 ADF (error de direccionamiento) 5-26 ALARMA DE PROCESO/INTERRUPCIONES 4-29 Alarma de retardo 4-29, 4-33 - 4-34, 6-50 Alarma temporizada controlada por reloj 4-29, 4-33, 4-35, 6-43 Alarmas de proceso bloquear 3-72 desbloquear 3-72, 4-45 Alarmas de proceso mediante byte de entrada 0 generalidades 4-41 interfaces con el usuario 4-41 Alarmas temporizadas 4-29, 7-8 cclicas 4-29, 4-33, 4-37 Anlisis de errores 5-8 Anidamiento de niveles de procesamiento 4-6 Aptitudes de la CPU 948 1-4 ARRANQUE efectuar 4-17, 4-19 generalidades 3-11, 4-16 interrupciones 4-28 Arranque en caliente rearranque automtico ampliado 4-27 Autotest 5-34 activar/desactivar tests 5-37 bits de control 8-40 informaciones de errores 5-39 tratamiento de errores 5-38 AWL (lista de instrucciones) 2-4

C Causas de error 5-23 CICLO 3-11, 4-30 interfaz con el usuario OB 1 4-31 nivel de procesamiento 4-29 puntos de interrupcin 4-31 Cdigo de operacin 2-6 Colisin de alarmas temporizadas 4-39 Combinaciones 3-50 binarias 3-19 digitales 3-50 Comparar modos de arranque 6-64 COMPRIMIR MEMORIA 2-15 Comunicacin cclica 4-9 Comunicacin en multiprocesamiento 6-62 almacenamiento intermedio de datos 10-17 ejecucin 10-15 ejemplos de aplicacin 10-53 emitir datos 10-40 identificacin de emisor/receptor 10-16 inicializar 10-33 lista de asignaciones 10-37 modos de operacin 10-35 procesamiento paralelo 10-22 recibir datos 10-47 unidad de transferencia 10-15 Conjunto de operaciones 2-4 Contadores Z 1-13 Corregir mdulos 2-15 CP 143 11-28 parametrizar 11-30 Crear mdulos 6-17

D Datos del sistema DBA (direccin inicial del mdulo de datos) DBL (longitud del mdulo de datos) Decrementar 8-15 9-11 9-13 3-66

B Bits de control 5-5, 5-9 - 5-10 Bloque de identificacin del AG 8-42 Bloqueo de alarmas 6-12, 6-29 BORRADO TOTAL 4-14 Borrar mdulos 6-14

E Elemento operando Elemento operante ERAB (primera consulta) Errores en autotest 2-7 2-6 3-16 5-33

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice - 1

Indice alfabtico

Estructura de la zona de memoria Evitar errores Exponente vase nmero de coma flotante

8-4, 8-7 5-4

I Imagen de proceso actualizar 4-29 de entradas (PAE) 1-5 de las entradas (PAE) 1-11 de las salidas (PAA) 1-11 de salidas (PAA) 1-5 definir y transferir 6-20 generalidades 1-11, 3-13 Incrementar 3-66 Indicador LED 4-12 - 4-13, 5-5 Indicadores de resultado ERAB 3-16, 3-20 ANZ 1 y ANZ 0 3-18, 3-61 generalidades 3-16 ODER (O) 3-17 OVFL 3-17 OVFLS 3-17 STA 3-20 STATUS 3-17 VKE 2-7, 3-17, 3-20 Informaciones sobre errores 5-5 Interfaces con el usuario para alarma de retardo 4-34 para alarma temporizada controlada por reloj 4-35 para alarmas de proceso 4-41 para alarmas temporizadas 4-38 para el arranque 4-24 para interrupciones 4-44 para procesamiento cclico 4-31 Interfaz con el programa de sistema 1-8, 1-10, 2-18 Interrupciones ajuste de los puentes 12-4 ajuste de puentes 4-43 generalidades 4-43 Interrupciones de sistema 4-32, 4-43, 7-4, 7-9 vase tambin interrupciones

F Fecha 6-38 FEDBX (error en E DB/EX DX) 5-32 Funcionamiento de la CPU 1-5 Funcionamiento paralelo de interfaces serie funciones cclicas 11-19, 11-22 funciones de corta duracin 11-19, 11-21 funciones de larga duracin 11-19, 11-22 Funcionamiento paralelo de interfaz serie 11-17 puesta en funcionamiento 11-19 Funciones de PG va bus S5 11-27 ejemplo de configuracin 11-28 indicadores 11-35 modo multiprocesador 11-30 nmero de interfaz 11-29 puesta en funcionamiento 11-31 requisitos tcnicos 11-28 uso de pginas 11-29 Funciones del PG generalidades 11-4 llamada y mando 11-5 Funciones especiales error en el procesamiento de funciones especiales 6-6 generalidades 6-4 interfaces de las funciones especiales 6-5 llamada 6-5 FUP (plano de funciones) 2-4

G GRAPH 5 2-5

H K Herramientas de programacin Hora Hora del sistema 1-18 6-38 6-8, 6-38 KB (llamada a mdulos no cargados) KDB (apertura de DB/DX no cargados) KOP (plano de contactos) 5-24 5-24 2-4

Indice - 2

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice alfabtico

L Lenguaje de programacin C con compilador S5-C GRAPH 5 SCL STEP 5 Lista de asignaciones

1-18 1-18 1-18 1-18, 2-4 2-7, 2-24

M Mantisa vase nmero de coma flotante Marcas utilizacin mltiple 4-46 Marcas de acoplamiento ajuste/manipulacin de los puentes 10-5 generalidades 3-13, 10-5 intercambio de datos a travs de las marcas 10-5 transferencia de marcas de acoplamiento 10-8 Marcas de trabajo 10-53 Marcas M 1-12, 10-23 Marcas S 1-12 Mscara del PG para generar el DB 1 10-10 para parametrizar el DX 0 7-14 Memoria de usuario 1-14, 3-10 organizacin 8-10 Memoria global acceso 9-25 generalidades 9-4 Memoria local acceso 9-24 generalidades 9-4 Memory Card 3-10 Modificar preajuste 1-8 Modo multiprocesador 10-13 comunicacin en multiprocesamiento 6-62 intercambio de datos a travs de mdulos de comunicacin 10-8 intercambio de datos entre CPUs y CPs 10-7 mecanismos de comunicacin 10-4 modo "test" 10-14 programar 10-9 Modos de operacin 7-4

Mdulo anidamiento 3-5, 3-8 anteencabezamiento de mdulo 2-14, 2-35 cuerpo de mdulo 2-13, 2-24, 2-36 encabezamiento de mdulo 2-13, 2-24, 8-12 generalidades 2-6 identificacin de mdulo 2-36 lista de direcciones 3-8, 8-13 llamadas a mdulos 2-16, 3-8 nmero de mdulo 2-12, 2-26, 2-36, 3-33 operandos formales (parmetros del mdulo) 2-27 tipo de mdulo 2-12, 2-26 Mdulo de datos DB 0 2-41, 3-8 Mdulo de datos DB 1 2-41 crear 10-9 Mdulo de datos DX 0 2-41, 7-4 estructura 7-5 parmetros 7-8 Mdulo de datos DX 1 2-41 Mdulo de datos DX 2 2-41 Mdulo de interfaz de PG 11-17 desmontaje 12-6 montaje 12-5 Mdulos de datos generalidades 1-13 Mdulos de datos (DB/DX) abrir 2-38 comprobar 6-57 copiar de la Memory Card 6-65 copiar/duplicar 6-65 crear 3-33 estructura 2-35 generalidades 2-13, 2-35 programar 2-37 validez 2-38 Mdulos de funciones (FB/FX) estructura 2-24 generalidades 2-13, 2-23 llamar y parametrizar 2-25, 2-28 mdulos de funciones estndar 2-23, 2-33 programar 2-25 Mdulos de organizacin (OB) generalidades 2-12, 2-16 OBs de funciones especiales 2-22, 6-4 para el control del arranque 2-20 para el tratamiento de errores 2-20 para interfaces con el usuario 2-18 para la comunicacin en STOP PARCIAL 2-20 Mdulos de pasos (SB) 2-12, 2-16 Mdulos de programa (PB) 2-12, 2-16

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice - 3

Indice alfabtico

N NAU (fallo de la tensin de red) Niveles de procesamiento generalidades Nomenclatura de los acumuladores NUEVO ARRANQUE Nmero de biblioteca Nmeros binarios Nmeros de coma fija Nmeros de coma flotante Nmeros decimales Nmeros duales Nmeros en cdigo BCD 4-19, 4-28 4-4 4-6, 6-32 6-5 4-21 2-36 2-8 2-9 2-9 2-8 2-8 2-11

P Palabra de datos 1-13, 2-35 - 2-36, 2-39 Palabras de datos de sistema ocupacin de los bits 8-18 Parametrizacin del DX 0 1-8 Parmetro 2-6 PARE (error de paridad) 5-28 Periferia distribucin de la zona de direcciones 8-8 tarjetas 1-11 zona P 1-11 zona Q 1-11 Peticin de tiempo 4-35, 6-43 Pila de interrupciones (USTACK) contenido 5-14 indicadores 5-15 informacin de error 5-5 informaciones en la pila USTACK 5-15 salida 5-6, 5-9 Pila de mdulos (BSTACK) 5-5 evaluacin 5-7 salida 5-6 Preajuste del programa de sistema 1-8 modificar 7-4 Prioridad 1-6, 4-5, 4-7, 4-33, 4-42, 4-44, 7-10 Procedimiento en la programacin 1-15 Procesadores de comunicacin (CPs) 10-7 Procesamiento cclico 1-5, 1-16, 3-4, 3-11, 4-30 Procesamiento controlado por alarma 1-6, 4-32, 4-41 Procesamiento controlado por tiempo 1-6, 4-33 Profundidad de anidamiento 3-9 Programa almacenamiento 3-10 organizacin del programa 3-5 Programa de sistema 1-7 Programa de usuario 1-7, 1-9 almacenamiento 1-10 funciones 1-9 procesamiento 3-4, 3-11 Programacin estructurada 2-5 Proteccin del software 8-38 Puntos de control 11-5

O OBs de comunicacin 10-22 byte indicador 10-25 parmetros 10-23 tiempos de ejecucin 10-31 ODER (O) vase indicadores de resultado Operacin de estructuracin de imagen 3-33 Operaciones aritmticas 3-31 Operaciones bsicas 2-4, 3-19 Operaciones cero 3-33 Operaciones complementarias 2-4, 3-49 Operaciones de clculo 3-57 Operaciones de carga 3-21, 3-55 Operaciones de comparacin 3-32 Operaciones de conversin 3-63 Operaciones de desplazamiento 3-61 Operaciones de memorizacin 3-20, 3-52 Operaciones de organizacin 3-59 Operaciones de procesamiento 3-66 Operaciones de salto 3-59 Operaciones de sistema 2-4, 3-59, 9-4 Operaciones de stop 3-33 Operaciones de tiempo y cmputo 3-26, 3-53 Operaciones de transferencia 3-21 Operaciones STEP 5 3-15 Operandos actuales de mdulos de funciones 2-25, 2-29, 3-52, 3-55 Operandos formales de mdulos de funciones 2-25, 3-52 Organizacin de la memoria 9-4 OVFL (Overflow) vase indicadores de resultado OVFLS (Overflow memorizado) vase indicadores de resultado

Q QVZ (retardo en acuse de recibo) 5-25

Indice - 4

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice alfabtico

R RAM de sistema 8-6 Reacciones ante alarmas 3-12 ante errores 2-20, 3-12, 5-23 ante OBs (de errores) no cargados 5-21 REARRANQUE 4-21 Registro BR 9-22 Reloj de tiempo real 8-32 Representacin numrica 2-8 Retardar alarmas 6-32, 6-35 RUN generalidades 4-29

Tipo e identificacin de la CPU TRAF (error de carga/transferencia) Transferencia de bloques de memoria Tratamiento de errores mediante mdulos de organizacin

8-44 5-29 9-19 5-20

U USTACK 4-5

V Validez de un mdulo de datos abierto Valor de cmputo Valor de tiempo Ventanas acceso a ventanas VKE (resultado de combinacin) vase indicadores de resultado

S Semforos 3-75 Seal BASP 4-26, 4-29 Software de PG 1-18 STATUS (estado) vase indicadores de resultado STOP estado operativo 4-9 Subniveles 4-7 Sucesos de interrupcin 3-14 SUF (error de sustitucin) 5-28 Supervisin del tiempo de ciclo 3-13 Sustitucin de operandos 3-68

2-40 3-28 3-27 9-29

W WEFES/WEFEH (error de reloj) 5-30

Z Zona BA/BB Zona BS/BT ocupacin de la zona BS Zona de datos Zona P vase periferia Zona Q vase periferia Zona/memoria de pginas Zona/memoria de ventanas clula ocupada ZYK (error de tiempo de ciclo) 8-14 8-15 8-16 6-59

T Tarjeta de interfases de PG desmontaje montaje TemporizadoresT Test de la memoria de usuario Test de la seal BASP Test de lneas de direcciones Test de supervisin del tiempo de ciclo Test del cdigo del mdulo Test del cdigo del programa de sistema Test del reloj de hardware Tiempo de ciclo actual consumido Tiempo de reaccin Tiempo de supervisin de ciclo "Time slice" ajustar la cantidad calcular el "time slice"

12-6 12-5 1-13 5-35 5-35 5-36 5-36 5-36 5-36 5-35 3-12 8-20 8-41 4-46 6-63 5-34 5-37 5-37

9-29 9-30 5-27

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Indice - 5

Indice alfabtico

Indice - 6

Instrucciones de programacin CPU 948 C79000-G8578-C848-04

Siemens AG A&D AS E81 stliche Rheinbrckenstr. 50 D-76181 Karlsruhe R.F.A.

Remitente: Nombre: _ Cargo: _ _ _ _ Empresa: _ Calle: _ _ _ _ Cdigo postal: _ Poblacin: _ Pas: _ _ _ _ Telfono: _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _

Indique el ramo de la industria al que pertenece: r r r r r r r Industria del automvil Industria qumica Industria elctrica Industria alimentaria Control e instrumentacin Industria mecnica Industria petroqumica r r r r r r Industria farmacutica Industria del plstico Industria papelera Industria textil Transportes Otros _ _ _ _ _ _ _ _ _ _ _

Manual de programacin CPU 948 6ES5 998-3PR41-04

Observaciones/sugerencias Sus observaciones y sugerencias nos permiten mejorar la calidad y utilidad de nuestra documentacin. Por ello le rogamos que rellene el presente formulario y lo enve a Siemens.

Responda por favor a las siguientes preguntas dando una puntuacin comprendida entre 1 = muy bien y 5 = muy mal 1. 2. 3. 4. 5. Corresponde el contenido del manual a sus exigencias ? Resulta fcil localizar las informaciones requeridas ? Es comprensible el texto ? Corresponde el nivel de los detalles tcnicos a sus exigencias ? Qu opina de la calidad de las ilustraciones y tablas ?

En las lneas siguientes puede exponer los problemas concretos que se le hayan planteado al manejar el manual: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Manual de programacin CPU 948 6ES5 998-3PR41-04

Вам также может понравиться