Академический Документы
Профессиональный Документы
Культура Документы
1 2 3 4 5 6 7 8 9 10 11 12 13
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
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
iii
Indice
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
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
Indice
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
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
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
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
1-1
Indice
1-2
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.
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.
1-3
1.1
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
1.2
1.
2.
3.
Procesamiento cclico
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.
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
Salida A 2.0 Emitir imagen de proceso de las salidas Salida A 3.1 Salida A 4.7
1-5
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.
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.
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
1.3
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).
Llamar
Emitir imagen de proceso de las salidas
Programa de sistema
Administrar memoria
Tratamiento de errores
Fig. 1-1
1-7
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.
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).
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.
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)
1-8
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:
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
1-9
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
FB 8
=1
M 1.7 E 2.6 S
E 1.3
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
= = = = = =
Fig. 1-2
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.
Como interfaces con el programa de sistema se dispone de los mdulos de organizacin para los distintos tipos de procesamiento.
1 - 10
1.4
1 - 11
1 - 12
Contadores Z
Caractersticas El programa de usuario carga contadores con un valor inicial (mx. 999) siendo incrementados o decrementados a continuacin. Tamao 256 contadores
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).
1 - 13
1.5
1 - 14
1.6
Fases de realizacin
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
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.
1 - 15
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
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
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.
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.
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.
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
1.8
Operaciones
En las siguientes operaciones hay que considerar las diferencias en cuanto su ejecucin y tratamiento (por ej. porque difiere la distribucin de memoria):
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.)
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.
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)
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.
1 - 20
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
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
1 - 21
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
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
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
2-1
Indice
2-2
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.
2-3
2.1
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.
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!
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
ESQUEMA DE CONTACTOS (KOP) Programacin con smbolos grficos, como diagrama secuencial 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
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.
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.
2-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).
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
2-6
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.
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.
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.
2-7
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
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
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
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)
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.
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.
2-9
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).
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
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
Salida por PG tras confirmar la lnea: :L KG + 1234567 + 02 Exponente (base 10) con signo +0,1234567 x 10+2 = 12,34567
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
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
-999 a +999
2 - 11
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.
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.
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
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.
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.
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).
2 - 13
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
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.
PB2
DB1
SB10
OB1
Fig. 2-2
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.
2 - 15
2.2
Programacin
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
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
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
2 - 17
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).
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
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
2 - 19
Tabla 2-2
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 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
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
Mdulos de organizacin para reacciones ante errores de aparatos o del programa 1) Mdulo
Tabla 2-4 (continuacin):
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
2 - 21
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
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
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.
2 - 23
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.
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
2 - 24
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.
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.
2 - 25
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
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
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.
2 - 27
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
De la tabla siguiente se desprende qu operandos actuales pueden asignarse a los mdulos de funciones.
Tabla 2-7
Clase de parmetro E, A
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
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
2 - 29
Mdulos de funciones
Clase de parmetro
Tipo de parmetro
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
FB
OB
PB
SB T Z
1)
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
E E A
BI BI BI
Instrucciones STEP 5
Operandos formales
Clase de parmetro
Tipo de parmetro
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
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
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 2 A 2.3 A 6.0
:BE
2 - 32
Mdulos de funciones
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
Campo numrico: Radicando Raz - 0,1469368 Exp. -38 a +0,1701412 Exp. +39 +0,3833434 Exp. -19 a +0,1304384 Exp. +20
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.
2 - 33
Mdulos de funciones
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
DD 5
VZ SQRT
M 15.0 DD 10 :BE
*) Tiene que estar en segmentos separados, ya que la instruccin "A DB 17" del segmento 1 no puede convertirse a KOP/FUP.
2 - 34
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.
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.
2 - 35
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
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
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
2 - 37
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
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)
2 - 39
Mdulos de datos
Ejemplo 2:
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
2 - 40
Mdulos de datos
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
DX 2
2 - 41
Mdulos de datos
2 - 42
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
3-1
Indice
3-2
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.
3-3
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
3-4
3.2
3-5
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
3-6
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
3-7
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
DB 30
BE
*) Operacin a la que se retorna
BE
BE
Fig. 3-4
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
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.
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
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!
3-9
3.3
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
3.4
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.
3 - 11
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
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).
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).
3 - 13
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
3.5
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.
Byte alto 31 24 23
Byte bajo
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)
3 - 15
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 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
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
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.
3 - 17
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
Operaciones aritmticas
Operaciones de comparacin
Resultado =0
SPZ
Resultado 0
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
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)
Tabla 3-2
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.
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).
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
Operaciones de memorizacin
Tabla 3-3
Operaciones de memorizacin
Operacin S R
Operando
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
Tabla 3-4
Operacin L T
Operando
EB EW ED AB AW AD
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
QB QW
0 a 255 0 a 254
3 - 21
Operaciones bsicas
Tabla 3-5
Operacin L
Operando
Funcin Cargar
KB KC
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)
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
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
Fig. 3-6
Operaciones de carga y transferencia en una zona de memoria organizada byte por byte
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
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
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!).
3 - 25
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
Operacin SI SV SE SS SA R S R ZV ZR
1)
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
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
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
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:
3 - 27
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
0 1
1 1
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
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
Val o r d e c m p u t o
Contador Z 10
AKKU 1
"L
Z 10":
3 - 29
Operaciones bsicas
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
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":
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
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 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.
3 - 31
Tabla 3-8
Operaciones de comparacin
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
Operando
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
1)
3 - 32
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.
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
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.
3 - 33
Operaciones de combinacin
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 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
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
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.
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.
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.
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
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
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).
3 - 37
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de memorizacin (continuacin)
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
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de memorizacin (continuacin)
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.
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
E 1.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.
3 - 39
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo
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
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo (continuacin)
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
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
3 - 41
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo (continuacin)
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
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de tiempo (continuacin)
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
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
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
3 - 43
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de cmputo
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.
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
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de cmputo (continuacin)
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.
3 - 45
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de cmputo (continuacin)
Esquema de contactos
Z1 ZR
Esquema de func.
Z1 E 4.0 ZR ZV
E 4.0
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
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de comparacin
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.
3 - 47
Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de comparacin (continuacin)
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
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
3 - 49
Tabla 3-11
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
Tabla 3-13
Operacin P
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 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).
3 - 51
Operacin S =
Operando
RB
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
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
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
3 - 53
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
Tabla 3-17
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.
3 - 55
Operaciones complementarias
Tabla 3-18
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
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
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
3 - 57
Operaciones complementarias
Tabla 3-20
Operacin S ADD
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
S ADD 1)
DH
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
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.
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 =
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
3 - 59
Operaciones de organizacin
Operacin SPN =
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).
SPP
SPM =
SPO
SPS
S SPR
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
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:
ANZ 1
ANZ 0
0 1
0 0
3 - 61
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
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
Tabla 3-23
Operaciones de conversin
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
...........20 DEF 10
1
0 10
0
3 - 63
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
.....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
.....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
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
: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
3 - 65
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
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=
3 - 66
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.
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.
3 - 67
+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
3 - 68
Operaciones de organizacin
+ Distancia de salto
M001
M002
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.
Bit n
15 irrelevante
11 10
7 0
dir. de bit de 0 a 7
3 - 69
Operaciones de organizacin
dir. de bit de 0 a 7
Bit n
15 14 12 11 0 dir. de bit de 0 a 7
Bit n
15 irrelevante
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
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
:BI
:T :BE MW 16
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
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
Mtodo de ejecucin en el FB 1
MW 16
0001H :L MW 16
AKKU 1
0001H
(n correlativo del operando actual)
:L EB 90
3 - 71
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
BAF
Otras operaciones
Tabla 3-27
Otras operaciones
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
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
8 7
SUF STUEB STUEU NAU ZA QVZ ADF PARE ZYK
0
STOP HOLD
Tabla 3-28
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
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
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).
Tabla 3-29
Activar/desactivar semforos
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.
3 - 75
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
INICIO
No
Fin
Fig. 3-8
3 - 76
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).
3 - 77
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 1: PROGRAMA PRINCIPAL
FB 10: AVISAR
3 - 78
Operaciones semforo
generar aviso y
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 el temporizador ha arrancado, el semforo no est rearmado y el temporizador ha transcurrido, llamar FB "rearmar semforo (SEMREARM)".
3 - 79
Operaciones semforo
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
3 - 80
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
4-1
Indice
4-2
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.
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
ARRANQUE
ARRANQUE
RUN
Procesamiento cclico
CICLO
Fig. 4-1
4-4
Niveles de procesamiento
Tabla 4-1
Niveles de procesamiento
Nivel
Prioridad
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 definido del programa de usuario Continuacin del programa de usuario a partir del lugar de la interrupcin Niveles de procesamiento en RUN
Procesamiento controlado por tiempo Procesamiento controlado por alarma Procesamiento cclico
1)
El preajuste puede ser modificado mediante parametrizacin del DX 0 (vase captulo 7).
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.
4-5
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
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
Ejemplos
Ejemplo:
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
Fig. 4-2
Ejemplo:
4-8
4.2
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).
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.
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.
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).
4-9
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.
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.
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.
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
Las figuras 4-4 y 4-5 muestran cmo se efectan las llamadas al OB 38 y OB 39.
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
OB 39
Procesamiento cclico de la comunicacin
Fig. 4-4
4 - 11
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 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 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
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.
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
4 - 13
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.
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
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):
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!
Una vez ejecutado el BORRADO TOTAL, se carga la Memory Card (siempre que est insertada) y despus se llama al OB 39.
4 - 15
4.3
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 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
4 - 16
Siempre se puede efectuar un NUEVO ARRANQUE, a menos que el sistema haya solicitado un BORRADO TOTAL!
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".
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.
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.
4 - 17
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!
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
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.
4 - 19
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.
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
La tabla siguiente muestra una comparativa de los modos de arranque NUEVO ARRANQUE y REARRANQUE.
Tabla 4-2
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:
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)
4 - 21
NUEVO ARRANQUE
Tabla 4-3 (continuacin):
REARRANQUE
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
Tras CONEXION, las interfaces con el usuario se llaman durante el arranque en el orden siguiente: OB 38, OB 39, OB 20/OB 22.
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
La tabla siguiente muestra las diferencias entre el NUEVO ARRANQUE y el NUEVO ARRANQUE CON MEMORIA.
Tabla 4-3
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:
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)
4 - 23
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
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.
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
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.
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.
4 - 25
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
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
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. -
4 - 27
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).
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
4.4
El programa de usuario que se encuentra en el OB 1 se procesa cclicamente, pudindose anidar por control de alarma otras partes del programa.
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
CICLO
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).
4 - 29
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
De s d e e l a r r a n q u e
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
Fig. 4-6
4 - 30
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).
4 - 31
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.
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.
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
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.
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).
4 - 33
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"
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
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".
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.
4 - 35
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
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
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.
4 - 37
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
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
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).
4 - 39
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
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).
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
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
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
4 - 41
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.
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
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".
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.
4 - 43
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.
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.
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
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.
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:
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.
4 - 45
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.
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
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
5-1
Indice
5-2
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.
5-3
5.1
5-4
5.2
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.
5-5
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.
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
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
MODULONR. PB 3 PB 2 PB 1 OB 1 OB 66 OB 63 OB 62 OB 61
1)
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.
5-7
5.3
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
5.4
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!
5-9
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:
Ident. errores:
UMCG KDX0
MODUN FDB1
WEFES DB0UN
Fig. 5-1
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
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
Tabla 5-2
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
5 - 11
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
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
Tabla 5-4
"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
5 - 13
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:
STUEB ZYK X
STUEU STOP
Fig. 5-2
5 - 14
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)
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
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
5 - 15
Significado
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
SAZ (old)
UAMK
UALW PARENT.
AKKU1 a AKKU4
5 - 16
CAUSA DE ERROR
Las siguientes abreviaturas (identificaciones de la pila USTACK) representan las causas de error ms importantes.
Tabla 5-6
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
5 - 17
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
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
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.
5 - 19
5.5
Tabla 5-7
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
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
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
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
5.6
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.
5 - 23
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.
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
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.
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".
5 - 25
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
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
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).
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.
5 - 27
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
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.
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
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
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.
5 - 29
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.
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.
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
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.
5 - 31
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.
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.
Si no se ha programado ningn OB 35, el programa de sistema no muestra reaccin alguna y la CPU no pasa al estado STOP.
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
31 AKKU 1 0
= 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/.
Cuando una de las rutinas de autotest detecta un error durante su ejecucin, se llama al OB 36. Vase captulo 5.7.
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
Qu puede comprobarse?
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
5 - 34
Autotest
(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
(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.
(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).
5 - 35
(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.
(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.
(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.
(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
Autotest
5.7.3 Ajustes
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.
5 - 37
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
BS 76 BS 77 BS 78
5 - 39
5 - 40
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
6-1
Indice
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
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.
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
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
Introduccin Interfaces
Llamada al mdulo
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.
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
6-5
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:
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
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")!
6-7
6.2
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
Da de la semana: da (unidades): da (decenas): meses (unidades): mes (decenas): aos (unidades): aos (decenas):
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
6-9
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
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).
6 - 11
6.3
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
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
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
6 - 13
6.4
Funcin
Parmetros
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
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"
6 - 15
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
Se han definido los siguientes indicadores colectivos: Bit n 7 (A) = 1: Bit n 6 (E) = 1: Advertencia Error
Tabla 6-5
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
6 - 16
6.5
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.
6 - 17
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"
6 - 18
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
Se han definido los siguientes indicadores colectivos: Bit n 7 (A) = 1: Bit n 6 (E) = 1: Advertencia Error
Tabla 6-7
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
esta secuencia de instrucciones crea el DB 24 con una longitud de 2000 palabras de datos (long. total incl. encabezamiento: 2005 palabras)
6 - 19
6.6
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
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
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
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)
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
6 - 21
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
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
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.
6 - 23
6 - 24
6.7
Funcin
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.
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:
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:
6 - 25
6.8
Funcin
Parmetros
ninguno
Resultado
Casos de error
ninguno
6 - 26
6.9
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
6 - 27
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
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
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)
6 - 29
Alarma
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:
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
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
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 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
6 - 31
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
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!
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:
6 - 33
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 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".
1)
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
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
6 - 35
Alarma
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:
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
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
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 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
6 - 37
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
6 - 38
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.
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
6 - 39
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
Tabla 6-12
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
6 - 41
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
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
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:
6 - 43
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)
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!
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
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.
6 - 45
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
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
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
Hora de alarma
Horas
cada minuto cada hora cada da cada por semana cada mes cada ao una vez
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.
6 - 47
OB 151: Ajustar/leer la hora para la alarma temporizada controlada por reloj Ejemplos
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
6 - 48
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
6 - 49
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.
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
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
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
6 - 51
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
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.
6 - 53
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
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.
Abriendo nuevamente el mdulo de datos con las operaciones A DB o AX DX se restablece la posicin normal de la ventana de acceso.
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
: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.
6 - 55
Ejemplo (continuacin)
DB 17
Direccin 4 151BH
"00"
4 1530H
"16"
DBL antiguo
DW 0 DW 1 DW 2 DW 3 DW 4 DW 5 DW 6 DBL nuevo
15
Figure 6-3
6 - 56
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
1 a 255
6 - 57
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
Consulta SPB SPM SPN SPB SPP SPN SPB SPP SPN
B502H
B503H
6 - 58
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:
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
6 - 59
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
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
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
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
6 - 61
6 - 62
Parmetros
ninguno
Casos de error
ninguno
6 - 63
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
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
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.
6 - 65
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
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
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.
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).
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"
6 - 67
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
Se han definido los siguientes indicadores colectivos: Bit n 7 (A) = 1: Bit n 6 (E) = 1: Advertencia Error
Tabla 6-21
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
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
7-1
Indice
7-2
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.
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!
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
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
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.
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).
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
7-5
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
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
Bl o q u e n
DW m
Identif. final
Fig. 7-1
Estructura del DX 0
7-6
Estructura 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".
7-7
Parmetros para el DX 0
7.3
Parmetros para el DX 0
Tabla 7-1
Parmetros DX 0 y su significado
Significado
1)
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
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
Parmetros para el DX 0
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.
7-9
Entrada
2 T0a T2
3 T0a T3
4 T0a T4
.... ....
Actualizacin ninguna T 0 a T1
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)
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
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
7 - 11
Ejemplos de parametrizacin
7.4
Ejemplos de parametrizacin
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
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
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.
7 - 13
Ejemplos de parametrizacin
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.
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:
FUNCIONAM. REARRANQUE:
NUMERO TEMPORIZADORES: VIGILANCIA T. CICLO (X 10 MS): SINCRONIZAR ARRANQUE MULTIPROCESO: TRANSFERIR MARCAS DE ACOPLAMIENTO:
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
7 - 14
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:
SI 10 1
ALARMAS PROC. HARDWARE INTERR. SISTEMA A/B: INTERR. SISTEMA E: INTERR. SISTEMA F: INTERR. SISTEMA G:
2)
NO NO NO NO
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
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.
7 - 15
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,
7 - 16
Ejemplos de parametrizacin
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).
7 - 17
Ejemplos de parametrizacin
7 - 18
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
8-1
Indice
8-2
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.
8-3
8.1
Tabla 8-1
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)
Posicin
OB, FB, FX, PB, SB, DB, DX BA, BB BS, BT Z T M S PAE, PAA
en la CPU
1)
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
8.2
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)
Fig. 8-1
usuario.
8-5
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
E F200H
E F400H
E F600H
E F800H
E FA00H
Reservado E FFFFH
Fig. 8-3 Distribucin de la zona de direcciones de la RAM/ 2 parte
8-7
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
8-8
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
0 0 0 0.0
a a a a
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
L PY / T PY L PW / T PW
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
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).
8-9
8.3
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
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
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
Fig. 8-5
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
8 - 11
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
de de de de de de de
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
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.
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
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).
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
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.
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
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
8 - 16
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).
8 - 17
Dato de sistema BS 0
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
Tabla 8-4
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
8 - 19
Tabla 8-5
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
Tabla 8-6
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
8 - 21
Tabla 8-7
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
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
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.
8 - 23
"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
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
Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 75 a BS 78
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".
8 - 25
Errores generales
Tabla 8-9
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
N de error
Tipo de parmetro
Significado
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
8 - 27
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
Tabla 8-12
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
06H 07H
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)
8 - 29
Tipo de parmetro
Tabla 8-12 (continuacin):
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
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
Parmetro 3
0CH
8 - 30
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
09H
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
8 - 31
Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 96 a BS 99
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
BS 96
Tabla 8-13
Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Segundos, decenas, valores posibles: 00H a 05H
8 - 32
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
BS 98
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
8 - 33
Byte alto Bit n 15 14 13 12 11 10 9 8 Ocupacin Ao, decenas, valores posibles: 00H a 09H
8 - 34
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.
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.
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.
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.
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
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
Byte bajo 7 6 5 4 3 2 1 0
1)
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.
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
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
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
8 - 37
4010H
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.
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.
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
: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
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
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.
8 - 39
Ocupacin de los bits de las palabras de datos de sistema Palabras de datos de sistema BS 136 a BS 137
Las palabras de datos del sistema BS 136 a BS 137 se utilizan para la funcin de autotest.
BS 136
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
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
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.
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
8 - 41
La zona de memoria E 8200H a E DEF0H es utilizada por el programa de sistema como zona de datos de sistema libremente direccionable.
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
8 - 42
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).
8 - 43
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
8 - 45
8 - 46
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
9-1
Indice
9-2
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.
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
Introduccin
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
9-5
Las siguientes instrucciones permiten el acceso a zonas de memoria locales y globales a travs de direcciones absolutas (vase tambin fig. 9-2).
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.
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
Introduccin
Acceso no posible
Acceso posible
Fig. 9-2
9-7
9.2
Aplicacin
Operaciones
Tabla 9-1
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
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
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
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 .
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:
9-9
15
19
15
Registro n
AKKU 1
19
15
Registro n
AKKU 1
Fig. 9-3
19
15
Registro n
AKKU 1
19
15
Registro n
AKKU 1
Fig. 9-4
9 - 10
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
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.
9 - 11
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
Direcciones 4 151BH 4 151CH 4 151DH 4 151EH 4 151FH DBA 4 1520H 4 1521H 4 1522H
DX17
KH = 0000 KH = 0001 . . .
Fig. 9-5
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
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!
9 - 13
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
DW 0 DW 1 DW 2 DW 3 DBL DW 4 DW 5 DW 6 DW 7
Fig. 9-6
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
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
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
9 - 15
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
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
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
MW
10 4
10
DH
0000 0001
=SCHL
si DB 100 no existe
9 - 16
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
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).
31
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.
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).
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.
E FC00 = 34 E FC01 = 78
9 - 18
9.3
Aplicacin
Operaciones
Tabla 9-4 Operaciones para la transferencia de bloques
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.
Tabla 9-5
9 - 19
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 A000H a E AFFFH
E FC00H a E FFFFH
F 0000H a F FFFFH
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.
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.
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).
9 - 20
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
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 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
9 - 21
9.4
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
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
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)
La figura siguiente muestra cmo se modifican los registros con dichas operaciones.
9 - 23
31 xx . . . . . .
20 19 xx
0 AKKU 1
31 00
20 19 . . . . . . 00
0 AKKU 1
19
0 SAZ
19
0 SAZ
MSB 19 0 BR 19
MBS 0 BR
Fig. 9-8
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
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
1)
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).
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).
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
9 - 25
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.
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.
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
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
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)
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).
9 - 27
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).
Tabla 9-10
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)
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
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.
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.
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
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).
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).
Tabla 9-11
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
9 - 31
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
TB CW
-32768 a +32767
TB CD
-32768 a +32767
1) 2) 3)
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
Operaciones con el registro base de direcciones (registro BR) Operaciones de carga y transferencia en pginas organizadas palabra por palabra
Tabla 9-12
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)
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).
9 - 33
9 - 34
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
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
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).
10 - 3
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.
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
Modo multiprocesador
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.
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).
10 - 5
CPU 1 Salidas de marcas de acopl.: MB 96 a MB 119 Entradas de marcas de acopl.: MB 120 a MB 125 Escritura
Coordinador
CPU 2 Salidas de marcas de acopl.: MB 120 a MB 125 Entradas de marcas de acopl.: MB 96 a MB 119 Escritura
Lectura
Fig. 10-1
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
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 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
10 - 7
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
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
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.
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.
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.
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
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
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.
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
10 - 11
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
Modo multiprocesador
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.
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).
10 - 13
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.
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.
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
Comunicacin en multiprocesamiento
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
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.
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
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
Comunicacin en multiprocesamiento
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
C P
C P
I M
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.
10 - 17
Comunicacin en multiprocesamiento
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
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
Fig. 10-5
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...).
10 - 19
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
Comunicacin en multiprocesamiento
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.
10 - 21
Comunicacin en multiprocesamiento
10.2.6 Lo que hay que tener en cuenta al llamar los OBs de comunicacin
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
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:
Los contenidos de los AKKU 1 a AKKU 4 y los contenidos de los registros no son modificados por los OBs de funciones especiales.
Todos los contenidos de los registros y AKKU 1, 2 y 3 permanecen inalterados; slo se modifica el AKKU 4.
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).
10 - 23
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).
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
Comunicacin en multiprocesamiento
Tabla 10-1
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=
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:
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.
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
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
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 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
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 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
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
10 - 29
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
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
Tabla 10-6
CPU 922
CPU 928
CPU 928B
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
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
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.
10 - 31
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
En caso de haber dos CPUs conectadas, resultan dos lneas de comunicacin (direcciones de transferencia, "canales"):
CPU 1
CPU 2
CPU 1
CPU 2
CPU 3
10 - 33
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
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
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
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
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
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.
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
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
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.
10 - 37
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
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
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.
10 - 39
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
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
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
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 : :
10 - 41
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:
Parametrizacin errnea
Byte indicador
Conflicto de inicializacin
10 - 42
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
10 - 43
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):
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
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
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.
Byte indicador
Este byte informa si la funcin TEST DE EMISION ha sido ejecutada completa y correctamente.
10 - 45
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
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
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".
10 - 47
Byte indicador
Este byte informa si la funcin RECIBIR ha sido ejecutada correctamente y sin errores.
Conflicto de inicializacin
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
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):
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.
10 - 49
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.
Nmero de la palabra de datos dentro del DB/DX, en el que ha sido depositada la primera palabra de datos emitida/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
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
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.
Byte indicador
Este byte informa si la funcin TEST DE RECEPCION ha sido ejecutada completamente y sin errores.
Conflicto de inicializacin
10 - 51
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
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.
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.
10 - 53
Aplicaciones
Nota Los siguientes ejemplos de aplicacin son aplicaciones acabadas que el usuario puede transcribir directamente a su propio programa.
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
ANFZ
MW 250
INIK GKAP
A A
BY BY
MB 252 MB 253
10 - 54
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
10 - 55
Aplicaciones
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
E A A
BY BY BY
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
OB FE:
:SPA
: :L :T :L :T :BE
OB 202
MB 250 =FEWA MB 251 =SKAP
10 - 56
Aplicaciones
Clase E A A
Tipo BY BY BY
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
BY BY BY
CPU receptora
OB FE:
:SPA
: :L :T :L :T :BE
OB 203
MB 248 =FEHL MB 249 =SKAP
10 - 57
Aplicaciones
Significado
Clase E A A A
Tipo BY BY BY W
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
10 - 58
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
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
Significado
Clase E A A
Tipo BY BY BY
Capacidad de recepcin
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
BY BY BY
000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018
:L :T : :L
CPU emisora
OB FE:
:SPA
: :L :T :L :T :BE
OB 205
MB 248 =FEHL MB 249 =EKAP
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.
10 - 60
Aplicaciones
Realizacin
FB 110 UEBT-DAT (1) (2) (3) (4) (5) STAR ECPU TNDB ANZB ERSB FEHL REST AKBN FLAM (6) (7) (8) (9)
10 - 61
Aplicaciones
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
E E A A A A
BY BY BY BY BY BI
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 BY BY BY BY BY BI
10 - 62
Aplicaciones
OB FE:
:SPA OB 202
=FEHL KB 0 =REST
10 - 63
Realizacin
Funcin Inicializar (OB 200) Organizacin de emisin (FB 1) Organizacin de recep. (FB 2) DB de emisin DB de recepcin
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
10 - 64
Aplicaciones
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
Aqu se ejecuta el tratamiento de errores (por ej. stop, salida de avisos por la impresora, ...)
10 - 65
Aplicaciones
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
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, ...)
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
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!
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.
10 - 67
Tabla 10-8
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)
10 ...
DW 22 DW 23 DW 24
DW 25 DW 26 DW 27 DW 28
DW 29 DW 30 DW 31
10 - 68
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
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.
10 - 69
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
Aplicaciones
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
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
Fig. 10-6
10 - 71
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
N CPU > 4
10 - 72
Aplicaciones
+ offset
:SPA OB 203
MB 248 =OBFE MB 249 MB 239 =LEER
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
Contador de bloques
0046 0047
:SPB =UEBT :
10 - 73
Aplicaciones
KB 16 =FEWA
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
10 - 74
Aplicaciones
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
Puntero sobre lista parcial 2 Rastrear la lista parcial 2 hasta encontrar la siguiente entrada para la CPU receptora con el nmero CPUN.
=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
10 - 75
Aplicaciones
004B :L 004C :T 004D :BEA 004E : 004F FEWA :L 0050 OBFE :T 0051 :BE
KB 0 =FEWA
KB 16 =FEWA
10 - 76
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
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.
10 - 77
Aplicaciones
Funcin OB de arranque Programa de usuario FB: SEND-DAT FB: EMPF-DAT Lista de comunicaciones DB de entrada DB de salida
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
10 - 78
Aplicaciones
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
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 ...)
10 - 79
Aplicaciones
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.
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
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
11 - 1
Indice
11 - 2
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.
11 - 3
Resumen sinptico
Tabla 11-1
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
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).
11 - 5
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)
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
F1
SAL. DIR
F2
ESTRUC.
F3
SYSPAR
F4
BSTACK
F5
USTACK
F6
F7
F8
RETORNO
Fig. 11-1
11 - 6
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.
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.
11 - 7
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.
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
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.
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.
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.
11 - 9
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.
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
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.
Punto de partida:
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.
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.
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.
11 - 11
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.
1 punto de parada
< <<<<<
Ejecutar instrucc. y leer datos
< <<<<<
Fig. 11-2
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
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.
11 - 13
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)!
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
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.
11 - 15
11 - 16
PG
PG
Fig. 11-3
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.
11 - 17
CPU 948
CP 143
SI1 SI2
"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
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.
11 - 19
La siguiente tabla muestra las funciones que no pueden ser ejecutadas paralelamente.
Tabla 11-2
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
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
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.
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.
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
Fig. 11-7
Tipica ejecucin paralela de una funcin cclica y una funcin de corta duracin
11 - 22
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.
11 - 23
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 debe esperar a que la CPU est libre.
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.
Fig. 11-8
11 - 24
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 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").
Fig. 11-9
11 - 25
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
Funciones de PG va bus S5
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!
11 - 27
Funciones de PG va bus S5
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
no se parametriza la CPU
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
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.
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).
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
11 - 29
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
Funciones de PG va bus S5
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.
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.
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.
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
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.
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.
11 - 33
Funciones de PG va bus S5
PG
SSNR 234
CPU 2
CPU 948
SSNR 235
o 2 CP 143
CPU 3
SSNR 236 Pgina 1) para HTB de usuario Pgina 1) para HTB de usuario
CPU 948
CPU 4
CPU 948
SSNR 239
1)
Fig. 11-12
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
Funciones de PG va bus S5
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 -
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
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
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
1)
11 - 37
Funciones de PG va bus S5
11 - 38
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
12 - 1
Indice
12 - 2
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.
12 - 3
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:
Fig. 12-1
12 - 4
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
12 - 5
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
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
12 - 7
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
cada minuto, cada hora, cada da, cada semana cada mes, cada ao, una vez 1 ms
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
06H 07H
12 - 9
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
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)
12 - 11
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
OB 181
12 - 12
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
12 - 13
12 - 14
Indices
13
Indice - Captulo 13
Lista de abreviaturas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A - 1 Indice alfabtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indice - 1
13 - 1
Indice
13 - 2
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
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
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
Indice - 1
Indice alfabtico
Estructura de la zona de memoria Evitar errores Exponente vase nmero de coma flotante
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
Indice alfabtico
L Lenguaje de programacin C con compilador S5-C GRAPH 5 SCL STEP 5 Lista de asignaciones
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
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
Indice - 4
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
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
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
Indice - 5
Indice alfabtico
Indice - 6
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 _ _ _ _ _ _ _ _ _ _ _
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: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _