manual, lndice Introduccin Programa de usuario Procesamiento del programa S5-135U CPU 928B-3UB21 Estados operativos y niveles de procesamiento Tratamiento de interrupciones y errores Funciones especiales integradas Instrucciones de programacin Mdulo de datos ampliado DX O Ocupacin y organizacin de la memoria Accesos a la memoria a travs de direcciones absolutas Comunicacin en multiprocesamiento Interfaces y funciones del aparato de programacin Anexo Bibliografa Lista de abreviaturas Glosario, lndice alfabtico La lista de operaciones CPU 928/CPU 928B/CPU 948, no de re f. 6ES5 997-3UA43 est incluida en este manual. Consignas de Este manual contiene las informaciones necesarias para la seguridad personal as como para la pre- seguridad para el vencin de daos materiales. Las informaciones estn puestas de relieve mediante seales de pre- usuario caucin. Las seales que figuran a continuacin representan distintos grados de peligro: A Peligro Significa que, si no se adoptan las medidas preventivas adecuadas, se producir la muerte, o bien lesiones corporales graves o daos materiales considerables. A Precaucin Significa que, si no se adoptan las medidas preventivas adecuadas, puede producirse la muerte, lesiones corporales graves o daos materiales considerables. A Cuidado Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones cor- porales 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 funciona- miento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas estn- dar de seguridad. Uso conforme Considere lo siguiente: A 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. Marca registrada SIMATIC@ y SINEC@ son marcas registradas por SIEMENS AG Los restantes nombres y designaciones contenidos en el presente documento pueden ser marcas regis- tradas cuya utilizacin por terceros para sus propiosfines puede violar los derechos de los proprietarios. Copyright O Siemens AG 1996 All rights reserved Ladivulgacin y reproduccin de este documento, ascomo el uso y lacomunicacindesu contenido, no estn autorizados,anoserque 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 Grupo Automatizacin Divisin Sistemas de Automatizacin Industriales Postfach 4848, D-90327 Nrnberg Exencin de responsabilidad Hemos probado el contenidodeesta publicacin con laconcordan- ciadescrita 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. O Siemens AG 1996 Sujeto a cambios sin previo aviso. Siemens Aktiengesellschaft 6 ~ ~ 5 9 9 8 - 2 ~ ~ 4 2 lnstrucciones para el uso del manual Campo de aplicacin Estas instrucciones de programacin describen las funciones de la CPU 928B-3UB21 as como el software de sistema correspondiente. lnstrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnstrucciones Dara el uso del manual Informaciones El captulo 1 contiene informaciones acerca de los campos de aplicacin del referentes a los autmata programable S5-135U con la CPU 928B. distintos Explica el funcionamiento tpico de una CPU y el modo en que est estructurado captulos un programa de CPU. Este captulo da adems algunos consejos sobre cmo proceder a la hora de programar y tambin informa sobre los datos caractersticos importantes que posee la CPU 928B-3UB21. Si ya ha trabajado anteriormente con la CPU 928B-3UB12 y desea saber en qu aspectos se diferencia la CPU 928B-3UB21, consulte este captulo. El captulo 2 describe los componentes que integran un programa de usuario STEP 5 y el modo en que puede ser estructurado. El captulo 3 se dirige a aquellos lectores que no tengan gran experiencia en la aplicacin del lenguaje de programacin STEP 5. Introduce al lector en los conocimientos bsicos de la programacin STEP 5 y describe las operaciones STEP 5 ms detalladamente (con ejemplos). El apartado 3.5 puede servir de apartado de consulta a aquellos lectores que tengan muy buenos conocimientos del sistema y que no les basten las informaciones que figuran en la lista de operaciones, referentes a una operacin STEP 5 concreta. El captulo 4 ofrece una visin de conjunto de los distintos estados operativos y niveles de procesamiento del programa de la CPU 928B. Adems da informaciones detalladas acerca de los distintos modos de arranque y los consiguientes mdulos de organizacin, en los que se podr programar el programa en cuestin para los distintos modos de arranque. Tambin se exponen las caractersticas en las que se distinguen los niveles de procesamiento: "procesamiento cclico", "procesamiento controlado por tiempo" y "procesamiento controlado por alarma", as como los mdulos disponibles para el programa de usuario. El captulo 5 explica cmo pueden evitarse errores a la hora de planificar y programar los programas STEP 5. Tambin informa acerca de las ayudas que ofrece el programa de sistema a fin de diagnosticar errores y de cmo reaccionar ante stos. Adems se indican los mdulos en los que se pueden programar reacciones ante determinados errores. El captulo 6 expone las funciones especiales integradas del programa de sistema. Asimismo explica en qu campos se pueden aplicar las funciones especiales y cmo se llaman y parametrizan los OBs de funciones especiales. Tambin indica cmo detectar errores durante el procesamiento de una funcin especial y cmo tratarlos mediante el programa. lnstrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnstrucciones Dara el uso del manual El captulo 7 explica en qu casos se puede utilizar el mdulo de datos DX 0, cmo est estructurado y cul es el significado de los distintos parmetros DX O. Por medio de ejemplos el usuario aprender cmo generar un mdulo de datos DX O o cmo parametrizarlo mediante una mscara. El captulo 8 sirve de captulo de consulta a los usuarios expertos en este sistema. En l se encuentran explicaciones acerca de la organizacin de la memoria de la CPU 928B y de algunas palabras de datos del sistema que contienen informaciones a las que puede acceder el usuario. Adems, se indica cmo activar y desactivar la proteccin del software de la CPU mediante una palabra de datos del sistema. El captulo 9 tambin est dirigido a los usuarios que tengan experiencia en este sistema: aqu podrn consultar cmo acceder mediante direcciones absolutas a datos que se encuentran en determinadas zonas de memoria. El captulo 10 explica en primer lugar cundo utilizar el modo multiprocesador y qu posibilidades de intercambio de datos existen entre las CPUs y los CPs (procesadores de comunicacin). Tambin explica lo que se debe hacer y tener en cuenta a la hora de programar en modo multiprocesador. Finalmente da instrucciones detalladas con ejemplos de aplicacin para el intercambio de grandes cantidades de datos en modo multiprocesador (comunicacin en multiprocesamiento). El captulo 11 informa sobre cmo acoplar la CPU a un aparato de programacin (PG) y sobre las ayudas que ofrece el software del aparato de programacin a fin de comprobar el programa STEP 5. El anexo A contiene una comparacin de los datos tcnicos caractersticos de las CPUs 928A, 928 B y 948. El anexo B contiene una lista con bibliograa complementaria. El anexo C es una ayuda para orientarse a travs del manual; contiene una lista de las abreviaturas utilizadas as como un ndice alfabtico. lnstrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnstrucciones Dara el uso del manual Ayudas de Apartados de segundo orden orientacin en el manual Los apartados de segundo orden (p.ej. 4.3) se destacan mediante ttulos en negrita al comienzo de una pgina y aparecen en el ndice del captulo. Notas maeinales Las notas marginales que aparecen en negrita del lado izquierdo del texto permiten localizar rpidamente las descripciones tcnicas. Las informaciones importantes se destacan de este modo. l Tablas de consulta Tabla 1-1 Operaciones binarias de combinacin Ejemplos Operacin U O Los ejemplos, sean largos o cortos -tambin de varias pginas - estn destacados por un margen reticulado. En los ejemplos que abarquen varias pginas, las pginas siguientes a la primera estn claramente distinguidas. Modo de representacin AWL Operando E 0.0 a 127.7 ...... lnstrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funcin Combinacin AND con consulta si el estado lgico es "1" Combinacin OR con consulta si el estado lgico es "1" de una entrada en el PAE . . . . . . . . lndice Introduccin .................................................................. 1-1 Campos de aplicacin del S5-135U con la CPU 928B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Funcionamiento tpico de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Los programas de una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Programa de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . De qu operandos dispone el programa de usuario? 1-9 Accesos a zonas de operandos y de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmo proceder a la hora de programar? 1-13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Herramientas de programacin 1-16 Qu novedades presenta la CPU 928B.3UB21? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 Programa de usuario ........................................................... 2-1 Lenguaje de programacin STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Modos de representacin KOP. FUP y AWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Programacin estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Operaciones STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Representacin numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 Mdulos STEP 5 y su registro en la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 Mdulos de programa. de organizacin y de pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14 Mdulos de organizacin para interfaces con el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Mdulos de organizacin de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19 Mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 Estructura de los mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22 Programacin de los mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24 Llamada y parametrizacin de mdulos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-26 Mdulos de funciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31 Mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-33 Crear mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-35 Abrir mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-36 Mdulos de datos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-39 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa .................................................... 3-1 Principios fundamentales del procesamiento del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Organizacin del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Almacenamiento de mdulos de programa y de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Procesamiento del programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Definiciones terminolgicas en cuanto al procesamiento del programa . . . . . . . . . . . . . . . . . . . 3-11 Operaciones STEP 5 con ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 Operaciones bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17 Ejemplos de programacin en los modos de representacin AWL. KOP y FUP . . . . . . . . . . . . 3-32 Operaciones complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47 Operaciones de organizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-54 Operaciones semforo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-67 Estados operativos y niveles de procesamiento ..................................... 4-1 Introduccin y resumen sinptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Niveles de procesamiento del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Estado operativo STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Caractersticas e indicadores del estado operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Solicitar y ejecutar un BORRADO TOTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13 Estado operativo ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 NUEVO ARRANQUE MANUAL Y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16 REARRANQUE MANUAL Y AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16 Comparativa de los modos de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Interfaces con el usuario para el arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Interrupciones en el ARRANQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22 Estado operativo RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24 Procesamiento cclico del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26 Procesamiento controlado por tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28 Alarma de reguladores: procesamiento de reguladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35 Alarma de proceso: procesamiento controlado por alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36 Procesamiento anidado de programas controlados por alarma o por tiempo . . . . . . . . . . . . . . . 4-39 Tratamiento de interrupciones y errores ........................................... 5-1 Errores frecuentes en el programa de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Informaciones sobre errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Bits de control y pila de interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Bits de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Contenido de la pila de interrupciones (USTACK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Ejemplo de diagnstico de errores mediante USTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Tratamiento de errores mediante mdulos de organizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ErroresenelARRANQUE 5-25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DBO-FE (error DB O) 5-26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DB1-FE (error DB 1) 5-26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DB2-FE (error DB 2) 5-28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DXO-FE (error DX O DX 2) 5-29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MOD-FE (error de Memory Card) 5-31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errores en RUN y en el ARRANQUE 5-32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCF (error en cdigo de instruccin) 5-34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LZF (error en tiempo de ejecucin) 5-37 ADF (error de direccionamiento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . QVZ (retardo en acuse de recibo) 5-46 ZYK (error de tiempo de ciclo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-48 WECK-FE (colisin de alarmas temporizadas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REG-FE (error de regulador) 5-50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ABBR (aborto) 5-52 FE-3 (errores de comunicacin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-53 .................................................. Funciones especiales integradas 6-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduccin 6-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 110: Acceso al byte indicador 6-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 11 1: Borrar AKKU 1.2. 3 y 4 6-9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 1121113: AKKU rol1 up1AKKU rol1 down 6-9 . . . . . . . . . . . . . . . . . . . . . . . . . . OB 120: Activarldesactivar "bloquear alarmas conjuntamente" 6-11 OB 121: Activarldesactivar "bloquear alarmas temporizadas individualmente" . . . . . . . . . . . . . 6-14 . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 122: Activaddesactivar "retardar alarmas conjuntamente" 6-16 . . . . . . . . . . . . . . OB 123: Activarldesactivar "retardar alarmas temporizadas individualmente" 6-19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 150: Ajustadleer la hora del sistema 6-23 OB 151: Ajustarfleer la hora para la alarma temporizada controlada por reloj . . . . . . . . . . . . . . 6-28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 152: Estadstica de ciclo 6-35 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 153: Ajustadleer la hora para la alarma de retardo 6-42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 160 a 163: Bucles contadores 6-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 170: Leer pila de mdulos (BSTACK) 6-47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 180: Acceso variable a mdulos de datos 6-52 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 181: Comprobar mdulos de datos (DBPX) 6-56 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 182: Copiar zona de datos 6-58 ............................. OB 185 : Activaddesactivar la proteccin contra escritura 6-61 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 186: Comprimir memoria 6-62 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OB 1901192: Transferir marcas a un mdulo de datos 6-63 . . . . . . . . . . . . . . . . . . . . . . . . . . OB 1911193: Transferir bloques de datos a la zona de marcas 6-65 . . . . . . . . . . . . . . . . . . . . . . . . OB 200 y OB 202 a 205: Comunicacin en multiprocesamiento 6-70 Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 lndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24 OB 216 a 218: Accesos a pginas 6-71 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.1 OB 216: Escritura en pgina 6-74 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.2 OB 217: Lectura de pgina 6-76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.3 OB 218: Ocupacin de pgina 6-78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.4 Ejemplo de programacin 6-80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.25 OB 220: Ampliacin del signo 6-82 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.26 OB 221: Ajustar el tiempo de supervisin de ciclo 6-83 6.27 OB 222: Nuevo arranque del tiempo de supervisin de ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.28 OB 223: Comparar los modos de arranque 6-84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.29 OB 224: Transferir marcas de acoplamiento en bloques 6-85 . . . . . . . . . . . . . . . . . . . . 6.31 OB 228: Leer la informacin de status de un nivel de procesamiento 6-87 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.32 OB 230 a 237: Funciones para FBs estndar 6-89 . . . . . . . . . . . . . . . . . . . 6.33 OB 240 a 242: Funciones especiales para registros de desplazamiento 6-90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.34 OB 240: Inicializar registro de desplazamiento 6-94 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.35 OB 241: Procesar registro de desplazamiento 6-97 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.36 OB 242: Borrar registro de desplazamiento 6-98 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37 OB 250125 1 : Regulacin/Algoritmo PID 6-99 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37.1 Descripcin de las funciones del regulador PID 6-99 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37.2 Algoritmo PID 6-101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.38 OB 250: Inicializar algoritmo PID 6-106 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.39 OB 251: Procesar algoritmo PID 6-107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.40 OB 2541255. DesplazarJduplicar mdulos de datos 6-113 ................................................. 7 Mdulo de datos ampliado DX O 7-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Aplicacin 7-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Estructura del DX O 7-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Parmetros del DX O 7-6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Ejemplos de parametrizacin 7-10 .......................................... 8 Ocupacin y organizacin de la memoria 8-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 Estructura de la zona de memoria 8-2 . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Distribucin de la zona de direcciones de la CPU 928B.3UB21 8-3 8.2.1 Distribucin de la zona de direcciones de la RAM de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 8.2.2 Distribucin de la zona de direcciones de la periferia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Organizacin de la memoria de usuario de la CPU 928B.3UB21 8-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Cabezas de mdulos en la memoria de usuario 8-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.2 Listas de direcciones de mdulos en el mdulo de datos DB O 8-9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.3 Zona BA/BB 8-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.4 Zona BS/BT 8-13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.5 Ocupacin de los bits de las palabras de datos de sistema 8-16 Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 .............................. 9 Accesos a la memoria a travs de direcciones absolutas 9-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduccin 9-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria a travs de la direccin de AKKU 1 9-6 . . . . . . . . . . . . . . . . . . . . . . . . . . . LIRRIR: Cargaltransferencia indirecta de registros de 16 bits 9-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de aplicacin de registros 9-14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transferir bloques de memoria 9-16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de transferencia de bloques de memoria 9-19 Operaciones con el registro base de direcciones (registro BR) . . . . . . . . . . . . . . . . . . . . . . . . . . 9-24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operaciones de transferencia entre registros 9-25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria local 9-27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria global 9-28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accesos a la memoria de pginas 9-31 ...................... 10 Modo multiprocesador y comunicacin en multiprocesamiento 10-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Modo multiprocesador 10-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Intercambio de datos a travs de marcas de acoplamiento 10-4 10.1.2 Asignacin de periferia y marcas de acoplamiento en modo multiprocesador (DB 1) . . . . . . . . 10-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.3 Cmo se crea el mdulo de datos DB l ? 10-9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Comunicacin en multiprocesamiento 10-13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Cmo se identifica el emisor y el receptor? 10-15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2 Por qu se almacenan datos de forma intermedia? 10-16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.3 Cmo se procesa y administra la memoria intermedia? 10-17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.4 Aspectos a tener en cuenta durante el arranque del sistema 10-20 . . . . . . . . . . . . . . . . . . . . 10.2.5 Lo que debe tenerse en cuenta al llamar a los OBs de comunicacin 10-21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.6 Cmo se parametrizan los OBs de comunicacin? 10-22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.7 Cmo se evalan los parmetros de salida? 10-24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Tiempos de ejecucin de los OBs de comunicacin 10-29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Funcin INICIALIZAR (OB 200) 10-30 10.4.1 Funcin 10-30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.2 Parmetros de llamada 10-32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.3 Parmetros de entrada 10-33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.4 Parmetros de salida 10-36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Funcin EMITIR (OB 202) 10-38 10.5.1 Funcin 10-38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.2 Parmetros de llamada 10-38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.3 Parmetros de entrada 10-39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.4 Parmetros de salida 10-41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Funcin TEST DE EMISION (OB 203) 10-43 10.6.1 Funcin 10-43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.2 Parmetros de llamada 10-43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.3 Parmetros de entrada 10-43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.4 Parmetros de salida 10-44 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7 Funcin RECIBIR (OB 204) 10-45 10.7.1 Funcin 10-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.2 Parmetros de llamada 10-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.3 Parmetros de entrada 10-45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.4 Parmetros de salida 10-46 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 10.8 Funcin TEST DE RECEPCION (OB 205) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 10.8.1 Funcin 10-48 10.8.2 Parmetros de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 10.8.3 Parmetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-48 10.8.4 Parmetros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-49 10.9 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-50 10.9.1 Llamada a los OBs de funciones especiales por medio de mdulos de funciones . . . . . . . . . . 10-50 10.9.2 Transferencia de mdulos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-58 10.9.3 Ampliacin de la zona de marcas de acoplamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-64 ................................ 11 Interfaces y funciones del aparato de programacin 11-1 11.1 Panormica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 11.2 Funciones del aparato de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3 11.2.1 Informacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 11.2.2 Funciones de memorizacin y transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 11.2.3 Test del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 11.3 Actividades en los puntos de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15 . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 Acoplamiento PG . AG a travs de la 1" 2" interfaz serie 11-16 11.5 Funcionamiento paralelo de dos interfaces serie de PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-17 11.5.1 Puesta en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-19 11.5.2 Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-19 11.5.3 Ejecucin en determinados modos operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-21 A Anexo ........................................................................ A-1 A.l Comparacin de los tiempos de ejecucin de las CPUs 928.3UA21. 928B-3UB21 y 948 . . . . . A-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Identificadores de error A-5 A.3 Operaciones STEP 5 no disponibles en la CPU 928B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-13 A.4 Identificaciones de los niveles de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5 Ejemplo de "evaluacin de la pila USTACK" A-15 B Bibliografa ................................................................... B-1 C Lista de abreviaturas ........................................................... C-1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin Resumen breve Este captulo contiene informaciones acerca de los campos de aplicacin del autmata programable S5-135U con la CPU 928B y sobre su estructura interna. Explica el funcionamiento tpico de una CPU y el modo en que est estructurado un programa de CPU. Tambin ofrece algunos consejos sobre cmo proceder a la hora de programar e informa asimismo sobre los datos caractersticos importantes que posee la CPU 928B (-3UB21). Si ya ha trabajado anteriormente con la CPU 928B (-3UBll -3UB12) y desea saber en qu aspectos se diferencia la CPU 928B (-3UB21), consulte el captulo 1.8. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 1.1 1.2 1.3 1.3.1 1.3.2 1.4 1.5 1.6 1.7 1.8 Tema Campos de aplicacin del S5-135U con la CPU 928B Funcionamiento tpico de una CPU Los programas de una CPU Programa de sistema Programa de usuario De qu operandos dispone el programa de usuario? Accesos a zonas de operandos y de memoria Cmo proceder a la hora de programar? Herramientas de programacin Qu novedades presenta la CPU 928B-3UB21? Pgina 1-2 1-3 1-5 1-5 1-7 1-9 1-12 1-13 1-16 1-17 Introduccin 1.1 Campos de aplicacin del S5-135U con la CPU 928B Clasificacin El autmata programable S5-135U pertenece a la familia de los controladores de dentro de la memoria programable SIMATIC S5. Junto con la CPU 928B constituye un familia potente multiprocesador para la automatizacin de procesos industriales (mando, avisos, supervisin, regulacin, protocolizado). Puede ser utilizado para componer mandos simples con seales binarias as como para solucionar tareas de automatizacin complejas y de gran envergadura. Campos de aplicacin El autmata programable S5-135U con la CPU 928B es especialmente apropiado para: Tareas que requieran un procesamiento ultrarrpido de bits y de palabras, es decir, con 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). Tareas que requieran una comunicacin rpida con otras CPUs incorporadas en el autmata programable en modo multiprocesador y con tarjetas CPs (procesadores de comunicacin) (por ejemplo, conexiones con sistemas de bus, visualizaciones, etc.). Tareas de regulacin fciles de resolver con el software de regulacin R 64 as como para su mando y observacin a travs de imgenes estndar con el sistema PMC. Estructuras de automatizacin que requieran una comunicacin directa con una computadora de control, otros autmatas programables o una impresora, a travs de la segunda interfaz integrada o bien a travs de una conexin SINEC L1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.2 Funcionamiento tpico de una CPU Funcionamiento Una CPU ofrece los siguientes modos de operacin: de una CPU 1. Procesamiento controlado por alarma Procesamiento cclico 2. Procesamiento La mayor parte de los procesos que tienen lugar en una CPU se cclico efectan de este modo. Como su propio nombre indica, en un ciclo continuo se va repitiendo el mismo proceso una y otra vez. O Procesamiento controlado por tiempo El procesamiento cclico se divide en tres fases principales: CPU Proceso Fase 1 2 3 Leer la imagen de Entrada E 1.3 proceso de las entradas Entrada E 1.4 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 salidas (PAA). El programa de sistema transfiere los valores que contiene la PAA a las tarjetas de salida asignadas a la CPU. l I ' Entrada E 1.5 Evaluar las seriales de entrada, definir las seriales de salida Salida A 2.0 Emitir la imagen de proceso de las salidas Salida A 3.1 Salida A 4.7 I nst rucci ones d e pr ogr amaci n CP U 928B- 3UB21 C79000- G8578- C870- 01 Introduccin Procesamiento Para procesos que requieran seales de control en intervalos de tiempo controlado constantes se pueden procesar determinadas tareas de forma controlada por por tiempo tiempo - adems de la ejecucin cclica - tales como funciones de supervisin que no dependen de tiempo, en intervalos de segundos. Procesamiento A una seal de proceso a la que se deba reaccionar con gran rapidez se le asigna una controlado fase de procesamiento controlada por alarma. Por ejemplo, el usuario puede por alarma activar en su programa una secuencia determinada mediante una alarma de proceso disparada por una tarjeta que genere alarmas. Procesamiento Los modos de procesamiento mencionados son tratados por la CPU segn su segn prioridad grado de importancia. Este grado de importancia se denomina prioridad. Puesto que es necesario reaccionar con rapidez ante un suceso de tiempo o alarma, la CPU interrumpe el procesamiento cclico a fin de tratar estos sucesos. De ah que el procesamiento cclico tenga una prioridad inferior a las dems. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.3 Los programas de una CPU Introduccin El programa que contiene cada una de las CPUs se divide en programa de sistema Y programa de usuario. 1.3.1 Programa de sistema Panormica 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-1). Ejecutar arranque al programa A A ..nmmn.:.. in Establecer comunicacin Tratar errores Establecer comunicacin con PG Fig. 1-1 Funciones del programa de sistema Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin Funciones Las funciones son las siguientes : nuevo arranque y rearranque, actualizacin de la imagen de proceso de las entradas y emisin de la imagen de proceso de las salidas, llamada a los programas cclico, procesado por tiempo y por alarma, deteccin y tratamiento de errores, administracin de la memoria, comunicacin con el aparato de programacin, comunicacin a travs de la segunda interfaz serie. lnterfaces con el En determinados estados operativos y casos de error el usuario tiene la usuario posibilidad de modificar el comportamiento de la CPU a travs de interfaces especiales con el programa de sistema. Ajuste por Los siguientes captulos, a excepcin del captulo 7, describen el defecto del comportamiento preajustado del sistema en reacciones ante sucesos del comportamiento proceso o errores. De acuerdo con el preajuste, la CPU pasa por ejemplo al del sistema estado STOP cuando en caso de un error de cdigo de instruccin no est cargado el correspondiente mdulo de organizacin de error. Modificacin del El comportamiento del sistema puede ser modificado parametrizando el mdulo ajuste de datos DX O. por defecto En el captulo 7 se puede consultar cul es el comportamiento del sistema una vez modificado el ajuste por defecto! l) En funcionamiento con varias CPUs (modo multiprocesador) se incorporan otras funciones. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.3.2 Programa de usuario Estructura La figura 1-2 muestra la estructura bsica de un programa de usuario de STEP 5. Mdulos de organizacin OB Operaciones STEP 5 E 1 3 A 3 1 Mdulos de Mdulos de Mdulos de programa funciones pasos PB FBIFX SB Operaciones Operaciones Operaciones STEP 5 STEP 5 STEP 5 FB 8 SEGMENTO 1 NOMB. :TRANS E 1 3 0005 :L EB 3 0006 :T MW 200 0007 :A DE 5 0008 :B MW 200 0009 :L DW O OOOA :T AW 6 0006 :BE Mdulos de cdigo DB 1: KH=0101; Datos estticos o dinmicos 2: KF = 1120: (bits, bytes, palabras, palabras dobles) 3: KC = xy; 4: KY = 4.5; 5: KG = 6: KM = 7: Mdulos de datos DX 1: KH = FFFF; Datos estticos o dinmicos 2: KH = FFFF; 3: KH = FFFF: (bits, bytes, palabras, palabras dobles) 4: KH = FFFF: 5: KH = FFFF: 6: KH = FFFF: 7: Fig. 1-2 Estructura de un programa de usuario STEP 5 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin Funciones El programa de usuario contiene todas las funciones necesarias para procesar 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: Almacenamiento En la CPU 928B se dispone de dos zonas para grabar los mdulos: del programa de usuario La memoria de usuario: mx. 64 Kbyte Modo de procesamiento Nuevo arranque y rearranque Procesamiento cclico Procesamiento controlado por tiempo Procesamiento controlado por alarma Reaccin ante errores La memoria de usuario se encuentra en la tarjeta (CPU). Funcin Se crean las condiciones para que en caso de un nuevo arranque del mando o un rearranque, el resto del procesamiento pueda partir de un estado definido (p. ej. prefijar seales con un valor determinado). Procesamiento reiterativo de seales @. ej. combinacin de seales binarias, lectura y evaluacin de valores analgicos, definicin de seales binanas para la emisin, emisin de valores analgicos) Procesamientos especiales en funcin de tiempo bajo las circunstancias que se indican: - ms rpido que el ciclo medio, en una escala de tiempo mayor que el tiempo medio de ciclo, - en un tiempo regulable determinado Reacciones especiales y rpidas ante determinadas seales de proceso Tratamiento de anomalas en el desarrollo habitual del programa La RAM de mdulos de datos (DB-RAM): mx. 46 Kbyte La DB-RAM es una zona de memoria adicional que sirve para registrar mdulos de datos. La DB-RAM se encuentra en la tarjeta (CPU). lnterfaces con el Como interfaces con el programa de sistema se dispone de mdulos de programa organizacin para los distintos modos de procesamiento. de sistema Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.4 De qu operandos dispone el programa de usuario? Panormica La CPU 928B ofrece las siguientes zonas de operandos para la programacin: Imagen de proceso y periferia Marcas (marcas M y marcas S) Temporizadores/contadores Mdulos de datos Imagen de proceso de las entradas y salidas PAEIPAA Zona de periferia (zona P) Caractersticas El programa de usuario puede acceder muy deprisa a la imagen de proceso, es decir, a los siguientes tipos de datos: - bits, - bytes, - palabras, - palabras dobles. Tamao 128 byte para las entradas y salidas respectivamente Zona de periferia ampliada (zona Q) Caractersticas El programa de usuario puede acceder directamente a las tarjetas de E/S (perifricas) a travs del bus S5. Son vlidos los siguientes tipos de datos: - bytes, - palabras. Tamao 256 byte para las entradas y salidas respectivamente Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Caractersticas El programa de usuario puede acceder directamente a las tarjetas E/S @erifricas) a travs del bus S5. Son vlidos los siguientes tipos de datos: - bytes, - palabras. Tamao 256 byte para las entradas y salidas respectivamente Introduccin Marcas M Marcas S (zona de marcas ampliada) Caractersticas La zona de marcas es una zona de memoria a la que el programa de usuario puede acceder con mucha rapidez con operaciones correspondientes. La zona de marcas debe utilizarse preferentemente para datos de trabajo que se requieran frecuentemente. Se puede acceder a los siguientes tipos de datos: - bits, - bytes, - palabras, - palabras dobles. Los bytes de marcas pueden ser empleados como marcas de acoplamiento para el intercambio de datos entre las CPUs en modo multiprocesador (vase captulo 10). Al final del ciclo, el programa de sistema actualiza las marcas de acoplamiento a travs de una memoria intermedia del coordinador o CPAP. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tamao 2048 bits (256 bytes) Caractersticas La CPU 928B contiene una zona de marcas adicional, la zona de marcas S. Al igual que a las marcas M, el programa de usuario puede acceder a esta zona a gran velocidad. Sin embargo, las marcas S no se pueden emplear como operandos actuales en las llamadas a mdulos de funciones y tampoco como marcas de acoplamiento para el intercambio de datos entre las CPUs. Para poder utilizarlas es imprescindible disponer del software de sistema del aparato de programacin "SS-DOS" a partir de la versin 3.0 o "SS-DOSIMT "a partir de la versin 1.0. Tamao 8192 bits (1024 bytes) Introduccin Temporizadores T Caractersticas Contadores Z Tamao El programa de usuario carga temporizadores con un valor entre 10 ms y 9990 s. Mediante una operacin de arranque y a partir del valor indicado, stas van decrementando en la escala de tiempo establecida hasta alcanzar el valor O. 256 temporizadores Palabras de datos en el mdulo de datos actual Caractersticas El programa de usuario carga contadores con un valor inicial (mx. 999) siendo incrementados o decrementados a continuacin. Tamao 256 contadores l) 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 con operaciones para accesos absolutos a la memoria (vase captulo 9) o con el OB 180 (vase captulo 6). Caractersticas Un mdulo de datos contiene constantes y10 variables en formato de byte, palabra o palabra doble. Con las operaciones STEP 5 el usuario siempre puede acceder al mdulo de datos "actual" (vase captulo 2.4). Se puede acceder a los siguientes tipos de datos: - bits, - bytes, - palabras, - palabras dobles. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tamao 256 palabras 1) Introduccin 1.5 Accesos a zonas de operandos y de memoria Introduccin Para acceder a estas zonas de operandos y a la totalidad de la memoria, las instrucciones STEP 5 utilizan dos mecanismos diferentes: direccionamiento relativo, direccionamiento absoluto. Direccionamiento La mayor parte de las instrucciones STEP 5 direcciona una clula de memoria de relativo forma relativa al principio de una zona de operandos. Si se opera exclusivamente con este tipo de instrucciones, las zonas de cdigo y de datos del programa de usuario estn protegidas de sobreescrituras accidentales. A la vez, el programa de usuario no depende de la CPU utilizada, siempre que sta disponga de la zona de operandos correspondiente. Direccionamiento Algunas instrucciones STEP 5 operan con direccionamiento absoluto. Estas absoluto instrucciones permiten acceder a la totalidad de la zona de memoria. Solamente pueden ser utilizadas en mdulos de funciones. Debido al riesgo de que se destruyan datos slo debern utilizarse con la mayor cautela. Estas instrucciones dependen de la CPU utilizada. Mdulo de datos Los mdulos de datos son cargados por el programa de sistema en la memoria de actual usuario o en la DB-RAM. Su posicin depender del espacio de memoria disponible. La longitud se determina al programar el mdulo y puede variar. El mdulo de datos actual es el mdulo cuya direccin inicial y longitud estn depositadas en registros especiales. El registro se efecta con una operacin STEP 5 especial para llamar o "abrir" mdulos de datos (como la pgina de un libro). El programa de usuario slo puede acceder al mdulo de datos actual, siempre que no se utilicen instrucciones con direccionamiento absoluto. Se admiten los siguientes tipos de datos: bits individuales, bytes, palabras y palabras dobles. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.6 Cmo proceder a la hora de programar? Introduccin Si Vd. es un usuario experto, seguramente ya habr desarrollado un mtodo propio para crear programas. Si es as, no necesitar leer este captulo. A aquellos lectores que tengan menos experiencia en este tema queremos darles algunos consejos sobre cmo proceder a la hora de esbozar, programar, comprobar y poner en marcha su programa STEP 5. Fases de realizacin La realizacin de un programa de mando STEP 5 puede ser dividida en tres fases: 1" Establecer el planteamiento tecnolgico. 2" Esbozar el programa. 3" Crear, comprobar y poner en marcha el programa. Procedimiento La practica demostrara que es necesario repetir ciertos pasos ("procedimiento recursivo recursivo"), por ejemplo, cuando al definir con mayor exactitud la tarea a resolver el usuario se d cuenta de que precisa mayor nmero de seales. Fase 1 Establecer el ~lanteamiento tecnolpico La primera fase se puede dividir en los pasos siguientes: 1" Crear un diagrama de bloques aproximativo de las tareas de mando que requiera el proceso. 2" Crear una lista de las seales de entradas y salidas que requiera la tarea a resolver. 3" Perfeccionar el diagrama de bloques asignando a cada uno de los bloques las seales y, dado el caso, las circunstancias de tiempo y10 estados de los contadores que sean necesarios. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin Fase 2 - Para la segunda fase se recomienda el siguiente procedimiento: 1" Sirvindose del diagrama de bloques esbozar los modos de procesamiento necesarios para el programa (procesamiento cclico, procesamiento controlado por tiempo, etc.) y asignar nombres a los OBs utilizados. 2" Dividir los modos de procesamiento en bloques tecnolgicos y10 funcionales. 3" Comprobar si se pueden asignar los bloques a un mdulo de programa o de funciones y asignar nombres a los mdulos a utilizar (PB x, FB y etc.) 4" Determinar qu temporizadores, contadores y datos o memorias de resultados se requieren. 5" Determinar las tareas para cada 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. Nota sobre la dimensin del procesamiento cclico Es necesario tener en cuenta las siguientes condiciones a la hora de determinar los modos de procesamiento. El ciclo debe desarrollarse a una velocidad suficiente. Los estados del proceso no deben modificarse ms deprisa de lo que pueda reaccionar la CPU. De lo 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 varias veces por los programas controlados por tiempo y por alarma. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin Fase 3 En la tercera fase se deben ejecutar los pasos siguientes: 1" Determinar el modo de representacin para 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. 2" Programar todos los mdulos de cdigo y de datos (consultar a este respecto el manual STEP 5). 3" Poner los mdulos sucesivamente en funcionamiento (para ello, a veces es necesario programar por cada paso un OB 1 distinto que llame a los mdulos de cdigo en cuestin): - cargar elllos mdulo(s), - comprobar elllos mdulo(s). (Consultar a este respecto el manual del aparato de programacin y el captulo 11.) 4" Si es seguro que todos los mdulos de cdigo se estn ejecutando correctamente y que todos los datos se estn calculando y memorizando de forma correcta, entonces puede ponerse en funcionamiento todo el programa. Nota sobre la estrategia de comprobacin Cul es el momento ms apropiado para hacer funcionar su programa por primera vez en modo "caliente", es decir, con seales de entrada y sobretodo 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 funcionamiento. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.7 Herramientas de programacin Aparatos de Para crear un programa de usuario propio se dispone de los aparatos de programacin programacin PG 685, PG 710, PG 730, PG 750 y PG 770. En el catlogo ST 59 apropiados (bibliografa 190 puede consultarse la capacidad y las caractersticas de estos aparatos. Software apropiado Nota - Para poder utilizar asimismo un PG 615 o un OP 3xx hay que registrar en el dato de sistema BS 29 (vase captulo 8) la identificacin de la CPU 922 (0010B). En este caso no se podrn utilizar las marcas S. Si no se modifica la identificacin, los indicadores visualizados sern errneos, por ejemplo, activando "SALIDA AG-INFOKJSTACK" (pila de interrupciones). Asimismo, algunas funciones de test no sern posibles. - En todos los PGs la funcin de test STATUS puede operar de forma ilimitada solamente con tiempos de ciclo 2,5 s. En funcionamiento paralelo de 2 interfaces de PG (vase captulo 11) este valor se reduce a la mitad. Los programas de usuario para autmatas programables SIMATIC S5 pueden ser creados con el lenguaje de programacin STEP 5 en los modos de representacin KOP/FUP/AWL: Para ello se requiere el paquete de programacin STEP 5 junto con el software de sistema STEP 51ST o STEP 51MT (descripcin vase 131 en el apartado de bibliografa) con un lenguaje de programacin de alto nivel: Si el usuario est acostumbrado a escribir programas con un lenguaje de alto nivel puede formular su programa STEP 5 para la CPU 928B tambin en el lenguaje: - SCL (vase 1121 en el apartado de bibliografa; el compilador SCL est incluido en el software de PG "SS-DOSIMT" a partir de la versin 6). Los programas para mandos secuenciales pueden crearse asimismo en representacin grafica con el paquete de programacin GRAPH 5 (descripcin vase 141 en el apartado de 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 (bibliografa /11/) se puede consultar su capacidad y caractersticas. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin 1.8 Qu novedades presenta la CPU 928B-3UB21? Introduccin La versin -3UB21 de la CPU 928B ofrece las siguientes funciones y caractersticas nuevas frente a la versin -3UB12: Ocupacin de slots RAM integrada Memory Card Estructuracin del DB O Aritmtica en coma flotante Estadstica de Las funciones de la estadstica de ciclo (OB 152) se han ampliado frente a la ciclo ampliada versin -3UB12, habiendo aumentado p.ej. la resolucin de los temporizadores. CPU 928B (-3UB21) La CPU requiere slo un slot. RAM integrada en la CPU (RAM interna) con una capacidad de 64 KB Memory Card SIMATIC (Flash EPROM) Para la ejecucin del programa de usuario, ste se copia de la Memory Card en la RAM interna, quedando entonces protegido contra escritura. Slo despus del borrado total de la CPU Mantisa de 24 bits Proteccin del software CPU 928B (-3UB12) La CPU requiere dos slots. Cartuchos RAM enchufables, de diferente capacidad Cartuchos RAM enchufables El programa de usuario permanece en el cartucho EPROM para su ejecucin. Despus de la conexin a la red o del borrado total de la CPU Mantisa de 16 24 bits Programar la Memory Card Mediante el BS 139 se puede ajustar una contrasea para evitar que se lea o se modifique el programa de usuario contenido en la CPU. Para programar las Memory Cards Flash EPROM se requiere un PG 7xx con S5DOS a partir de la versin 6.x. Un programa contenido en un cartucho de memoria antiguo se puede reprogramar en una Memory Card. Copiar el Si al efectuarse un borrado total est insertada una Memory Card Flash EPROM, contenido de la el sistema operativo copia el contenido de la misma en la RAM interna y Memory Card estructura el DB O. La Memory Card no se necesita ms durante el servicio normal. Modo EPROM Una vez copiado el contenido de la Memory Card (al efectuarse un borrado total), la memoria de usuario (direcciones OOOOHa 7FFFH) se protege contra accesos de escritura desde el PG y por parte del programa de usuario. Esto equivale al comportamiento de una CPU 928B con cartucho EPROM insertado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Introduccin Activar/desactivar La proteccin contra escritura se puede activar o desactivar directamente. A tal la proteccin efecto existen dos posibilidades: contra escritura (OB 138) Activando/desactivando el BS 138 antes de finalizar el nuevo arranque de la (OB 185) CPU (se evala al final del OB 20). Llamando al OB 185 en el OB 20 (slo es posible allj se activa o desactiva inmediatamente la proteccin contra escritura. Comprimir Llamando al OB 186 se puede iniciar la funcin del aparato de programacin mediante el (PG) que comprime la memoria mediante el programa de usuario. Puesto que programa de dicha funcin podra colisionar con peticiones actuales del PG, el OB 186 y las usuario funciones del PG se bloquean mutuamente. (OB 186) Estadstica de ciclo La estadstica de ciclo ya no est acoplada al temporizador de vigilancia. Por consiguiente, no se puede afectar redisparando la vigilancia del ciclo. Como alternativa a la resolucin de 1 ms, mediante un nuevo nmero de funcin se puede aumentar ahora la resolucin a 10 ms. Accesos al byte El OB 110 se puede utilizar ahora con mayor frecuencia, puesto que el registro indicador OB 11 0 de indicadores ya no se sobreescribe cuando se llama al bloque (como era el caso anteriormente). Comprobacin El sistema operativo comprueba ahora siempre la memoria EPROM al de la memoria conectarse la alimentacin. Por lo tanto, ya no se requieren ni el OB 226 (Leer EPROM palabra del sistema operativo) ni el OB 227 (Leer suma de verificacin). Dichos mdulos existen an por motivos de compatibilidad, pero retornan slo el valor O. Nuevos OBs con La CPU 928B-UB21 dispone de las siguientes funciones especiales nuevas: funciones especiales OB 134 para la instruccin: *D OB 135 para la instruccin: /D OB 136 para la instruccin: MOD OB 139 para la instruccin: PUSH Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Programa de usuario Resumen breve El captulo siguiente explica los componentes que integran un programa de usuario STEP 5 para la CPU 928B y la forma en que puede ser estructurado. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.4 2.4.1 2.4.2 2.4.3 Tema Lenguaje de programacin STEP 5 Modos de representacin KOP, FUP y AWL Programacin estructurada Operaciones STEP 5 Representacin numrica Mdulos STEP 5 y su registro en la memoria Mdulos de programa, de organizacin y de pasos Mdulos de organizacin para interfaces con el usuario Mdulos de organizacin de funciones especiales Mdulos de funciones Estructura de los mdulos de funciones Programacin de los mdulos de funciones Llamada y parametnzacin de mdulos de funciones Mdulos de funciones especiales Mdulos de datos Crear mdulos de datos Abnr mdulos de datos Mdulos de datos especiales Pgina 2-2 2-2 2-4 2-5 2-6 2-10 2-14 2-16 2-19 2-21 2-22 2-24 2-26 2-31 2-33 2-35 2-36 2-39 Proarama de usuario 2.1 Lenguaje de programacin STEP 5 Introduccin Con el lenguaje de programacin STEP 5 se transforman las tareas de automatizacin en programas ejecutables en autmatas programables SIMATIC S5. Con STEP 5 se pueden programar tanto funciones binarias simples como funciones digitales complejas y operaciones aritmticas as como las operaciones aritmticas en coma flotante. 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). y operaciones complementarias y de sistema: - aplicables solamente en mdulos de funciones, - modo de representacin: solamente lista de instrucciones (AWL), - operaciones de sistema: slo para usuarios con muy buenos conocimientos del sistema. 2.1.1 Modos de representacin KOP, FUP y AWL Resumen 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 los tres modos de representacin. Si se respetan determinadas reglas al programar con el lenguaje STEP 5 (vase bibliografa /3/), el aparato de programacin podr traducir los programas de usuario de una forma de representacin a cualquier otra! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario Representacin Mientras que en los modos de representacin esquema de funciones (FUP) y grfica o lista de esquema de contactos (KOP) se tiene la posibilidad de apreciar el programa en su instrucciones forma grfica, en la lista de instrucciones (AWL) es necesario conocer las instrucciones STEP 5. Fig. 2-1 Modos de representacin del lenguaje de programacin STEP 5 ESQUEMA DE CONTACTOS(K0P) Programacin con smbolos grficos, como diagrama secuencia1 corresponde a la norma DIN 19239 Representacin GRAPH 5 es un lenguaje de programacin para la representacin grfica de grfica de mandos secuenciales. Es de orden superior a los modos de representacin KOP, mandos FUP y AWL. Los programas escritos en la forma de representacin grfica secuenciales GRAPH 5 son traducidos automticamente por el aparato de programacin a programas en lenguaje STEP 5. Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 LISTA DE INSTRUCCIONES (AWL) Programacin con abreviaturas mnemo- tcnicas de las funciones corresponde a la norma DIN 19239 AWL U E UN E U E ON E O E = A ESQUEMA DE FUNCIONES (FUP) Programacin con smbolos grficos corresponde a las normas ICE 117-15 DIN 40700 DIN 40719 DIN 19239 FUP Proarama de usuario 2.1.2 Programacin estructurada Resumen El lenguaje de programacin STEP 5 permite estructurar el programa de usuario. sinptico Para ello se subdivide el programa de usuario en unidades independientes (mdulos). De este modo, la misma estructura del programa de usuano aclara a simple vista sus partes esenciales o resalta elementos coherentes de la instalacin segn la tcnica de programacin. Ventajas Qu es un mdulo? El procedimiento de la "programacin estructurada" ofrece las siguientes ventajas: programacin simple y ordenada, tambin para tareas de gran envergadura, posibilidad de estandanzacin de programas parciales, organizacin clara y simple de los programas, facilidad de modificacin, test simple del programa (por partes), fcil puesta en funcionamiento. 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). Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario 2.1.3 Operaciones STEP 5 Definicin Una operacin STEP 5 es la menor unidad independiente del programa de usuario. Es la orden de trabajo para la CPU. Una operacin STEP 5 se compone de un elemento operante y de un elemento operando. Ejemplo Operandos absolutos y simblicos Cdigo de operacin Parmetro Elemento Elemento operando operante (con qu operandos?) ('qu operacin se debe efectuar?) 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 correspondiente aparato de programacin. Aplicacin de las El conjunto de operaciones que ofrece STEP 5 permite operaciones STEP 5 combinar, activar o rearmar valores binanos, cargar y transferir valores, comparar valores entre s y procesarlos antmticamente, definir valores de tiempo y de contaje, transformar representaciones numricas, llamar mdulos y efectuar saltos dentro de un mdulo, e influir sobre el procesamiento del programa. Resultado de El bit central para el mando del programa es el resultado de combinacin VKE combinacin VKE (resultado lgico). Se genera mediante combinaciones binanas y a veces es alterado 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 el modo de generar el VKE. lnstrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario 2.1.4 Representacin numrica Resumen Para que la CPU pueda combinar, modificar o comparar 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, STEP 5 acepta las siguientes representaciones numricas: Nmeros duales: 16 bit, coma fija 32 bit, coma fija 32 bit, coma flotante (con mantisa 16 24 bit) Nmeros decimales: en BCD (signo y 3 dgitos decimales) Entrada de Para entrar o emitir valores numricos es necesario ajustar en el aparato de valores programacin el formato de datos (por ej. KF para coma fija) en el que se desean numricos entrar o hacer visualizar los valores numricos. De esta manera, el aparato de mediante el PG programacin se encargar de transformar la representacin numrica interna en el modo de representacin deseado. Operaciones Los nmeros de 16 bit en coma fija y coma flotante, permiten realizar todas las admisibles 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 conducen a resultados errneos. Con los nmeros en 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 en coma flotante. Con las ins-trucciones +D y -D, tambin pueden ser utilizados para adiciones y sustracciones. El lenguaje de programacin STEP 5 incluye operaciones de conversin que permiten convertir nmeros directamente a las representaciones numricas ms importantes. Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Programa de usuario Nmeros en Los nmeros en coma fija son nmeros duales enteros provistos de un signo. coma fija de 16 y 32 bit Codificacin de nmeros en coma fija En representacin binaria son de 16 bits (= 1 palabra) o de 32 bits (= 2 palabras) de ancho. El bit 15 o el bit 31, segn el caso, llevan el signo: '0' = nmero positivo '1' = nmero negativo Los nmeros negativos se representan en complemento de 2. Entrada mediante el PG Nmeros en coma fija de 16 bits: KF Nmeros en coma fija de 32 bits: DH Campo de valores admisible Nmeros en coma fija de 16 bits: de -32768 a +32767 Nmeros en coma fija de 32 bits: de -2147483648 a +2147483647 Aplicacin de los nmeros en coma fija Los nmeros en coma fija se usan para operaciones aritmticas simples y para la comparacin de valores numricos. Puesto que los nmeros en coma fija siempre son nmeros enteros, hay que tener en cuenta que el resultado de una divisin de dos nmeros en coma fija tambin tiene que ser un nmero entero en coma fija sin dgitos decimales. Nmeros en coma flotante Los nmeros en coma flotante son nmeros fraccionarios de valor positivo y negativo. Siempre ocupan una palabra doble (32 bits). Los nmeros en coma flotante se representan de forma exponencial. La CPU 928B ejecuta las operaciones de adicin, sustraccin, multiplicacin y divisin con una mantisa de 24 bits de ancho (bits O a 23). El exponente ocupa 8 bits. Indica la dimensin del nmero en coma flotante. El signo del exponente indica si el valor absoluto del nmero en coma flotante es mayor o menor que 0,l. Aplicacin de los Los nmeros en coma flotante deben utilizarse para solucionar operaciones nmeros aritmticas extensas, especialmente para multiplicaciones y divisiones, y tambin en coma flotante para ejecutar operaciones con nmeros muy altos o muy bajos! Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Precisin La mantisa determina la precisin del nmero en coma flotante: Precisin en caso de una mantisa de 24 bit: 2-24 = 0,000000059604 (equivale a 7 dgitos a la derecha de la coma) Si el signo de la mantisa es 'O', el nmero es positivo; si el signo es '1', es un nmero negativo en representacin de complemento de 2. El valor en coma flotante 'O' se representa como valor dual80000000H (32 bit, vase "Codificacin de nmeros en coma flotante"). Codificacin de nmeros en coma flotante Un nmero en coma flotante se codifica de la siguiente forma: Exponente Mantisa Indicacin del formato de datos para nmeros en coma flotante en el aparato de programacin: KG Campo de valores admisible de I 0,1469368 x a I 0,1701412 x lo3' Entradaslsalidas por el PG a) En el mdulo de cdigo: Se ha de cargar el nmero Z = 12,34567 como constante en coma flotante. Entrada: Salida por PG tras confirmar la lnea: 1 Mantisa con signo I I Exponente (base 10) con signo Valor del nmero entrado: +0,1234567 x 10'~ = 12,34567 Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Nmeros en cdigo BCD "1 En el mdulo de datos: Se ha de definir el nmero Z = - 0,005 como constante en coma flotante. Entrada: Salida por PG tras confirmar la lnea: 6: KG,=500000011-02, 1 Mantisa con signo Exponente (base 10) con signo Valor del nmero entrado: - 0,5 x = 0,005 Los nmeros decimales se representan en cdigo BCD. Con signo y 3 cifras ocupan 16 bit en el acumulador (1 palabra): Las cifras son nmeros dudes positivos de 4 bits entre 0000 y 1001 (Oy 9 decimal). 15 12 S S S S Los bits a la izquierda estn reservados para el signo. Signo para un nmero positivo: O000 Signo para un nmero negativo: 1111 11 8 Centenas Campo de valores admisible de -999 a +999 lnstrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 7 4 Decenas 3 O Unidades Proarama de usuario 2.1.5 Mdulos STEP 5 y su registro en la memoria Identificacin Un mdulo se identifica por: el tipo de mdulo (OB, PB, SB, FB, FX, DB, DX) Y el nmero de mdulo (nmero entre O y 255). Tipos de mdulos El lenguaje de programacin STEP 5 distingue los siguientes tipos de mdulos: Mdulos de organizacin (OB) 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 a 39 se puede controlar el procesamiento del programa, el comportamiento de arranque de la CPU y el comportamiento en caso de error. Esto se consigue programando los mdulos de acuerdo con la tarea de automatizacin a resolver. Estos OBs son llamados por el programa de sistema. - Los OB 40 a 255 contienen funciones especiales del programa de sistema. En caso necesario, pueden ser llamados por el programa de usuario. Mdulos de programa (PB) Los mdulos de programa se usan para estructurar el programa de usuario y contienen programas parciales estructurados segn puntos de vista tecnolgicos o funcionales. Los PBs constituyen el ncleo del programa de usuario. Mdulos de pasos (SB) Los mdulos de pasos eran originariamente mdulos de programa especiales que se usaban para la "ejecucin paso a paso" de cadenas secuenciales. En el presente, las cadenas secuenciales pueden ser programadas mediante GRAPH 5. 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. Mdulos de funciones (FBIFX) 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: de 256 a 512. Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Mdulos de datos (DBIDX) 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: de 256 a 512. Estructura de los Todos los tipos de mdulos consisten de mdulos una cabeza uncuerpo. Cabeza Cuerpo Antecabeza La cabeza, que tiene siempre una longitud de 5 palabras, contiene datos para la administracin de los mdulos en el aparato de programacin y datos para el programa de sistema. 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 una lista de operandos formales (en el caso de FB, EX). En el caso de los mdulos de datos del tipo DB, DX, FB y FX, el aparato de programacin genera adicionalmente una antecabeza del mdulo (DV, DXV, FV, FXV). Estas antecabezas contienen informaciones referentes al formato de datos (en el caso de DB y DX) o a las marcas de salto (FB y FX), las cuales solamente pueden ser evaluadas por el aparato de programacin. Por ello no se transfieren a la memoria de la CPU. El usuario no puede modificar el contenido de la antecabeza. Longitud mxima Un mdulo STEP 5 puede ocupar mximo 4096 palabras (1 palabra corresponde a 16 bit) en la memoria de programa de la CPU. Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Mdulos De los diferentes tipos de mdulos disponibles, el usuario dispone para la disponibles programacin: EB O a 255 F en total 512 EX O a 255 DB 3 a 255 I en total 506 DX 3 a 255 Los mdulos de datos DB O, DB 1, DB 2, DX O, DX 1 y DX 2 contienen parmetros. Estos estn reservados para determinadas funciones y, por lo tanto, no pueden ser usados a voluntad. Almacenamiento El aparato de programacin almacena todos los mdulos programables en la de mdulos memoria de programa segn el orden de transferencia (fig. 2-2). Con la funcin en la memoria del aparato de programacin "Mdulos iTransferir/Todos mdulos" se transfieren al autmata programable primero los mdulos de cdigo y luego los de datos. En modo RAM, despus de finalizar la transferencia de los mdulos de cdigo, se rellena en primer lugar la memoria de usuario con mdulos de datos y despus se escriben los mdulos de datos restantes en la DB-RAM interna. Las direcciones iniciales de los mdulos almacenados se registran en el mdulo de datos DB O. Di r ecci n O Posi ci n de l os mdul os en l a memor i a de usuar i o Fig. 2-2 Ejemplo del registro de mdulos en la memona de usuario Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Carga alternativa Activando el bit O del dato de sistema BS 144 es posible cargar mdulos de datos (slo en la primero en la DB-RAM (mientras haya espacio suficiente) ("carga alternativa" - versin -3UB12) vase captulo 8/BS 144). Slo cuando la DB-RAM est llena se transferirn los mdulos de datos a la memoria de usuario. Correccin y borrado de mdulos Al corregir mdulos en "modo RAM", 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. Por lo tanto, los mdulos que han sido borrados o corregidos siguen ocupando espacio en la memoria. 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. La compresin se efecta por separado en la memoria de usuario y en la DB-RAM interna (vase captulo 11.2.2). Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario 2.2 Mdulos de programa, de organizacin y de pasos Introduccin Los mdulos de programa (PB), los mdulos de organizacin (OB) y los mdulos de pasos (SB) no se diferencian en cuanto a su programacin y iiamada. Los tres pueden ser programados opcionalmente en los modos de representacin KOP, FUP y AWL. Programacin Para programar los mdulos de programa, de organizacin y de pasos, se procede de la manera siguiente: 1" 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 O a 255 - mdulos de organizacin 1 a 39 2" Introducir el programa de usuario deseado 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 debe contener un programa parcial independiente. Las combinaciones lgicas tienen que concluir dentro de un mismo mdulo. 3" 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 poderlos procesar. Esto se hace con operaciones especiales de STEP 5, 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 ocasiona un cambio de mdulo. El sistema almacena de forma intermedia la direccin de retroceso registrada en el mdulo que realiza la llamada. Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Llamada Las llamadas pueden ser efectuadas tanto de forma condicional como incondicional incondicional: o condicional Llamada incondicional La instruccin SPA pertenece a las operaciones incondicionales. Ella misma no tiene efecto sobre el VKE. Este se transfiere con el salto al nuevo mdulo, donde puede ser evaluado pero no puede volver a ser combinado. El mdulo llamado se procesa independientemente del resultado de combinacin (VKE, vase captulo 3.4). 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 = O, no se ejecuta la instruccin de salto. Ejemplo: SPB PB 100 Nota Tras ejecutar la operacin de salto condicional el VKE se pone a 'l', independientemente de si se efecta o no el salto al mdulo llamado. Fig. 2-3 Llamadas a mdulos que habilitan un mdulo de programa para su procesamiento Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario Efecto de la instruccin BE Despus de la instruccin BE (fin de mdulo), la CPU contina el programa de usuario en aquel mdulo, en el que se ha programado la llamada: el procesamiento del programa prosigue a partir de la instruccin STEP 5 inmediatamente siguiente a la llamada al 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 efecta la llamada, donde puede ser evaluado a continuacin. Al retornar desde el mdulo llamado, no se modifican los contenidos del AKKU 1, AKKU 2, AKKU 3 y AKKU 4, los indicadores ANZ O y ANZ 1 y el resultado de combinacin VKE (para ms detalles en cuanto a los AKKUs, ANZ O/ANZ 1 y VKE, vase captulo 3.5). 2.2.1 Mdulos de organizacin para interfaces con el usuario Introduccin 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 que se programan igual que los mdulos de programa. Programando estos OBs se puede determinar el comportamiento de la CPU durante el arranque, durante el procesamiento del programa y en caso de error. Los mdulos de organizacin actan en cuanto se cargan en la memoria del autmata programable. Esto tambin es posible durante el funciona- miento 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 prueba, dichos mdulos de organizacin tambin pueden ser llamados por el programa de usuario (SPAJSPB OB xxx). Sin embargo, no es posible ejecutar por ej. un NUEVO ARRANQUE llamando al OB 20! Las tablas que figuran a continuacin proporcionan una visin esquemtica de las interfaces con el usuario (OBs). Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario OBs para el procesamiento del programa Tabla 2-1 Cuadro sinptico de los OBs para el procesamiento del programa I I Organizacin del procesamiento cclico del programa: primera llamada al terminar uno de los modos de arranque, luego llamada cclica Organizacin del procesamiento controlado por alarma; llamada por seal de interrupcin del bus S5 (alarma de proceso) OB3 a 5 No existen en la CPU 928B Mdulos de organizacin para el control del procesamiento Mdulo Alarma temponzada controlada por reloj Funcin y criterio de llamada OB 6 OB 7, OB 8 Alarma temponzada con escalas de tiempo fijas: Alarma de retardo (a partir de la versin -3UB12) No existen en la CPU 928B Llamada cada 10 ms Llamada cada 20 ms Llamada cada 50 ms Llamada cada 100 ms Llamada cada 200 ms Llamada cada 500 ms Llamada cada 1 s Llamada cada 2 s Llamada cada 5 s OBs para el arranque Tabla 2-2 Cuadro sinptico de los OBs para el arranque l Mdulos de organizacin para el control del arranque l 1 Mdulo 1 Funcin y criterio de llamada 1 1 OB 20 1 Llamada para NUEVO ARRANQUE (manual y automtico) 1 Llamada para REARRANQUE MANUAL/NUEVO ARRANQUE CON MEMORIA MANUAL Llamada para REARRANQUE AUTOMATICO/NUEVO ARRANQUE CON MEMORIA AUTOMATICO Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario OBs para el tratamiento de errores Tabla 2-3 Cuadro sinptico de los OBs para el tratamiento de errores l) Si en caso de error no est programado el OB, la CPU pasa al estado STOP. EXCEPCION: En caso de no existir el OB 23, OB 24 (retardo en acuse de recibo) y OB 35 no se produce reaccin! ' ) El OB 28 se llama antes de pasar al estado STOP. El estado STOP se produce siempre, indiferentemente de cmo o de si est programado el OB 28. EXCEPCION: En caso de DESCONEXION no se llama al OB 28! Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario 2.2.2 Mdulos de organizacin de funciones especiales Introduccin Los siguientes OBs contienen funciones especiales del programa de sistema. No pueden ser programados por el usuario (esto vale para todos los OBs numerados entre 40 y 255! ) sino que solamente pueden ser llamados. No contienen programas STEP 5. Los OBs de funciones especiales pueden ser llamados en todos los mdulos de cdigo. Cuadro sinptico Tabla 2-4 Cuadro sinptico de los OBs de funciones especiales Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Mdulos Mdulo OB 110 OB 111 OB 112 OB 113 OB 120 OB 121 OB 122 OB 123 OB 134 OB 135 OB 136 OB 139 OB 150 OB 151 OB 152 OB 153 OB 160 a 163 OB 170 OB 180 OB 181 OB 182 OB 185 OB 186 OB 190,192 OB 191,193 OB 200, 202 a 205 OB 216 a 218 OB 220 OB 221 de organizacin integrados con funciones especiales Funcin Acceso al byte indicador Borrar AKKUs 1, 2, 3 y 4 AKKU rol1 up AKKU rol1 down Activar/desactivar "bloquear alarmas conjuntamente" Activar/desactivar "bloquear alarmas temponzadas individualmente" Activar/desactivar "retardar alarmas conjuntamente" Activar/desactivar "retardar alarmas temponzadas individualmente" * D /D MOD PUSH AjustarPeer hora del sistema AjustarPeer hora para la alarma temponzada controlada por reloj Estadstica de ciclo AjustarPeer hora para la alarma de retardo Bucles contadores Leer pila de mdulos (BSTACK) Acceso variable a mdulo de datos Comprobar el mdulo de datos DBPX Copiar zona de datos Activar/desactivar la proteccin contra escritura Comprimir mediante el programa de usuario Transfenr marcas al mdulo de datos Transfenr bloques de datos a zona de marcas Funciones para la comunicacin en multiprocesamiento Accesos a "pginas" (CPs y algunos IPs) Ampliacin del signo Ajustar tiempo de supervisin de ciclo Proarama de usuario En el captulo 6 se encuentra una descripcin detallada de estas funciones especiales. Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Proarama de usuario 2.3 Mdulos de funciones Introduccin Los mdulos de funciones (EB/FX) tambin son partes del programa de usuario, como por ejemplo los mdulos de programa. Los mdulos EX 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 empresa SIEMENS (mdulos de funciones estndar, en disquete -vase bibliografa 1.51); con estos mdulos de funciones estndar se puede generar rpida y fiablemente todo tipo de programas de usuario para mando, aviso, regulacin y protocolizado pueden ser programados por el usuario mismo. Diferencias Los mdulos de funciones presentan cuatro diferencias fundamentales respecto a respecto a otros los mdulos de organizacin, de programa y de pasos: mdulos Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 1. 2. 3. 4. OB, PB, SB FB/FX Conjunto de operaciones Slo operaciones bsicas - Operaciones bsicas - Operaciones complementarias - Operaciones de sistema 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. Operandos Ninguno Operandos formales (parmetros de mdulo) Durante la llamada se asignan operandos actuales a los operandos formales. Programa de usuario 2.3.1 Estructura de los mdulos de funciones Cabeza del La cabeza (5 palabras) de un mdulo de funciones tiene la misma estructura que mdulo la cabeza de los dems mdulos STEP 5. Cuerpo del El cuerpo se diferencia en su estructura del de los dems tipos de mdulos. La mdulo funcin a ejecutar est escrita en forma de lista de instrucciones en lenguaje STEP 5. Entre la cabeza del mdulo y las instrucciones STEP 5, el mdulo de funciones requiere espacio adicional de memoria para el nombre y la lista de operandos formales. Ya que esta lista no contiene instrucciones para la CPU, se salta mediante un salto incondicionado generado automticamente por el aparato de programacin. Esta instruccin de salto no se visualiza en el aparato de programacin! En las llamadas al mdulo de funciones se procesa solamente el cuerpo del mdulo. Operandos Los operandos pueden ser introducidos en un mdulo de funciones de manera absolutos O absoluta (por ejemplo, M 2.5) o simblica (por ejemplo, -MOTORl). La simblicos asignacin de operandos simblicos debe ser registrada en una lista de asignaciones (vase bibliografa 131). Mdulo de El mdulo de funciones presenta el siguiente aspecto en la memoria del autmata funciones en la programable: memoria Nombre del FB/FX 4 pal abras Operando formal 1 3 pal abras Sal to a trav6s de l a l i sta de operaci ones f or mal es Li sta de operan- dos f or- males I SPA ......................................................... Operando formal 2 Operando f or ma n n/ 3 pal abras 1 I E O er ac. de usuar i o STEP 5 +..--.' 1) 3 pal abras L ---------.- -- .______------ <*- - - - - - - ____- - - ___ ------- I --____---._ ,_---_ Programa -- ________- - ___* ----------______. de usuari o STEP 5 cabeza del ) 5 pal abras mdulo Fig. 2-4 Estructura del mdulo de funciones (FBPX) J - 1 pal abra \ 4 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 L Proarama de usuario En la memoria se encuentran, por consiguiente, todas las informaciones que requiere el aparato de programacin para representar grficamente el mdulo de funciones al efectuar la llamada, y para comprobar los operandos al parametrizar y programar el mdulo de funciones. El aparato de programacin rechaza las entradas errneas. Diferencia entre: En cuanto al tratamiento de los mdulos de funciones cabe distinguir entre "programar" Y programar el FB/FX "llamar y parametrizar" Y llamar y parametrizar el EBFX. 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 la funcin al programa que efecta la llamada. Todos los operandos de entrada y resultados de salida se definen a continuacin como operandos formales. Estos ejercen la funcin de comodines. Llamada y parametrizacin; Cuando se llama un mdulo desde un mdulo de orden superior (OB, PB, SB, FB, EX), los operandos formales (parmetros del mdulo) son reemplazados por operandos actuales: se parametriza el mdulo de funciones. Modo de programar Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 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... hay que proceder de la misma manera que con los mdulos de programa o de pasos. hay que 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 (on line), 2. Programar el mdulo/ios mdulos que efecta(n) la llamada con los operandos actuales. Proarama de usuario 2.3.2 Programacin de los mdulos de funciones Procedimiento 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: 1" Introducir el tipo (FBPX) y nmero del mdulo de funciones. Los mdulos de funciones de usuario deben ser numerados decrecientemente desde FB 255 para no colisionar con los mdulos de funciones estndar, que estn numerados de FB 1 a FB 199. 2" Introducir el nombre del mdulo de funciones. Este puede constar de hasta 8 caracteres y tiene que empezar con una letra. 3" 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 de mdulo y, - dado el caso, el tipo de parmetro de mdulo. Se pueden definir hasta mximo 40 operandos formales. 4" Introducir el programa STEP 5 en el modo de representacin AWL. Los operandos formales se identifican con el signo '=' antepuesto (por ej., U =Xl). Pueden ser llamados mltiples veces desde diferentes lugares del mdulo de funciones. 5" Finalizar la introduccin del programa con "BE" (fin de mdulo). Nota En caso de modificar el orden o la cantidad de operandos formales en la lista, todas las instrucciones STEP 5 del mdulo de funciones que operen con un operando formal, as como la lista de parmetros del mdulo, debern ser actualizadas correspondientemente! Los mdulos de funciones deben ser programados y modificados exclusivamente en disquete o disco duro y despus se deben transferir a la CPU ! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario Operandos Como operandos formales de un mdulo de funciones (tambin llamados formales parmetro de mdulo) se pueden utilizar las siguientes denominaciones de clase y tipo: Tabla 2-5 Operandos formales vlidos para mdulos de funciones I I I 1 Clase de parmetro 1 Tipo de parmetro 1 D = Dato E = Entrada A = Salida B = Instruccin T = Temponzador Z = Contador BI/BY/W/D ninguno (no se admite indicacin de tipo) E, D, B, T o Z son clases de parmetros que en la representacin grfica son representados 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 bits, bytes, palabras o palabras dobles y qu formato de datos es vlido para los parmetros D (por ejemplo, representacin binana o hexadecimal). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario 2.3.3 Llamada y parametrizacin de mdulos de funciones Introduccin 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 ejecutarse tanto en una lista de instrucciones como en representacin grfica (FUP o KOP). Procedimiento Para llamar y parametrizar mdulos de funciones se procede de la manera siguiente: 1" Asegurar que el mdulo de funciones llamado est registrado en la memoria del PG (off line) o de la CPU (on line). 2" Introducir en el mdulo que efecta la llamada la instruccin de llamada al mdulo de funciones. La llamada a un mdulo de funciones puede programarse dentro de un mdulo de organizacin, de programa o de pasos, o dentro de otro mdulo de funciones. Reaccin en el PG Despus de introducir la instruccin de llamada (por ejemplo, SPA FB 200), aparece automticamente el nombre y la lista de operandos formales del mdulo de funciones correspondiente. 3" Asignar a cada operando formal el operando actual vlido para la llamada en cuestin. (As se parametriza el mdulo de funciones.) Los operandos actuales pueden variar en funcin de la llamada: en la primera llamada al FB 200, por ejemplo, entradas y salidas; en la segunda, marcas. De acuerdo con la lista de operandos formales,en cada llamada a un mdulo de funciones hay que asignar los operandos actuales necesarios. Llamada incondicional/ condicional Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Llamada incondicional " SPA FBn" para mdulos de funciones FB o "BA FXn" para mdulos de funciones ampliados FX: El mdulo de funciones llamado se procesa independientemente del resultado de combinacin (VKE). Llamada condicional " SPB FBn" para mdulos de funciones FB o "BAB FXn" para mdulos de funciones ampliados FX: El mdulo de funciones llamado solamente se procesa si el resultade de combinacin VKE = 1. Si VKE = O no se ejecuta la llamada al 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 resultado de combinacin. El VKE no se altera al saltar al FB, desde donde podr ser evaluado. Proarama de usuario Operandos De la tabla siguiente se desprende qu operandos actuales se pueden asignar a actuales los mdulos de funciones. admisibles Tabla 2-6 Operandos actuales vlidos para mdulos de funciones Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Clase de parmetro E, A D Tipo de parmetro BI para un operando con direccin de bit BY para un operando con direccin de byte W para un operando con direccin de palabra D para un operando con direccin de palabra doble KM para representacin binaria (16 dgitos) KY para representacin de dos valores absolutos en bytes de O a 255 respectivamente KH para representacin hexadecimal de hasta 4 dgitos KC para dos caracteres alfanumricos KT para un valor de tiempo (cdigo BCD) con factor de tiempo de .O a .3 y valores de tiempo de O a 999 KZ para un valor de contaje de O a 999 KF para un nmero en coma fija entre -32768 y t32767 KG para un nmero en coma flotante de 10,1469368 x a 10,1701412 x lo3' Operandos actuales vlidos E n.m Entrada A n.m Salida M n.m Marca EB n Byte de entrada Al3 n Byte de salida MB n Byte de marcas DL n Byte de datos izquierdo DR n Byte de datos derecho PY n Byte de penfena QY n Byte de la penfena ampliada EW n Palabra de entrada AW n Palabra de salida MW n Palabra de marcas DW n Palabra de datos PW n Palabra de perifena QW n Palabra de la perifena ampliada ED n Palabra doble de entrada AD n Palabra doble de salida MD n Palabra doble de marcas DD n Palabra doble de datos Constante Proarama de usuario Nota ;No est permitido el uso de marcas S como operandos actuales para mdulos de funciones! Clase de parmetro Despus del salto al mdulo de funciones, en el procesamiento del 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 aplicarlos en el programa de usuario para los ms diversos fines. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tipo de parmetro Operandos actuales vlidos Tabla 2-6 (continuacin): B T Z no se admite indicacin de tipo no se admite indicacin de tipo no se admite indicacin de tipo DB n Mdulo de datos; se ejecuta la instruccin A DB n FB n Mdulo de funciones (solamente vlido sin parmetros), se llama de forma incondicional (SPA . .n) OB n Mdulo de organizacin, se llama de forma incondicional (SPA . .n) PB n Mdulo de programa, se llama de forma incondicional (SPA . .n) SB n Mdulo de pasos, se llama de forma incondicional (SPA . .n) T O a255 Temponzador Z O a255 Contador Programa de usuario Ejemplos Se programa el mdulo de funciones FB 202: SEGMENTO 1 NOMB. EJEMPLO BEZ : ANA E/A/D/B/T/Z: E BI/BY/W/D: BI BEZ : EVA E/A/D/B/T/Z: E BI/BY/W/D: BI BEZ : LUIS E/A/D/B/T/Z: A BI/BY/W/D: BI :U= ANA :U= EVA programa PB 25: Representacin KOP/FUP El mdulo de funciones FB 202 se llama y parametriza en el mdulo de Representacin AWL SEGMENTO 1 : SPA FB 202 FB 202 NOMB. : EJEMPLO ANA : E 13.5 EVA : M 17.7 M 17.7 LUIS : A 23.0 Despus del salto al FB 202 se ejecutan las siguientes operaciones: : U E 13.5 : U M 17.7 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario Modo de representaci n AWL SEGMENTO 1 : A DB5 : SPA FB 201 NOMB. : E-ANTR E 3. 5 M 2. 5 KT 010.1 A 2. 3 Representacin KOP/FUP SEGMENTO 1 FB 201 E-ANTR BEA - A 2. 3 LSL - A 6.0 : BE Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario 2.3.4 Mdulos de funciones especiales Introduccin 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 ins-trucciones especiales de la descripcin correspondiente (zonas de memoria ocupadas, convenciones, etc.). Los mdulos de funciones estndar para el autmata programable S5-135U estn descritos en el catlogo ST 57 (bibliografa /11/) . Ejemplo Extractor de ra z de un nmero en coma f l ot ant e RAD:GP FB 6 El mdulo de funciones RAD:GP extrae la raz cuadrada de un nmero en coma flotante (exponente de 8 bit, mantisa de 24 bit). El resultado tambin es un nmero en coma flotante (exponente de 8 bit, mantisa de 24 bit). El bit de menor valor de la mantisa no se redondea. El mdulo de funciones coloca en caso necesario la identificacin "radicando negativo" para el procesamiento posterior. Campo numrico: Radicando - 0,1469368 Exp. -38 a +0,1701412 Exp. +39 +0,3833434 Exp. -19 a +0,1304384 Exp. +20 Y = SQRT; A = RADI Llamada al mdulo de funciones FB 6: En el ejemplo anterior se extrae la raz de un nmero en coma flotante que se encuentra en la DD 5 del DB 17, con exponente de 8 bit y mantisa de 24 bit. El resultado, tambin un nmero en coma flotante de 32 bit, es depositado en la 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario Modo de representacin AWL Modo de representacin KOP/FUP : A DB 17 SEGMENTO 2 : SPA FB 6 FB 6 DD= Palabra doble de datos Mdulo de Si el mdulo de funciones OB 1 no est programado, el programa de sistema funciones FB O llama cclicamente, en vez del OB 1, al FB O, si ste est cargado. Ya que en un mdulo de organizacin se dispone de la totalidad del conjunto de operaciones del lenguaje STEP 5, la programacin del FB O - en vez de la del OB 1 - resulta especialmente ventajosa para procesar programas cortos y en funcin de tiempo. Nota El FB O debe emplearse solamente para programas de procesamiento cclico! (No puede contener parmetros). Si estn cargados tanto el OB 1 como el FB O, el programa de sistema llamar cclicamente slo al mdulo de organizacin OB 1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario 2.4 Mdulos de datos Introduccin 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, duales, decimales) para valores de tiempo y resultados de clculo, caracteres alfanumncos, por ejemplo, para textos de avisos. Estructura de un Un mdulo de datos (DBJDX) consta de los siguientes elementos: mdulo de datos antecabeza (DV, DXV), cabeza, cuerpo. Antecabeza La antecabeza se genera 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 puede crear antecabezas de mdulos. Nota Cuando se transfiere un mdulo de datos del autmata programable al disquete o al disco duro, se borra la correspondiente antecabeza. Por esta razn, nunca se debe modificar en el autmata programable un mdulo de datos con diferentes formatos de datos y luego volverlo a transferir al disquete, puesto que, de lo contrario, a todas las palabras de datos de este DB se les atribuira automticamente el formato de datos seleccionado en la mscara de preajustes. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario Cabeza Cuerpo La cabeza 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 de la cabeza). El cuerpo contiene en orden ascendente y comenzando por la palabra de datos DW O, las palabras de datos con las que opera el programa de usuario. Cada palabra de datos ocupa 1 palabra en la memoria (16 bit). Longitud mxima Los mdulos de datos pueden ocupar en total hasta 4096 palabras (incluida la cabeza) en la memoria de la CPU. Al entrar y transferir mdulos de datos con el aparato de programacin, se debe tener en cuenta la extensin de memoria de la CPU utilizada! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario 2.4.1 Crear mdulos de datos Procedimiento Los mdulos de datos se crean de la manera siguiente: 1" Introducir el tipo de mdulo (DBDX) y un nmero de mdulo entre 3 y 255. 2" Introducir las palabras de datos en el formato deseado. (La entrada de palabras de datos no se finaliza con la instruccin de fin de mdulo 'BE'!) Nota Los mdulos de datos DB O, DB 1, DB 2, DX O, DX 1 y DX 2 estn reservados para determinadas funciones y, por consiguiente, no pueden ser utilizados libremente (vase "Mdulos de datos especiales")! Formatos de datos vlidos Para los mdulos de datos se pueden utilizar los formatos de datos que figuran en la siguiente tabla: Tabla 2-7 Formatos de datos vlidos para mdulos de datos 1 Designaci6n 1 Formatos vlidos 1 KF 1 Nmero en coma fija 1 t 09791 1 KM KH KY 1 KG 1 Nmero en coma flotante 1 t1356123t12 1 1 KC 1 Caracteres 1 ?!ABCD123-+.,% 1 Representacin binana Nmero hexadecimal Byte 0010011000111111 263F 038,063 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 KT KZ Valor de un temporizador Valor de cmputo 055.2 234 Proarama de usuario 2.4.2 Abrir mdulos de datos Introduccin Un mdulo de datos (DBJDX) 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. Es posible abrir varias veces un mdulo de datos determinado en el programa. As se abren los mdulos de datos: Campo de validez Despus de abrir el mdulo de datos, todas las instrucciones siguientes con la zona de operandos 'D' se refieren al mdulo de datos abierto. SI ... se desea abrir un mdulo de datos DB se desea abrir un mdulo de datos DX El mdulo de datos abierto sigue siendo vlido, aunque el procesamiento del programa contine en otro mdulo debido a una instruccin de salto. ENTONCES ... se debe introducir la operacin STEP 5 "A DB.. " se debe introducir la operacin STEP 5 "AX DX.. " 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. 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 con operaciones de carga y transferencia (para ms informacin, vase captulo 3). Con una operacin de combinacin binaria, el bit direccionado de la palabra de datos se utiliza para generar el VKE. El contenido de la palabra de datos no se modifica. En las operaciones de memorizacin se asigna el valor del VKE al bit direccionado de la palabra de datos. El contenido de la palabra de datos puede modificarse. Con una operacin de carga se transfiere al AKKU 1 el contenido de la palabra de datos direccionada. El contenido de la palabra de datos no se modifica. Con una 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario Ejemplos 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, de lo contrario el programa de sistema detectar un error de carga o de tranferencia durante el acceso. i Con las operaciones de carga o de transferencia solamente se puede acceder hasta la palabra de datos nmero 255! Un mdulo de datos abierto sigue vigente hasta que a) se abre otro mdulo de datos o b) el mdulo llamado se finaliza con 'BE' o 'BEB' e ha de transferir el contenido de la palabra de atos DW 1 del mdulo de datos DB 10 a la palabra de atos DW 1 del mdulo de datos DB 20. ntroducir las siguientes instrucciones: :A DB 10 (abrir DB 10) (transferir el contenido de la DW 1 al AKKU 1) :A DB 20 (abrir DB 20) (transferir el contenido del AKKU 1 a la DW 1) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario (Fig. 2-5) n el mdulo de programa PB 7 se abre el mdulo de atos DB 10 (A DB 10). En el siguiente procesamiento el programa se procesan los datos de este mdulo. espus de la llamada (SPA PB 20) se procesa el mdulo e programa PB 20. No obstante, el mdulo de datos B 10 sigue siendo valido. La zona de datos cambia olamente al abrir el mdulo de datos DB 11 (A DB 11). 1 mdulo de datos DB 11 permanece valido hasta el inal del mdulo de programa PB 20 (BE). espus de retroceder al mdulo de programa PB 7, uelve a ser valido el mdulo de datos DB 10. m Campo de val ~dez DE 10 m Campo de val ~dez DE 11 Fig. 2-5 Campo de validez de un mdulo de datos abierto Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario 2.4.3 Mdulos de datos especiales Introduccin Los mdulos de datos DB O, DB 1, DX O, DX 1 y DX 2 estn reservados en la CPU 928B para determinadas funciones. Son administrados por el programa de sistema y no pueden ser utilizados a voluntad por el usuario. Mdulo de datos DB O (vase captulo 8.3) El mdulo de datos DB O contiene la lista de las direcciones iniciales de todos los mdulos que se encuentran en la memoria de usuario o en la DB-RAM de la CPU. Esta lista de direcciones es generada por el programa de sistema en la inicializacin (tras un BORRADO TOTAL) y es actualizada automticamente cuando se introducen o modifican mdulos por medio del aparato de programacin. Mdulo de datos DB 1 (vase captulo 10.1) El mdulo de datos DB 1 contiene la lista de las entradas y salidas di- gitales (periferia P con direcciones relativas de bytes O a 127), as como las entradas y salidas de las marcas de acoplamiento asignadas a la CPU, y, dado el caso, una longitud de bloque de tiempo. El DB 1 puede ser parametrizado y cargado: para reducir el tiempo de ciclo en modo monoprocesador, ya que solamente se actualizan las entradas y salidas o tiempos registrados en el DB 1. El DB 1 tiene que ser parametrizado y cargado: - en modo multiprocesador, - cuando se utilizan marcas de acoplamiento con CPs. Mdulo de datos DB 2 (vase captulo 4.5) El mdulo de datos DB 2 sirve para que el usuario pueda parametrizar la estructura de regulador R64. La funcin de regulacin puede ser adquirida como producto de software. Esta se apoya en el programa de sistema. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Proarama de usuario DX O Mdulo de datos DX O (vase captulo 7) Mediante parametrizacin y carga del mdulo de datos DX O se pueden modificar los ajustes por defecto de determinadas funciones del programa de sistema (por ejemplo, en la ejecucin del arranque) y adaptar as las funciones del programa de sistema a los requisitos del usuario. Mdulo de datos DX 1 Reservado Mdulo de datos DX 2 El mdulo de datos DX 2 se utiliza para determinar el tipo de acoplamiento para la comunicacin a travs de la segunda interfaz serie. En el manual "Comunicacin CPU 928B" (bibliografa 1140 encontrar informaciones detalladas en cuanto a su parametrizacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa 3 Resumen breve Este captulo se dirige a aquellos usuarios que no tengan gran experiencia en la aplicacin del lenguaje de programacin. Pretende introducir al usuario en los conocimientos bsicos de la programacin STEP 5. Tambin presenta una descripcin detallada (con ejemplos) de las operaciones STEP 5 de la CPU 928B. El captulo 3.5 puede servir de captulo de consulta a los usuarios que dispongan de mayores conocimientos y que no les sean suficientes las informaciones que figuran en la lista de operaciones (bibliografa /1/), referentes a una operacin STEP 5 concreta. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Pgina 3-2 3-3 3-8 3-10 3-11 3-13 3-17 3-32 3-47 3-54 3-67 Captulo 3.1 3.2 3.3 3.4 3.4.1 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 Tema Principios fundamentales del procesamiento del programa Organizacin del programa Almacenamiento de mdulos de programa y de datos Procesamiento del programa de usuario Definiciones terminolgicas en cuanto al procesamiento del programa 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 Procesamiento del Droarama 3.1 Principios fundamentales del procesamiento del programa Resumen El programa de usuario STEP 5 puede ser procesado de diferentes maneras. Por lo general, en los controladores de memoria programable (SPS), predomina el procesamiento cclico de programas. El programa de sis-tema se ejecuta en un bucle de programa (el ciclo, vase captulo 3.4) efectuando cada vez una llamada al mdulo de organizacin OB 1 (vase fig. 3-1). Programa de si stema Programa de usuari o Desde el arranque Fig. 3-1 Procesamiento cclico del programa Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama 3.2 Organizacin del programa Introduccin Con la organizacin del programa se determina en qu condiciones y en qu secuencia se van a ejecutar los mdulos creados por el usuario. Para ello se deben programar en los mdulos de organizacin llamadas condicionales o incondicionales a los mdulos deseados. En las partes de programa de los mdulos de organizacin, de programa, de funciones y de pasos, se pueden llamar a otros mdulos de programa, de funciones y de pasos combinndolos a voluntad (uno tras otro o uno dentro de otro). El programa de usuario debiera estar organizado de manera que queden resaltadas las estructuras fundamentales del programa, o bien las partes de la instalacin que estn relacionadas entre s desde el punto de vista de la tcnica de programacin. Las figuras 3-2 y 3-3 muestran dos ejemplos de estructuracin de un programa. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Parada de l a i nst. modos de servi ci o Parada de Conduci r al estado Ni vel de mando Al i mentaci n de Marcas de ' i nterfaces de l os el ementos m Al i mentaci n PB ' Di F B Sal i da de avi sos Sal i da de avi sos peri f eri a estndar SPA PB ' Di Sal i da de avi sos peri f eri a estndar Fig. 3-2 Ejemplo de la organizacin del programa de usuario segn la estructura del programa Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama P B ' X' Par t e ' X' de l a Ma n d o i ndi v i dual i nst al aci n SPA P B ' X' P B ' Y' Par t e ' Y' de l a Ma n d o s ec uenc i al I nst al aci n SPA P B ' Y' F B ' Z' Par t e ' Z ' de l a i nst al aci n SPA P B 'Z' Sa l i d a d e pr ot oc ol o Fig. 3-3 Ejemplo de la organizacin del programa de usuario segn la estructura de la instalacin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Anidamiento de La figura 3-4 muestra cmo se efectan las llamadas anidadas. mdulos SPA FB 30 NOMB.: KURV U E 55. 0*) *) Operacin a l a que se retorna Fig. 3-4 Llamada anidada a mdulos de cdigo Direcciones de La posicin de un mdulo en la memoria de usuario (o DB-RAM) est mdulos 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 EB y EX, 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 se encuentran registradas en la lista de direcciones de mdulos del mdulo de datos DB O. El DB O es administrado por el programa de sistema. El usuario, por consiguiente, no lo puede abrir! Una vez procesado el 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 al mdulo. Asimismo, la CPU registra la direccin inicial y la longitud del mdulo de datos vlido en esta posicin. Profundidad de Se pueden anidar como mximo 62 mdulos. Si se llaman a ms de 62 mdulos, anidamiento la CPU emitir un aviso de error y se pondr en STOP. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa Ejemplo OB 2 + FB 21 OB 13 -b PB 131 + FB 131 OB 1 PB 1 -b FB1 Profundidad de anidamiento Fig. 3-5 Ejemplo de la profundidad de anidamiento de mdulos Asi se determina la profundidad de anidamiento del programa: - Sumar todos los mdulos de organizacin que han sido programados (en el ejemplo: 4 OB). - Sumar las profundidades de anidamiento de los diferentes mdulos de organizacin (en el ejemplo: 2 + 2 + 1 + O = 5). - De la suma de ambos valores resulta la profundidad de anidamiento del programa (en el ejemplo: 4 + 5 = profundidad de anidamiento 9). Esta no puede superar el valor 62! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa 3.3 Almacenamiento de mdulos de programa y de datos Introduccin Para que la CPU pueda procesar el programa de usuario hay que cargarlo en la memoria de programa, incluyendo los mdulos de datos existentes. Como memoria de programa se dispone de la memoria de usuario y de la DB-RAM. Para cargar mdulos de cdigo y de datos en la memoria de programa es posible utilizar los siguientes mtodos: "Modo RAM" Si al efectuarse un BORRADO TOTAL de la CPU no est insertada una Memory Card (Flash EPROM), la CPU pasa a "modo RAM": Los mdulos de cdigo y de datos se cargan del PG en la memoria de usuano o en la DB-RAM de la CPU. En cualquier momento se pueden volver a cargar del PG (reemplazar), modificar o borrar, es decir que la proteccin contra escritura est desactivada. "Modo EPROM" El programa de sistema copia los mdulos de cdigo y de datos de la Memory Card en la memoria de usuario. Adems, dicho programa activa un identificador de proteccin contra escritura. Por consiguiente, todos los mdulos que se copien no se pueden volver a cargar (reemplazar), modificar ni borrar. Para poder modificar los datos contenidos en los mdulos de datos es necesario depositar stos ltimos en la DB-RAM. Los mdulos de datos programados en la Memory Card se pueden copiar o desplazar (p.ej. en el OB de arranque) a la DB-RAM, mediante los OBs 254 y 255, respectivamente. Los dems mdulos de datos se pueden cargar del PG en la DB-RAM. Una vez depositados los mdulos de datos en la DB-RAM se podrn volver a cargar, modificar y borrar. No obstante, los cambios efectuados en dichos mdulos no se adoptan en la Memory Card. Por lo tanto, su contenido se deber guardar antes de efectuar el siguiente borrado total. La Memory Card se puede extraer despus de efectuar un borrado total. Los datos se encontrarn entonces en la memoria de usuario. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama DB-RAM Activarldesactivar la proteccin contra escritura Si desea modificar mdulos estando en modo EPROM, puede desactivar la proteccin contra escritura, borrando el correspondiente identificador (v. captulo 8.3, BS 138). Activando dicho identificador es posible volver a proteger los mdulos contra escritura. Una CPU sin Memory Card tambin se puede proteger contra escritura, activando a tal efecto el mencionado identificador. Visualizar la extensin de la memoria Si, estando en modo EPROM, desea visualizar informaciones acerca de la memoria mediante la funcin del PG "Extensin memoria", la longitud de la memoria se indica como valor 'O', en tanto que para la direccin final de la memoria de usuario se visualiza 'OEEEEH'. Nota La Memory Card slo se puede programar mediante el aparato de programacin (PG). A tal efecto es posible utilizar el software del PG a partir de la versin 6. Para la programacin se debe elegir en el PG el modo de operacin "WORD" (palabra) (v. la descripcin SS-DOS 130. En la DB-RAM se escriben mdulos de datos DB/DX crendolos o copindolos. Cuando se transfieren mdulos de datos del aparato de programacin a la CPU, los mdulos se depositan en la DB-RAM si el cartucho RAM est lleno o si en el "modo RAM" est ajustada la opcin "Carga alternativa" (v. captulo 8.3 - BS 144). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa 3.4 Procesamiento del programa de usuario Introduccin Todo el software de la CPU (que consiste del programa de sistema y del programa de usuario STEP 5) tiene que ejecutar las siguientes tareas: ARRANQUE de la CPU, Control del proceso de automatizacin por medio de secuencias de operaciones que se repiten cclicamente (CICLO), Control del proceso de automatizacin por reaccin ante sucesos que se producen espordicamente o en determinados tiempos (alarmas), as como por reaccin ante errores. Para las tres tareas existe la posibilidad, por medio de interfaces con el usuario (mdulos de organizacin OB 1 a OB 35, vase captulo 2.2), de ejecutar ciertas partes especiales del programa de usuario en la CPU. Arranque Ciclo Antes de que la CPU pueda pasar al procesamiento cclico, puede ser necesario realizar una inicializacin a fin de establecer un punto de partida definido que sea adecuado para el procesamiento cclico del programa, y para indicar, por ejemplo, escalas de tiempo para la ejecucin de determinadas funciones. El modo 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 O (vase captulo 7). Despus de haber ejecutado un ARRANQUE, el programa de sistema pasa al procesamiento cclico. Se ocupa de funciones de segundo plano 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 o al mdulo de funciones FB O como programa de usuario cclico. El usuario puede programar en uno de estos mdulos las operaciones STEP 5 para el procesamiento cclico. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa Reaccin en Para poder reaccionar especialmente ante una alarma o un error determinados, en caso de alarmas la CPU 928B se dispone de mdulos de organizacin especiales (OB 2, OB 6 y y errores de OB 9 a OB 18 para procesamiento de alarmas, OB 19 y de OB 23 a OB 35 para reacciones en caso de error); en ellos se puede registrar el programa STEP 5 correspondiente. En el procesamiento de alarmas o de errores, el programa de sistema "anida" (intercala) el correspondiente 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 correspondientes se ejecuta segn un esquema fijo de pnondades (ms informaciones al respecto se encuentran en los captulos 4 y 5). En cuanto al procesamiento de alarmas y al tratamiento de errores se puede influir en el comportamiento de la CPU no slo con los mdulos de organizacin mencionados sino tambin parametnzando adecuadamente el mdulo de datos DX O. 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 se cargan, 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 O 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 O no est cargado, valen los ajustes estndar (vase captulo 7). 3.4.1 Definiciones terminolgicas en cuanto al procesamiento del programa Tiempo de ciclo El ciclo comienza con el trigger (disparo) de la supervisin del tiempo de ciclo y termina con el siguiente tngger. El tiempo que requiere la CPU para procesar el programa entre dos triggers se denomina tiempo de ciclo. Se compone de la suma del tiempo de ejecucin del programa de sistema y del tiempo de ejecucin del programa de usuario. Por consiguiente, el tiempo de ciclo abarca: 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 reloj), el tiempo de procesamiento de interrupciones (errores). Supervisin del El tiempo de ciclo, que es supervisado por la CPU, no debe sobrepasar un valor tiempo de ciclo mximo. El valor mximo estndar es de 150 ms. El usuario tiene la opcin de reajustar este tiempo de supervisin, o bien, de reiniciarlo durante el procesamiento del programa de usuario (vase DX O/captulo 7 y OB de funciones especiales OB 221 y OB 222/captulos 6.23 y 6.24). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa Imagen de Antes de comenzar el procesamiento cclico del programa de usuario, el proceso de las programa de sistema lee los estados lgicos de las tarjetas penfricas de entrada entradas y y los transfiere a la imagen de proceso de las entradas. El programa de usuario salidas evala los estados lgicos en la imagen de proceso de las entradas y, en funcin (PAE y PAA) 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 perifricas de salida. Memorizando las seales perifncas 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 memona, cuyo contenido es transferido a la periferia o ledo desde ella solamente una vez por ciclo. Nota jLa imagen de proceso solamente existe para los bytes de entrada o salida de la periferia P con direcciones en bytes de O a 127! Marcas de Las marcas de acoplamiento sirven para el intercambio de datos entre las diferentes acoplamiento CPUs en modo multiprocesador, o bien, entre la CPU y algunos procesadores de 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). Sucesos de interrupcin El procesamiento cclico del programa puede ser interrumpido por un procesamiento controlado por alarmas de proceso, un procesamiento controlado por tiempo, una alarma de retardo, una alarma temporizada controlada por reloj. Puede ser interrumpido o completamente abortado por aparicin de un error en un aparato o programa, intervencin externa (funcin del aparato de programacin, selector en stop, stop de multiprocesamiento MP-STP), una operacin de stop. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama 3.5 Operaciones STEP 5 con ejemplos Introduccin Una operacin STEP 5 se compone de un elemento operante y un operando. En la parte operante se determina lo que debe ejecutar la CPU (qu operacin?) y en la de operando se indica con qu medios (con qu operando?) se va a ejecutar la operacin. Las operaciones STEP 5 pueden ser subdivididas en diversos grupos: operaciones bsicas (aplicables en todos los mdulos de cdigo), operaciones complementarias (aplicables slo en los mdulos de funciones FB/FX ), operaciones de organizacin (aplicables slo en los mdulos de funciones FB/FX ), operaciones semforo (aplicables slo en los mdulos de funciones FBFX ). Acumuladores La CPU 928B dispone de 4 acumuladores, AKKU 1 a AKKU 4. La mayora como registros de las operaciones STEP 5 utilizan, como fuente para los operandos y como auxiliares destino para los resultados, dos registros (32 bit): AKKU 1 y AKKU 2. AKKU 1 1) AKKU-1-LH 1 AKKu-l-L-L AKKU- 1 -H AKKU-1-L l) en caso de AKKU 2 a AKKU 4: de forma anloga Palabra alta Los acumuladores se alteran segn la operacin STEP 5 que se ejecute, por ejemplo: Byte alto Palabra baja para operaciones de carga siempre se utiliza el AKKU 1 como des-tino. El contenido anterior del AKKU 1 se desplaza al AKKU 2 (stack lift). Los acumuladores 3 y 4 no se modifican en ninguna de las operaciones de carga, Byte bajo Byte alto las operaciones aritmticas combinan el contenido del AKKU 1 y AKKU 2, escriben el resultado en el AKKU 1 y transfieren el contenido del AKKU 3 al AKKU 2 y el contenido del AKKU 4 al AKKU 3 (stack drop). En la aritmtica de coma fija de 16 bit, solamente se transfiere la palabra baja del AKKU 3 a la palabra baja del AKKU 2 y la palabra baja del AKKU 4 a la palabra baja del AKKU 3, Byte bajo al sumar una constante (ADD BF/KF/DH) al contenido del AKKU 1 no se modifican los acumuladores 2, 3 y 4. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama lndicadores de Las operaciones STEP 5 pueden crear o consultar indicadores. Los indicadores se resultados depositan en un byte indicador. Cabe distinguir dos grupos de indicadores: por una parte, los indicadores de operaciones digitales (indicadores de palabras -bit 4 a 7 del byte indicador) y, por otra parte, los indicadores de operaciones binarias y de organizacin (indicadores de bits - bit O a 3 del byte indicador). La manera en que influyen las operaciones STEP 5 en los diferentes indicadores y el modo en que pueden ser evaluados con stas se desprende de la lista de operaciones (bibliografa 110. El byte indicador se visualiza con la funcin on line "Mdulo Status" (vase captulo 11.2.3) y tiene la siguiente estructura: Bit 7 6 5 4 3 2 1 O lndicadores de ERAB Primera consulta bits Una cadena lgica con combinaciones binanas, comienza siempre con una primera consulta durante la cual se regenera el VKE. Con ella se pone el indicador de bit ERAB = 1. En el curso de las siguientes combinaciones lgicas en la cadena comenzada permanece ERAB = 1 y el VKE puede ser modificado por estas combinaciones lgicas. Indicadores de palabras La cadena de combinaciones comenzada termina con una operacin binana de memorizacin (por ejemplo, S A 5.0). Con la operacin de memorizacin se pone ERAB = O; de ahora en adelante, el VKE solamente puede ser evaluado (por ejemplo, por instrucciones que dependan del VKE), pero no puede seguir siendo combinado. La prxima combinacin lgica binana despus de una operacin binaria de memorizacin vuelve a ser una "primera consulta". ANZ1 Indicadores de bits Ejemplo de ERAB OR : U E 1.0 s e genera de nuevo por combinacin AND :O E 6 . 3 VKE e s al terado por combinacin OR :UN E 2.1 VKE e s al terado por combinacin AND NOT - :S A 2.4 ERAB s e pone a 'O', l a cadena de combinacin acaba : SPB FB 150 Llamar mdulo de funci ones en funcin del VKE ANZO Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 STA OV OS VKE ERAB Procesamiento del Droarama Otros VKE Resultado de la combinacin (resultado lgico) indicadores de bit Resultado de combinaciones binanas. En caso de instrucciones de comparacin indica si es verdadero o falso (vase lista de operaciones, operaciones binanas de combinacin u operaciones de comparacin). STA Status (estado) En caso de instrucciones de bit indica el estado lgico del ltimo bit consultado o activado. El estado se actualiza en operaciones binanas de combinacin - a excepcin de U(, O(, ), O - y en operaciones de memorizacin. Indicador interno de la CPU, para el tratamiento de combinaciones "AND antes de OR". lndicadores de OV Overflow (desbordamiento) palabras Indica si se ha sobrepasado el campo numrico admisible durante la operacin aritmtica que acaba de finalizar. OS Overflow memorizado El OS sirve para detectar si ha tenido lugar un desbordamiento (overfiow) en el transcurso de varias operaciones aritmticas. Indicadores de resultado codificados cuya interpretacin se desprende de la tabla 3-1. Nota Para evaluar directamente los indicadores se pueden utilizar las operaciones de comparacin y de salto disponibles (v. captulos siguientes). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Tabla 3-1 Indicadores de resultado de operaciones STEP 5 Nota Cuando se cambia de nivel, por ejemplo durante el procesamiento de una alarma temponzada, se salvan todos los acumuladores as como los indicadores de bits y de palabras (VKE etc.); stos se vuelven a cargar cuando se retorna al nivel interrumpido. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Indicadores de palabras Operaciones aritmticas Resultado = O Resultado < o Resultado >O Divisin entre cero ANz1 O O 1 1 ANZO O 1 O 1 Operaciones digitales de combinacin Resultado = O - Resultado 2 O - Operaciones de comparacin AKKU 2 - - AKKU 1 AKKU 2 < AKKU 1 AKKU 2 > AKKU 1 - Operaciones de desplaza- miento Bit desplazado = O - Bit desplazado = 1 - En caso de SES, SEF Semforo est activado - Semforo es activado o habilitado - Operaciones de salto ejecutadas SPZ SPM SPN SPP SPN SPN Procesamiento del Droarama 3.5.1 Operaciones bsicas Introduccin Las operaciones bsicas se pueden utilizar en todos los mdulos de cdigo as como en todos los modos de representacin (KOP, FUP y AWL) Operaciones de combinacin binarias Tabla 3-2 Operaciones de combinacin binanas Generacin del VKE Operacin U O UN ON O U( O( ) Las operaciones binarias de combinacin generan el resultado de combinacin (VKE). Al principio de una cadena de combinaciones, la generacin del VKE (primera consulta) depende solamente del estado lgico consultado (status), pero no depende del tipo de combinacin (O = OR, U = AND). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 215.15 T O a 255 Z O a 255 E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 215.15 T O a 255 Z O a 255 - - Funcin Combinacin AND con consulta si el estado lgico = "1" Combinacin OR con consulta si el estado lgico = "1" de una entrada en PAE de una salida en PAA de un bit de marcas de un bit de marcas S de un bit en la palabra de datos de un temporizador de un contador Combinacin AND con consulta si el estado lgico = "0" Combinacin OR con consulta si el estado lgico = "0" de una entrada en PAE de una salida en PAA de un bit de marcas de un bit de marcas S de un bit en la palabra de datos de un temporizador de un contador Combinacin OR de funciones AND Combinacin AND de expresiones entre parntesis Combinacin OR de expresiones entre parntesis Cierre de parntesis Se admiten mx. 8 niveles, es decir, 7 parntesis abiertos. Procesamiento del Droarama Dentro de una cadena de combinacin se genera el VKE a partir del tipo de combinacin, del anterior VKE y del estado lgico consultado. Una cadena de combinacin se concluye con una instruccin que limite el VKE (ERAB = O) (por ejemplo, operaciones de memorizacin). Despus, el VKE podr seguir siendo evaluado, pero ya no podr ser combinado. Ejemplo de generacin del VKE O -VKE limitado 1 -Primera consulta O -VKE limitado, fin de la cadena de combinacin Operaciones de memorizacin Tabla 3-3 Operaciones de memorizacin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin S R - - Operando E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 255.15 E 0.0 a 127.7 A 0.0 a 127.7 M 0.0 a 255.7 S 0.0 a 1023.7 D 0.0 a 255.15 Funcin Si el estado del VKE es '1': activar Si el estado del VKE es '1': reamar una entrada en PAE una salida en PAA una marca una marca S un bit en la palabra de datos Asignacin del VKE a una entrada en PAE una salida en PAA una marca una marca S un bit en la palabra de datos Procesamiento del Droarama Operaciones de carga y transferencia Tabla 3-4 Operaciones de carga y transferencia Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin L T Operando EB O a 127 EW O a 126 ED O a 124 AB Oa 127 AW O a 126 AD O a 124 MB O a 255 MW 0 a 254 MD O a 252 SY O a 1023 SW O a 1022 SD Oa 1020 DR O a 255 DL O a 255 DW 0 a 255 DD O a 254 PY O a 127 PY 128 a 255 PW O a 126 PW 128 a 254 QB O a 255 QW 0 a 254 Funcin Carga Transferencia de un byte de entrada dela la PAE de una palabra de entrada dela la PAE de una palabra doble de entrada dela la PAE de un byte de salida dela la PAA de una palabra de salida dela la PAA de una palabra doble de salida dela la PAA de un byte de marcas de una palabra de marcas de una palabra doble de marcas de un byte de marcas S de una palabra de marcas S de una palabra doble de marcas S del byte derecho de una palabra de datos de o a DB, DX del byte izquierdo de una palabra de datos de o a DB, DX de una palabra de datos de o a DB, DX de una palabra doble de datos de o a DB, DX de un byte 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 salidasdigitales (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) Procesamiento del Droarama Operaciones de carga Operacin Las operaciones de carga escriben el valor direccionado en el AKKU 1, cuyo contenido anterior pasa al AKKU 2 (stack lift). Operaciones de transferencia Operando Las operaciones de transferencia escriben el contenido del AKKU 1 en la clula de memoria direccionada. Funcin Tabla 3-4, continuacin: L LC Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 KB Oa255 KC 2 caracteres ASCII KE -32768 a t32767 KG ') KH OaFFFF DH Oa FFFF FFFF KM estructura de 16 bit KY O a 255 para cada byte KT 0.0 a 999.3 KZ Oa999 T O a 255 Z O a 255 T O a 255 Z O a 255 Cargar una constante, valor de byte una constante de 2 caracteres ASCII una constante como nmero en coma fija una constante como nmero en coma flotante una constante como nmero hexadecimal una constante de palabra doble como nmero hexadecimal una constante como representacin binaria una constante como nmero de 2 bytes una constante como valor de tiempo (cdigo BCD) una constante como valor de contaje un valor de tiempo, cdigo binario un valor de contaje, cdigo binario Cargar un valor de tiempo valor de contaje en cdigo BCD Procesamiento del Droarama Ejemplos de operaciones de carga y transferencia La figura 3-6 muestra la carga/transferencia de un byte, una palabra o una palabra doble de/a una zona de memoria organizada byte por byte (PAE, PAA, marcas, periferia): :L EB i se carga el byte i de la PAE en el AKKU-1-LL :L EW j se cargan los bytes j y j+l de la PAE en el AKKU-1-L :L MD k se cargan los bytes de marcas k hasta k+3 en el AKKU 1 l) sol ament e en oper aci ones de car ga Fig. 3-6 Operaciones de carga y transferencia en una zona de memoria organizada byte por byte Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama figura 3-7 muestra la carga/transferencia de un byte, una palabra o una labra doble de/a una zona de memoria organizada palabra por palabra. DR i se carga el byte derecho de la palabra de datos i en el AKKU-1-LL DL j se carga el byte izquierdo de la palabra de datos j en el AKKU-1-LL DW k se carga la palabra de datos k en el AKKU-1-L DD 1 se cargan las palabras de datos 1 y 1+1 en el AKKU 1 sol amente en operaci ones de car ga Nota Las operaciones de carga no modifican los indicadores. Las operaciones de transferencia borran el bit OS. Al cargar un byte o una palabra se borran los bytes de valor superior en el AKKU 1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Accesos a la A la periferia se puede acceder mediante operaciones de carga y transferencia: periferia directamente: con L..R .... PY, ..PW, ..QB, ..QW a travs de la imagen de proceso: con L..R .... EB, ..EW, ..ED, ..AB, ..AW, ..AD y con operaciones de combinacin. Nota En las operaciones de transferencia T PY de O a 127 y T PW de O a 126, se actualiza paralelamente la imagen de proceso de las salidas. En cuanto a la periferia, hay que tener en cuenta los siguientes puntos: Existe una imagen de proceso de las entradas y salidas por cada 128 bytes de entrada o de salida de la penferia P, con direcciones de bytes de O a 127. Para la zona de la periferia P, con direcciones relativas de bytes de 128 a 255, y para toda la zona de la periferia Q, jno existe imagen de proceso! (En cuanto a la distribucin de la zona de direcciones de la perifena, vase captulo 8.2.2). Las tarjetas de E/S con direcciones de la perifena Q, solamente deben ser enchufadas en aparatos de ampliacin (no en el aparato central). En un solo aparato de ampliacin solamente se puede utilizar la periferia P o la penferia Q. Cuidado En caso de que en un aparato de ampliacin se utilicen direcciones relativas de la periferia Q, no debern utilizarse estas mismas direcciones para las tarjetas perifricas (zona P) enchufadas al aparato central (doble direccionamiento!). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de Para cargar un temponzador con una operacin de arranque o un contador con una tiempo y contaje 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 arrancar un temporizador con el valor de tiempo dado, es necesario un cambio de flancos del VKE. Un contador se activa o cuenta con el valor de contaje dado cuando se detecta un flanco positivo del VKE. En la tabla siguiente, los cambios de flanco estn representados en la columna VKE por medio de flechas. Tabla 3-5 Operaciones de tiempo y contaje l) Flanco positivo ( i ): cambio de estado lgico de 'O' a '1' Flanco negativo ( J ): cambio de estado lgico de '1' a 'O' Operacin SI SV SE SS S A R S R ZV ZR Al ejecutar operaciones de tiempo o de contaje SI, SE, SV, SS, SA y S, se pasa el valor que se encuentra en el AKKU 1 al temponzador o contador (corresponde a la instruccin de transferencia) y se activa la operacin correspondiente. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando T O a 255 T O a 255 T O a 255 T O a 255 T O a 255 T O a 255 Z O a 255 Z O a 255 Z O a 255 Z O a 255 VKE') i i i i J 1 i 1 i i Funcin 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 O a 999) Rearmar un contador Contar hacia delante Contar hacia atrs Procesamiento del Droarama Valor de tiempo Un valor de tiempo puede cargarse directamente en el AKKU 1 con la operacin L KT o bien, de forma indirecta, desde una palabra de marcas o de datos mediante las correspondientes operaciones de carga. Tiene que tener la siguiente estructura (la escala de tiempo se indica en L KT despus del punto del operando): Valor de tiempo dado en cdigo BCD O ... 999 Bit nQ Escala de tiempo dada en cdigo BCD: O: 0.01 S 1: 0.1 S 1 5 1 4 1 3 1 2 1 1 1 0 I 2: 1 S Estos bits no son significativos, 3: es decir, no se tienen en cuenta al arrancar el temporizador Ejemplo 9 cupacin de los bits: x x 1 0 0 0 0 1 0 0 1 0 0 1 1 1 Valor de tiempo: 127 Escala de tiempo: 1 s No se tienen en cuenta Nota i Cada arranque de un temponzador produce una imprecisin de 1 escala de tiempo! Por consiguiente, en caso de utilizar temporizadores se deber elegir una escala de tiempo lo ms breve posible. 8 Ejemplo: Tiempo 4 s no: 1 s x 4 Imprecisin: 1 s sino: 0,01 s x 400 Imprecisin: 0,01 s Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 7 6 5 4 3 2 1 O Procesamiento del Droarama Valores de Un valor de contaje puede cargarse directamente en el AKKU 1 con la contaje operacin L KZ o bien, de forma indirecta, desde una palabra de marcas o de datos mediante las correspondientes operaciones de carga. Tiene que tener la siguiente estructura: Valor de contaje dado en cdigo BCD O ... 999 Bit nQ Estos bits no son significativos, es decir, no se tienen en cuenta al arrancar el valor de contaje 1 5 1 4 1 3 1 2 1 1 1 0 9 Ejemplo cupacin de los bits: x x x x 0 0 0 1 0 0 1 0 0 1 1 1 Valor de contaje: 127 No se tienen en cuenta 8 En el temponzador o contador mismos se encuentra el valor correspondiente en cdigo binario. Para consultar el temponzador o el contador se puede cargar en el AKKU 1 el valor del temponzador o contador directamente o en cdigo BCD. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 7 6 5 4 3 2 1 O Procesamiento del Droarama Otros ejemplos de valores de tiempo y contaje Valor de t i empo h O Tempori zador T 10 ................................................. ................................................ O AKKU 1 ................................................ T 10": Carga directa del valor dual del temporizador T 10 en el AKKU 1 escala de tiempo no se carga. Valor de cont aj e ................................................ h O Cont ador Z 10 ................................................ ................................................ O AKKU 1 ................................................ "L Z 10": Carga directa del valor dual del contador Z 10 en el AKKU 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama V a l o r d e t i e m p o v O T e m p o r i z a d o r E s c a l a d e t i e m p o V a l o r d e t i e m p o "LC T 10": Carga codificada del valor de tiempo y de la escala de tiempo del temporizador T 10 en el AKKU 1 La escala de tiempo tambin se carga. V a l o r d e c o n t a j e h 0 C o n t a d o r Z 1 0 Du a l - BCD 0 A K K U 1 V a l o r d e c o n t a j e e n c d i g o B C D En la carga codificada no se cargan los bits de estado 14 y 15 de los temporizadores, o de 12 a 15 de los contadores. En su lugar se ponen ceros en el AKKU 1. El valor registrado en el acumulador puede ser procesado a continuacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones aritmticas Tabla 3-6 Operaciones aritmticas Las operaciones aritmticas combinan los contenidos del AKKU 1 y AKKU 2 (por ejemplo, "AKKU 2 - AKKU 1"). Luego, el resultado queda en el AKKU 1. Los registros de clculo se modifican mediante una operacin aritmtica de la manera siguiente (en el caso de operaciones en coma fija, solamente se modifica la palabra baja): Operacin + F - F x F : F + G - G x G : G antes: cAKKU 1> cAKKU 2> cAKKU 3> cAKKU 4> l / A despus: c~esul t ad& cAKKU 3> cAKKU 4> cAKKU 4> Operando - Nota Dentro de las operaciones complementarias se dispone de operaciones de sustraccin y adicin de nmeros en coma fija de palabra doble. Funcin Adicin de dos nmeros en coma fija (16 bit) Sustraccin de dos nmeros en coma fija (16 bit) Multiplicacin de dos nmeros en coma fija (16 bit) Divisin de dos nmeros en coma fija (16 bit): Cociente en AKKU-1-L, resto en AKKU-1-H Adicin de dos nmeros en coma flotante (32 bit) Sustraccin de dos nmeros en coma flotante (32 bit) Multiplicacin de dos nmeros en coma flotante (32 bit) Divisin de dos nmeros en coma flotante (32 bit) Adems se puede utilizar la operacin ENT de las operaciones complementarias para la carga de AKKU 3 y AKKU 4 (vase captulo 3.5.3). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de comparacin Tabla 3-7 Operaciones de comparacin Operaciones de mdulos Operacin > = < <= Tabla 3-8 Operaciones de mdulos Operando - Solamente para fines de comprobacin! 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" ...E Comparacin de 2 nmeros en coma fija (16 bit) ... D: Comparacin de 2 nmeros en coma fija (32 bit) ... G: Comparacin de 2 nmeros en coma flotante (32 bit) Operacin SPA SPB B A BAB BE BEB BEA A AX E EX Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando OB 1 a 39 ') OB 110 a 255 PB O a 255 EB O a 255 SB O a 255 EX O a 255 - DB 3 a 255 DX 3 a 255 DB 3 a 255 DX 3 a 255 Funcin Salto incondicional Salto condicional (slo si VKE = 1) a un mdulo de organizacin a una funcin especial 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) Procesamiento del Droarama E DB/ W DX Crear mdulo de datos La operacin E DBx crea un mdulo de datos DB con el nmero x (3 x 255) en la memoria DB-RAM de la CPU. El contenido del mdulo de datos no se rellena con ceros, es decir, las palabras de datos pueden tener contenidos 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. La cabeza de mdulo se crea con la operacin "E DB" o "EX DX". Un mdulo de datos que haya sido creado de este modo no debe superar (sin cabeza) 4091 palabras en la memoria. Si el correspondiente mdulo de datos ya existe, la longitud del DB no es vlida o el espacio en la DB-RAM es insuficiente, el programa de sistema llama al OB 31. Si ste no est cargado, la CPU pasa al estado STOP debido a un error en tiempo de ejecucin. La operacin EX DX crea en la DB-RAM un mdulo de datos DX y funciona del mismo modo que E DB. Operaciones cero/ de estructuracin de imagenlde stop Tabla 3-9 Operaciones cerolde estructuracin de imagenlde stop Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin NOP O NOP 1 BLD STP Operando - O a 255 - Funcin Operacin cero Operacin cero Instruccin de estructuracin de imagen para el PG: es tratada por la CPU como una operacin cero. La CPU pasa a STOP. Procesamiento del Droarama 3.5.2 Ejemplos de programacin en los modos de representacin AWL, KOP y FUP Operaciones de combinacin Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. = A3. 5 En la salida A 3.5 se produce la seal "1" si todas las entradas presentan simultneamente la seal "1 ". En la salida A 3.5 se produce la seal "O" si por lo menos una de las entradas presenta la seal "O". La cantidad de consultas y el orden de programacin son arbitrarios. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de combinacin (continuacin) Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. En la salida A 3.2 se produce la seal "1" si por lo menos una de las entradas presenta la seal "1 ". En la salida A 3.2 se produce la seal "O" si todas las entradas presentan simultneamente la seal "O". Representacin STEP 5 Lista de Esquema de contactos Esquema de func. trucciones E 1.5 E 1.6 E1. 4 E 1.3 = A3. 1 En la salida A 3.1 se produce la seal "1" si por lo menos una de las combinaciones AND es verdadera. En la salida A 3.1 se produce la seal "O" si no se cumple ninguna Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de combinacin (continuacin) Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. U E 6.0 E6. 0E6. 1 E6. 2E6. 3 E6. 0 E6. 2 E6. 3 = A2. 1 En la salida A 2.1 se produce la seal "1" si la entrada E 6.0 E 6.1 y una de las entradas E 6.2 o bien E 6.3 llevan la seal "1 ". al "O" si la entrada E 6.0 lleva la seal "O" Representacin STEP 5 Lista de Esquema de contactos Esquema de func. trucciones = A3. 0 En la salida A 3.0 se produce la seal "1 " si se cumplen ambas combinaciones OR. En la salida A 3.0 se produce la seal "O" si no se cumple por lo menos una combinacin OR. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de combinacin (continuacin) Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. E 1.5 E 1.6 Elemento de memorizacin RS para salidas de seal memorizadas Representacin STEP 5 Lista de ins- Esquema de contactos Esquema de func. trucciones U E 1 . 4 El estado lgico "1 " en la entrada E 2.7 provoca la activacin del elemento de memorizacin (seal "1 " en la salida A 3.5). Si el estado lgico de la entrada E 2.7 cambia a "O", este estado se mantiene, es decir, la seal es almacenada. La seal "1 " en la entrada E 1.4 provoca el rearme del elemento de memorizacin (seal "O" en la salida A 3.5). Si el estado lgico de la entrada E 1.4 cambia a "O", se conserva el estado. Si la seal de activacin (entrada E 2.7) y la seal de rearme Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de memorizacin Representacin STEP 5 Lista de Esquema de contactos Esquema de func. trucciones U E 2.6 El estado lgico "1" en la entrada E 2.6 produce la activacin del elemento de memorizacin. Si el estado lgico de la entrada E 2.6 cambia a "O", no se modifica este estado, es decir, la seal es almacenada. La seal "1" en la entrada E 1.3 produce el rearme del elemento de memorizacin. Si el estado lgico en la entrada E 1.3 cambia a "O", 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 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de memorizacin (continuacin) Representacin de un relais de paso Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. = M 2.0 E 1.7 nnnnn- M4. 0 nnnnn- M2. 0 1 1 1 1 1 Con cada flanco creciente de la entrada E 1.7 se cumple la 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. Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. UN M1.O = M 1.1 R M1.O U M 1.1 U A3. 0 = M 2.0 U M 1.1 1.1 A3. 0 M2. 0 A3. 0 UN A3. 0 S A3. 0 A3. 0 U M 2.0 R A3. 0 El divisor binario (salida A 3.0) cambia su estado con cada cambio de seal de "O" a " 1" (flanco creciente) de Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa Operaciones de tiempo Representacin STEP 5 Lista de Esquema de contactos Esquema de func. trucciones Si el estado lgico de la entrada E 3.0 cambia de "O" a "1" se arranca el temporizador. Si al repetir el procesamiento el resultado de la combinacin es "1 ", el temporizador permanece inalterado. Si el estado lgico de la entrada E 3.0 es "O", el temporizador se pone a cero (se borra). Las consultas U T o bien, O T, dan la seal "1 ", mientras corre el tiempo. El temporizador se carga con el valor indicado (1 0). La cifra a la derecha del punto indica la escala de tiempo: o = 001s 2 = 1 s I = O . l s 3 = 1 0 s Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de tiempo (continuacin) Representacin STEP 5 Lista de Esquema de contactos Esquema de func. trucciones Si el resultado de combinacin es "1" y se trata del primer procesamiento, se arranca el temporizador. Si el resultado de combinacin es "O", el temporizador permanece inalterado. Las consultas U T y O T dan la seal "1 " mientras Escala de Valor de tiempo Activar un valor de tiempo con el valor en cdigo BCD existente en los operandos E, A, M o D (en el ejemplo, palabra de entrada 15) A4. 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de tiempo (continuacin) Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. 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 "O", el temporizador se pone a cero (se borra). Las consultas U T u O T dan la seal "1 ", cuando ha transcurrido el tiempo y la seal "1 " an espera en la entrada E 3.5. El temporizador se carga con el valor indicado (9). La cifra a la derecha del punto indica la escala de tiempo: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa Operaciones de tiempo (continuacin) i el resultado de la combinacin es "1 " y se trata del primer procesamiento, se arranca el temporizador. Si el resultado de la combinacin es "O", el temporizador permanece inalterado. L KT 10.1 el resultado de la combinacin es "1 ", el temporizador pone a cero (se borra). S consultas U T u O T dan el estado de seal "1 " mientras corre Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Procesamiento del programa Operaciones de contaje Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. U E 4.0 E4. 1 KZ 150 Z V Z 1 L KZ 150 S Z 1 Si el resultado de la combinacin cambia de "O" a "1" en la entrada del arranque (E 4.1), el contador se carga con el valor indicado (1 50). La marca necesaria para evaluar los flancos de la entrada de activacin (set) est incluida en la palabra de contaje. DU y DE son salidas digitales del contador. En la salida DU el valor del contador est en cdigo binario, en la salida DE, Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. U E 4.0 U E 4.2 U Z 2 = A 2.4 Si el resultado de la combinacin es "1" (E 4.2), el contador se pone a cero Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de contaje (continuacin) El valor del contador direccionado aumenta de 1 en 1, hasta llegar a un valor de contaje mximo de 999. La funcin ZV se ejecuta solamente si el flanco de la combinacin programada antes de ZV es positivo (de "O" a "1 "). Las marcas necesarias para evaluar los flancos de las entradas de contaje estn incluidas en la palabra de contaje. Mediante las dos marcas de flancos separadas para ZV y ZR Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de contaje (continuacin) Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. El valor del contador direccionado disminuye de 1 en 1, hasta llegar al valor de contaje mnimo de O. La funcin slo tiene efecto si el flanco de la combinacin programada antes de ZR es positivo (de "O" a "1 "). Las marcas necesarias para evaluar los flancos de las entradas de contaje estn incluidas en la palabra de contaje. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de comparacin Representacin STEP 5 Lista de Esquema de contactos Esquema de func. trucciones L EB19 = A3. 0 El primer operando indicado se compara con el operando siguiente, de acuerdo con la 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 = "O": La comparacin no se cumple, si AKKU-1 -L no es igual a AKKU-2-L. Los indicadores ANZ 1 y ANZ O se activan como se describe en la lista de operaciones. AKKU-2-H y AKKU-1 -H no participan en la operacin de comparacin de 16 bit en coma fija. En las comparaciones de coma fija de 32 bit (! = D) y en las comparaciones en coma flotante (! = G) de 32 bit se comparan todos los contenidos de AKKU 1 y AKKU 2 (32 bit). En la 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 en Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de comparacin (continuacin) Representacin STEP 5 Lista de ins- trucciones Esquema de contactos Esquema de func. L EB21 El primer operando indicado se compara con el operando siguiente de acuerdo con la 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 = "O": La comparacin no se cumple, si AKKU-1 -L es igual a AKKU-2-L. Los indicadores ANZ 1 y ANZ O se activan de acuerdo a lo descrito al principio del captulo 3.5. AKKU-2-H y AKKU-1 -H no participan en la operacin de comparacin de 16 bit en coma fija. En la comparacin de 32 bit en coma fija y en coma flotante, tambin participan AKKU-2-H y AKKU-1 -H. Lo mismo vale para las comparaciones: "mayor que", "mayorligual a", "menor que" y "menorligual a" (vase lista de operaciones). En la comparacin se considera la representacin numrica de los Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama 3.5.3 Operaciones complementarias Introduccin Las operaciones complementarias solamente se pueden utilizar para mdulos de funciones (FB y EX). El conjunto de operaciones para mdulos de funciones se compone, por tanto, de las operaciones bsicas y de las operaciones complementarias. A las operaciones complementarias tambin pertenecen las operaciones de sistema: con las operaciones de sistema, por ejemplo, se puede sobreescribir un espacio de memoria cualquiera o modificar el contenido de los registros de trabajo de la CPU. Para mayor informacin sobre las "operaciones de sistema", vase captulo 9 "accesos a la memoria a travs de direcciones absolutas". Cuidado Las operaciones de sistema solamente deben ser utilizadas con la mayor cautela y slo por programadores experimentados y con amplios conocimientos del sistema. En los mdulos de funciones, las operaciones 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 indican las posibilidades de combinacin de las instrucciones de sustitucin con los operandos actuales. Identificacin de Las operaciones de sistema estn marcadas con una las operaciones columna de las tablas! de sistema Combinaciones binarias Tabla 3-10 Combinaciones binanas con operandos formales Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin U = UN = O = ON = Operando 1 1 1 1 - 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 'O' 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 'O' 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). Procesamiento del Droarama Combinaciones digitales Tabla 3-11 Combinaciones digitales Los AKKUs 2, 3 y 4 no se modifican, pero s los indicadores ANZ 1 y ANZ O (vanse indicadores de resultado de palabras). Operacin UW OW XOW Operaciones de memorizacin Tabla 3-12 Operaciones de memorizacin con operandos formales Operando Funcin Combinacin AND de AKKU-1-L y AKKU-2-L Combinacin OR de AKKU-1-L y AKKU-2-L Combinacin OR exclusivo de AKKLJ-1-L y AKKLJ-2-L Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin S = RB = RD = - - - - Operando 1 1 1 1 1 Funcin Activacin (binaria) de un operando formal Rearme (binario) de un operando formal 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). Procesamiento del Droarama Operaciones de tiempo y contaje Tabla 3-13 Operaciones de tiempo y contaje con operandos formales Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin SI = SE = SVZ = SSV = SAR = FR = FR Z S I T 1 1 con FR T Consulta con U T Operando 1 1 1 1 T 0a255 Z 0a255 Funcin Arrancar un temponzador (operando formal) como impulso. El valor de tiempo (clase de parmetro T) tiene que estar depositado en el AKKU-1-L. Arrancar un temporizador (operando formal) como conexin retardada. El valor de tiempo (clase de parmetro T) tiene que estar depositado en el AKKU-1-L. Arrancar un temporizador (operando formal) como impulso prolongado, con el valor de tiempo depositado en el AKKLJ-1-U activar un contador (operando formal), con el valor de contaje depositado en el AKKU-1-L; (clase de parmetro: T, 9. 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, 9. Arrancar un temporizador (operando formal) como conexin retardada, con el valor depositado en el AKKLJ-1-L, o bien, activar la cuenta atrs de un contador (operando formal); (clase de parmetro: T, 9. Habilitar los operandos formales (temporizador/contador) para el nuevo arranque (vase "FR Tu, "FR Z"); (clase de parmetro: T, 9. colocar el operando formal Habilitar un temporizador para el nuevo arranque: La operacin solamente se ejecuta con flanco creciente del VKE (cambio de 'O' y '1'). El temporizador rearranca, cuando durante la operacin de arranque el VKE = '1' (vase esquema con diagrama de tiempo debajo de la tabla). Habilitar un contador para activarlo o para contar: La operacin solamente se ejecuta con flanco creciente del VKE (cambio de 'O' y '1'). El contador vuelve a ser procesado, cuando durante la operacin de contaje el VKE = '1'. Procesamiento del programa Ejemplos Llamada al mdulo de Programa en el mdulo de Programa ejecutado funciones funciones :SPA FB203 NOMB.:EJEMl :U =ANA :U E 10.3 :L KT 010.2 :L KT 010.2 :SSV =PEPE :SS T 17 :U =PEPE :U T 17 := =JUAN := A 18.4 :SPA F B 2 0 4 NOMB.:EJEM2 :U =EDU :U E 10.5 :SSV =DORA :ZV Z 15 :U =LUIS :U E 10.6 :SAR =DORA :ZR Z 15 :U =EVA :U E 10.7 :L KZ 100 :L KZ 100 :SVZ =DORA :S Z 15 :UN =DORA :UN Z 15 := =GEMA := M 58.3 :SPA FB205 NOMB.:EJEM3 :U =JOSE :U E 10.4 :L =PACO :L EW20 :SVZ =TON1 :SV T 18 :U =TON1 :U T 18 := =INMA := M 100.7 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de carga y transferencia Tabla 3-14 Operaciones de carga y transferencia con operandos formales Como operandos actuales son vlidos los operandos correspondientes a las operaciones bsicas - a excepcin de las marcas S. En el caso de 'LW=' se admiten datos en representacin binaria (KM) o hexadecimal (KH), valores absolutos en notacin de 2 bytes (KY), caracteres (KC), nmeros en coma fija (KF), valor de tiempo (KT) y valor de contaje (KZ). En el caso de 'LD=' se admite como dato un nmero en coma flotante. Operacin L = LC = LW = LD = T = Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando 1 1 1 Descripcin Carga de un operando formal: El valor del operando indicado como operando formal se carga en el AKKU (clase de parmetro: E, T, Z, A, tipo de parmetro: BY, W, D). Carga codificada de un operando formal: El valor del temponzador o contador indicado como operando formal se carga en cdigo BCD en el AKKU (tipo de parmetro: T, Z). Carga de la representacin binana de un operando formal: La representacin binaria del operando formal se carga en el AKKU (clase de parmetro: D; tipo de parmetro: KF, KH, KM, KY, KC, KT, KZJ. Carga de de la representacin binaria de un operando formal: La representacin binaria del operando formal se carga en el AKKU (clase de parmetro: D; tipo de parmetro: KG). Transferencia a un operando formal: El contenido del AKKU se transfiere al operando indicado como operando formal (clase de parmetro: E, A, tipo de parmetro: BY, W, D). colocar el operando formal Procesamiento del Droarama Tabla 3-15 Operaciones de carga y transferencia con operandos especiales A diferencia de las zonas BA, BB y BT, el usuario 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 BSBT". Operacin L L T T La zona BT puede ser utilizada en toda su longitud (BT O a BT 255), siempre y cuando no se utilicen mdulos de funciones estndar. Operaciones aritmticas Operando BA O a 255 BB O a 255 BS O a 255 BT O a 255 BA O a 255 BB O a 255 BS 60a63 BT O a 255 Tabla 3-16 Operacin aritmtica ENT Funcin Cargar una palabra de la zona "interfaz" (zona BA) en el AKKU 1 Cargar una palabra de la zona ampliada "interfaz" (zona BB) en el AKKU 1 Cargar una palabra de la zona "datos de sistema" (zona BS) en el AKKU 1 Cargar una palabra de la zona ampliada "datos de sistema" (zona BT) en el AKKU 1 Transferir el contenido del AKKU 1 a una palabra de la zona "interfaz" (zona BA) Transferir el contenido del AKKU 1 a una palabra de la zona ampliada "interfaz" (zona BB) Transferir el contenido del AKKU 1 a una palabra de la zona "datos de sistema" (zona BS) Transferir el contenido del AKKU 1 a una palabra de la zona ampliada "datos de sistema" (zona BT) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 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 no se modifican, el contenido anterior del AKKU 4 se pierde. Procesamiento del programa Ejemplo AKKU 1 AKKU 2 AKKU 3 AKKU 4 Oc u p a c i n p o r d e f e c t o d e l o s a c u mu l a d o r e s a n t e s d e l a a b c d c a d e n a d e o p e r . a r i t m t i c a s \ L KF +30 3 O a c d -. L KF +3 3 \ 3 0 c d . . ENT 3 \ 3 0 \ 3 0 c ?- L KF +4 4 3 3 O c , x F 1 2 3 O c c , , + F 4 2 c c c L KF +6 6 \- 4 2 c c , : F 7 c c c Tabla 3-17 Operaciones aritmticas complementarias l) La programacin depender del tipo de aparato de programacin y de la versin del software de PG. ' ) Modificaciones del AKKU 2 y del AKKU 3: vase captulo 3.5.1 "operaciones bsicasloperaciones aritmticast1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama 3.5.4 Operaciones de organizacin Introduccin A las operaciones de organizacin tambin pertenecen las operaciones de sistema. Cuidado Las operaciones de sistema solamente deben ser utilizadas con la mayor cautela posible y slo por programadores experimentados y con profundos conocimientos del sistema. Las operaciones de sistema estn marcadas con en la primera columna de cada tabla! Operaciones El destino de los saltos condicionales e incondicionales se indica de forma de salto simblica (mximo 4 caracteres, 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 I 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 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Tabla 3-18 Operaciones de salto Atencin En caso de utilizacin incorrecta de SPR se pueden producir estados no definidos en la instalacin! Por ello, la operacin SPR solamente debe ser utilizada por programadores experimentados y con buenos conocimientos del sistema. Operacin SPA = SPB = SPZ = SPN = SPP = Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Salto en caso de resultado e '0': El salto solamente se ejecuta si ANZ 1 = O y ANZ O = 1. El resultado de la combinacin no se modifica. Salto en caso de desbordamiento (overlow): El salto se ejecuta cuando el indicador OV = 1. En caso de no haber desbordamiento (OV = O), no se ejecuta el salto. El resultado de la combinacin no se modifica. Se produce un desbordamiento, si en una determinada representacin numrica se supera el campo de valores admisible debido a una operacin Salto cuando el indicador OS (overlow memorizado) est activado: El salto se ejecuta si el indicador OS = 1. Si no hay desbordamiento (OS = O), no se ejecuta el salto. El resultado de la combinacin no se modifica. Se produce un desbordamiento, si en una determinada representacin numrica se supera el campo de valores admisible en el transcurso de mdulo de funciones (por ejemplo para pasar a otro segmento). La operacin se ejecuta siempre, sin condiciones. Como operando hay que indicar la diferencia de direcciones "destino del salto - operacin actual" (cantidad de palabras). Se ejecuta un salto a una Operando adr (adr =direccin simblica con un mximo de 4 caracteres) adr (adr =direccin simblica con un mximo de 4 caracteres) Funcin Salto incondicional: El salto se ejecuta sin condiciones. Salto condicional: El salto condicional se ejecuta si el VKE = 1. Si VKE = O no se ejecuta la instruccin y el resultado de la combinacin se pone a VKE = 1. Salto en caso de resultado 'O' : El salto solamente se ejecuta, si ANZ 1 = O y ANZ O = O. El resultado de la combinacin no se modifica. Salto en caso de resultado z '0': El salto solamente se ejecuta si ANZ 1 z ANZ O. El resultado de la combinacin no se modifica. Salto en caso de resultado > '0': E1 salto solamente se ejecuta si ANZ 1 = 1 y ANZ O = 0. El resultado de la combinacin no se modifica. Procesamiento del Droarama Operaciones de desplazamiento Tabla 3-19 Operaciones de desplazamiento En las funciones de desplazamiento solamente participa el AKKU 1 en la ejecucin. La parte de parmetros de estas operaciones indica la cantidad de puestos que se desplaza o rota el contenido del AKKU. En el caso de SLW, SRW y SVW, solamente participa la palabra baja en la operacin de desplazamiento, en el caso de SLD, SVD, RLD y RRD participa todo el contenido del AKKU 1 (32 bit). Operacin SLW SRW SLD SVW SVD RLD RRD Las funciones de desplazamiento se ejecutan sin condiciones. El valor del ltimo bit desplazado hacia afuera puede ser consultado por medio de ANZ l/ANZ O con operaciones de salto: Operando O a 15 Oa15 O a 32 Oa15 O a 32 O a 32 O a 32 Funcin (operacin con AKKU 1) Desplazar hacia la izquierda (las posiciones libres a la derecha se rellenan con ceros) Desplazar hacia la derecha (las posiciones libres a la izquierda se rellenan con ceros) Desplazar una palabra doble hacia la izquierda (ias posiciones libres a la derecha se rellenan con ceros) Desplazar con signo hacia la derecha (ia posicin libre a la izquierda se rellena con el bit 15) Desplazar una palabra doble con signo hacia la derecha ( la posicin libre a la izquierda se rellena con el bit 31) Rotar hacia la izquierda Rotar hacia la derecha Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Desplazar: ltimo bit desplazado o 1 ANZ 1 o 1 ANZ O o O Operacin de salto SPZ= SPN= SPP= Procesamiento del programa Ejemplos Programa STEP 5: Contenido de las palabras de datos: :L D W 5 2 KH = 14AF :T D W 5 3 KH = 4AFO 2. La palabra doble de entrada ED O ha de ser leida, y el contenido del AKKU 1 ha de ser desplazado de manera que los bits en negrita de la palabra doble de entrada (desplazados en parte) no se modifiquen, y los dems sean ocupados por valores definidos (O H, o bien, OF H). Programa STEP 5: Contenido del AKKU 1 (hexadecimal) AKKU- 1 -H : AKKU- 1-L : :L E D O :SLW 4 :SRW 4 :SLD 4 :SVW 4 FBCD :SVD 4 :RLD 4 :RRD 4 3. Aplicacin: Multiplicacin por potencia de 2, por ejemplo, valor nuevo = valor antiguo x 8 :L m 1 0 :T m 1 0 Atencin: Ino sobrepasar el limite positivo del campo de valores! 4. Aplicacin: Divisin entre potencia de 2, por ejemplo, valor nuevo = valor antiguo : 4 :A D B 5 :L DW O :SRW 2 :T DW O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Operaciones de conversin Tabla 3-20 Operaciones de conversin DEF Operacin KEW KZW KZD DEF DUF DED DUD FDG GFD DUF 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 en coma fija (32 bit) en un nmero en coma flotante (32 bit); vase OB 220: ampliacin del signo Conversin de un nmero en coma flotante en un nmero en coma fija (32 bit) El valor que se encuentra en AKKU-1-L (bit O a bit 15) se interpreta como nmero en cdigo BCD. Despus de la conversin, en el AKKU-1-L se encuentra un nmero en coma fija de 16 bit. El valor que se encuentra en AKKU-1-L (bit O a bit 15) se interpreta como nmero en coma fija de 16 bit. Despus de la conversin, en el AKKU-1-L se encuentra un nmero en cdigo BCD. 15 DUF DEF S (signo): O = positivo 1 = negativo S S S S Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 10 10 10 O Procesamiento del Droarama DED DUD El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como nmero en cdigo BCD. Despus de la conversin, en el AKKU 1 se encuentra un nmero en coma fija de 32 bit. El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como nmero en coma fija de 32 bit. Despus de la conversin, en el AKKU 1 se encuentra un nmero en cdigo BCD. DUD k DED i o S (signo): O = positivo 1 = negativo FDG El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como nmero en coma fija de 32 bit. Despus de la conversin, en el AKKU 1 se encuentra un nmero en coma flotante (exponente y mantisa). GFD El valor que se encuentra en AKKU 1 (bit O a bit 31) se interpreta como nmero en coma flotante. Despus de la conversin, en el AKKU 1 se encuentra un nmero en coma fija de 32 bit. I FDG k GFD i Exponente Mantisa 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, quedando un resultado de nmero entero. De este algoritmo de conversin resultan las siguientes clases de resultados: Los nmeros en coma flotante z O S -1 dan el siguiente nmero entero menor. Los nmeros en coma flotante O y > -1 dan el valor 'O'. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Ejemplos de conversin Nmero en coma Nmero en coma fija flotante de 32 bits GFD Ejemplos de KEW, KZW invertido bit por bit y depositado en la palabra de Programa STEP 5: Ocupacin de las palabras de datos: KM = 0011111001011011 KM = 1100000110100100 .El contenido de la palabra de datos 207 ha de ser interpretado como nmero en coma fija y ha de ser depositado con el signo invertido en la palabra de Programa STEP 5: Ocupacin de las palabras de datos: KF = +51 Decrementarl incrementar Tabla 3-21 Operacin de decremento/incremento 1) El contenido del byte bajo del AKKU-1-L decrementa o incrementa sin transporte en el valor del nmero indicado como operando. La operacin se ejecuta sin condiciones. Operacin D 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando 1 a 255 1 a 255 Funcin Decrementar el byte bajo @its O a 7) del AKKU-1-L en el valor del operando ') Incrementar el byte bajo (bits O a 7) del AKKU-1-L en el valor del operando ') Procesamiento del programa Ejemplo rograma STEP 5: Ocupacin de las palabras de datos: :L DW 7 KH = 1010 :T DW 8 KH = 1 0 2 0 :T DW 9 KH = lOFF Operaciones de procesamiento Tabla 3-22 Operaciones de procesamiento combina y ejecuta con el parmetro indicado en la marca M direccionada. instrucciones de l) El valor que se encuentra en el dato de sistema o en el operando formal se interpreta como cdigo de una operacin STEP 5, la cual se ejecuta a continuacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Nota Con B DW, B MW, BI o B BS solamente se pueden combinar las siguientes operaciones: - U.. , UN.. , O.. , ON.. , S.. , R.. , =.. con las zonas E, A, M, S, - FRT,RT,SAT,SET,SIT,SST,SVT, - FR Z, R Z, S Z, ZR Z, ZV Z, - L.., T.. con las zonas P, Q, E, A, M, S, D, BA, BB, BS, BT, - LT, L Z, - LCT, LCZ, - SPA=, SPB=, SPZ=, SPN=, SPP=, SPM=, SPO=, - SLW, SRW, - D, 1, SES, SEF, - A DB, SPA.. , SPB.., E DB, EX DX, AX DX, BAB FX, BA FX. El aparato de programacin no comprueba si las combinaciones son vlidas! Ejemplos de BDWJBMW operaciones de procesamiento Sustitucin de operandos Con las instrucciones "B DW" y "B MW" se puede acceder a datos de forma sustituida, por ejemplo, en un bucle del programa. El acceso sustituido se compone de la instruccin B DWB MW y la operacin STEP 5 siguiente del conjunto de operaciones mencionado. "Sustituido" significa que el operando no viene dado de forma esttica durante la programacin, sino que se establece durante el procesamiento del programa STEP 5 en cuestin. Durante la programacin se selecciona el tipo de operando del conjunto de operaciones vlido, p.ej. PB para la operacin "SPA PB nn". El valor del operando (nn en el ejemplo "SPA PB nn") debe ser cargado antes de un acceso sustituido con B DW/B MW en una palabra de datos o de marcas M (palabra de parmetro). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama :L KF +120 :T M W 1 4 Cargar MW 14 con el valor "KF +12OW :B M W 1 4 :L E B O 1 . antes de ejecutar la 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 indices: Los contenidos de las palabras de datos DW 20 a DW 100 deben ponerse a 'O'. El registro de indices para el parmetro de las palabras de datos es DW 1. :L KF +20 Alimentacin del registro de indices :T DW 1 M001 :L KF +O Rearme :B DW 1 :T DW O :L DW 1 Aumentar el registro de indices : L KF +1 :T DW 1 :L KF +lo0 :SPB =M001 Salto en caso que el indice se encuentre en la zon Otro programa STEP 5 3.Distribuidor de saltos para la tcnica de subprogramas: :B MW 5 :SPA =M001 Contenido de palabra de marcas MW 5: :SPA =M002 :SPA =M003 :SPA =M004 (mx. +127) :SPA =M005 M001 : . M002 : . Ventaja: Todos los programas parciales se encuentran en un solo mdulo. M003 : . Contenido de la palabra de marcas MW 10: - PB 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama 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 estructura de la palabra de marcas M o de datos (palabra de parmetro) depender del tipo de operando utilizado. Palabra de parmetro para entradas y salidas Bit nQ Palabra deparmetro para marcas M Bit nQ 15 11 no significativos Palabra deparmetro para marcas S Bit nQ 10 dir. de bit de O a 7 15 11 no significativos Palabra de parmetro para temporizadores y contadores Bit nQ 8 7 6 O 10 8 dir. de bit de O a 7 15 O O direccin de byte de O a 127 7 O direccin de byte de O a 255 todo de sustitucin con una operacin binaria 14 12 dir. de bit de Oa 7 15 8 no significativos I nst r ucci n ej ecut ada 11 O direccin de byte de O a 1023 7 O nmero de temponzador o contador de O a 255 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del programa Ejemplo de la operacin BI que efectta una llamada. El mdulo que efectta la llamada deposita en la palabra de marcas MW 16 un nmero correlativo que indica cuAl de los cdigos de operacin debe ser El resultado de la operacin ejecutada se encuentra finalmente en AKKU 1 y se transfiere a la palabra de marcas MW 18. NOMB. :TEST BEZ : m 1 0 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH BEZ :m12 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH BEZ :m14 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH :L M W 1 6 NQ correlativo del operando formal con el cdigo de operacin deseado Se ej ecut a e l cdi go de operacin t rans f eri do :T M W 1 6 Resultado de AKKU 1 :L KF +1 :T M W 1 6 :SPA =AUFR :SPA FB 1 LLamar FB TEST NOMB. :TEST Cdigo de operacin "L EB 9OW, operando formal 1 Otro cdigo de operacin, operando formal 2 MW14 : KH yyyy Otro cdigo de operacin, operando formal 3 :T M W 1 8 AKKU 1 + MW 18 Lista de operandos actuales en el FB 2 Mtodo de ejecucin en el FB 1 (nQorrelativo del operando actual) NQ correlativo del operando formal con cdigo de operacin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Bloquear/desbloquear alarmas de proceso Tabla 3-23 Bloquear/desbloquear alarmas de proceso "Bloquear/desbloquear alarmas de proceso" puede ser utlizado para suprimir el procesamiento controlado por alarmas de proceso. En el programa parcial que se encuentra entre las instrucciones AS y AF, queda impedido el procesamiento de las alarmas. Obsrvese al respecto las funciones especiales OB 120 "bloquear alarmas conjuntamente", captulo 6.5. Operacin AS AF Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando Funcin Bloquear procesamiento de alarmas de proceso Desbloquear procesamiento de alarmas de proceso Procesamiento del Droarama 3.5.5 Operaciones semforo Introduccin Si dos o ms CPUs en modo multiprocesador (vase captulo 10) de un autmata programable utilizan en comn unas zonas globales determinadas de la memoria (periferia, CPs, IPs), se corre el riesgo de que las CPUs sobreescriban datos unas a otras, o que se lean valores intermedios que no son vlidos. Por ello, es necesario coordinar el acceso de las CPUs a las zonas comunes de la memoria. La coordinacin de las CPUs es posible mediante semforos, es decir, con las instrucciones SES y SEF: Por ejemplo, se puede programar la siguiente coordinacin de dos CPUs: solamente cuando se haya activado satisfactoriamente un semforo acordado (SES), cada una de las CPUs que intervienen en el 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 habilitado el semforo (SEF). SESISEF (no son operaciones de sistema) activar/habilitar semforo Tabla 3-24 Activar/habilitar semforo 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. Operacin SES SEF Los mdulos FB estndar, los mdulos de comunicacin y los mdulos para la comunicacin en multiprocesamiento gestionan internamente la coordinacin. Para utilizar estos mdulos no es necesario programar las funciones SES xx y SEF xx. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operando O a 31 O a 31 Funcin Activar un semforo Habilitar un semforo Evaluacin de los resultados de operacin mediante ANZ OIANZ 1 Procesamiento del Droarama Actuacin de La operacin SES xx (activar semforo) ocupa para la CPU que ejecuta las SESISEF operaciones un determinado byte en el coordinador (a condicin de que no est ya ocupado por otra CPU). Mientras que la CPU est registrada all, las dems CPUs no podrn acceder a la zona de memoria protegida por el semforo (nmero O a 31). Con ello, 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 (habilitar semforo) rearma el byte del coordinador. Con ello, la zona protegida de la memoria puede volver a ser utilizada por las otras CPUs para activar semforos. El semforo solamente puede ser habilitado por la CPU que lo ha activado. Aplicacin de La figura 3-8 muestra el desarrollo esquemtico de accesos coordinados por un SESISEF semforo. START Acti var semf oro SES Acceso a l a memori a gl obal prot egi da por semf oro Habi l i tar semf oro: 1 Fi n Fig. 3-8 Coordinacin del acceso a la memoria global Antes de activar o habilitar un semforo determinado, las instrucciones SES y SEF consultan el estado (= status) de este semforo. En este caso, los indicadores ANZ O y ANZ 1 se modifican de la manera siguiente: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama El semforo ha sido activado por otra CPU y no puede ser activadohabilitado. Nota El proceso de consulta de un semforo determinado (= proceso de lectura) y el proceso de activacin o habilitacin de un semforo (= proceso de escritura) constituyen una unidad. Ninguna de las otras CPUs podr acceder durante estos procesos a este semforo! En cuanto a la aplicacin de los 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 tienen que 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 pierden en caso de efectuar un rearranque manual o automtico. El ARRANQUE en modo multiprocesador tiene que realizarse de manera sincronizada. Por este motivo no est permitido el modo "test" (prueba). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama Ejemplo de aplicacin de semforos En un autmata programable S5-135U se han integrado cuatro CPUs que, a travs de una zona de memoria comtn de la periferia Q (QW 6), transmiten avisos de estados a un aparato de avisos de estado. Cada aviso de estado debe ser transmitido durante 10 segundos y, 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 un semforo. S610 podr escribir su aviso en la QW 6 aquella CPU que haya podido ocupar para si esta zona activando con xito el semforo asignado. El semforo queda activado por un tiempo de 10 segundos respectivamente (TIMER T10). S610 cuando haya transcurrido este tiempo, la CPU habilita 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 mensaje. Realizacin: El siguiente programa se puede ejecutar en las cuatro CPUs - con un aviso distinto respectivamente. Se cargan los siguientes mdulos: PROGRAMA EMITIR AVISO REARMAR SEMAFORO Se utilizan 5 marcas: M 10.0 = 1: Aviso solicitado o en procesamiento. M 10.1 = 1: Semforo activado con xito. M 10.2 = 1: El temporizador ha arrancado. M 10.3 = 1: El aviso ha sido transmitido. M 10.4 = 1: El semforo ha sido rearmado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama NOMB. :MAIN :U M 10.0 :SPB =M001 Si no hay aviso activo :UN E 0.0 :L KH 2222 generar aviso y :T MW 12 :UN M 10.0 :S M 10.0 activar marca "AVISO". M001 :SPA FBlO Llamar FB "AVISA" NOMB. :AVISA NOMB. :AVISA :UN M 10.1 Si no hay semforo activado, :SPB FB 100 llamar al FB "activar semforo (SEMACT)". NOMB.:SEMACT :U M 10.1 Si hay semforo activado :UN M 10.2 y el temporizador no ha arrancado, :S M 10.2 :L KT010.2 arrancar temporizador. :SV T 10 :U M 10.2 Si el temporizador arranca :UN M 10.3 y no se transfiere aviso, :SPB FB 110 llamar FB "emitir aviso (SALAVISO)". NOMB.:SALAVISO :U M 10.2 Si el temporizador ha arrancado, :UN M 10.4 el semforo no est rearmado :UN T 10 y el temporizador ha transcurrido, : SPB FB 101 llamar FB "reamar semforo (SEMREARM)". NOMB . : SEMREARM :UN M 10.4 Si el semforo est rearmado, :L KHOOOO :T MBlO rearmar todas las marcas. Cont i na e n l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Procesamiento del Droarama NOMB . : SEMACT Activar el semforo nQ 10 :SPZ =M001 :UN M 10.1 Si el semforo ha sido activado con xito, :S M 10.1 activar marca "SEMAFORO ACTIVADO (SEMACT)" NOMB. : SALAVISO :L MW12 Transmitir el aviso a la periferia :UN M 10.3 :S M 10.3 Activar marca "TRANSMITIR AVISO (SALAVISO)" NOMB . : SEMREARM Habilitar semforo nQ 10 :SPZ =M001 :UN M 10.4 :S M 10.4 Activar marca "SEMAFORO REARMADO (SEMREARM)" Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados operativos y niveles de procesamiento Resumen breve Este captulo da una visin de conjunto de los distintos estados operativos y niveles de procesamiento de la CPU 928B-3UB21. 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 expone las diferencias entre los niveles de procesamiento: "procesamiento cclico", "procesamiento controlado por tiempo" y "procesamiento controlado por alarma", as como los mdulos disponibles para el programa de usuario. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 4.1 4.2 4.3 4.3.1 4.3.2 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 Tema Introduccin y resumen sinptico Niveles de procesamiento del programa Estado operativo STOP Caractedsticas e indicadores del estado operativo Solicitar y ejecutar un BORRADO TOTAL Estado operativo ARRANQUE NUEVO ARRANQUE MANUAL Y AUTOMATICO REARRANQUE MANUAL Y AUTOMATICO Comparativa de los modos de arranque Interfaces con el usuario para el arranque Interrupciones en el ARRANQUE Estado operativo RUN Procesamiento cclico del programa Procesamiento controlado por tiempo Alarma de regulador: procesamiento de reguladores Alarma de proceso: procesamiento controlado por alarmas Procesamiento anidado de programas controlados por alarma o por tiempo Pgina 4-2 4-5 4-11 4-11 4-13 4-15 4-16 4-16 4-18 4-19 4-22 4-24 4-26 4-28 4-35 4-36 4-39 Estados operativos y niveles de procesamiento 4.1 Introduccin y resumen sinptico Introduccin La CPU 928B dispone de tres estados operativos: Estado operativo STOP Estado operativo ARRANQUE Estado operativo RUN En los estados operativos ARRANQUE y RUN pueden tener lugar determinados sucesos ante los que tiene que reaccionar el programa de sistema. En muchos casos se llama entonces a un mdulo de organizacin (OB 1 a OB 35) previsto para el suceso en cuestin, el cual servir de interfaz con el usuario. Los estados operativos se indican mediante LEDs (diodos luminosos) situados en la placa frontal de la CPU. Algunos estados operativos se activan por accionamiento. Para ello el operario dispone, entre otras posibilidades, de los elementos de mando situados en la placa frontal de la CPU. En la figura 4-1 puede observarse la posicin de los LEDs y de los elementos de mando. LEDs indicadores de error (rojos) Emplazamiento para Memory Card LED (verde) Selector de modo RUNISTOP LED (rojo) Selector de modo RESETIOVERALL RESET LED indicador de error de interfaz (rojo) lnterfaz 1 .lnterfaz para PG, 15 polos Interfaz SI 1 LED indicador de error de interfaz (rojo) lnterfaz 2 N" de referencia y versin Emplazamiento para mdulo de interiaces Interfaz S1 2 Palanca de desencastre Tornillo de cierre Fig. 4-1 Placa frontal de CPU 928B con indicadores y elementos de mando Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Indicacin de los Los LEDs situados en la placa frontal indican el estado operativo actual de la estados operativos CPU. La tabla que figura a continuacin muestra cmo estn relacionados los mediante diodos LEDs STOP y RUN con el estado operativo correspondiente. luminosos (LEDs) A estos indicadores se les aaden otros LEDs complementarios (BASP, ADF, QVZ, ZYK). Tabla 4-1 Significado de los LEDs "RUN" y "STOP" Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 LED "RUN" encendido apagado apagado apagado apagado encendido LED "STOP" apagado encendido apagado intermiten- cia lenta intermiten- cia rpida encendido Estado operativo La CPU se encuentra en estado operativo RUN. La CPU se encuentra en estado operativo STOP. El LED STOP luce permanentemente tras una orden de parada del selector o de la funcin de PG, puesto que el paso al estado operativo STOP ha sido causado por el usuario o por otra CPU en modo multiprocesador, y no por la propia CPU. La CPU se encuentra en estado operativo ARRANQUE, o la CPU est en ARRANQUEBUN, el control de procesamiento est activado y se ha alcanzado un punto de parada, o la CPU est en ARRANQUEBUN, el control de procesamiento est activado y se ha eliminado un punto de parada antes de haberlo alcanzado (estado de espera). La CPU se encuentra en estado operativo STOP. La CPU ha causado el cambio a STOP (y eventualmente de las otras CPUs). Las causas posibles son por ej.: ADF, QVZ, LZF, BCF, error de regulador, colisin de alarmas temporizadas, error de ciclo, desbordamiento de la pila de mdulos (BSTACK), orden de parada. Accionando el selector STOP-RUN a STOP, el LED deja de parpadear y luce permanentemente. La CPU se encuentra en estado operativo STOP. Se ha solicitado un BORRADO TOTAL. Esta peticin puede provenir de la CPU misma o ser debida a accionamiento externo. Error de sistema grave Tratamiento: - efectuar un borrado total de la CPU; si sigue habiendo errores: - desconectar y volver a conectar la tensin del autmata programable y efectuar un borrado total; si sigue habiendo errores: - desconectar la tensin del autmata programable, desenchufar y volver a enchufar la CPU y efectuar un borrado total; si sigue habiendo errores: - sustituir la CPU o repararla. Estados o~erativos v niveles de ~rocesamiento LEDs de aviso y de error LED "BASP" Indica si la seal BASP del bus S5 (bloqueo de salidas) est activada: En modo monoprocesador, la CPU apaga el LED BASP cuando se pone en RUN y lo enciende cuando pasa a STOP. La seal BASP se activa en el ARRANQUE y en STOP, as como en el primer ciclo tras el REARRANQUE. En modo multiprocesador el LED BASP se comporta del mismo modo que en modo monoprocesador, siempre que el selector del coordenador se encuentre en posicin RUN. (En cuanto al modo de operacin "test" consltese el manual de sistema, bibliografa 124. Nota Cuando la seal BASP est activada se bloquean todas las salidas digitales. Si antes de pasar al estado operativo RUN se ha efectuado un REARRANQUE AUTOMATICO o MANUAL, el LED BASP se apaga slo cuando se haya procesado el resto del ciclo hasta el final. LED l1 QVZ l1 Retardo en acuse de recibo de una tarjeta de E/S. LED llADF1l Error de direccionamiento; el programa de usuario ha llamado a una direccin de la imagen de proceso, en la cual no se encuentra enchufada ninguna tarjeta de E/S. LED "ZYK" Error de ciclo; exceso del tiempo de supervisin de ciclo. Los errores ADF y QVZ pueden tener lugar en el ARRANQUE y en RUN; el error de ciclo ZYK solamente en RUN. Al final de un nivel de tratamiento de errores ADF, QVZ o ZYK, el programa de sistema borra los LEDs de error si es que no se ha pasado al estado STOP. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.2 Niveles de procesamiento del programa Introduccin La figura 4-2 muestra esquemticamente los niveles de procesamiento y estados operativos de la CPU 928B (-3UB21). Las abreviaturas correspondientes a los niveles de error se describen en la pgina siguiente. En modo mul t i - pr ocesador : punt o d e esper a I D STOP: encendi do LED STOP: apagado Est ado Est ado operat i vo Est ado operat i vo operat i vo C ARRANQUE .-----------------------. STOP , NUEVO AMAN- / WECK-FE Q U E MANUAL/ i N . A. CON / BCF STP MEMORI A/ / LZF ZYK REARRANQUE / ADF BAU : - , NUEVO ARRAN- / QVZ STUEU QUE AUTOMAT.11 SSF STUEB N . A. CON / MEMORI A/ / REARRANQUE 1 SSF L ....................... 1 STP NAU PEU 4 BAU X7 DOPP NAU STUEU STUEB ABORTO ( 0 8 28) ( sel ect or RUN-STOP, PG-STP O MP-STP) DESCONEXI ON NAU Fig. 4-2 Estados operativos y niveles de procesamiento Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados operativos y niveles de procesamiento Niveles de procesamiento del programa en el ARRANQUE: NUEVO ARRANQUE MANUAL REARRANQUE MANUAL NUEVO ARRANQUE MANUAL CON MEMORIA 1 Niveles de NUEVO ARRANQUE AUTOMATICO CON MEMORIA arranque NUEVO ARRANQUE AUTOMATICO REARRANQUE AUTOMATICO BCF (Error en cdigo de instruccin) LZF (Error en tiempo de ejecucin) Niveles de ADF (Error de direccionamiento) error Qvz (Retardo en acuse de recibo) SSF (Error de interfaz) Niveles de procesamiento del programa en RUN: CICLO PETICION DE TIEMPO ALARMA TEMP. 5 s ALARMA TEMP. 2 s ALARMA TEMP. 1 s ALARMA TEMP. 500 ms ALARMA TEMP. 200 ms ALARMA TEMP. 100 ms ALARMA TEMP. 50 ms ALARMA TEMP. 20 ms ALARMA TEMP. 10 ms ALARMA DE REGULADOR ALARMA DE RETARDO ALARMA DE PROCESO WECK-FE REG-FE ZYK BCF LZF ADF QVZ SSF ABBR - (Procesamiento cclico del programa) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento de reguladores controlado por tiempo) (Procesamiento controlado por tiempo) (Procesamiento controlado por alarma) - (Colisin de alarmas temporizadas) (Error de regulador) (Error de ciclo) (Error en cdigo de instruccin) (Error en tiempo de ejecucin) (Error de direccionamiento) (Retardo en acuse de recibo) (Error de interfaz) (Aborto) Niveles de error Niveles bsicos Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Caractersticas Un nivel de procesamiento tiene determinadas caractersticas, las cuales estn de un nivel de descritas en las pginas siguientes. procesamiento Anidamiento de otros niveles Cuando tiene lugar un suceso que requiere un procesamiento prioritario, el programa de sistema interrumpe el nivel actual y anida (intercala) a continuacin el nivel de prioridad superior. El anidamiento tiene lugar - en caso de niveles de tratamiento de errores y de programas en el ARRANQUE: en lmites de instrucciones, - en otros niveles: en lmites de mdulos o de instrucciones (segn el ajuste del DX O - vase captulo 7) Programa de sistema especfico A cada nivel de procesamiento le corresponde un programa de sistema especfico. ctualiza la imagen de proceso de las entradas y salidas, ispara (trigger) el tiempo de supervisin de ciclo y lama a la administracin de la interfaz del PG (punto de ontrol del sistema). USTACK (pila de interrupciones) Cuando el programa de sistema llama a un mdulo de organizacin, la CPU ejecuta las instrucciones STEP 5 que contiene el mdulo. En la pila USTACK se almacena previamente el lote de registros y se crea un nuevo lote de registros (registros: AKKU 1 a 4, puntero de la pila de mdulos, registro de direcciones de mdulos, direccin inicial del mdulo de datos, longitud del mdulo de datos, contador de direcciones STEP 5 y el registro base de direcciones). Si con motivo del suceso ha sido interrumpido el procesamiento "normal" del programa, una vez que se ha procesado el OB - incluida la totalidad de mdulos anidados - la CPU reemprende el procesamiento del programa a partir del lugar en que fue interrumpido, a menos que se haya programado un stop dentro del OB. USTACK = R e o r e s e n t o c l n de l os Fig. 4-3 Principio del cambio de niveles y de la pila USTACK Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Prioridad Los niveles de procesamiento del programa tienen una prioridad fija. Dependiendo de su prioridad pueden interrumpirse unos a otros o anidarse (intercalarse) unos en otros. Los "niveles de arranque y de error" se diferencian de los "niveles bsicos" por el hecho de que siempre se anidan en el siguiente lmite de una instruccin en cuanto tiene lugar el correspondiente suceso. Se pueden anidar tanto en los niveles bsicos como en otro nivel de arranque o de error. En casos de error siempre tendr mayor prioridad el ltimo error ocurrido. Por el contrario, un "nivel bsico" slo puede ser anidado en el siguiente nivel de prioridad inferior en lmites de instrucciones, a no ser que se modifique este ajuste parametrizando el DX O (vase captulo 7). Prioridad de los "niveles bsicos": CICLO PETICION DE TIEMPO ALARMA TEMP. 5 s ALARMA TEMP. 2 s prioridad creciente ALARMA DE REGULADOR ALARMA DE RETARDO ALARMA DE PROCESO urante el procesamiento de una alarma temporizada parece una alarma de proceso. Ya que la alarma de roceso tiene una prioridad mayor, se interrumpe el rocesamiento del nivel de alarma temporizada en el rximo lmite de mdulo y se anida el nivel de rocesamiento ALARMA DE PROCESO. i por ej. durante el procesamiento de la alarma de roceso, el programa de sistema detecta un ireccionamniento falso, la alarma de proceso se nterrumpe inmediatamente en el prximo lmite de nstruccin para anidar el nivel ADF. Reaccin en Un nivel de error activado (ADF, BCF, LZF, QVZ, REG, ZYK) que no haya caso de error sido procesado por completo no puede ser activado nuevamente ni aunque se doble haya anidado otro nivel de procesamiento del programa. En este caso la CPU se pone directamente en STOP debido a una doble llamada a un nivel de procesamiento (en la pila de interrupciones USTACK: DOPP). (Excepcin: vase bajo colisin de alarmas temporizadas). En la pila USTACK de profundidad '01' aparece marcada con una cruz la identificacin DOPP as como el nivel de error que ha sido llamado doblemente. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Ejemplos de errores dobles Error de direcciona- mi ent o en el PB 30 conduce a STOP Error de direcciona- mi ent o en el FB 5: llamada OB 251 nivel ADF Fig. 4-4 Cambio de nivel en caso de error doble Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento En caso de er r or de sust i t uci bn En caso de er r or de par amet r i zaci on Er r or de par amet r i zaci on e n FB 3 l l amada OB 301 ni vel BCF Descripcin de Los distintos niveles de procesamiento con las correspondientes interfaces de los distintos usuario se describen ms extensamente en los captulos siguientes: niveles Captulo 4.4 describe los niveles de procesamiento del programa en el ARRANQUE. Captulo 4.5 describe los niveles de procesamiento del programa en RUN. Captulos 5.5 y 5.6 describe los niveles de tratamiento de errores en el ARRANQUE y en RUN. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.3 Estado operativo STOP 4.3.1 Caractersticas e indicadores del estado operativo Caractersticas El estado operativo STOP se caracteriza por lo siguiente: Programa de usuario No se procesa ningn programa de usuario. Conservacin de datos Si anteriormente se ha procesado un programa, se mantienen los valores de los contadores, temporizadores, marcas e imgenes de proceso al pasar al estado STOP. Seal BASP La seal BASP (bloqueo de salidas) se encuentra activada. Con ello estn bloqueadas todas las salidas digitales. Excepcin: En el modo "test" en modo multiprocesador no se activa el BASP - consltese al respecto el manual de sistema (bibliografa 120. USTACK Si se ha procesado un programa con anterioridad, al pasar al estado STOP, en la pila de interrupciones (USTACK) se halla registrado un bloque de informacin por cada nivel de procesamiento que haya sido interrumpido, indicando las causas de interrupcin (vase captulo 5.4). Indicador El estado operativo STOP se indica en la placa frontal de la CPU mediante un diodo luminoso (LED). LED RUN apagado LED STOP encendido (luz permanente o intermitente) LED BASP encendido (menos en modo de test) El LED STOP indica las causas posibles del estado STOP momentneo. El significado de la luz permanente o intermitente del LED STOP se describe a continuacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento El LED STOP luce Se ha activado el estado STOP: permanentemente en modo monoprocesador: - por accionar el selector de RUN a STOP, - con la funcin de PG AG-STOP, - a causa de errores de aparatos (BAU, PEU), - tras un BORRADO TOTAL, - con la funcin de PG "Control elaboracin OFF". en modo multiprocesador: - por accionar el selector del KOR a STOP, - a causa de un STOP de otra CPU, debido a un fallo (las CPUs que no han causado el error lucen permanentemente). El LED STOP El parpadeo lento del LED STOP indica los casos expuestos ms abajo. En modo parpadea multiprocesador el parpadeo lento indica la CPU que ha causado el stop (debido lentamente a un error). (aprox. 0,5 Hz) El LED STOP parpadea lentamente - tras una instruccin de parada en el programa de usuario, - en caso de manipulacin incorrecta (error de DB 1, eleccin de un modo de arranque no admisible etc.), - en caso de errores de programacin o de aparatos (llamada a un mdulo no cargado, error de direccionamiento, retardo en acuse de recibo, error en cdigo de instruccin etc.); como informacin adicional sobre la causa de error tambin se encienden los siguientes indicadores: LED "ADF" LED "QVZ" LED "ZYK" - debido a la funcin de PG "Control elaboracin OFF" en esta CPU. El LED STOP El LED STOP indica una advertencia si parapadea rpidamente: jejecutar un parpadea "BORRADO TOTALu! rpidamente (aprox. 2 Hz) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.3.2 Solicitar y ejecutar un BORRADO TOTAL Peticin por La CPU ejecuta una rutina de inicializacin despus de cada conexin a la parte del tensin de red y tras ejecutar el borrado total. Si durante la inicializacin se programa de detectan errores que impiden el arranque del sistema, la CPU pasa al estado sistema STOP con intermitencia rpida del LED STOP. Errores posibles: Los datos de la RAM no son correctos. Solucin: efectuar un borrado total de la CPU El contenido de la Memory Card no es correcto Solucin: insertar una Memory Card programada correctamente y borrar totalmente la CPU. Hay que eliminar la causa del error y efectuar despus (nuevamente) un BORRADO TOTAL de la CPU. Un BORRADO TOTAL tambin se solicita cuando se produce un error de CPU o de sistema. Estos errores se detectan porque despus de un BORRADO TOTAL vuelve a aparecer el mismo error. En este caso, comunquelo a la delegacin Siemens ms cercana. Solicitud por Para solicitar un BORRADO TOTAL se deben efectuar las siguientes parte del usuario operaciones: 1. Activar el selector de RUN a STOP. Resultado: la CPU se encuentra en estado STOP. El LED STOP luce permanentemente. 2. Mantener el selector en posicin OVERALL RESET; accionar simultneamente el selector de STOP a RUN y nuevamente a STOP. Resultado: se ha solicitado el BORRADO TOTAL. El LED STOP parpadea rpidamente. Nota Si ya no se desea ejecutar el BORRADO TOTAL solicitado, hay que efectuar un NUEVO ARRANQUE o un REARRANQUE MANUAL. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Ejecutar un BORRADO TOTAL Suma de verificacin Independientemente de que el borrado total haya sido solicitado por el programa de sistema o por el usuario, el BORRADO TOTAL se ejecuta de la manera siguiente: Mantener el selector en la posicin OVERALL RESET; accionar simultneamente el selector de STOP a RUN y nuevamente a STOP. Resultado: se ejecuta el BORRADO TOTAL. El LED STOP luce permanentemente. Por medio de la funcin de PG: BORRADO TOTAL. (j Con el PG se puede prescindir de la peticin manual de borrado por accionamiento de los selectores! Las posiciones del selector RUN-STOP y del selector RESET-OVERALL RESET carecen de importancia en este caso). Resultado: se ejecuta el BORRADO TOTAL. EL LED STOP luce permanentemente. Al efectuarse un borrado total, el programa de sistema crea una suma de verificacin que se compara con los datos contenidos en la EEPROM. Si no coincide con stos, significa que se ha presentado un error grave del sistema (V. pg. 4-3). Nota jDespus de ejecutar el BORRADO TOTAL solamente se puede realizar un NUEVO ARRANQUE! Cargar mdulos Si durante el BORRADO TOTAL est insertada una Memory Card, todos los de la Memory mdulos de cdigo y de datos existentes all se cargarn en la memoria de Card usuario de la CPU. La CPU se encuentra luego en "modo EPROM", por lo que los mdulos de cdigo no se pueden volver a cargar, modificar ni borrar. En cambio, los mdulos de datos s se pueden recargar, modificar y borrar en la DB-RAM (v. captulo 3-3). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.4 Estado operativo ARRANQUE Caractersticas El estado operativo ARRANQUE se caracteriza por lo siguiente: Paso de STOP a RUN El ARRANQUE es el paso del estado operativo STOP al estado RUN. Modos de arranque La CPU 928B dispone de los siguientes modos de arranque: - NUEVO ARRANQUE (manual o automtico), - REARRANQUE (manual o automtico), - NUEVO ARRANQUE CON MEMORIA (NSMG, manual o automtico). Despus de un NUEVO ARRANQUE se ejecuta el programa de usuario cclico desde el principio. Despus de un REARRANQUE contina el procesamiento cclico del programa de usuario a partir del punto de interrupcin. Mdulos de organizacin Se llama a los siguientes mdulos de organizacin: En caso de NUEVO ARRANQUE MANUAL o AUTOMATICO: OB 20 En caso de REARRANQUE (o NUEVO ARRANQUE CON MEMORIA) MANUAL: OB 21 En caso de REARRANQUE (o NUEVO ARRANQUE CON MEMORIA) AUTOMATICO: OB 22 La longitud de estos mdulos de organizacin no est limitada; no se supervisa su tiempo de ejecucin. En los mdulos de organizacin de arranque se pueden llamar a otros mdulos. Tratamiento de datos El tratamiento de los valores de los contadores, temporizadores, marcas e imgenes de proceso vara segn el modo de arranque. Seal BASP La seal BASP (bloqueo de salidas) est activada. De este modo, quedan bloqueadas todas las salidas digitales. Excepcin: jen el modo test, no se activa la seal BASP! (En cuanto al modo test, consltese el manual del sistema, v. bibliografa 124. LEDs en la placa frontal de la CPU LED RUN apagado LED STOP apagado LED BASP encendido (menos en modo de test) Comportamiento del arranque en modo multiprocesador En el captulo 10.1.7 encontrar ms observaciones referentes al "Comportamiento del arranque en modo multiprocesador". Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.4.1 NUEVO ARRANQUE MANUAL Y AUTOMATICO Cundo se Un NUEVO ARRANQUE puede ejecutarse siempre, a menos que el programa puede ejecutar de sistema haya solicitado un BORRADO TOTAL. un NUEVO ARRANQUE? NUEVO ARRANQUE MANUAL Para ejecutar un NUEVO ARRANQUE MANUAL: Mantener el selector en la posicin RESET; accionar simultneamente el se- lector de STOP a RUN. Activar la funcin del aparato de programacin "Forzado AG/AG-START (NUEVO ARRANQUE). NUEVO Para ejecutar un NUEVO ARRANQUE AUTOMATICO: ARRANQUE AUTOMATICO Despus de un fallo de la tensin de redDESCONEXION durante el ARRANQUE o en RUN seguido de un restablecimiento de la tensin de red/CONEXION, la CPU efecta una rutina de inicializacin e intenta ejecutar automticamente un NUEVO ARRANQUE, siempre que el DX O est parametrizado adecuadamente (vase captulo 7). Requisitos: Los selectores de todas las CPUs y del coordinador siguen en la posicin RUN. Durante la inicializacin no han aparecido errores. La CPU no se encontraba en STOP antes del fallo de la tensin de red/ DESCONEXION. Si tiene lugar 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 intenta ejecutar un NUEVO ARRANQUE AUTOMATICO o un REARRANQUE AUTOMATICO. 4.4.2 REARRANQUE MANUAL Y AUTOMATICO Cundo no se Un REARRANQUE no debe ejecutarse, debe ejecutar un REARRANQUE? cuando el programa de sistema solicita un BORRADO TOTAL despus de uno de los siguientes acontecimientos: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento - llamada doble a un nivel de procesamiento del programa (USTACK: DOPP), - BORRADO TOTAL (bits de control: URGELOE), - aborto del arranque (bits de control: ANL-ABB), - STOP tras activar la funcin del aparato de programacin "Control de ela- boracin OFF", - comprimir durante STOP, - desbordamiento de pila (stack), - modificacin del programa de usuario en STOP. REARRANQUE Para ejecutar un REARRANQUE MANUAL: MANUAL Accionar el selector RUN-STOP de STOP a RUN (el selector RESETJOVERALL RESET encontrndose en la posicin intermedia). Activar la funcin del aparato de programacin "Forzado AG/AG-START" (REARRANQUE). REARRANQUE Para ejecutar un REARRANQUE AUTOMATICO: AUTOMATICO Despus de un fallo de la tensin de redDESCONEXION durante el ARRANQUE o en RUN seguido de un restablecimiento de la tensin de red/CONEXION, la CPU efecta una rutina de inicializacin e intenta ejecutar automticamente un REARRANQUE, siempre que el DX O est parametrizado adecuadamente (vase captulo 7) o no exista. Requisitos: Los selectores de todas las CPUs y del coordinador siguen en la posicin RUN. Durante la inicializacin no han aparecido errores. La CPU no se encontraba en STOP antes del fallo de la tensin de red/ DESCONEXION. Si tiene lugar 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 intenta ejecutar un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO. NUEVO Si en el mdulo de datos DX O se ha registrado el parmetro "nuevo arranque ARRANQUE CON con memoria", el programa de sistema ejecutar el NUEVO ARRANQUE CON MEMORIA MEMORIA en lugar del REARRANQUE. A continuacin explicaremos la diferencia entre el NUEVO ARRANQUE CON MEMORIA y el NUEVO ARRANQUE "normal". Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.4.3 Comparativa de los modos de arranque Tabla 4-2 Comparativa de los modos de arranque l) El DB O solamente se inicializa tras un BORRADO TOTAL. Operaciones del programa de sistema Evaluar: - DB 1 - DB2 - DXO - DX2 Inicializar: - DBO - 9"ista - bloquearlretardar alarmas - estadstica de ciclo Borrar: - Peticin de tiempo - Alarma de retardo - USTACWBSTACK - imagen de proceso de las entradas - imagen de proceso de salidaslpenferia dig. - Periferia analgica - Marcas de acoplamiento - Semforos - Marcas M y S - Temp. y contadores Procesamiento del ciclo restante si la seal BASP est activada Modo de arranque detectado por el OB 223 Visualizacin del modo de arranque en el PG en los bits de control de USTACK Interfaz con el usuario Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 NUEVO ARRANQUE manual s s s s no '1 s s s s s s s (completo) s (completo) s s s s s no NUEVO ARRANQUE NEUSTA OB 20 automt. s s s s no '1 s s s s s s s (completo) s (completo) s s s s s no NUEVO ARRANQUE NEUSTAt AWA OB 20 REARRANQUE manual no no no no no '1 no no no no s no no no no no no no no s REARR. MANUAL MWA OB 21 NUEVO ARRANQUE automt. no no no no no '1 no no no no s no no no no no no no no s REARR. AUT. AWA OB 22 CON manual no no no no no '1 no s no no s s no s (segn 9"ista) no no no no no no REARR. MANUAL ANL-6 t MWA OB 21 MEMOFUA automt. no no no no no '1 no s no no s s no s (segn 9"ista) no no no no no no REARR. AUT. ANL-6 t AWA OB 22 Estados o~erativos v niveles de ~rocesamiento Definicin de la " 9" pista " La "9"ista" es una lista de los bytes de entrada y salida de la zona de imagen de proceso que han dado acuse de recibo durante el ltimo NUEVO ARRANQUE. Si el DB 1 ha sido programado y cargado, despus de efectuar un NUEVO ARRANQUE la "9"ista" contendr solamente los bytes de entrada y salida que indique el DB 1. No es posible acceder a la 9"ista mediante instrucciones de STEP 5. 4.4.4 lnterfaces con el usuario para el arranque Introduccin Como interfaces con el usuario para los distintos modos de arranque se pueden utilizar los mdulos de organizacin OB 20, OB 21 y OB 22. En estos mdulos el usuario puede registrar su propio programa STEP 5 para los respectivos modos de arranque. En los OBs se puede: activar marcas, reactivar temporizadores (el arranque es retardado por el programa de sistema hasta pasar al estado RUN), preparar el trfico de datos de la CPU con las tarjetas de E/S, ejecutar la sincronizacin de los CPs (procesadores de comunicacin). NUEVO ARRANQUE: Cuando la CPU ejecuta un NUEVO ARRANQUE MANUAL o AUTOMATICO, el programa de sistema llama una sola vez al OB 20. All se puede depositar un programa STEP 5 que ejecute determinados pasos preparativos para un reinicio del procesamiento cclico. Despus de la ejecucin del OB 20 comienza el procesamiento cclico del programa con la llamada al OB 1 al FB O. Si el OB 20 no est cargado, inmediatamente despus de un NUEVO ARRANQUE, la CPU comienza con el procesamiento cclico del programa (despus de las operaciones del sistema). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento REARRANQUE MANUAL o NUEVO ARRANQUE MANUAL CON MEMORIA: Cuando la CPU ejecuta un REARRANQUE MANUAL o un NUEVO ARRANQUE MANUAL CON MEMORIA, el programa de sistema llama una sola vez al OB 21. El usuario puede depositar en l un programa STEP 5 que ejecute determinadas operaciones antes de reemprender el procesamiento del programa que ha sido interrumpido con anterioridad en RUN. Una vez procesado el OB 21, en caso de REARRANQUE MANUAL, el procesamiento cclico del programa contina con la siguiente instruccin a partir del punto de interrupcin. Vale lo siguiente: La seal BASP (bloqueo de salidas) permanece activada durante el procesamiento del resto del ciclo y se desactiva slo al principio del siguiente ciclo (completo). La imagen de proceso de las salidas se rearma al final del resto del ciclo. Si el OB 21 no est cargado, la CPU reemprende el procesamiento del programa a partir del punto de interrupcin al final de un REARRANQUE MANUAL, despus de que el programa de sistema haya ejecutado las operaciones necesarias. Nota La CPU tambin detecta un fallo de la tensin de red (NAU o PEU) si ste tiene lugar en STOP. Si a continuacin el usuario ejecuta un REARRANQUE MANUAL, la CPU llamar al OB 22 antes de llamar al OB 21. Si por el contrario se ejecuta un NUEVO ARRANQUE MANUAL, la CPU ignorar los procesos anteriores y por lo tanto no llamar al OB 22. Si en el mdulo de datos DX O se ha registrado el parmetro "NUEVO ARRANQUE CON MEMORIA", el programa de sistema ejecuta un NUEVO ARRANQUE CON MEMORIA tras procesar el OB 21 (la CPU reemprende el procesamiento del programa a partir de la primera instruccin STEP 5 en el OB 1 o FB O) . Los estados lgicos de las marcas, marcas de acoplamiento, semforos as como la lista de direcciones de mdulos (DB O) permanecen inalterados. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento OB 22 REARRANQUE AUTOMATICO o NUEVO ARRANQUE AUTOMATICO CON MEMORZA: Cuando la CPU ejecuta un REARRANQUE AUTOMATICO o un NUEVO ARRANQUE AUTOMATICO CON MEMORIA el programa de sistema llama una sola vez al OB 22. El usuario puede registrar en l un programa STEP 5 que ejecute determinadas operaciones antes de reanudar el procesamiento del programa que ha sido interrumpido antenomente en RUN. Una vez restablecida la tensin de red, la CPU ejecuta las funciones de sistema mencionadas e intenta reemprender el programa a partir del lugar en que fue interrumpido. Previamente se llama al OB 22, si est cargado. Una vez procesado el OB 22 se reemprende el procesamiento del programa interrumpido con la instruccin siguiente al punto de interrupcin. Tras un fallo de la tensin de red y su restablecimiento vale lo siguiente: La seal BASP (bloqueo de salidas) est activada durante el procesamiento del resto del ciclo. Se desactiva slo al principio del prximo ciclo completo. La imagen de proceso de las salidas se rearma al final del resto del ciclo. CO CON Si en el mdulo de datos DX O se ha registrado el parmetro "Nuevo arranque con memoria" el programa de sistema ejecuta un NUEVO ARRANQUE CON MEMORIA tras procesar el OB 22 (la CPU reemprende el procesamiento del programa a partir de la primera instruccin STEP 5 en el OB 1 o FB O). Los estados lgicos de las marcas, marcas de acoplamiento, semforos as como la lista de direcciones de mdulos permanecen inalterados. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.4.5 Interrupciones en el ARRANQUE Introduccin Un programa de arranque puede ser interrumpido por: fallo de la tensin de red en el aparato central (NAU) o en el aparato de am- pliacin (PEU), selector en STOP, instruccin de parada, MP-STP o PG-STP error de programa y de aparatos (vase captulo 5.6). Si el ARRANQUE interrumpido ha de ser continuado con uno de los posibles modos de arranque, cabe observar los siguientes puntos: Fallo de la En caso de un fallo de la tensin de red en el ARRANQUE y su consiguiente tensin de red restablecimiento cabe distinguir los casos expuestos en la tabla siguiente: durante el ARRANQUE Modo de operacin ajustado: REARRANQUE AUTOMATICO La CPU est ejecutando un NUEVO ARRANQUE (OB 20): Tras un fallo de la tensin de red y posterior restablecimiento se anida el mdulo de organizacin OB 22 (REARRANQUE AUTOMATICO) en el punto de interrupcin del OB 20. La CPU est ejecutando un REARRANQUE MANUAL (OB 21): Tras un fallo de la tensin de red y posterior restablecimiento se anida el mdulo de organizacin OB 22 (REARRANQUE AUTOMATICO) en el punto de interrupcin del OB 21. La CPU est ejecutando un REARRANQUE AUTOMATICO (OB 22): Tras un fallo de la tensin de red y posterior restablecimiento no se anida un segundo OB 22: el OB 22 interrumpido no se reemprende despus de restablecerse la tensin sino que se abandona. En su lugar se procesa el OB 22 que ha sido llamado nuevamente. Modo de operacin ajustado: NUEVO ARRANQUE AUTOMATICO La CPU est ejecutando un NUEVO ARRANQUE MANUAL o AUTOMATICO, o un REARRANQUE MANUAL: Tras un fallo de la tensin de red y posterior restablecimiento no se reemprende el OB 20 u OB 21 interrumpido, sino que se abandona. En su lugar se procesa el nuevo OB 20 llamado. Lo mismo vale para un REARRANQUE AUTOMATICO despus de una seal PEU. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento REARRANQUE MANUAL tras una interrupcin del ARRANQUE NUEVO ARRANQUE MANUAL tras una interrupcin del ARRANQUE Aborto del NUEVO ARRANQUE CON MEMORIA Cuando la CPU pasa a STOP desde un modo de arranque cualquiera (por ejemplo por accionamiento del selector a la posicin STOP o por ADF) y se efecta un REARRANQUE MANUAL, el ARRANQUE interrumpido vuelve a continuar desde el punto de interrupcin. No se anida ningn OB 21. Cuando la CPU pasa a STOP desde un modo de arranque cualquiera y se efecta un NUEVO ARRANQUE MANUAL, se abandona el ARRANQUE interrumpido y se vuelve a ejecutar un NUEVO ARRANQUE. Se llama al OB 20 si est cargado. El NUEVO ARRANQUE CON MEMORIA se abandona debido a un fallo de la tensin de red en el aparato central (NAU) o en el aparato de ampliacin (PEU), accionamiento del selector a STOP, instruccin de parada, MP-STP o PG-STP error de programa o de aparatos (vase captulo 5.6). Un NUEVO ARRANQUE CON MEMORIA abortado no se reemprende al efectuar un rearranque. En su lugar se vuelve a efectuar un NUEVO ARRANQUE CON MEMORIA. A la hora de elegir el modo de arranque no se consideran los acontecimientos que hayan tenido lugar con anterioridad. Vale lo siguiente: Si el NUEVO ARRANQUE MANUAL O AUTOMATICO CON MEMORIA ha sido interrumpido debido a una DESCONEXION o a un fallo de la tensin de red en el aparato de ampliacin, despus de la CONEXION se ejecutar otro NUEVO ARRANQUE AUTOMATICO CON MEMORIA siempre que se cumplan todas las dems condiciones necesarias para el arranque. Si el NUEVO ARRANQUE MANUAL o AUTOMATICO CON MEMORIA ha sido abandonado debido a una de las otras causas posibles se ejecutar un nuevo NUEVO ARRANQUE MANUAL CON MEMORIA. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.5 Estado operativo RUN Caractersticas Cuando la CPU procesa un ARRANQUE hasta el final (y slo entonces) pasa al estado operativo RUN. Este estado tiene las siguientes caractersticas: Procesamiento del programa de usuario El programa de usuario que se encuentra en el OB 1 o en el FB O se procesa cclicamente pudiendo ser anidados adems otros programas parciales controlados por alarma. Temporizadores, contadores, imagen de proceso Todos los temporizadores y contadores estn "en marcha". La imagen de proceso se actualiza cclicamente. Seal BASP La seal BASP @loqueo de salidas) est desactivada. De este modo quedan habilitadas todas las salidas digitales. Marcas de acoplamiento Las marcas de acoplamiento - si estn programadas en el DB 1 - se actualizan cclicamente. LEDs de la placa frontal de la CPU LED RUN encendido LED STOP apagado LED BASP apagado Nota Si se ha efectuado un REARRANQUE AUTOMATICO o un REARRANQUE MANUAL antes de pasar al estado operativo RUN, el LED BASP se apaga cuando el ciclo restante se ha terminado de procesar y la imagen de proceso ha sido actualizada. El estado RUN slo se consigue con el estado operativo ARRANQUE! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Niveles de En el estado operativo RUN existen 14 niveles bsicos de procesamiento: procesamiento del programa CICLO: El programa de usuario se procesa cclicamente. PETICION DE TIEMPO: El programa se ejecuta en intervalos fijos determinados por el usuario o una sola vez, en un determinado momento (alarma temporizada controlada por reloj). 9 ALARMAS TEMPORIZADAS: El programa de usuario se ejecuta en intervalos de tiempo fijos predeterminados por el sistema. ALARMA DE REGULADOR: Se procesa una cantidad predeterminada de reguladores por control de tiempo. ALARMA DE RETARDO: El programa de usuario se procesa una vez al transcurrir un tiempo de retardo prefijado. ALARMA DE PROCESO: El programa de usuario se procesa por control de alarma. Los niveles de procesamiento se diferencian en los puntos siguientes: Son activados por diferentes acontecimientos. Por cada nivel de procesamiento del programa existe como interfaz con el usuario un mdulo de organizacin o de funciones diferente. En una CPU 928B pueden estar programados simultneamente todos los niveles bsicos de procesamiento. La llamada a los correspondientes niveles es ejecutada por el programa de sistema de acuerdo con los eventos actuales y la prioridad fijada (vase captulo 4.2). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.5.1 Procesamiento cclico del programa Introduccin En los controles de memoria programables, por lo general, predomina el procesamiento cclico (nivel de procesamiento CICLO). En este caso se trata de un "ciclo libre", es decir, en cuanto se alcanza el final del programa se salta automticamente al principio del programa (vase fig. 4-6). Activacin Principio Si la CPU ha ejecutado con xito el programa de arranque, pasa al procesamiento cclico del programa. Principio del procesamiento cclico del programa (operaciones por parte del sistema): desde el ar r anque Act i var (t ri gger) el t i empo de super vi si n del ci cl o l Act ual i zar l as ent r adas de mar cas de acopl ami ent o Al i ment ar l a i magen de pr oceso de l as ent r adas (PAE) Ll amar al pr ogr ama de usuar i o c cl i co (OB 1 o FB O) : l Pr ogr ama de usuar i o l i ncl usi ve ani dami ent o de l os dems ni vel es de pr ocesami ent o Emi t i r l a i magen de proceso de l as sal i das (PAA) l Act ual i zar l as sal i das de l as mar cas de acopl ami ent o Procesos cont r ol ados por PG, por ej cargar o borrar mdul os, compri mi r mdul os . . . Fig. 4-6 Procesamiento cclico del programa Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento lnterfaz con el En el procesamiento cclico del programa se llama regularmente al mdulo de usuario organizacin OB 1 o al mdulo de funciones FB O como interfaz con el usuario. OBl oFBO El programa de usuario STEP 5 del mdulo OB 1 o FB O se ejecuta desde el principio hasta el final, pasando por las llamadas a mdulos programadas por el usuario. Despus de las operaciones del sistema, la CPU comienza desde el principio, con la primera instruccin STEP 5 del OB 1 (o del FB O). En el OB 1 se programan las llamadas a los mdulos de programa, de funciones y de pasos que deben ser procesados en el programa cclico. Si se requiere un programa corto y en funcin de tiempo, en el que se pueda prescindir de una programacin estructurada, se puede programar el FB O. Puesto que dispone de la totalidad del conjunto de operaciones de STEP 5, se pueden ahorrar las llamadas a los mdulos, con lo que se acorta el tiempo de ejecucin del programa. Nota Si tanto el OB 1 como el FB O estn cargados, el programa de sistema solamente llamar al OB 1. Si se utiliza el FB O como interfaz con el usuano, ste no deber contener parmetros! Puntos de interrupcin El procesamiento cclico del programa puede ser interrumpido en lmites de mdulos por: un procesamiento del programa controlado por alarmas de proceso, un procesamiento de reguladores, un procesamiento del programa controlado por tiempo. Nota Estas interrupciones tambin pueden efectuarse en lmites de instrucciones parametrizando adecuademente el DX O - vase captulo 7. El procesamiento cclico del programa puede ser interrumpido en lmites de instrucciones o puede ser completamente abortado cuando se produce un error de aparatos o de programa, por manipulacin externa (funcin PG, selector en STOP, MP-STP), por una instruccin STOP. Acumuladores Los registros de clculo AKKU 1, 2, 3 y 4 de la CPU 928B pueden ser utilizados como registros como registros de datos superando los lmites del ciclo, desde el final de un ciclo de datos de programa hasta el comienzo del ciclo siguiente. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.5.2 Procesamiento controlado por tiempo Introduccin El procesamiento controlado por tiempo tiene lugar cuando una seal de tiempo proviniente de un reloj o de un impulso interno, obliga a la CPU a interrumpir el procesamiento del programa en curso, para procesar un programa especial. Despus de procesar este programa especial, la CPU vuelve al punto de interrupcin del programa anterior y contina su ejecucin. Ello permite activar automticamente determinados elementos del programa, para intercalarlos en el procesamiento cclico en el instante deseado. Para el procesamiento del programa controlado por tiempo se dispone de distintos modos de activacin: Activacin nica tras un tiempo de retardo de milisegundos elegido a voluntad: "alarma de retardo" (nivel de procesamiento ALARMA DE RETARDO). A travs de esta alarma se llama al mdulo de organizacin OB 6. Activacin en un perodo de tiempo elegido a voluntad, o bien una sola vez en un tiempo absoluto: "alarma temporizada controlada por reloj" (nivel de procesamiento PETICION DE TIEMPO). A travs de esta alarma se llama al mdulo de organizacin OB 9. Activacin en 9 perodos de tiempo distintos desde 10 ms hasta 5 segundos por medio de "alarmas temporizadas" (nivel de procesamiento ALARMAS TEMPORIZADAS.) A cada alarma temporizada le corresponde un mdulo de organizacin (OB 10 a OB 18). En este caso se trata de ciclos fijos, es decir, la escala de tiempo entre dos arranques de programa es fija. Alarma de retardo Con la alarma de retardo de la CPU 928B tambin se pueden definir escalas breves de 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 llamando al mdulo de organizacin de funciones especiales OB 153 (vase captulo 6.12). En cuanto ha transcurrido el tiempo de retardo parametrizado con el OB 153, el programa de sistema interrumpe el procesamiento del programa y llama al OB 6. Despus se reemprende el procesamiento del programa a partir del punto de interrupcin. lnterfaz con el En las alarmas de retardo se llama al OB 6 como interfaz con el usuario. En el OB 6 usuario OB 6 se deposita el programa STEP 5 que debe ser ejecutado en este caso. Si el OB 6 no est cargado, no se interrumpe el procesamiento del programa. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Interrupciones El procesamiento de la alarma de retardo puede ser interrumpido en lmites de mdulos o bien en lmites de instrucciones (parametrizacin del DX 0) por: el procesamiento de una alarma de proceso. El procesamiento puede ser interrumpido en lmites de instrucciones o bien totalmente abortado: por aparicin de un error de aparatos o de programa, por manipulacin (funcin de PG, selector en posicin STOP, MP-STP), por una instruccin de parada. Particularidades Las alarmas de retardo solamente se procesan en el estado operativo RUN. Una alarma de retardo que haya sido generada una vez (llamada al OB 153 ya procesada) se anula al pasar a STOP o en caso de DESCONEXION. Las alarmas de retardo pueden ser generadas en el ARRANQUE o en RUN (llamada al OB 153). Cuando se genera una nueva alarma de retardo, es decir, cuando se llama al OB 153 con nuevos parmetros, se anula la alarma de retardo que ha sido ajustada previamente. Si la alarma ya se encuentra en ejecucin (el OB 6 est activado), no ser interrumpida. Por consiguiente, siempre ser vlida una sola alarma de retardo. Si durante el procesamiento de una alarma de retardo aparece una nueva alarma sin que la anterior haya sido procesada hasta el final, se anular la nueva. ;Durante el procesamiento de las alarmas de retardo no se comprueba si tienen lugar colisiones con otras alarmas! Las funciones especiales OB 120 y OB 122 permiten bloquear o retardar el procesamiento de las alarmas de retardo. Alarma temporizada controlada por reloj La CPU 928B dispone de un reloj hardware salvaguardado por una batera tampn (tamponaje central a travs del suministro de corriente del aparato central) que puede ser ajustado y ledo mediante un programa STEP 5. Con este reloj se pueden procesar programas parciales por control de tiempo. Mientras que las alarmas de retardo se utilizan para procesos rpidos, las alarmas temporizadas son especialmente apropiadas para procesos que se ejecutan una sola vez o procesos que aparecen peridicamente en escalas de tiempo extensas como por ej., cada hora, cada da o cada lunes. Cuando se alcanza el tiempo prefijado, el programa de sistema llama al OB 9. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Activacin Las alarmas temporizadas controladas por reloj (peticin de tiempo) se generan llamando al mdulo de organizacin de funciones especiales OB 151 (vase captulo 6.10). La peticin de tiempo se procesa cuando se alcanza el tiempo que ha sido transferido al OB 151 (una hora, una fecha). Esto puede ocurrir una sola vez (tiempo absoluto) o bien repetidas veces (escala de tiempo). En cuanto la peticin es recibida, el programa de sistema interrumpe el procesamiento en curso y llama al OB 9 (nivel de procesamiento de programa PETICION DE TIEMPO). Despus de ello se reemprende el procesamiento del programa a partir del punto de interrupcin. SEGUNDOS : TIPO DE PETICION 1 (cada minuto) Ll amada OB 9 Ll amada OB 9 Ll amada OB 9 lnterfaz con el En el caso de las alarmas temponzadas controladas por reloj se llama al OB 9 como usuario OB 9 interfaz con el usuario. En el OB 9 se deposita el programa STEP 5 que deba procesarse en este caso. Si el OB 9 no est cargado, no se interrumpe el procesamiento del programa. Interrupciones El procesamiento de las alarmas temporizadas controladas por reloj puede ser interrumpido en lmites de mdulos o bien en lmites de instrucciones (parametnzacin del DX 0) por: el procesamiento de una alarma de proceso, el procesamiento de una alarma de retardo, el procesamiento de una alarma de regulador El procesamiento puede ser interrumpido en lmites de instrucciones o bien totalmente abortado: por aparicin de un error de aparato o de programa, por manipulacin (funcin de PG, selector en posicin STOP, MP-STP), por una instruccin de parada STP. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 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 anuladas. Una alarma temporizada controlada por reloj que haya sido generada tras BORRADO TOTAL y NUEVO ARRANQUE (= llamada al OB 151 procesada) seguir vigente con un REARRANQUE o mediante una DESCONEXION/ CONEXION. Cuando se genera una nueva alarma temporizada controlada por reloj, es decir, cuando se llama al OB 151 con nuevos parmetros de tiempo, se anula la alarma temporizada que ha sido definida previamente. Si esta 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 anula la nueva alarma. ;No se comprueba si ha tenido lugar una colisin de alarmas temporizadas controladas por reloj! Las funciones especiales OB 120 y OB 122 permiten bloquear o retardar el procesamiento de alarmas temponzadas controladas por reloj. Alarmas temporizadas Procesamiento del programa en escalas de tiempo fijas: En la CPU 928B se pueden procesar hasta 9 distintos programas controlados por tiempo, cada uno de los cuales puede ser llamado en escalas de tiempo diferentes. Activacin Una alarma temporizada se activa automticamente con la escala de tiempos prefijada al cargarse el mdulo de organizacin (OB) correspondiente. lnterfaces con el Cuando aparece una determinada alarma temponzada se intercala en el siguiente usuario lmite de mdulo (o de instruccin) el mdulo de organizacin correspondiente como interfaz con el usuario. Tiempos de alarma temporizada asignados a los OBs: Tabla 4-3 Asignacin "tiempo de alarma temponzada - OB llamado" Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Escalas de tiempo 10 ms 20 ms 50 ms 100 ms 200 ms 500 ms 1 S 2 S 5 S OB llamado OB 10 OB 11 OB 12 OB 13 OB 14 OB 15 OB 16 OB 17 OB 18 prioridad descreciente v Estados o~erativos v niveles de ~rocesamiento Se puede programar por ej. en el OB 13 aquella parte del programa que deba ser intercalada cada 100 ms en el procesamiento cclico del programa. Nota LOS mdulos de organizacin con escalas de tiempo ms breves tienen mayor pnondad y, por lo tanto, pueden interrumpir otros mdulos de organizacin con escalas de tiempo ms largas! Tiempo Cada vez que se efecta una llamada a un OB de alarma temporizada (OB 10 a transcurrido OB 18) se registra en el AKKU 1 la cantidad de escalas de tiempo que han desde la ltima transcurrido desde la ltima llamada al OB de alarma temporizada. Para ello vale: alarma AKKU 1 = Cantidad de escalas de tiempo - 1 Si al llamar al OB 11 se encuentra registrado en el AKKU 1 por ejemplo el nmero "5", significa que han transcurrido 120 ms (6 escalas de tiempo) desde la ltima llamada al OB 11. Mientras no tenga lugar una colisin de alarmas temporizadas, se transfiere un "O" al AKKU 1. Interrupciones El procesamiento de una alarma temponzada puede ser interrumpido en lmites de mdulos (ajuste por defecto) o bien en lmites de instrucciones (programacin DX 0) por: el procesamiento de una alarma de proceso, el procesamiento de una alarma de retardo, el procesamiento de una alarma de regulador, volver a procesar una alarma temponzada. El procesamiento puede ser interrumpido en lmites de instrucciones o completamente abortado: por aparicin de un error de aparato o de programa, por manipulacin (funcin de PG, selector en posicin STOP, MP-STP), por una instruccin de parada STP. Nota Un procesamiento de programa controlado por tiempo no puede ser interrumpido por el mismo procesamiento controlado por tiempo (colisin de alarmas temponzadas)! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Colisin de Si un determinado OB de alarma temponzada no ha sido ejecutado alarmas completamente y ha de ser procesado por segunda vez, se produce una colisin. temporizadas Tambin se produce este error cuando se llama por segunda vez a un (WECK-FE) determinado OB, sin que se haya ejecutado la llamada anterior. Esto es posible con el ajuste "interrumpir alarmas en lmites de mdulos", especialmente cuando el programa STEP 5 contiene mdulos de larga ejecucin. Si ocurre una colisin, se activa el nivel de procesamiento de error WECK-FE, y el programa de sistema llama a la interfaz con el usuario OB 33. En el OB 33 se puede programar la reaccin deseada para esta situacin. Si el OB 33 no est cargado y se produce un error, la CPU pasa al estado STOP. Activando la funcin del aparato de programacin "Salida AG-INFOLJSTACK", el indicador de error WECK-FE estar marcado con una cruz en los bits de control y la pila de interrupciones (USTACK) indicar la identificacin del nivel de error de la alarma temporizada (NIVEL). Cuando se llama al OB 33, el programa de sistema deposita informaciones adicionales en el AKKU 1 y en el AKKU 2 que definen ms detalladamente el error que se ha producido: Tabla 4-4 Identificadores de colisin La identificacin en el AKKU 2-L es una identificacin del nivel de error de la alarma que ha causado el error (vase captulo 5.4). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado Colisin en el OB 10 ( 10 ms) Colisin en el OB 11 ( 20 ms) Colisin en el OB 12 ( 50 ms) Colisin en el OB 13 (100 ms) Colisin en el OB 14 (200 ms) Colisin en el OB 15 (500 ms) Colisin en el OB 16 ( 1 sec) Colisin en el OB 17 ( 2 sec) Colisin en el OB 18 ( 5 sec) Identificadores de error AKKU-1-L 1001H 1001H 1001H 1001H 1001H 1001H 1001H 1001H 1001H AKKU-2-L 0016H 0014H 0012H OOlOH OOOEH OOOCH OOOAH 0008H 0006H Estados o~erativos v niveles de ~rocesamiento Continuar el Si el procesamiento del programa ha de continuar en caso de producirse una procesamiento colisin, se programa en el OB 33 la instruccin de fin de mdulo 'BE' o se del programa en modifica el ajuste por defecto en el DX O de forma que, en caso de producirse caso de una una colisin sin estar programado el OB 33, el programa contine de todas colisin maneras en el punto de interrupcin. Despus del procesamiento del OB 33 se reemprende el programa en el punto de interrupcin. Nota En cuanto al procesamiento del programa controlado por tiempo cabe tener en cuenta las funciones especiales OB 120, OB 121, OB 122 y OB 123, que permiten bloquear o retardar el procesamiento de alarmas temporizadas para una determinada parte del programa. (Esto puede aplicarse bien a todas las alarmas temporizadas que han sido programadas o solamente a algunas). Cuanto ms "rpido" sea un nivel de procesamiento controlado por tiempo, tanto mayor ser el nesgo de que se produzcan colisiones: por lo general, las alarmas temponzadas de escalas de tiempo breves (por ejemplo, la alarma temporizada de 10 ms o de 20 ms) requerirn el ajuste "intempcin en lmites de instrucciones". Esto obliga a efectuar el mismo ajuste para las alarmas de regulador y de proceso (vase captulo 7, parametnzacin del DX O). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.5.3 Alarma de reguladores: procesamiento de reguladores Introduccin Adems del procesamiento cclico, controlado por tiempo y por alarmas, la CPU 928B ofrece asimismo la posibilidad de procesar reguladores. Se interrumpe el procesamiento cclico o controlado por tiempo y se procesa el correspondiente regulador en escalas de tiempo programadas por el usuario (= tiempo de exploracin). A continuacin, la CPU vuelve al punto de interrupcin del programa cclico o controlado por tiempo y contina con el procesamiento del programa. Activacin Las alarmas de reguladores se activan una vez transcurrido el tiempo de exploracin deseado. Operaciones por parte del programa de sistema: Administra la interfaz con el usuario para el procesamiento de reguladores. Actualiza la imagen de proceso de reguladores. lnterfaz con el Para el procesamiento de reguladores se llama al mdulo de funciones estndar usuario: mdulo R64 como interfaz con el usuario. Este permite procesar hasta 64 reguladores con de funciones ayuda del mdulo de parametrizacin de reguladores DB 2. estndar "estructura de Por cada regulador se parametriza un mdulo de datos determinado. En el mdulo de reguladores R64" datos DB 2, denominado "lista de reguladores", se determina qu reguladores deben ser procesados por el programa de sistema y en qu momento. El DB 2 est reservado para esta tarea. (El paquete de programacin especial "COMREG" ayudar al usuario a parametrizar, poner en funcionamiento y comprobar el FB estndar R64, vase catlogo ST 59 191.) Interrupciones El procesamiento de reguladores puede ser interrumpido en lmites de mdulos (ajuste por defecto) o en lmites de instrucciones (programacin del DX 0) por el procesamiento de una alarma de proceso, el procesamiento de una alarma de retardo. El procesamiento puede ser interrumpido en lmites de instrucciones o completamente abortado: por aparicin de un error de aparatos o de programa, por manipulacin (funcin de PG, selector en posicin STOP, MP-STP), por una instruccin de parada STP. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.5.4 Alarma de proceso: procesamiento controlado por alarmas Introduccin El procesamiento controlado por alarmas tiene lugar cuando una seal del bus S5 de una tarjeta de entrada digital con posibilidad de interrupcin (p. ej. 6ES5 432-4UAxx) o bien de una tarjeta IP que funcione de modo similar obliga a la CPU a interrumpir el procesamiento del programa para procesar un programa especfico. Despus de procesar este programa, la CPU vuelve al punto de interrupcin y reemprende el procesamiento del programa interrumpido. La evaluacin de la alarma de proceso puede ser activada por nivel o por flancos. Puede ser bloqueada, retardada o desbloqueada por programa. El OB 2 puede interrumpir el procesamiento del programa en curso, opcionalmente, en lmites de instrucciones o de mdulos (programacin del DX O). Activacin El estado activo de una lnea de interrupcin en el bus S5 dispara la alarma de proceso. Cada CPU tiene asignada una lnea de interrupcin de acuerdo con el slot que ocupe (vase el manual de sistema). lnterfaz con el Cuando aparece una alarma de proceso se llama al OB 2 como interfaz con el usuario OB 2 usuario. En el OB 2 hay que programar el programa especfico que se procesar cuando aparezca la alarma de proceso. Si no est cargado el OB 2, no se interrumpe el procesamiento del programa y no se procesa ningn programa por control de alarma. Interrupciones El procesamiento del programa controlado por alarma solamente puede ser interrumpido por aparicin de un error de aparatos o de programa, por manipulacin (funcin de PG, selector en posicin STOP, MP-STP), por una instruccin de parada STP. Nota El procesamiento controlado por alarma no puede ser interrumpido por el procesamiento controlado por tiempo ni por otro procesamiento contrado por alarma! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Alarmas mltiples Si durante el procesamiento de un programa controlado por alarma vuelven a aparecer alarmas de proceso, ests sern ignoradas hasta que acabe de procesarse el OB 2 (incluidos todos los mdulos llamados en el OB 2). A continuacin, la CPU retorna al punto de interrupcin y procesa el programa hasta el siguiente lmite de mdulo o instruccin. Slo entonces se aceptar otra alarma de proceso, volvindose a llamar al OB 2. As es posible procesar el programa cclico aunque aparezca una alarma constante. Nota No se detectan alarmas mltiples. El OB 2 tambin ser llamado si al alcanzar el lmite de mdulo en el programa interrumpido, el estado lgico de la lnea de interrupcin ya es pasivo. Tampoco se detectarn las alarmas de proceso que aparezcan mientras se est procesando el OB 2 y cuyo tiempo de espera sea inferior a lo que dure el procesamiento del OB 2 (en caso de activacin por flancos). No se considera el estado lgico de la seal de interrupcin desde que se activa por primera vez hasta que finaliza el OB 2 (instruccin BE). Seales de alarmas de proceso activadas por nivel En la CPU 928B el ajuste por defecto (DX O) de la seal de alarma de proceso es de activacin por nivel, es decir, el estado activo de la lnea de interrupcin hace una peticin para que se procese el OB 2 en el prximo lmite de mdulo o instruccin (segn ajuste en el DX O). I desactivad, Interrupcin 7 activada Alarma de proceso (en m t e s d e mdul os) Ci cl o A A A A = Lmites de mdulos Fig. 4-7 Seales de alarma de proceso, activadas por nivel El OB 2 llamado se procesa hasta el final. Si la seal de interrupcin sigue estando activada o se vuelve a activar al finalizar el OB 2, entonces en el programa cclico se procesar un mdulo (slo en caso de interrupcin en lmites de mdulos) y finalmente se volver a llamar al OB 2. Si el nivel desaparece, el OB 2 ser llamado slo cuando cambie el estado lgico de la seal (de desactivado a activado). No se consideran los estados activos de la seal de interrupcin antes de la instruccin de fin de mdulo (BE) del OB 2. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento Seales de alarmas de proceso activadas por flancos Bloqueo del procesamiento controlado por alarmas de proceso Este ajuste se efecta parametrizando el DX O. Despus de procesar el OB 2, solamente se puede activar otra alarma de proceso por un cambio del estado lgico de la seal (de desactivada a activada). Tras ejecutarse la instruccin de fin de mdulo (BE) del OB 2 deber tener lugar "un cambio del estado lgico desactivada-activada" de la seal de interrupcin, a fin de poder generar una alarma de proceso. I nt er r upci n 1 desact i vad act i vada Al ar ma de pr oceso (en l mi tes de mbduos) Ci cl o A = L mi t es de mdul os Fig. 4-8 Seales de alarma de proceso, activadas por flancos Un programa controlado por alarma 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 un programa parcial cclico en un tiempo determinado (por ejemplo, para conseguir un tiempo de reaccin determinado), o bien cuando no se deba interrumpir una secuencia de instrucciones determinada (por ejemplo, al leer o escribir valores relacionados entre s). Cuando el programa parcial no deba ser interrumpido por un procesamiento controlado por alarma, se puede optar por las siguientes posibilidades de programacin: Programar este programa parcial de manera que no contenga cambios de mdulo y mantener el ajuste por defecto del DX O ("Alarmas de proceso en lmites de mdulos"). Los programas parciales que no contengan cambios de mdulo tampoco pueden ser interrumpidos. Programar la instruccin STEP 5 'AS' (bloquear alarmas de proceso). Con la instruccin 'M' (desbloquear alarmas de proceso) se vuelve a habilitar el procesamiento de alarmas. Entre estas dos instrucciones no se procesan programas controlados por alarmas; el programa parcial que se encuentra entre estas dos instrucciones no puede ser interrumpido por alarmas de proceso. 'AS' y 'M' solamente pueden utilizarse en los mdulos de funciones (conjunto de operaciones complementarias)! Utilizar los mdulos de funciones especiales OB 120 y OB 122 que permiten bloquear o retardar el procesamiento de las alarmas de proceso para poder procesar un programa parcial determinado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Estados o~erativos v niveles de ~rocesamiento 4.5.5 Procesamiento anidado de programas controlados por alarma o por tiempo Priorizacin del Si durante el procesamiento de un programa controlado por tiempo aparece una procesamiento alarma de proceso, el programa se interrumpe en el siguiente punto de controlado interrupcin (lmite de mdulo o de instruccin) y se procesa la alarma de por alarma o por proceso. Despus se termina el procesamiento del programa controlado por tiempo tiempo. Si durante el procesamiento controlado por alarma aparece una alarma temporizada, primero se termina el procesamiento controlado por alarma. Slo entonces se procesa el programa controlado por tiempo. Si aparecen a la vez una alarma de proceso y una alarma temponzada, en el siguiente punto de interrupcin se procesar primero la alarma de proceso. Slo cuando esta alarma se haya terminado de procesar, se procesar la alarma temponzada. La fig. 4-9 muestra esquemticamente cmo se produce la interrupcin del procesamiento del programa en los lmites de mdulos por el procesamiento de alarmas controladas por tiempo y por programas. @ Punto de i nt errupci n en el que puede i nt ercal arse de manera est ndar un programa de mayor pri ori dad en el procesami ent o c cl i co, cont rol ado por al arma o por t i empo. El procesami ent o de , procesami ent o un programa cont rol ado c cl i co por t i empo sol ament e puede ser i nt errumpi do por un procesami ent o cont rol ado por al arma, y no al cont rari o. procesami ent o con- t rol ado por t i empo procesami ent o con- t rol ado por al arma Fig. 4-9 Procesamiento controlado por interrupciones, en lmites de mdulos I nst rucci ones d e pr ogr amaci n CP U 928B- 3UB21 C79000- G8578- C870- 01 Estados o~erativos v niveles de ~rocesamiento Tiempo de El tiempo de reaccin a una peticin de una alarma temponzada corresponde al reaccin tiempo de procesamiento de un mdulo o de una instruccin STEP 5 (segn el preajuste seleccionado). Sin embargo, si en el momento en que tiene lugar la interrupcin todava existen alarmas de proceso por ejecutar, entonces el programa controlado por tiempo se ejecutar solamente cuando hayan sido procesadas hasta el final todas las alarmas de proceso pendientes. El tiempo mximo de reaccin entre la aparicin de una alarma temporizada y su procesamiento aumenta en este caso en el tiempo de procesamiento de las alarmas de proceso. Para evitar colisiones de alarmas temporizadas, obsrvese la siguiente regla: A + B + Ce D siendo A = La suma de los tiempos de procesamiento de todos los niveles de procesamiento de mayor prioridad (OBs de proceso, de regualdores y de alarmas temponzadas) B = Tiempo de procesamiento del OB xy de alarma temponzada C = Tiempo de ejecucin del mdulo ms largo de todos los niveles de procesamiento de inferior prioridad D = Escala de tiempo del OB xy de alarma temporizada Nota Si se desea procesar el programa de usuario no slo cclicamente sino tambin de forma controlada por tiempo y10 por alarma, existe el peligro de que se sobreescnben las marcas. Esto puede ocurrir, por ejemplo, en caso de utilizarlas como marcas intermedias, tanto en el programa cclico como en el anidado, y en caso de que el procesamiento cclico del programa sea interrumpido por anidamiento de un programa controlado por tiempo o por alarma. Por este motivo, al iniciar el procesamiento de un programa controlado por tiempo o por alarmas hay que "salvaguardar" los estados lgicos de las marcas (doblemente ocupadas) en un mdulo de datos y volverlas a escribir una vez finalizado el procesamiento que ha causado la interrupcin. Para este fin se dispone de cuatro mdulos de organizacin de funciones especiales: OB 190 y OB 192 "Transferir marcas a mdulos de datos" y OB 191 y OB 193 "Transferir bloques de datos a la zona de marcas" (vase all). Para evitar una doble ocupacin de las marcas, en la mayora de los casos tambin se pueden utilizar marcas S. De este modo no ser necesario tomar "medidas de salvaguarda" especiales (la cantidad de marcas S disponible es suficiente). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interrupciones y errores Resumen breve 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 y reaccin en caso de error y los mdulos en que pueden programarse reacciones ante determinados errores. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Pgina 5-2 5-3 5-7 5-8 5-13 5-19 5-22 5-25 5-26 5-26 5-28 5-29 5-31 5-32 5-34 5-37 5-45 5-46 5-48 5-49 5-50 5-52 5-53 Captulo 5.1 5.2 5.3 5.3.1 5.3.2 5.3.3 5.4 5.5 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.6 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 5.6.6 5.6.7 5.6.8 5.6.9 Tema Errores frecuentes en el programa de usuano Informaciones sobre errores Bits de control y pila de interrupciones Bits de control Contenido de la pila de interrupciones (USTACK) Ejemplo de diagnstico de errores mediante USTACK Tratamiento de errores mediante mdulos de organizacin Errores en el ARRANQUE DBO-FE (error DB O) DB1-FE (error DB 1) DB2-FE (error DB 2) DXO-FE (error DX O DX 2) MOD-FE (error de Memory Card) Errores en RUN y en el ARRANQUE BCF (error en cdigo de instruccin) LZF (error en tiempo de ejecucin) ADF (error de direccionamiento) QVZ (retardo en acuse de recibo) ZYK (error de tiempo de ciclo) WECK-FE (colisin de alarmas temponzadas) REG-FE (error de regulador) ABBR (aborto) FE-3 (errores de comunicacin) Tratamiento de interru~ciones v errores 5.1 Errores frecuentes en el programa de usuario Introduccin El programa de sistema es capaz de detectar un funcionamiento defectuoso de la CPU, errores en el procesamiento del programa de sistema, as como las consecuencias de una programacin errnea por parte del usuario. Resumen La lista siguiente indica los errores que aparecen con mayor frecuencia durante la puesta en funcionamiento del programa de usuario, los cuales pueden ser fcilmente evitados al crear el programa. Por este motivo, recomendamos prestar atencin a las siguientes indicaciones, especialmente a la hora de esbozar, implementar y poner en funcionamiento el programa STEP 5: Al indicar las direcciones de byte de entradas y salidas es preciso que las tarjetas correspondientes a estas direcciones estn enchufadas en el aparato central o en el aparato de ampliacin. Hay que asegurarse de que los operandos obtengan los parmetros correctos. Las modificaciones de los mdulos de funciones deben efectuarse con cautela. Debe comprobarse que los FB/FX estn parametrizados con los operandos correctos y que todos los operandos actuales estn indicados. Las salidas, marcas, temporizadores y contadores no deben ser procesados en distintos puntos del programa con operaciones contradictorias. Los temporizadores deben ser consultados solamente una vez por ciclo (por ej. U TI). Hay que verificar que todos los mdulos de datos llamados estn disponibles y tengan una longitud suficiente. Hay que comprobar que todos los mdulos llamados existan efectivamente en la memoria. Las marcas de trabajo deben protegerse de los programas controlados por alarma y por tiempo y deben cargarse nuevamente una vez concluido el procesamiento, cuando sean requeridas por otros mdulos (por ej.: FB estndar). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.2 Informaciones sobre errores Resumen Cuando aparece un error durante el arranque o durante el procesamiento cclico del programa de usuario, se dispone de diferentes fuentes de informacin para identificarlo. Estas son: LEDs de la placa frontal de la CPU Pila de interrupciones USTACK y bits de control Dato de sistema BS 3, BS 4 y BS 80 Identificaciones de error en AKKU 1 y AKKU 2 Pila de mdulos BSTACK A continuacin se indican los recursos disponibles para evaluar dichas fuentes de informacin y el modo de emplearlas para analizar el error en cuestin. LEDs de la placa En caso de una parada inoportuna, los LEDs situados en la placa frontal dan una frontal de la CPU primera informacin sobre la causa del error: Funcin on line A travs de la funcin on line del aparato de programacin "Salida del PG "Salida AG-INFOIUSTACK" se obtiene informacin sobre el estado de los bits de AG-INFOI control internos y el contenido de la pila de interrupciones (USTACK). USTACK" Al pasar al estado STOP, el programa de sistema registra en la pila USTACK todas las informaciones necesarias para un rearranque. Estas informaciones son: Indicador LED El LED STOP luce de forma permanente El LED STOP parpadea de forma lenta El LED STOP parpadea de forma rpida El LED ADF luce de forma permanente El LED QVZ luce de forma permanente El LED ZYK luce de forma permanente contenidos de los registros, Significado Las diferentes formas en que luce el LED STOP indican determinadas causas de intempcin o de error. Hay que consultarlas explicaciones al respecto en el captulo 4.1. Error de direccionamiento Retardo en acuse de recibo Error en tiempo de ciclo contenidos de los acumuladores, contador de direcciones STEP SAZ indicadores de resultado. Estas informaciones son de gran ayuda a la hora de diagnosticar un error. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Antes de visualizarse el contenido de la pila USTACK se visualizan en primer lugar los estados de los bits de control. Estos indican el estado operativo actual, determinadas caractersticas de la CPU o del programa de usuario y dan informaciones adicionales sobre la causa del error. La funcin "Salida AG-INFOIUSTACK" 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 de interrupciones. En el captulo 5.3 se explica ms exhaustivamente el significado de los bits de control y la estructura de la pila de interrupciones. Datos de sistema Si debido a un error la CPU pasa al estado STOP ya durante el ARRANQUE, la BS3yBS4 causa del error se encontrar definida ms detalladamente en las palabras de datos de sistema BS 3 y BS 4 (vase captulo 5.5). En este caso se trata de errores que encuentra el programa de sistema al estructurar las listas de direcciones en el DB O o al evaluar el DB 1, DB 2, DX O o DX 2. Ambas palabras de datos estn registradas en las siguientes direcciones de memoria absolutas: Palabra de datos de sistema BS 3: KH = EA03 Palabra de datos de sistema BS 4: KH = EA04 Mediante el identificador de error que contiene la palabra de datos BS 3 se puede determinar de qu error se trata. La palabra de datos BS 4 indica dnde se ha verificado el error. Los identificadores de error estn registrados en formato de datos KH. Evaluacin de la La funcin on line INFORMACION DIRECCION (KH = EA03 o EA04) palabra de datos permite leer directamente el contenido de ambas palabras de datos para averiguar de sistema BS 3 la causa del error. y BS 4 con el aparato de programacin Dato de sistema Cuando el programa de sistema detecta un error grave en el sistema, activa el bit BS 80 de control INF en la pila de interrupciones (vase captulo 5.3) y deposita en la palabra de datos de sistema BS 80 un identificador de error adicional en formato de datos KH. La direccin absoluta de la palabra de datos BS 80 es KH = EA50. Se lee del mismo modo que las palabras de datos BS 3 y BS 4. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Identificadores de error en AKKU 1 y AKKU Si durante el procesamiento de un programa STEP 5 aparecen errores en el ARRANQUE o en el CICLO, para los que existe un mdulo de organizacin 2 como interfaz con el usuario, entonces el programa de sistema deposita automticamente, en cada llamada al mdulo de organizacin correspondiente, informaciones adicionales en los acumuladores AKKU 1 y AKKU 2, los cuales especifican ms detalladamente la causa del error (vase captulo 5.6). El identificador de error en el AKKU 1 permite determinar de qu tipo de error se trata. El identificador de error en el AKKU 2 (si es que ha sido registrado) indica dnde se ha verificado el error. Los identificadores de error estn registrados en formato de datos KH. Evaluacin del Con la funcin on line "Salida AG-INFO/USTACK" se puede leer directamente en AKKU 1 y AKKU el USTACK el contenido de los dos acumuladores, para as determinar la causa 2 con el aparato exacta del error. de programacin Evaluacin del Puesto que los identificadores de error se depositan automticamente en los AKKU 1 AKKU 1 y AKKU y AKKU 2 cuando se llama a uno de los mdulos de organizacin de error, estos 2 con STEP 5 identificadores pueden ser considerados para la programacin del OB de error. As es posible programar en un solo mdulo de organizacin, diferentes reacciones para las distintas clases de errores, en dependencia del identificador de error que haya sido registrado. Funcin on line La funcin on line del aparato de programacin "Salida AG-INFO/ BSTACK" "Salida AG-INFO/ permite obtener en el STOP informaciones sobre el contenido de la pila de BSTACK" mdulos (BSTACK - vase captulo 3.2 "Anidamiento de mdulos"). En el BSTACK estn registrados, a partir del OB 1 o FB O, todos los mdulos que han sido llamados sucesivamente hasta pasar a STOP y que hasta ese momento no han sido procesados por completo. La lnea superior del BSTACK contiene el ltimo mdulo que ha sido llamado en el momento en que se produjo el error. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Informaciones en Al evaluar la lnea superior se obtienen las siguientes informaciones: BSTACK Ejemplo Informacin MODULO-NR. MODULO-DIR. DIREC.-RETORNO D1R.-REL DB-NR. DB-DIR MODULO-NR. MODULO-DIR. DIREC.-RETORNO D1R.-REL. DB-NR DB-DIR. OB 23 0063 0064 O001 13 0078 FB 5 006A 0072 0008 13 0078 FB 6 008A 0091 0007 100 0098 OB 1 009D 009E O001 Significado Clase y nmero del mdulo que ha llamado al mdulo defectuoso Direccin inicial absoluta de este mdulo en la memoria de usuario Direccin absoluta de la siguiente operacin STEP 5 a procesar en este mdulo en la memoria de usuario Direccin relativa (= diferencia "DIREC.- RETORNO - MODULO-DIR.") de la operacin siguiente a ejecutar en este mdulo (las direcciones relativas pueden ser visualiza- das en el aparato de programacin en el modo de operacin "bloqueo de entradas"/interruptor de llave y con SS-DOS a partir de la versin IV mediante la tecla de funcin "direcciones ") Nmero del ltimo mdulo de datos abierto en este mdulo Direccin inicial absoluta de este mdulo de datos (direccin de la palabra de datos DW O) en la memoria del programa Evaluacin de la "Salida AG-INFO/BSTACKM: El ejemplo indica que se ha producido el estado STOP en el OB 23 al procesarse la instruccin STEP 5 registrada en la direccin absoluta "0064 - 1 = 0063". El OB 23 (OB de error QVZ) ha sido llamado en el FB 5 en la direccin relativa "0008 - 1 = 0007". En el FB 6 se ha abierto el mdulo de datos DB 100. El mdulo de datos vlido al pasar la CPU al estado STOP era el DB 13. El mdulo de datos DB 13 ha sido llamado en el FB 5. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.3 Bits de control y pila de interrupciones Introduccin Las funciones on line del aparato de programacin "Salida AG-INFOI USTACK" permiten analizar el estado operativo, las caractersticas de la CPU y del programa de usuario, as como las causas posibles de los errores e interrupciones. Nota Los bits de control se visualizan en todos los estados operativos; el contenido de la pila de interrupciones slo puede visualizarse en STOP. Resumen Los datos de diagnstico se representan de la siguiente forma en la pantalla: Bits de control: Los bits de control indican el estado operativo actual o precedente y la causa de la anomala. Si se producen varios errores, todos stos estarn representados en los bits de control. Pila de interrupciones: En la pila de interrupciones 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 se producen varias interrupciones, se crea una pila de interrupciones de varios niveles (mximo 13) constituda por: Profundidad 01 = ltima causa de interrupcin, Profundidad 02 = penltima causa de interrupcin, etc ... Un desbordamiento de la pila de interrupciones provoca el paso inmediato al estado STOP (STOP TOTAL!). En este caso hay que efectuar una DESCONEXION/CONEXION de la tensin de red y un NUEVO ARRANQUE. El significado de las abreviaturas de los bits de control y de la pila de interrupciones se indica a continuacin. Nota El texto visualizado en la pantalla del aparato de programacin depender del software del aparato utilizado. De ah que su representacin pueda diferir de la aqu impresa, lo que no significa que no sea vlida esta ltima! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Significado de los En las tablas siguientes se explica el significado de los distintos bits. bits de control Tabla 5-1 Significado de los bits de control en la lnea >>STP<< in 'STP' de STEP 5 Tabla 5-2 Significado de los bits de control en la lnea >>ANL<< Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 &ea >>ANL<< (BITS DE CONTROL) Bit de control >>ANL<< ANL-6 t MWA ANL-6 t A WA NEUSTA M W A A W A Significado CPU en estado operativo ARRANQUE NUEVO ARRANQUE MANUAL CON MEMORIA NUEVO ARRANQUE AUTOMATICO CON MEMORIA Se ha solicitado un NUEVO ARRANQUE MANUAL (STOP) o ste fue el ltimo ARRANQUE ejecutado (ARRANQUEBUN). Se ha solicitado un FEARRANQUE MANUAL (STOP) o ste fue el ltimo ARRANQUE ejecutado (ARRANQUEBUN). Se ha solicitado un FEARRANQUE AUTOMATICO tras un fallo de la tensin de red (STOP) o ste fue el ltimo ARRANQUE ejecutado (ARRANQUE/RUN). Tratamiento de interru~ciones v errores Tabla 5-3 Significado de los bits de control en la lnea >>RUN<< &ea >>ANL<< (BITS DE CONTROL) Significado Bit de control Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado Tabla 5-2 (continuacin): M W A t A W A ANL-2 NEUZU MWA-ZUL Se ha solicitado un NUEVO ARRANQUE AUTOMATICO (STOP) o el ltimo arranque ejecutado fue NUEVO ARRANQUE AUTOMATICO (ARRANQUEDUN). Funcin doble: - se activa despus de llamar "Control elaboracin OFF" (a diferencia de BARBEND en la primera lnea de la mscara, tambin se activa cuando se llama "Control elaboracin OFF" en STOP; impide un REARRANQUE), - se activa despus de "Comprimir en STOP"; impide un REARRANQUE. El NUEVO ARRANQUE (STOP) es admisible o lo era en el ltimo ARRANQUE (ARRANQUEIRUN). El REARRANQUE MANUAL es admisible (STOP) o en el ltimo ARRANQUE era admisible un REARRANQUE MANUAL (ARRANQUEIRUN). Tratamiento de interru~ciones v errores Tabla 5-4 Significado de los bits de control en la lneas 4 y 5 Los bits de control de las lneas 6 a 8 (vase tabla siguiente) sealan los errores que se pueden producir en los estados operativos ARRANQUE (por ejemplo, durante el primer NUEVO ARRANQUE) y en RUN (por ejemplo, en el procesamiento controlado por tiempo). Si se han producido vanos errores, en las ltimas tres lneas de los bits de control se representan todas las causas de interrupcin (jan no procesadas!) que han tenido lugar hasta el momento. Observar al respecto el dato de sistema BS 2: contiene la UAMK (palabra colectora de indicadores de interrupcin, 16 bit), en la que tambin se encuentran registrados todos los errores que an no han sido procesados (captulo 8.3.5). Bit de control 32KWRAM 16KWRAM 8KWRAM EPROM KM-AUS KM-EIN DIG-EIN DIG-AUS URGELOE URLIA STP-VER ANL-ABB UA-PG UA-SYS UA-PRFE UA-SCH Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 &eas 4 y 5 (BITS DE CONTROL) Significado Tarjeta en modo RAM (32 x 21palabras) Carece de importancia en la versin -3UB21 Carece de importancia en la versin -3UB21 Tarjeta en modo EPROM (32 x 21palabras) La lista de direcciones para salidas de marcas de acoplamiento del DB 1 existe. La lista de direcciones para entradas de marcas de acoplamiento del DB 1 existe. La lista de direcciones de entradas digitales existe. La lista de direcciones de salidas digitales existe. Se ha ejecutado un borrado total de la CPU (se requiere NUEVO ARRANQUE). Se est ejecutando un borrado total de la CPU. La CPU ha causado el stop del autmata programable. El ARRANQUE ha sido abortado (se requiere un NUEVO ARRANQUE). El aparato de programacin ha solicitado un BORRADO TOTAL. El programa de sistema ha solicitado un BORRADO TOTAL (imposible ejecutar un ARRANQUE); hay que ejecutar un BORRADO TOTAL. Peticin de borrado total por error de la CPU Peticin previa de borrado total por accionamiento del selector: ejecutar un BORRADO TOTAL o elegir un modo de arranque si no se desea ejecutar el BORRADO TOTAL solicitado. Tratamiento de interru~ciones v errores Tabla 5-5 Significado de los bits de control en las lneas 6 a 8 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Bit de control DXO-FE FE-22 MOD-FE RAM-FE DBO-FE DB1-FE DB2-FE KOR-FE N A U P E U B A U STUE-FE Z Y K Q V Z A D F WECK-FE B C F &eas 6 a 8 (BITS DE CONTROL) Significado Error de parametnzacin en el DX O o DX 2 No ocupado El contenido de la Memory Card es errneo (se requiere un BORRADO TOTAL). El contenido de la memoria de usuario o de la DB-RAM es errneo (se requiere un BORRADO TOTAL). La estructura de las listas de direcciones de mdulos del DB O es errnea. La estructura de las listas de direcciones del DB 1 para la actualizacin de la imagen de proceso es errnea: - el DB 1 no est programado estando el coordenador enchufado o en modo multiprocesador, - la estructura o el contenido del DB 1 son errneos. Error de evaluacin del mdulo de datos de parame- tnzacin DB 2 de la estructura de regulador R64 Error en intercambio de datos con el coordinador Fallo de la tensin de red en el aparato central Periferia no disponible = fallo de la tensin de red en el aparato de ampliacin Batera defectuosa = fallo de la batera tampn del aparato central Desbordamiento de la pila de interrupciones o de mdulos (la profundidad de anidamiento es demasiado elevada; se requiere un NLJEVO ARRANQUE) Exceso del tiempo de supervisin de ciclo Retardo en acuse de recibo al intercambiar datos con la penfena Error de direccionamiento de las entradas o salidas: error debido a un acceso a la imagen de proceso, habindose llamado a tarjetas de EIS que durante el ltimo NUEVO ARRANQUE no estaban conectadas o eran defectuosas, o bien no estaban indicadas en el DB 1. Colisin de alarmas temponzadas: antes de procesar un determinado OB de alarma temponzada, o bien durante su procesamiento ha sido activada otra alarma temporizada para el mismo OB. Error en cdigo de instruccin: - error de sustitucin: instruccin STEP 5 ejecutada no sustituible - error de cdigo de operacin: instruccin STEP 5 ejecutada errnea - error en parametrizacin: el parmetro de la instruccin STEP 5 ejecutada errneo Tratamiento de interru~ciones v errores 5.3.2 Contenido de la pila de interrupciones (USTACK) Introduccin Cuando la CPU est en STOP, despus de aparecer en pantalla los bits de control y de confirmar mediante la tecla de aceptacin, se visualiza el contenido de la pila de interrupciones. Al pasar la CPU a stop, el programa de sistema registra en la pila de interrupciones todas las informaciones necesarias para un rearranque. Las informaciones de USTACK indican de qu tipo de error se trata y dnde ha tenido lugar. Si la causa del STOP ha sido un solo error, entonces se visualiza un solo nivel de informacin de USTACK. Si han aparecido varios errores, entonces se visualizan tantos niveles de informacin USTACK como hayan aparecido errores (PROFUND. 01, PROFUND. 02, etc.). En todos los niveles est marcado con una cruz un solo error bajo CAUSA DE ERROR. Si la causa del STOP han sido varios errores, en el nivel PROFUND. 01 estar marcado el error que ha sido detectado inmediatamente antes de la parada de la CPU. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Representacin La figura 5-2 muestra un ejemplo de la visualizacin de la pila de interrupciones en la pantalla en el aparato de programacin. / PILA DE INTERRUPCIONES \ PROFUND. 02 BEF-REG: C70A SAZ: 00F3 DB-ADR: 0000 BA-ADR: O000 BST-STP: 0002 FB-NR.: 226 DB-NR.: OB-NR.: REL-SAZ: 0006 DBL-REG.: O000 NIVEL: 0004 UAMK: 0200 UALW: O000 AKKUI: 0000 C464 AKKU2: 0000 OOFF AKKU3: 0000 0000 AKKU4: 0000 0000 l 1 PARENT.: KEI 111 KE2 100 KE3 111 l - INFO. RESULTADO: ANZI ANZO OVFL OVFLS ODER ERAB X STATUS VKE X X CAUSA DE ERROR: N AU PEU BAU MPSTP ZYK QVZ ADF STP BCF S-6 LZF REG-FE X STUEB STUEU WECK DOPP i Fig. 5-2 Ejemplo de la primera pgina del indicador "USTACK": contenido Explicacin de PROFUND. los indicadores USTACK Nivel de informacin de la pila USTACK en caso de anidamiento de errores: PROFUND. 01 = ltima causa de error PROFUND. 02 = penltima causa de error ...... PROFUND. 13 = ...... (profundidad mxima) . ., sobre la localizacion del eniar La tabla siguiente contiene datos (identificaciones de USTACK) sobre el lugar en que se ha producido el error. Estos datos permiten localizar en el programa de usuario la instruccin que ha causado el STOP de la CPU. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Tabla 5-6 Significado de las identificaciones de USTACK sobre la localizacin del error Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Identific. USTACK BEF-REG BST-STP NIVEL Z Datos sobre la localizacin del error Significado Registro de instrucciones: contiene el cdigo mquina (lvalabra de la ltima instruccin procesada en un nivel de procesamiento interrumpido), vase lista de operaciones, bajo la lista del cdigo mquina. Puntero de la pila de mdulos: contiene la cantidad de elementos registrados en la pila de mdulos (BSTACK) en el instante en que se produjo 1 interrupcin de este nivel de procesamiento. Indica el nivel de procesamiento que ha sido interrumpido: Z: 0002: NUEVO ARRANQUE 0004: CICLO 0006: AL. TEMP.15 S (OB 18) 0008: AL. TEMP.12 S (OB 17) 000A: AL. TEMP.11 S (OB 16) 000C: AL. TEMP.1500 ms (OB 15) 000E: AL. TEMP.1200 ms (OB 14) 0010: AL. TEMP.1100 ms (OB 13) 0012: AL. TEMP.150 ms (OB 12) 0014: AL. TEMP.120 ms (OB 11) 0016: AL. TEMP.110 ms (OB 10) 0018: PETICION DE TIEMPO 001A: No ocupado 001C: ALARMA DE REGULADOR 001E: No ocupado 0020: ALARMA DE RETARDO 0022: No ocupado 0024: ALARMA DE PROCESO 0026: No ocupado 0028: NUEVO ARRANQUE MANUAL CON MEMORIA 002A: NUEVO ARRANQUE AUTOMATICO CON MEMORIA 002C: Paso al estado STOP por STOP en modo multiprocesador, selector en STOP o PG-STOP 002E: Error de interfaz 0030: Colisin de alarmas temporizadas 0032: Error de regulador 0034: Error de ciclo 0036: No ocupado 0038: Error en cdigo de instruccin 003A: Error en tiempo de ejecucin 003C: Error de direccionamiento 003E: Retardo en acuse de recibo 0040: No ocupado 0042: No ocupado 0044: REARRANQUE MANUAL 0046: REARRANQUE AUTOMATICO Tratamiento de interru~ciones v errores Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Datos sobre la localizacin del error Identific. USTACK Significado Tabla 5-6 (continuacin): SAZ ... NR. REL-SAZ UAMK UALW DB-ADR DB-NR DBLREG BA-ADR ... NR. AKKUl a AKKU4 PARENT. Contador de direcciones STEP: - Contiene la direccin absoluta de la ltima instruccin procesada en un nivel de procesamiento interrumpido en la memoria de pr"gra-. - En caso de error indica exactamente la instruccin que ha causado el error! - Antes de ejecutar la primera instruccin de un nivel de procesamiento, el SAZ est a 'O'. Tipo y nmero del ltimo mdulo procesado Contador STEP de direcciones relativas: Contiene la direccin relativa (a la direccin inicial del mdulo) de la ltima instruccin ejecutada en el ltimo mdulo procesado (ias direcciones relativas pueden visualizarse en el aparato de programacin en estado operativo "bloqueo de entradasu/ interruptor de llave o con SS-DOS a partir de la versin IV mediante tecla de funcin, o bien imprimiendo el mdulo). Palabra colectara de indicadores de interrupcin: UAMK indica los errores aparecidos hasta el momento y cuyo tratamiento an no ha concluido (vase captulo 8.3.5). Palabra borradora de indicadores de interrupcin (vase captulo 8.3.5) Direccin inicial absoluta (DW O) del ltimo mdulo de datos abierto en la memoria de programa (= 0000, si no se ha abierto ningn mdulo de datos) Nmero del ltimo mdulo de datos abierto Longitud del ltimo mdulo de datos abierto Direccin absoluta en la memoria de programa de la prxima instruccin a ejecutar en el ltimo mdulo que ha efectuado una llamada Tipo y nmero del ltimo mdulo que ha efectuado una llamada Contenido del registro de clculo al producirse la interrupcin: En determinados casos de error el programa de sistema deposita identificadores de error en AKKU 1 y AKKU 2 que indican ms detalladamente la causa del error. Cantidad de niveles de parntesis: "KEx abc" con x = 1 a 7 niveles a = 'OR' (o, vase indicadores de bit) b = 'VKE' (resultado de combinacin, vase indicadores de bit) C = 1: 'U(' C = o: 'O(' Tratamiento de interru~ciones v errores INDICADOR DE RESULTADO vase captulo 3.5 CAUSAS DE ERROR Las siguientes abreviaturas (identificaciones de USTACK) representan las causas de error ms importantes. Solamente estarn marcadas con una cruz las causas de interrupcin que hayan tenido efecto en el nivel de procesamiento visualizado (vase NIVEL!). Las causas de error indicadas reflejan el contenido de la palabra colectora de los indicadores de interrupcin (UAMK, 16 bit; vase captulo 8.3.5). En parte son idnticas a las indicaciones de los bits de control. Tabla 5-7 Identificaciones de USTACK: CAUSAS DE ERROR Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. USTACK NAU PEU BAU MPSTP ZYK Qvz ADF STP BCF S-6 CAUSAS DE ERROR Significado (OB de error iiamado) Fallo de la tensin de red en el aparato central Penfena no disponible = fallo de la tensin de red en el aparato de ampliacin Bateda defectuosa = fallo de la batera tampn (aparato central) STOP en modo multiprocesador: - Selector del coordinador en STOP o - STOP en otra CPU en modo multiprocesador Exceso del tiempo de supervisin de ciclo Retardo en acuse de recibo al intercambiar datos con la periferia. Error de direccionamiento en las entradas y salidas digitales con imagen de proceso - Estado STOP por posicin del selector en STOP - Estado STOP por instruccin del PG - Estado STOP tras ejecutar la operacin de 'STP' de STEP 5 - Estado STOP por instruccin STOP del programa de sistema, si no est programado el mdulo de organizacin de error Errores en cdigo de instruccin: errores detectados al decodificar las instrucciones: - error de sustitucin: la instruccin STEP 5 ejecutada no es sustituible. - error de cdigo de operacin: la instruccin STEP 5 ejecutada es errnea. Error de parmetro: el parmetro de la instruccin STEP 5 ejecutada no es vlido. Error de interfaz Tratamiento de interru~ciones v errores Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 CAUSAS DE ERROR Ident. USTACK Significado (OB de error iiamado) Tabla 5-7 (continuacin): LZF REG- FE STUEB STUEU WECK DOPP Errores en tiempo de ejecucin: errores detectados al ejecutar las instrucciones: - el mdulo llamado no est cargado. - error de carga/transferencia de mdulos de datos - otros errores en tiempo de ejecucin Error en procesamiento de la estructura de regulador R64 en el CICLO Desbordamiento de la pila de mdulos: la profundidad de anidamiento es demasiado elevada; solucin: NUEVO ARRANQUE Desbordamiento de la pila de interrupciones: La profundidad de anidamiento es demasiado elevada; solucin: NUEVO ARRANQUE Colisin de alarmas temporizadas: antes de procesar un determinado OB de alarma temporizada, o bien durante su procesamiento, ha sido activada otra alarma temponzada para el mismo OB. Error doble: se activa por segunda vez un nivel de procesamiento todava activado (ADF, BCF, LZF, QVZ, REG-FE, 9. Se requiere NUEVO ARRANQUE. Tratamiento de interru~ciones v errores 5.3.3 Ejemplo de diagnstico de errores mediante USTACK ra 5-3 muestra la estructura de la pila de interrupciones (USTACK) en n con las interrupciones ocasionadas. ALARMA TEMP~RIZADA y se procesa el OB 13. - Debido a la aparicin de una alarma de proceso se abandona el nivel ALARMA TEMPORIZADA, se activa el nivel ALARMA DE PROCESO y se procesa el O B 2. - A causa de una instruccin de direccionamiento errnea se activa el nivel ADF y en ste se procesa el OB 25. E1 usuario ha programado una instruccin de parada (STP) en su programa de tratamiento de errores: la CPU aborta por consiguiente el procesamiento del programa. Profundidad 01 Profundidad 02 Profundidad 03 TEMPORIZADA Profundidad 04 USTACK Fig. 5-3 Ejemplo 1 de evaluacin de la pila de interrupciones (USTACK) Antes de pasar definitivamente al estado STOP, han sido interrumpidos en total 4 diferentes niveles de procesamiento. Visualizando la pila USTACK en el PG aparece una pila de interrupciones de cuatro niveles, de los cuales el primero ser el de profundidad 01, en el cual est registrada la identificacin del 6ltim0 nivel de procesamiento interrumpido (=ADF). A continuacin, se puede acceder a los dems niveles hasta llegar a la pila de interrupciones de profundidad 04, la cual representa el nivel de procesamiento CICLO, el cual ha sido interrumpido en primer lugar. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores En este ejemplo, la CPU detecta un error de direccionamiento en el OB 1 al ejecutar la instruccin U Ex.y. Esto conduce al procesamiento del OB 25. A causa de una operacin STP en el PB 5, la CPU pasa al estado STOP (vase Fig. 5-4 Ejemplo 2 de evaluacin de la pila de interrupciones (USTACK) Cont i na e n l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores USTACK cont i ene 2 ni ve l e s (vanse f i guras 5-5 y 5- 6) : PlLA DE INTERRUPCION PROFUND. 01 BEF-REG: STP SAZ: 1007 DB-ADR: 0003 PB-NR.: 5 DB-NR.: 16 08-NR.: REL-SAZ: 0007 DBL-REG.: 003C UAMK: 0300 UALW: O000 INFO RESULTADO: ... CAUSA DE ERROR: Fig. 5-5 Ejemplo 2 de evaluacin de la pila USTACK: 1"ivel de USTACK PlLA DE INTERRUPCION PROFUND. 02 IBEF-REG: U EX.Y SAZ: OOIA DB-ADR: 0001 08-NR.: 1 DB-NR.: REL-SAZ: OOOA DBL-REG.: 0004 UAMK: 0200 UALW: O000 INFO RESULTADO: ... CAUSA DE ERROR: Fig. 5-6 Ejemplo 2 de evaluacin de la pila USTACK: 2"ivel de USTACK Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.4 Tratamiento de errores mediante mdulos de organizacin Introduccin Cuando el programa de sistema detecta un determinado error, llama al mdulo de organizacin previsto para ese caso. Es posible definir el comportamiento de la CPU programando dicho mdulo de organizacin de forma apropiada. Dependiendo de cmo se haya programado el mdulo de organizacin es posible continuar el procesamiento normal, poner la CPU en STOP procesar un "programa de error" especfico. Asignacin Existen mdulos de organizacin para los siguientes tipos de error: "Causa del error - OB de error" Tabla 5-8 Mdulos de organizacin llamados en caso de error l) con ajuste por defecto del DX O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Reaccin cuando el mdulo de organizacin Si el mdulo de organizacin no est cargado la reaccin depender del error que se ha producido. no est cargado No se interrumpe el procesamiento cclico del programa Si por ejemplo tiene lugar un retardo en acuse de recibo y el OB 23, el OB 24 y el OB 35 no estn cargados, el procesamiento cclico del programa no se interrumpe. No hay reaccin de la CPU. Si la CPU ha de pasar a STOP en caso de QVZ, el mdulo de organizacin deber contener una instruccin de stop y terminar con la instruccin 'BE', o bien se deber parametrizar el DX O adecuadamente. Programa para STOP: : STP :BE Estado STOP En los dems casos de error, la CPU se pone inmediatamente en STOP si los mdulos de organizacin correspondientes no han sido programados por el usuario. Si de forma excepcional (por ej., durante la puesta en funcionamiento) uno u otro error no debe interrumpir el procesamiento cclico del programa, basta una instruccin de "fin de mdulo" en el mdulo de organizacin correspondiente, o bien parametrizar el DX O de forma adecuada. Programa para funcionamiento ininterrumpido: Nota El mdulo de organizacin OB 28 constituye una excepcin. En este caso siempre se pasa al estado STOP, independientemente de que el OB 28 est o no est cargado, y de cmo est programado. Si no se desea programar el mdulo de organizacin correspondiente, existe la posibilidad de impedir que la CPU pase al estado STOP parametrizando adecuadamente el mdulo de datos DX O. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Interrupciones en el procesamiento de mdulos de organizacin de error Una vez que el programa de sistema ha llamado al correspondiente mdulo de organizacin, se procesa el programa de usuario all contenido. Si durante el procesamiento de un mdulo de organizacin vuelve a producirse un error, al igual que en el procesamiento cclico, se interrumpe el programa en el prximo lmite de instruccin y se llama al correspondiente mdulo de organizacin. Los mdulos de organizacin se procesan en el orden que han sido llamados. La cantidad de mdulos de organizacin de error que pueden ser anidados, depende de: - la clase de erroc No se pueden anidar mdulos de organizacin que correspondan al mismo nivel de procesamiento. (En cuanto a la asignacin de los OBs de error a los niveles de procesamiento de programa, vase el captulo siguiente). Cuando se procesa el OB 27 (nivel de procesamiento de programa BCF) se puede anidar, por ejemplo, un OB 32 (nivel de procesamiento LZF), pero no se puede anidar un OB 29 u OB 30 (tambin BCF). En caso de llamada doble a un nivel de procesamiento de programa, la CPU pasa inmediatamente al estado STOP. - la cantidad de niveles de procesamiento de proprama activados en s t e momento; En caso de interrupcin, el programa de sistema requiere un espacio de memoria determinado por cada nivel de procesamiento activado, a fin de poder generar la pila USTACK. Si el espacio no es suficiente se produce un desbordamiento de la pila. En caso de desbordamiento de la pila USTACK, la CPU pasa inmediatamente al estado STOP. - la cantidad de mdulos llamados en este momento; En caso de desbordamiento de la pila BSTACK, la CPU pasa inmediatamente al estado STOP. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.5 Errores en el ARRANQUE Introduccin Las anomalas y errores que se producen durante la inicializacin y el arranque pueden conducir a que el programa de usuario sea interrumpido y la CPU pase al estado STOP. Las causas de interrupcin que tienen lugar en el programa de arranque (mdulos de organizacin OB 20, 21 y 22) son tratadas como en el CICLO. Excepcin: En caso de un STOP en el arranque no se llama al mdulo de organizacin OB 28. Causas de interrupcin y error Ante las causas de interrupcin y error expuestas en la tabla siguiente no se puede reaccionar con interfaces con el usuario (OB de error). Tabla 5-9 Causas de error e interrupcin en el ARRANQUE l) Para mayor informacin, vanse las pginas siguientes. Bit de control o ident. en USTACK STP BAU NAU PEU STUEU STUEB DOPP-FE RAM-FE MOD-FE DBO-FE ') DB1-FE ') Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado Instruccin de stop del programa de sistema (en caso de FE-STP) o en el programa de usuario Fallo de la batera tampn en el aparato central Fallo de la tensin de red en el aparato central Fallo de la tensin de red en un aparato de ampliacin Desbordamiento de la pila de interrupciones (USTACK) Desbordamiento de la pila de mdulos (BSTACK) Llamada doble a un nivel de tratamiento de errores Error de inicializacin: el contenido de la RAM de sistema o de la DB-RAM es defectuoso. Error en inicializacin: el contenido de la Memory Card no es correcto. Error de estructuracin de la lista de direcciones de mdulos (DB O) Error de evaluacin del DB 1 para estructurar la lista de direcciones para la actualizacin de la imagen de proceso Tratamiento de interru~ciones v errores 5.5.1 DBO-FE (error DB O) Introduccin Error de estructuracin de la lista de direcciones de mdulos (mdulo de datos DB O) El DB O es estructurado por el programa de sistema despus de un borrado total. En caso de producirse un error de DB O, en las palabras de datos de sistema BS 3 y BS 4 se encuentran identificadores de error que definen ms detalladamente los errores ocurridos. Identificadores En la tabla siguiente figuran los identificadores de error del DB O. de errores Tabla 5-10 Identificadores de errores de DB O 5.5.2 DBI-FE (error DB 1) Ident. de error BS3 BS4 8001H yyyyH 8002H yyyyH 8003H yyyyH 8004H yyyyH 8005H yyyyH Introduccin Error de evaluacin del DB 1 para estructurar la lista de direcciones para la actualizacin de la imagen de proceso Significado Longitud de mdulo errnea yyyy = direccin del mdulo cuya longitud es errnea Direccin final calculada del mdulo que se encuentra en la memoria es errnea yyyy = direccin del mdulo Identificacin de mdulo no vlida yyyy = direccin del mdulo cuya identificacin es errnea Nmero del mdulo de organizacin demasiado elevado (vlidos: OB 1 a OB39) yyyy = direccin del mdulo cuyo nmero es errneo Nmero del mdulo de datos O (vlidos: DB 1 a DB 255) yyyy = direccin del mdulo cuyo nmero es errneo falta DB 1 en modo multiprocesador lista de direcciones del DB 1 errnea durante un NUEVO ARRANQUE. Nota En modo multiprocesador se comprueba en todos los modos de arranque si el DB 1 existe. Sin embargo, la evaluacin de los parmetros del DB 1 solamente se efecta durante un NUEVO ARRANQUE! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Identificadores En la tabla siguiente figuran los identificadores de error del DB 1. de errores Tabla 5-11 Identificadores de errores de DB 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error BS3 BS4 0410H yyyyH 0411H yyyyH 0412H yyyyH 0413H yyyyH 0414H yyyyH 0415H yyyyH 0419H yyyyH 041AH yyyyH 041BH yyyyH 041CH yyyyH Significado Identificacin no vlida: - identificacin de la cabeza falta o es errnea (correcta es KC MASKO1) - identificacin no vlida (vlidas KH DEOO, DAOO, CEOO, CAOO, BBOO) - identificacin final falta o es errnea (correcta es KH EEEE) yyyy = identificacin no vlida "Entradas digitales", la cantidad de direcciones no es vlida (vlidas 0...128) yyyy = cantidad de direcciones no vlida "Salidas digitales", la cantidad de direcciones no es vlida (vlidas 0...128) yyyy = cantidad de direcciones no vlida "Entradas de marcas de acoplamiento", la cantidad de direcciones no es vlida (vlidas 0...256) yyyy = cantidad de direcciones no vlida "Salidas de marcas de acoplamiento", la cantidad de direcciones no es vlida (vlidas 0...256) yyyy = cantidad de direcciones no vlida Cantidad de temporizadores no vlida (vlidos: 256) yyyy = cantidad de temporizadores no vlida Retardo en acuse de recibo de entradas digitales yyyy = direccin del byte de entrada no acusado Retardo en acuse de recibo de salidas digitales yyyy = direccin del byte de salida no acusado Retardo en acuse de recibo de entradas de marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Retardo en acuse de recibo de salidas de marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Tratamiento de interru~ciones v errores 5.5.3 DB2-FE (error DB 2) Introduccin Error al evaluar el mdulo de datos de parametrizacin DB 2 de la estructura de regulador R64 (inicializacin del regulador). En caso de un error DB 2, en las palabras de datos de sistema BS 3 y BS 4 se encuentran identificadores de error que definen ms exactamente el error ocurrido. Identificadores En la tabla siguiente figuran los identificadores de error del DB 2. de errores Tabla 5-12 Identificadores de errores de DB 2 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error BS3 BS4 0421H DByyH 0422H FByyH 0423H FByyH 0424H FByyH 0425H DByyH 0426H - Significado El mdulo de datos no est cargado yy = nmero del mdulo de datos no cargado El mdulo de funciones no est cargado yy = nmero del mdulo de funciones no cargado El mdulo de funciones no ha sido detectado yy = nmero del mdulo de funciones no detectado Mdulo de funciones cargado con software de PG errneo yy = nmero del mdulo de funciones Longitud errnea del mdulo de datos de regulador yy = nmero del mdulo de datos Para desplazar los DBs de regulador del EPROM de usuario a la DB-RAM no basta el espacio de memoria de la DB-RAM. Tratamiento de interru~ciones v errores 5.5.4 DXO-FE (error DX O DX 2) Errores de evaluacin del mdulo de datos DX O Errores de evaluacin del mdulo de datos DX 2 Nota Los errores DX O y DX 2 tienen un bit de control comn (DXO-FE) en la mscara de bits de control. En caso de un error DX O, las palabras de datos de sistema BS 3 y BS 4 contienen identificadores de error que definen ms detalladamente el error que se ha producido. Tabla 5-13 Identificadores de errores de DX O Parametrizacin de la 2Vnterfaz serie: El mdulo de datos DX 2 es controlado por el programa de sistema durante el NUEVO ARRANQUE. En caso de un error DX 2, en las palabras de datos de sistema BS 3 y BS 4 se encuentran identificadores de error que explican ms detallamente el error que se ha producido. Ident. de error BS3 BS4 0431H yyyyH 0432H yyyyH 0433H yyyyH 0434H yyyyH Tabla 5-14 Identificadores de errores de DX 2 Significado Identificacin no admisible: - La identificacin de la cabeza falta o es incorrecta (correcta es KC MASKXO) - Identificacin de bloque no vlida - La identificacin final falta o es incorrecta (correcta es KH EEEE) yyyy = identificacin no admisible Parmetro no admisible yyyy = parmetro no admisible Cantidad de temporizadores no admisible (vlidas: 0...256) yyyy = cantidad errnea de temporizadores Tiempo de supervisin de ciclo no admisible (vlido: 1 ms a 13000 ms) yyyy = tiempo errneo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error BS3 BS4 0451H - 0452H yyyyH 0453H yyyyH Significado Longitud DX 2 (sin cabeza de mdulo) < 4 palabras no es admisible. Longitud DX 2 (sin cabeza de mdulo) es demasiado corta para el tipo de acoplamiento yyyy = longitud DX 2 Tipo de acoplamiento no vlido yyyy = tipo de acoplamiento Tratamiento de interru~ciones v errores Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error BS3 BS4 Significado Tabla 5-14 (continuacin): 0454H xxOOH 0455H xxyyH 0456H xxyyH 0457H yyyyH 0458H xxOOH 0459H xxyyH 045AH xxOOH 045BH xxyyH 045CH xxOOH 045DH xxyyH 045EH xxOOH 045FH xxyyH 0460H xxyyH 0461H yyyyH Identificacin de datos no vlida para lote de parmetros esttico (no es igual a 44H, 58H) xx = identificacin de datos Mdulo no vlido para el lote de parmetros esttico xx = identificacin / yy = nmero de DB Lote de parmetros esttico no existe. xx = identificacin / yy = nmero de DB Lote de parmetros esttico demasiado corto yyyy = nmero de la DW que falta Identificacin de datos no vlida para lote de parmetros dinmico (no es igual a 44H, 58H, OOH) xx = identificacin de datos Mdulo no vlido para el lote de parmetros dinmico xx = identificacin / yy = nmero de DB Identificacin de datos no vlida para buzn de emisin/peticiones (no es igual a 44H, 58H, OOH) xx = identificacin de datos Mdulo no vlido para buzn de emisin/ peticiones xx = identificacin / yy = nmero de DB Identificacin de datos no vlida para buzn de recepcin (no es igual a 44H, 58H, OOH) xx = identificacin de datos Mdulo no vlido para buzn de recepcin xx = identificacin / yy = nmero de DB Identificacin de datos no vlida para bytes de coordinacin (no es igual a 44H, 58H, 4DH) xx = identificacin de datos Mdulo no vlido para bytes de coordinacin xx = identificacin / yy = nmero de DB Mdulo para bytes de coordinacin no existe . xx = identificacin / yy = nmero de DB Palabra de datos para bytes de coordinacin no existe. yyyy = nmero de la DW que falta Tratamiento de interru~ciones v errores 5.5.5 MOD-FE (error de Memory Card) Introduccin Al evaluar una Memory Card y copiar los mdulos de la misma se realizan diversas comprobaciones. Si se presenta un error, se activa el bit de control MOD-FE en la pantalla de bits de control y se introduce un identificador adicional en la palabra de datos del sistema BS 3. Identificadores Si se detecta un error en dichas comprobaciones, aparecer un identificador de de error en BS 3 error en la palabra de datos del sistema BS 3 que describe el fallo (el contenido de BS 4 carece de importancia). Tabla 5-15 Identificadores de error en la Memory Card y de errores detectados al copiar mdulos Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.6 Errores en RUN y en el ARRANQUE Introduccin En el estado operativo RUN, el procesamiento cclico, controlado por tiempo o por alarmas, o el procesamiento de reguladores puede ser interrumpido en lmites de instrucciones por errores como por ejemplo, fallo de la tensin de red en el aparato central o desbordamiento de la pila de mdulos. Cuando se producen errores durante la inicializacin o el ARRANQUE, el programa de arranque se interrumpe y la CPU pasa al estado STOP o llama al mdulo de organizacin previsto para el tipo de error en cuestin. Las interrupciones que se producen en el programa de arranque tienen el mismo tratamiento que en el CICLO. Cabe diferenciar entre los fallos que conducen inmediatamente al estado STOP de la CPU (por ej. STUEU) y los fallos que conducen a que el programa de sistema, en vez de pasar al estado STOP, llame a determinados mdulos de organizacin (por ej. ADF), que pueden ser programados por el usuario. Ante las causas de error e interrupcin indicadas en las dos tablas siguientes no se puede reaccionar mediante interfaces de usuario (OBs de error). Errores que Cuando se produce uno de estos errores se forma una pila de interrupciones conducen (USTACK) que visualiza el error que ha tenido lugar. directamente a un STOP Tabla 5-16 Causas de error e interrupcin en el ARRANQUE y en RUN que conducen directamente al estado STOP Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Bit de control o ident. en USTACK STP BAU NAU PEU STUEU STUEB DOPP-FE Significado STOP por el programa de sistema (en caso de errores de mquina), cuando un OB de error no est cargado, o instruccin de STOP en el programa de usuario Fallo de la batera tampn en el aparato central Fallo de la tensin de red en el aparato central Fallo de la tensin de red en un aparato de ampliacin Desbordamiento de la pila de interrupciones (USTACK) por excesiva profundidad de anidamiento Desbordamiento de la pila de mdulos (BSTACK) por excesiva profundidad de anidamiento Llamada doble a un nivel de tratamiento de errores Tratamiento de interru~ciones v errores Errores que Esos errores provocan la llamada a un OB de error. provocan la llamada a un OB de error Tabla 5-17 Causas de error e interrupcin en el ARRANQUE y en RUN que provocan la llamada a un OB de error Las pginas siguientes describen ms detalladamente las causas de estos errores. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.6.1 BCF (error en cdigo de instruccin) Introduccin Un error en cdigo de instruccin se produce cuando la CPU no puede interpretar o ejecutar una instruccin STEP 5 del programa de usuario. Todos los cdigos vlidos estn indicados en la lista de operaciones. La instruccin causante del correspondiente error en cdigo de instruccin no se ejecuta. Si el correspondiente mdulo de organizacin de BCF est cargado, se llama y se ejecuta y luego se contina la ejecucin del programa de usuario desde el punto de interrupcin. Si el OB de BCF no est cargado, la CPU pasa al estado STOP. Cabe diferenciar los siguientes errores en cdigo de instruccin, para los que se llama al OB de error indicado: Error de sustitucin (OB 27) Si en un mdulo de funciones se ha de ejecutar una operacin con un operando formal, en el procesamiento del programa de usuario, la CPU sustituye el operando formal por el operando actual de la llamada al mdulo de funciones. Si una CPU detecta una sustitucin no vlida, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al mdulo de organizacin OB 27, si es que ha sido cargado. El AKKU 1 contiene informaciones adicionales que explican ms detalladamente el error que se ha producido: Tabla 5-18 BCF - Errores de sustitucin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1801H - 1802H - 1803H - 1804H - 1805H - 1806H - Significado Error de sustitucin en la instruccin BBS Error de sustitucin en las instrucciones DW, BMW Error de sustitucin en las instrucciones B=, BI Error de sustitucin en las instrucciones L=, T= Error de sustitucin en las instrucciones U=, UN=, O=, ON=, ==, S= y RB= Error de sustitucin en las instrucciones RD=, LC=, FR=, SAR=, SE=, SSV= y SVZ= Tratamiento de interru~ciones v errores Error en cdigo La CPU detecta un error en cdigo de operacin en el procesamiento de un de operacin programa STEP 5 cuando se ha programado una instruccin que no pertenece al (OB 29) conjunto de instrucciones STEP 5 de la CPU 928B (por ej., se pueden programar instrucciones RU y SU con el aparato de programacin, sin embargo stas no pueden ser interpretadas por las CPUs 928B, 928,922 (procesador R) y 921 (procesador S) en el S5-135U). Cuando se detecta un cdigo de operacin no vlido, se interrumpe el procesamiento del programa de usuario y se llama el mdulo de organizacin OB 29, si ha sido cargado. Al llamar al OB 29, en el AKKU 1 se encuentran informaciones adicionales que explican ms exactamente el error que se ha producido: Tabla 5-19 BCF - Errores en cdigo de operacin Error de parmetro (OB 30) Ident. de error AKKU-1-L AKKU-2-L 1811H - 1812H - 1813H - 1814H - 1815H - Cuidado Un error en cdigo de operacin no debe ser acusado: la CPU no detecta si la instruccin errnea es una instruccin de una o de varias palabras. Cuando la CPU ha procesado el OB 29, trata de continuar el programa con la siguiente palabra de la instruccin. Si se trata de la segunda palabra de una instruccin de varias palabras, la CPU, o vuelve a detectar un error en cdigo de instruccin, o ejecuta esta palabra como instruccin vlida, lo que puede conducir a errores de programa arbitrarios. Significado Instruccin cuyo cdigo de operacin no es vlido Cdigo de operacin no vlido en una instruccin, en la que el byte alto de la la palabra de la instruccin contiene el valor 68H Cdigo de operacin no vlido en una instruccin, en la que el byte alto de la la palabra de la instruccin contiene el valor 78H Cdigo de operacin no vlido en una instruccin, en la que el byte alto de la la palabra de la instruccin contiene el valor 70H Cdigo de operacin no vlido en una instruccin, en la que el byte alto de la la palabra de la instruccin contiene el valor 60H Un parmetro no ser vlido cuando se haya programado una instruccin con un parmetro que no vale para la CPU en cuestin (por ej. llamada a un mdulo de datos reservado) o cuando se ha llamado a una funcin especial no existente. Cuando la CPU detecta un parmetro no vlido, el programa de sistema interrumpe el procesamiento del programa de usuario y llama al mdulo de organizacin OB 30, si ha sido cargado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Al llamar al OB 30, en el AKKU 1 se encuentran informaciones adicionales que explican ms detalladamente el error que se ha producido: Tabla 5-20 BCF - Errores de parmetro Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1821H - 182BH - 182CH - 182DH - 182EH - 182FH - 1830H - 1831H - 1832H - 1833H - 1834H - 1835H - 1836H - 1837H - 1838H - 1839H - 183AH - 183BH - 183CH - Significado @armetro no valido en caso de ..) A DB O, 1, 2 SPAQ3) OB O SPAQ3) OB > 39: funcin especial no existe AXDXO, AXDXl , AXDX2 L MW/T MW/L PW/T PW/L QW/T QW/L DD/T DD/B MW 255 L EW/T EW/L AW/T AW 127 L MD/T MD 253,254,255 L ED/T ED/L ADtT AD 125,126,127 RLDIRRDISVDISLD 33-255 SLW/SRW/LIR/TIR 16-255 SESISEF 32-255 U=/ UN=/ O=/ ON=/ S=/ RB=/ ==/ RD=/FR=/SI=/SE=/SVZ=/SSV=/ SAR=/L=/LC=/LW=/T= O, 127-255 B=/LD= 0, 126-255 U S/O S/S S/= S/UN S/ON S/R S nmero de byte > 1023 U S/O S/S S/= S/UN S/ON S/R S nmero de bit > 7 L SY/T SY parmetro >lo23 L SW/T SW parmetro > 1022 L SD/T SD parmetro >lo20 E DB/EX DX parmetro 0, 1 2 (no se puede crear DB o DX O, 1, 2) Tratamiento de interru~ciones v errores Llamada a un mdulo no cargado (OB 19) 5.6.2 LZF (error en tiempo de ejecucin) Introduccin Un error en tiempo de ejecucin se produce cuando la CPU detecta un error durante el procesamiento de una instruccin STEP 5. La instruccin que ha causado el error en tiempo de ejecucin no se ejecuta. Si se dispone de un mdulo de organizacin de error en tiempo de ejecucin LFZ, ste es llamado. Despus se contina la ejecucin del programa de usuario con la instruccin siguiente a la que ha causado el error. Si no se ha cargado el OB de LZF, la CPU pasa al estado STOP. Se distinguen los siguientes errores en tiempo de ejecucin que producen una llamada al OB de error incicado: Cuando en el programa de usuario se llama o abre un mdulo que no existe, el programa de sistema detecta un error. Esto vale para todos los tipos de mdulos y tanto para instrucciones de llamada condicional o incondicional. Cuando se detecta una llamada o apertura de un mdulo que no ha sido cargado, el programa de sistema llama al mdulo de organizacin OB 19, si ha sido cargado. En el OB 19 se puede determinar el comportamiento de la CPU. Si se ha programado un OB 19, ste es llamado y luego se contina el procesamiento del programa STEP 5 interrumpido a partir de la siguiente instruccin, a no ser que el OB 19 est programado con una instruccin de stop. Por el contrario, si el OB 19 no est programado, la CPU pasa al estado STOP en caso de llamar o abrir un mdulo que no ha sido cargado. Al llamar al OB 19, en el AKKU 1 se encuentran informaciones adicionales que explican ms exactamente el error que se ha producido: Tabla 5-21 LZF - Llamada a un mdulo no cargado Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L lAOlH - 1A02H - 1A03H - 1A04H - 1A05H - 1A06H - 1A07H - Significado Mdulo de datos no cargado en caso de A DB Mdulo de datos no cargado en caso de AX DX Mdulo de datos no cargado en caso de SPA(B) FB, OB 1 a OB 39, PB, SB Mdulo de datos no cargado en caso de BA(B) FX Mdulo de datos no cargado en caso de OB 254 u OB 255 Mdulo de datos no cargado en caso de OB 182 Mdulo de datos no cargado en caso de OB 15010B 15110B 153 Tratamiento de interru~ciones v errores Error de carga/ transferencia (OB 32) Nota Cuando se intenta abrir un mdulo de datos no cargado se altera el registro DBA (vase captulo 9). En este caso hay que volver a abrir otro mdulo de datos antes de acceder a datos de DBPX. Cuando se transfieren datos a mdulos de datos (DB, DX), la CPU compara la longitud del mdulo de datos que ha sido abierto con los operandos que se encuentran en la instruccin de transferencia. Si con el parmetro indicado se supera la longitud del mdulo de datos, la instruccin de transferencia no se ejecuta para evitar una sobreescritura errnea de datos en la memoria. Tambin se detecta un error de cargaltransferencia cuando se trata de consultar o modificar un solo bit en una palabra de datos inexistente. Asimismo se detecta un error de carga /transferencia cuando se trata de acceder a una palabra de datos antes de haber abierto el mdulo de datos (con A DBn o AX DXn). Cuando se detecta un error de cargaltransferencia, el programa de sistema llama al mdulo de organizacin OB 32, si ha sido cargado. La instruccin causante del error de transferencia ya no se procesa. Al llamar al OB 32, en el AKKU 1 se encuentran informaciones adicionales que explican ms exactamente el error que se ha producido: Tabla 5-22 LZF - Errores de cargaltransferencia (TRAF) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L l Al l H - 1A12H - 1A13H - 1A14H - 1A15H - 1A16H - 1A17H - 1A18H - 1A19H - lAlAH - Significado Acceso con UIUN D, OION D, SI R D, =D a una palabra de datos no definida Error de transferencia con T DR en una palabra de datos (byte de derecha) no definida Error de transferencia con T DL en una palabra de datos (byte de izquierda) no definida Error de transferencia con T DW en una palabra de datos no definida Error de transferencia con T DD en una palabra doble de datos no definida Error de carga con L DR de un byte no definido Error de carga con L DL de un byte no definido Error de carga con L DW de una palabra de datos no definida Error de carga con L DD de una palabra doble de datos no definida Acceso con BDW a una palabra de datos no definida Tratamiento de interru~ciones v errores Otros errores A este grupo de errores pertenecen todos los errores que no pueden ser en tiempo de identificados como uno de los errores en tiempo de ejecucin descritos ejecucin (OB 31) anteriormente (errores de transferencia o llamada a mdulos no cargados). Cuando se detecta uno de estos errores, el programa de sistema llama al mdulo de organizacin OB 31. La instruccin (o la funcin especial) causante del error ya no se procesa. Si el OB 31 no est cargado, la CPU pasa al estado STOP. Si se desea que contine el procesamiento del programa al producirse uno de los errores de la lista siguiente, basta programar la instruccin BE en el OB 31. Al llamar al OB 31, en los AKKU 1 y AKKU 2 se encuentran informaciones adicionales que explican ms exactamente el error que se ha producido: . . ores de error de d- s . OB 2541255 v OB 250 Tabla 5-23 LZF - Otros errores en tiempo de ejecucin (indicadores de OB 2541255 y OB 250) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1A21H - 1A22H - 1A23H - 1A25H - 1A29H - 1A2AH - 1A2BH - 1A2CH - 1A31H - 1A32H - 1A33H - Significado E DB, EX DX: Mdulo de datos ya existe E DB, EX DX: Cantidad de palabras de datos no vlida (< 1 o > 4091) E DB, EX DX: Espacio de memoria RAM no suficiente BI: Parmetro no vlido en AKKU 1 (< 1 o >125) Pila de parntesis desbordada por uno de ambos lmites despus de 'U(', 'O(', ')' A DB, AX DX: Longitud del mdulo de datos en la cabeza del mdulo demasiado pequea (longitud <5 palabras) Mdulo de funciones cargado con software de PG errneo ACR: Nmero de pgina no vlido en el AKKU 1-L (> 255) OB 254 u OB 255 (desplazar) u OB 250: Mdulo de datos destino ya existe en DB-RAM OB 254 u OB 255 (duplicar): Mdulo de datos destino ya existe en DB-RAM OB 254 u OB 255 u OB 250: Espacio de memoria insuficiente en DB-RAM Tratamiento de interru~ciones v errores ores de error del OB 182 Tabla 5-24 LZF - Otros errores en tiempo de ejecucin (indicadores del OB 182) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1A34H OOOlH 1A34H OlOOH 1A34H OlOlH 1A34H 0102H 1A34H 0200H 1A34H 0201H 1A34H 0202H 1A34H 0203H 1A34H 0210H 1A34H 0211H 1A34H 0212H 1A34H 0213H 1A34H 0220H 1A34H 0221H 1A34H 0222H 1A34H 0223H Significado No se admite escribir en el campo de datos Tipo de zona de direcciones no vlido Nmero de mdulo de datos no vlido "Nmero de la primera palabra del parmetro" no vlido "Tipo de mdulo de datos fuente" no vlido "Nmero del mdulo de datos fuente" no vlido "Nmero de la primera palabra de datos a transferir en la fuente" no vlido Como longitud del mdulo de datos fuente se ha registrado en la cabeza del mdulo un valor < 5 palabras "Tipo de mdulo de datos destino" no vlido "Nmero del mdulo de datos destino" no vlido "Nmero de la primera palabra de datos a transferir en el destino" no vlido Como longitud del mdulo de datos destino se ha registrado en la cabeza del mdulo un valor < 5 palabras "Cantidad de palabras de datos a transferir" no vlida (= O o > 4091) Mdulo de datos fuente demasiado corto Mdulo de datos destino demasiado corto Mdulo de datos destino registrado en EPROM Tratamiento de interru~ciones v errores . . ores de error de distintos OBs de Tabla 5-25 LZF - Otros errores en tiempo de ejecucin (indicadores de distintos OBs de funciones especiales) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1A35H - 1A36H - 1A3AH - 1A3BH - 1A41H - 1A42H - 1A43H - 1A44H - 1A45H - 1A46H - 1A47H - 1A48H - 1A49H - 1A4AH - 1A4BH - Significado OB 250: Nmero no vlido del mdulo de transferencia OB 250: Longitudes distintas en DB x y DB x t 1 o DXx y DX x t l OB 221: Valor del nuevo tiempo de ciclo no admisible (tiempo de ciclo < 1 ms > 13000 ms) OB 223: Diferentes modos de arranque de las CPUs en modo multiprocesador OB 240, OB 241 u OB 242: Nmero del registro de desplazamiento o nmero del mdulo de datos no vlido (nQ < 192 > 255) OB 241: Registro de desplazamiento no inicializado OB 240: Espacio de memoria insuficiente en DB-RAM OB 240: Palabra de datos DW O del mdulo de datos no contiene 'O' OB 240: Longitud del registro de desplazamiento en DW 1 no vlida (no est entre 2 y 256) OB 240: Posicin del indicador no vlida o cantidad de indicadores > 5 OB 120: Valor en AKKU 1 o AKKU-2-L no admisible OB 122: Valor en AKKU 1 o AKKU-2-L no admisible OB 110: Valor en AKKU 1 o AKKU-2-L no admisible OB 121: Valor en AKKU 1 o AKKU-2-L no admisible OB 123: Valor en AKKU 1 no admisible Tratamiento de interru~ciones v errores Tabla 5-26 LZF - Otros errores de tiempo de ejecucin (indicadores del OB 150) ores de error del OB 151. OB 152 v OB 153 Ident. de error AKKU-1-L AKKU-2-L 1A4CH OOOlH 1A4CH OlOOH 1A4CH OlOlH 1A4CH 0102H 1A4CH 0103H 1A4CH 0201H 1A4CH 0202H 1A4CH 0203H 1A4CH 0204H 1A4CH 0205H 1A4CH 0206H 1A4CH 0207H 1A4CH 0208H 1A4CH 0209H 1A4CH 020AH Tabla 5-27 LZF - Otros errores en tiempo de ejecucin (indicadores del OB 151, OB 152 y OB 153) Significado Nmero de funcin no vlido (= O > 2) Tipo de zona de direcciones no vlido NQ de mdulo de datos no vlido "Nmero de la primera palabra del campo de datos" no vlido Como longitud del mdulo de datos se ha registrado en la cabeza del mdulo un valor < 5 palabras Ao indicado en el campo de datos no vlido Mes indicado en el campo de datos no vlido Da del mes indicado en el campo de datos no vlido Da de la semana indicado en el campo de datos no vlido Hora indicada en el campo de datos no vlida Minutos indicados en el campo de datos no vlidos Segundos indicados en el campo de datos no vlidos Valor "1/100 de segundos" indicado en el campo de datos no es igual a O Palabra del campo de datos 3bi t O a 3 no es igual a O Formato de hora no coincide con el ajuste en el OB 151 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L Significado Indicadores del OB 151 1A4DH OOOlH 1A4DH OlOOH 1A4DH OlOlH 1A4DH 0102H Nmero de funcin no vlido (= O o > 2) Tipo de zona de direcciones no vlido Nmero de mdulo de datos no vlido "Nmero de la primera palabra del campo de datos" no vlido Tratamiento de interru~ciones v errores Identificadores de error de distintas operaciones de sistema abeza del mdulo un valor < 5 palabras Tabla 5-28 LZF - Otros errores en tiempo de ejecucin (indicadores de distintas operaciones de sistema) 1A4FH OOOlH 1A4FH 0002H Nmero de funcin no vlido (= O o < 0) Tiempo de retardo no vlido Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1A50H - 1A51H - 1A52H - 1A53H - Significado LRW, TRW: la direccin de memoria calculada <BR+constante> no est en la zona "O .. EDFFH" ') LRD, TRD: la direccin de memoria calculada <BR+constante> no est en la zona "O .. EDFEH" ') TSG, LB GB, LW GW, TB GB, TW GW: la direccin lineal calculada <BR+constante> no est en la zona "O .. EFFFH" LB GW, LW GD, TB GW, TW GD: la direccin lineal calculada <BR+constante> no est en la zona "O .. EFFEH" Tratamiento de interru~ciones v errores vase captulo 9 Ident. de error AKKU-1-L AKKU-2-L Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado Tabla 5-28 (continuacin): 1A54H - 1A55H - 1A56H - 1A57H - 1A58H - 1A59H - LB GD, TB GD: la direccin lineal calculada <BR+constante> no est en la zona "O .. EFFCH" TSC, LB CB, LW CW, TB CB, TW CW: la direccin de pgina calculada <BR+constante> no est en la zona "F400H .. FBFFH" LB CW, LW CD, TB CW,TW CD: la direccin de pgina calculada <BR+constante> no est en la zona "F400H .. FBFEH" LB CD, TB CD: la direccin de pgina calculada <BR+constante> no est en la zona "F400H .. FBFCH" TNW, TNB: el bloque fuente no est completo en una de las zonas siguientes: 0000 .. 7FFF memoria de usuario l) 8000 .. DD7F RAM de mdulos de datos DD80 .. E3FF DB O E400 .. E7FF marcas S E800 .. EDFF datos de sistema (BA, BB, BS, BT, Z, T ) EEOO .. EFFF marcas, imagen de proceso FOOO .. FFFF periferia TNW, TNB: 0000 .. 7FFF memoria de usuario l) 8000 .. DD7F RAM de mdulos de datos DD80 .. E3FF DB O E400 .. E7FF marcas S E800 .. EDFF datos de sistema (BA, BB, BS, BT, Z, T ) EEOO .. EFFF marcas, imagen de proceso FOOO .. FFFF periferia Tratamiento de interru~ciones v errores 5.6.3 ADF (error de direccionamiento) Introduccin Un error de direccionamiento se produce cuando se llama con una instruccin STEP 5 a una entrada o salida de la imagen de proceso, a la que no se le ha asignado ninguna tarjeta de E/S en el ltimo NUEVO ARRANQUE (la tarjeta no estaba enchufada, era defectuosa o no estaba indicada en el mdulo de datos DB 1 de la CPU). El programa de sistema interrumpe el procesamiento del programa de usuario y llama al mdulo de organizacin OB 25. Despus del procesamiento del programa contenido en el OB 25 se contina el procesamiento con la instruccin siguiente del programa interrumpido. La instruccin STEP 5 que ha causado el ADF ya ha sido ejecutada, pero con un valor de entrada o de salida no definido! Si el OB 25 no est programado, la CPU pasa al estado STOP debido a un error de direccionarniento, a no ser que para este caso se haya determinado en el DX O que contine el procesamiento del programa. La supervisin de errores de direccionarniento tambin puede ser eliminada por completo programando el DX O de forma adecuada. Identificadores El programa de sistema emite los siguientes indicadores de error: de error Tabla 5-29 ADF - Identificadores de errores de direccionarniento Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1E40H YYYYH Significado Error de direccionamiento yyyy = direccin ADF Tratamiento de interru~ciones v errores 5.6.4 QVZ (retardo en acuse de recibo) Introduccin Un retardo en acuse de recibo se produce cuando una tarjeta de E/S, despus de un direccionamiento, no confirma dentro de un tiempo determinado con la seal RDY (ready). La causa del retardo en acuse de recibo puede ser un defecto en la tarjeta de E/S o el haber extraido la tarjeta del autmata programable durante su funcionamiento. Los siguientes errores de retardo en acuse de recibo interrumpen el procesamiento del programa de usuario y llaman al correspondiente mdulo de organizacin. Nota Si los mdulos de organizacin llamados no han sido programados se contina con el procesamiento del programa de usuario. Si tiene lugar un retardo en acuse de recibo, la CPU lee "por defecto" el valor "OOH" y sigue trabajando con este valor en caso de que se acuse el QVZ. Un retardo en acuse de recibo alarga el tiempo de ejecucin del programa de usuario STEP 5. STOP en caso de Para que el retardo en acuse de recibo conduzca al estado STOP, en el OB QVZ llamado (OB 23 u OB 24) tiene que estar programada la instruccin STP. Programando adecuadamente el DX O puede determinarse que en caso de QVZ se pare el sistema aunque los OB 23 y 24 no estn programados. QVZ en acceso Retardo en acuse de recibo en el programa de usuario en caso de acceso directo por directo va bus S5 medio del bus S5 a CP, IP, KOR o a una tarjeta de E/S (por ej., con las instrucciones de carga y transferencia L/T P...o Q...): OB 23 El programa de sistema llama al mdulo de organizacin OB 23, si est cargado. Identificadores de En los AKKUs 1 y 2 se encuentran informaciones adicionales que explican ms error exactamente el error que se ha producido. Tabla 5-30 QVZ - Identificadores de retardo en acuse de recibo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1E23H YYYYH Significado Retardo en acuse de recibo y y y y = direccin QVZ Tratamiento de interru~ciones v errores Direccin QVZ La direccin QVZ indica el byte de periferia que ha sido el primero en causar el QVZ. Generalmente se trata del byte que tiene la direccin ms baja en caso de instrucciones para periferia. Una excepcin son las direcciones QVZ que se dan en las instrucciones TNBRNW en caso de retardo en acuse de recibo: puesto que estas instrucciones se ejecutan en orden decreciente, en este caso, la direccin QVZ indica el byte con la direccin ms alta que ha causado el QVZ en una transferencia en bloque. QVZ al actualizar Retardo en acuse de recibo al producirse accesos del programa de sistema para PAEIPAA y actualizar la imagen del proceso o transferir las marcas de acoplamiento transferir marcas de acoplamiento OB 24 El programa de sistema llama al mdulo de organizacin OB 24, si est cargado. Identificadores En los AKKUs 1 y 2 se encuentran informaciones adicionales que explican ms de error detalladamente el error que se ha producido: Tabla 5-31 QVZ - Identificadores de llamadas al OB 24 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident. de error AKKU-1-L AKKU-2-L 1E25H yyyyH 1E26H yyyyH 1E27H yyyyH 1E28H yyyyH Significado Retardo en acuse de recibo al emitir la imagen de proceso de las salidas digitales yyyy = direccin del byte de salida no acusado Retardo en acuse de recibo al actualizar la imagen de proceso de las entradas digitales yyyy = direccin del byte de entrada no acusado Retardo en acuse de recibo al actualizar las salidas de las marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Retardo en acuse de recibo al actualizar las entradas de las marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Tratamiento de interru~ciones v errores 5.6.5 ZYK (error de tiempo de ciclo) Introduccin El tiempo de ciclo abarca todo el tiempo del procesamiento de un programa cclico. Un exceso del tiempo de supervisin de ciclo ajustado en la CPU puede ser causado, por ejemplo, por programacin errnea, por un bucle de programa en un mdulo de funciones, por un fallo de un generador de impulsos o por operaciones del sistema, como por ejemplo, actualizacin de la imagen de proceso en relacin con programas largos. Tiempo de supervisin de ciclo Si 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 supervisin de ciclo vuelve a ser activado (trigger). Si el tiempo de supervisin vuelve a excederse antes de que el OB 26 haya sido procesado hasta el final, la CPU pasa con error doble (DOPP-FE) al estado STOP. El tiempo de supervisin de ciclo es variable (1 a 13000 ms) y el trigger puede ser reajustado (vase ms arriba). Indepedientemente del tiempo de ciclo, transcurridos 100 ms despus de finalizar el tiempo de ciclo, se activa la seal BASP si en ese momento an no se ha terminado de procesar el OB 26. El tiempo de supervisin de ciclo puede ser determinado individualmente ajustando el DX O o llamando al mdulo de organizacin de funciones especiales OB 221. En el programa cclico se puede "reajustar el trigger" del tiempo de supervisin de ciclo llamando al mdulo de funciones OB 222 . STOP si el OB 26 Si el OB 26 no ha sido programado, la CPU pasa al estado STOP. Para que esto no est cargado no ocurra es necesario modificar el ajuste por defecto del DX O. Identificadores Cuando se produce un error de ciclo no se depositan identificadores de error en de error el AKKU 1 o en el AKKU 2! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.6.6 WECK-FE (colisin de alarmas temporizadas) Introduccin Si para un determinado mdulo de organizacin de alarma temporizada vuelve a aparecer una peticin antes de que se haya ejecutado completamente la peticin anterior, el programa de sistema detecta una colisin de alarmas temporizadas. Si tiene lugar una colisin de alarmas temporizada, el programa de sistema llama al mdulo de organizacin OB 33, si est cargado. En caso contrario, la CPU pasa al estado STOP. Para ms informacin al respecto, vase captulo 4.5. Identificadores de E1 programa de sistema deposita en los AKKUs 1 y 2 informaciones adicionales error que explican ms detalladamente el error ocurrido: Tabla 5-32 Indicadores WECK-FE lOOlH 0012H olisin en OB 12 lOOlH OOOEH olisin en OB 14 lOOlH OOOAH olisin en OB 16 Nota La identificacin en el AKKU 2 es la identificacin de nivel de la alarma temporizada que ha causado el error. Si el OB 33 no est programado, la CPU pasa al estado STOP. Programando adecuadamente el DX O se puede continuar la ejecucin del programa a pesar de la colisin y de no estar programado el OB 33. Una segunda llamada al nivel de tratamiento de errores "colisin", no lleva a un error doble (DOPP)! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.6.7 REG-FE (error de regulador) Introduccin Un error de regulador (REG-FE) se detecta cuando aparece un error en el procesamiento de los mdulos de funciones estndar de la estructura de regulador R64, soportados por el programa de sistema. Nota El programa de sistema detecta una colisin de alarmas temporizadas cuando no se ha procesado de principio a fin un determinado OB de alarma temporizada dentro de la propia escala de tiempo (por ejemplo, 100 ms en el caso de OB 13). Sin embargo, solamente se detecta un procesamiento errneo del programa de regulacin cuando se llama al nivel de procesamiento REGULACION, siendo visualizado el error en la pila de interrupciones (USTACK). Al producirse un error de regulador se abandona el nivel de procesamiento de programa REGULACION y se llama al nivel ERROR DE REGULADOR (NIVEL: 001CH) con el mdulo de organizacin OB 34. La siguiente reaccin de la CPU depende de la programacin del OB 34: Si el OB 34 no est programado, la CPU pasa al estado STOP. La informacin de la pila USTACK indica la causa del error. Si el OB 34 est programado se procesa el programa all contenido (por ejemplo, evaluacin del AKKU 1 y AKKU 2 y tratamiento de error, en funcin de esta evaluacin). Luego se contina el procesamiento del regulador a partir del punto de interrupcin. Reaccin ante Si los errores de regulador han de ser ignorados siempre, basta programar la errores de instruccin de fin de mdulo BE en el OB 34. regulador Para que el procesamiento del regulador contine aunque no se haya programado el OB 34, hay que modificar el ajuste por defecto del DX O de forma correspondiente. Identificadores Llamando al OB 34, en los AKKUs 1 y 2 se encuentran informaciones de error adicionales que explican ms detalladamente el error ocurrido. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Tabla 5-33 Indicadores REG-FE Registro en la En todos los 7 casos de error, en los bits de control del aparato de programacin mscara "Bits de se marca la indentificacin del error REG-FE. Si se utiliza un aparato de control" programacin sin el sistema operativo SS-DOS, la penltima posicin de la lnea inferior de la mscara no tiene nombre pero aparece igualmente marcada. En la mscara de la pila USTACK del nivel REGULACION est marcado REG con una cruz como causa del error. Ident. de error AKKU-1-L AKKU-2-L 0801H DByyH 0802H DByyH 0803H FByyH 0804H FByyH 0805H FByyH 0806H DByyH 0880H OOyyH Error de tiempo Transcurrido el tiempo de exploracin establecido se interrumpe el programa de exploracin cclico en el prximo lmite de mdulo y se anida el procesamiento del regulador. Es posible que el procesamiento de mdulos "largos" demore demasiado y que el procesamiento del regulador "pierda el ritmo": se produce un error de tiempo de exploracin. Significado Error de tiempo de exploracin yy = nmero del correspondiente mdulo de datos de regulador Mdulo de datos de regulador no cargado yy = nmero del mdulo de datos que no est cargado Mdulo de funciones de regulador no cargado yy = nmero del mdulo de funciones de regulador que no est cargado Mdulo de funciones de regulador no detectado yy = nmero del mdulo de funciones de regulador que no ha sido detectado Mdulo de funciones de regulador cargado con un software de PG errneo yy = nmero del mdulo de funciones Longitud errnea del mdulo de datos de regulador yy = nmero del mdulo de datos Retardo en acuse de recibo (QVZ) durante el procesamiento del regulador yy = nmero del byte E/S que ha causado el retardo en acuse de recibo Los errores de tiempo de exploracin pueden ser tratados como los dems errores de regulador (como se ha descrito en la pgina anterior) o pueden ser oprimidos con una mscara. En este caso, al producirse un error de exploracin, no se interrumpe el procesamiento del programa. Vase al respecto la descripcin "Regulacin compacta en el procesador R del S5-135U" (bibliografa 1134 Un error de exploracin puede eventualmente evitarse modificando el ajuste por defecto en el DX O "procesamiento de la alarma de regulador y de proceso en Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores lmites de mdulos" por "procesamiento de la alarma de regulador y de proceso en lmites de instrucciones". 5.6.8 ABBR (aborto) Activacin y Si se solicita el estado STOP en el estado operativo RUN, por reaccin accionamiento del selector de la CPU de RUN a STOP, la funcin PG on line "AG STOP", posicin del selector del coordinador en STOP (en modo multiprocesador), el programa de sistema llama al OB 28 si est cargado. Al final del procesamiento del OB 28 la CPU pasa al estado STOP. Nota El paso al estado STOP se produce independientemente de si el OB 28 est o no programado y de cmo haya sido programado. 1 NO se transfieren identificadores de error al AKKU 1 o al AKKU 2! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores 5.6.9 FE-3 (errores de comunicacin) Introduccin Cuando se producen fallos en la segunda interfaz serie con acoplamiento RK 512, transferencia de datos con procedimiento 3964/3964R, transferencia de datos con "driver abierto", o con transferencia de datos va SINEC L1, el programa de sistema llama al mdulo de organizacin OB 35 y deposita en el AKKU 1 informaciones adicionales que describen con mayor exactitud los fallos ocasionados. Si no se ha programado ningn OB 35 no hay reaccin alguna por parte del programa de sistema y la CPU no pasa al estado STOP. Este es el ajuste por defecto. Si al producirse un error de interfaz la CPU debe pasar al estado STOP aunque no exista el OB 35, hay que modificar correspondientemente el ajuste por defecto del DX O. Informacin de El programa de sistema comprueba cada 100 ms si se han producido errores de errores en comunicacin en la segunda interfaz serie. En dicho caso, el programa de sistema AKKU 1 deposita informaciones sobre el error en el AKKU 1. Si el OB 35 existe, ste es llamado por el programa de sistema y la informacin es transferida al AKKU 1. Durante la llamada al OB 35 se pueden transferir nmeros de error de mximo tres causas de error. Si se presentan ms de tres causas de error a la vez, esto lo indica una marca especial de desbordamiento. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Tratamiento de interru~ciones v errores Estructuracin de la informacin sobre errores en AKKU 1 3 1 AKKU 1 BREAK E = 'O', si no hay registro de error en la zona de errores - - ' l' , si hay errores registrados en la zona de errores O O O O E D B O D - - 'O', si no hay desbordamiento de errores (mximo 3 entradas) = ' l ' , si hay desbordamiento de errores (ms de 3 entradas) B - - 'O', si no hay BREAK en la interfaz = ' l ' , si hay BREAK en la interfaz Error nQ 1 Si hay un BREAK en la interfaz, el OB 35 solamente se llama al principio del estado BREAK. Error nmero 1 a Aqu se registran mximo 3 nmeros de error correspondientes a los fallos de error nmero 3 interfaz, en el orden en que han sido detectados por el programa de sistema. Error nQ 2 Significado de El significado de los nmeros de error y las informaciones respecto al los nmeros tratamiento de errores de interfaz se encuentran explicados en el manual de error "Comunicacin" (bibliografa 1141). Error nQ 3 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6 Resumen breve Este captulo describe las funciones especiales integradas que contiene el programa de sistema. Tambin explica los campos de aplicacin de 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 con un programa. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 Tema Introduccin OB 110: Acceso al byte indicador OB 111: Borrar AKKU 1, 2, 3 y 4 OB 11211 13: AKKU rol1 up/AKKU rol1 down OB 120: Activarldesactivar "bloquear alarmas conjuntamente" OB 121: Activarldesactivar "bloquear alarmas temporizadas individualmente" OB 122: Activarldesactivar "retardar alarmas conjuntamente" OB 123: Activarldesactivar "retardar alarmas temponzadas individualmente" OB 134, OB 135, OB 136 y OB 139 OB 150: AjustarPeer la hora del sistema OB 151: AjustarPeer la hora para la alarma temporizada controlada por reloj OB 152: Estadstica de ciclo OB 153: AjustarPeer la hora para la alarma de retardo OB 160 a 163: Bucles contadores OB 170: Leer pila de mdulos (BSTACK) OB 180: Acceso variable a mdulos de datos OB 181: Comprobar mdulos de datos (DBPX) OB 182: Copiar zona de datos OB 185: Activarldesactivar la proteccin contra escritura Pgina 6-3 6-7 6-9 6-9 6-11 6-14 6-16 6-19 6-22 6-23 6-28 6-35 6-42 6-45 6-47 6-52 6-56 6-58 6-61 Funciones es~eciales intearadas Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 6.20 6.21 6.22 6.23 6.24 6.24.1 6.24.2 6.24.3 6.24.4 6.25 6.26 6.27 6.28 6.29 6.30 6.31 6.32 6.33 6.34 6.35 6.36 6.37 6.37.1 6.37.2 6.38 6.39 6.40 Tema OB 186: Comprimir memoria OB 1901192: Transferir marcas a un mdulo de datos OB 1911193: Transferir bloques de datos a la zona de marcas OB 200 y OB 202 a 205: Comunicacin en multiprocesamiento OB 216 a 218: Accesos a pginas OB 216: Escritura en pgina OB 217: Lectura de pgina OB 218: Ocupacin de pgina Ejemplo de programacin OB 220: Ampliacin del signo OB 221: Ajustar el tiempo de supervisin de ciclo OB 222: Nuevo arranque del tiempo de supervisin de ciclo OB 223: Comparar los modos de arranque OB 224: Transferir marcas de acoplamiento en bloques OB 226, OB 227 OB 228: Leer la informacin de status de un nivel de procesamiento OB 230 a 237: Funciones para FBs estndar OB 240 a 242: Funciones especiales para registros de desplazamiento OB 240: Inicializar registro de desplazamiento OB 241: Procesar registro de desplazamiento OB 242: Borrar registro de desplazamiento OB 2501251: Regulacin/Algoritmo PID Descripcin de las funciones del regulador PID Algoritmo PID OB 250: Inicializar algoritmo PID OB 251: Procesar algoritmo PID OB 2541255: Desplazar/duplicar mdulos de datos Pgina 6-62 6-63 6-65 6-70 6-71 6-74 6-76 6-78 6-80 6-82 6-83 6-84 6-84 6-85 6-86 6-87 6-89 6-90 6-94 6-97 6-98 6-99 6-99 6-101 6-106 6-107 6- 113 Funciones es~eciales intearadas 6.1 Introduccin Introduccin El sistema operativo de la CPU 928B ofrece una serie de funciones especiales que pueden ser llamadas por el usuario, siempre que ste lo requiera, mediante una llamada condicional (SPB OB x) o incondicional (SPA OB x). Para estas funciones especiales estn reservados los mdulos de organizacin 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. Panormica La tabla siguiente ofrece una panormica de las funciones especiales disponibles. Tabla 6-1 Panormica de las funciones especiales disponibles Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo OB 110 OB 111 OB 112 OB 113 OB 120 OB 121 OB 122 OB 123 OB 134 OB 135 OB 136 OB 139 OB 150 OB 151 OB 152 OB 153 OB 160 2 163 OB 170 OB 180 OB 181 OB 182 OB 185 OB 186 OB 190,192 OB 191,193 OB 200')' 202') OB 203,204'), 205 OB 216 to 218 Funcin Acceso al byte indicador Borrar AKKU 1, 2, 3 y 4 AKKU rol1 up AKKU rol1 down Activarldesactivar "bloquear alarmas conjuntamente" Activarldesact. "bloquear alarmas temp. individualmente" Activarldesactivar "bloquear alarmas conjuntamente" Activarldesact. "bloquear alarmas temp. individualmente" * D /D MOD PUSH Ajustarlleer hora del sistema Ajustarlleer hora para alarma temp. controlada por reloj Estadstica de ciclo Ajustarlleer la hora para alarma de retardo (a partir de la versin -3UB12) Bucles contadores Leer pila de mdulos PSTACK) Acceso variable a mdulos de datos Comprobar mdulo de datos @X/DX) Copiar zona de datos Activarldesactivar la proteccin contra escritura Comprimir memoria mediante el programa de usuario Transferir marcas a un mdulo de datos Transferir bloques de datos a la zona de marcas Comunicacin en multiprocesamiento Accesos a pginas Vase captulolpgina 6.2 6-7 6.3 6-9 6.4 6-9 6.4 6-9 6.5 6-11 6.6 6-14 6.7 6-16 6.8 6-19 6.9 6-22 6.9 6-22 6.9 6-22 6.9 6-22 6.10 6-23 6.11 6-28 6.12 6-35 6.13 6-42 6.14 6-45 6.15 6-47 6.16 6-52 6.17 6-56 6.18 6-58 6.19 6-61 6.20 6-62 6.21 6-63 6.22 6-65 6.23 6-70 6.24 6-71 Funciones es~eciales intearadas ') Funciones especiales con pseudolmites de instrucciones (larga duracin) ' ) En lugar de utilizar este mdulo de organizacin de funciones especiales es preferible parametrizar el mdulo de datos DX O (vase captulo 7). lnterfaces Mdulo Para la programacin se dispone de las siguientes interfaces para las funciones especiales: Llamada al mdulo Funcin Llamada al mdulo, condicional o incondicional SPB .. / SPA .. Vase captulolpgina Tabla 6-1 (continuacin): Parmetros OB 220 OB 221 2, 0B 222 0B 223 OB 224 2, OB 226 0B 227 OB 228 OB 230 to 237') OB 240 OB 241 OB 242 OB 250') OB 251') OB 254,255') Parmetros para efectuar ajustes a travs de AKKU 1 y eventualmente AKKU 2 y10 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. Ampliacin del signo Ajustar el tiempo de supervisin de ciclo Nuevo arranque del tiempo de supervisin de ciclo Comparar los modos de arranque Transferir marcas de acoplamiento en bloques Leer la palabra del programa de sistema Leer la suma horizontal del programa de sistema Leer informacin de status de un nivel de procesamiento Funciones para FBs estndar Inicializar registro de desplazamiento Procesar registro de desplazamiento Borrar registro de desplazamiento Regulacin: inicializar algoritmo PID Regulacin: procesar algoritmo PID Desplazar/duplicar un mdulo de datos Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 6.25 6-82 6.26 6-83 6.27 6-84 6.28 6-84 6.29 6-85 6.30 6-86 6.30 6-86 6.31 6-87 6.32 6-89 6.34 6-94 6.35 6-97 6.36 6-98 6.38 6-106 6.39 6-107 6.40 6-113 Funciones es~eciales intearadas Nomenclatura de Para indicar los parmetros de los distintos mdulos de organizacin de los acumuladores funciones especiales hay que respetar la siguiente nomenclatura: AKKU 1: AKKU 1, 32 bit AKKU-1-L: AKKU 1, palabra baja, 16 bit AKKU-1-LL: AKKU 1, palabra baja, byte bajo, 8 bit AKKU-1-LH: AKKU 1, palabra baja, byte alto, 8 bit Tratamiento de Cuando se produce un error al procesar la funcin especial llamada, el programa de errores sistema responde con una reaccin especial. En lo que respecta a esta reaccin especial cabe diferenciar entre dos grupos de funciones especiales. Palabra alta OBs de error, indicadores de los acumuladores Byte alto 31 24 Palabra baja Existen funciones especiales que, en caso de error, llaman a un mdulo de organizacin de error (OB de error), en el que se determina el posterior comportamiento de la CPU. Estos OBs de error son el OB 19, el OB 30 y el OB 31. En el AKKU 1, y en el caso de algunas funciones especiales tambin en el AKKU 2, (vase captulo 5.6), se transfieren identificaciones al OB de error que explican con mayor detalle el error. Byte bajo 23 16 Byte alto 15 8 Si durante el procesamiento de una de estas funciones especiales, la CPU observa, por ejemplo, un parmetro falso, detecta un error en tiempo de ejecucin y llama al OB 31. Si, por ejemplo, la funcin especial no existe, la CPU detecta un error en cdigo de instruccin y trata de llamar al OB 30. Si en alguna funcin especial se indica un mdulo de datos que no est cargado, entonces la CPU trata de llamar al OB 19. Byte bajo 7 O Si los OBs de error OB 30 u OB 31 no estn cargados o contienen una instruccin STP, la CPU pasa al estado STOP. En los bits de control y en la pila USTACK se encuentra marcado con una cruz LZF o BCF. En los acumuladores del nivel de procesamiento de error se encuentran identificaciones de error que describen ms detalladamente el error que se ha producido. Si el OB 19, el OB 30 o el OB 31 estn cargados (y no contienen ninguna instruccin STP), el procesamiento del programa de usuario contina con la siguiente instruccin tras ejecutar el OB correspondiente. En este caso, los acumuladores permanecen inalterados. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas VKE , ANZ OIANZ 1 En el caso de algunas funciones especiales, para indicar errores especficos de funciones especiales se altera el VKE o los indicadores ANZ OIANZ1. 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 resultados ANZ O 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 se ejecuta en cada uno de los distintos OBs de funciones especiales. Nota La llamada a un OB de funciones especiales mediante la operacin "SPB OB" o "SPA OB" no acta como un "verdadero" cambio de mdulo, sino que acta como una operacin STEP 5. NO se anidan alarmas (con ajuste por defecto "Interrupcin en lmites de mdulos")! Funciones Algunas de las funciones especiales son funciones de larga duracin, las cuales especiales contienen los as llamados pseudolmites de mdulos. con pseudolmites Esto significa que la ejecucin de la funcin se realiza por etapas. Si durante la de instrucciones ejecucin de una etapa se produce una interrupcin (por ejemplo, alarma temporizada o de proceso en lmites de instrucciones), al final de esta etapa se anida el correspondiente mdulo de organizacin. Las funciones especiales que contienen pseudolmites de instrucciones estn sealadas en la tabla de funciones especiales integradas. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.2 OB 11 0: Acceso al byte indicador Funcin Con el mdulo de organizacin de funciones especiales OB 110 se puede sobreescribir el registro de indicadores con el contenido del AKKU 1 o enmascararlo con '1'0 con '0'. Ocupacin del AKKU 1 para el acceso al registro de indicadores: 7 6 5 4 3 2 1 O *) Los bits 8 a 31 estn reservados para ampliaciones y tienen que ser igual a 'O' para sobreescnbir el registro de indicadores. Tienen que ser ignorados al leer el registro de indicadores. *> Parmetros 1. AKKU-2-L N q e funcin, valores admisibles: 1, 2 3 ANZl 2. AKKU 2 Nuevo byte indicador o mscara ANZO Indicadores de palabras Resultado OV Indicadores de bits NVe funcin en el AKKU-2-L 1 2 3 Una vez ejecutado el OB 110, el byte indicador quedar modificado de acuerdo con la funcin y el contenido del AKKU-1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 OS Funcin El contenido del AKKU 1 se carga en el registro de indicadores. Todos los bits de la mscara marcados con un '1' en el AKKU 1 se ponen a '1' en el registro de indicadores. El nuevo byte indicador se carga en el AKKU 1. Todos los bits de la mscara marcados con un '1' en el AKKU 1 se ponen a 'O' en el registro de indicadores. El nuevo byte indicador se carga en el AKKU 1. Contenido del AKKU-1-L OR antes Nuevo byte indicador Mscara Mscara despus Nuevo byte indicador Nuevo byte indicador Nuevo byte indicador STA VKE E Funciones es~eciales intearadas Errores Pueden presentarse los siguientes errores: N q e funcin en AKKU-2-L no es igual a 1 , 2 3. En el AKKU 1 est activado uno de los bits de n" a nn" 31. En caso de error se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos se deposita en el AKKU-1-L la identificacin de error 1A49H. Ejemplo El OB 110 es un medio auxiliar para comprobar las instrucciones que evalan o modifican el registro de indicadores. Sin embargo, su aplicacin no se limita a ello. El prximo ejemplo muestra otra posibilidad de aplicacin. Dependiendo del contenido del byte de marcas M O se ha de llamar a uno de los cuatro programas parciales. A los cuatro programas parciales se les han asignado los bits M 0.0 a M 0.3. Solamente puede estar activado uno de estos :SLW 4 Desplazar M 0.0 a M 0.3 cuatro bits a la izquierda Cargar nmero de funcin :SPA OB 110 :SPS =M000 Salto si OS = 1 :SPO =M001 Salto si OV = 1 :SPM =M002 Salto si ANZ O = 1 :SPP =M003 Salto si ANZ 1 = 1 si no est activado ningn bit Si M 0.0 = 1 Si M 0.1 = 1 Si M 0.2 = 1 Si M 0.3 = 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Funcin Una sola llamada al mdulo de organizacin de funciones especiales OB 11 1 permite borrar fcilmente los contenidos de los AKKUs 1 a 4: el OB 111 sobreescribe los cuatro registros con un 'O'. Parmetros Resultado Errores ninguno Los AKKUs 1 a 4 (32 bit cada uno) han sido borrados. ninguno 6.4 OB 11 211 13: AKKU rol1 up/AKKU rol1 down Funcin El OB 112 y el OB 113 hacen avanzar los contenidos de los AKKUs 1 a 4 en direccin ascendente o descendente: El OB 112 (roll up) desplaza el contenido del AKKU 1 al AKKU 2, el contenido del AKKU 2 al AKKU 3, etc. El OB 113 (roll down) desplaza los contenidos de los acumuladores en direccin opuesta: contenido del AKKU 1 al AKKU 4, AKKU 4 a AKKU 3, etc. Parmetros Resultado Errores ninguno Las figuras 6-1 y 6-2 muestran los contenidos de los acumuladores antes y despus de llamar al OB 112 y 113. Nota Las operaciones ENT (conjunto de operaciones complementarias) y TAK (operacin de sistema) de STEP 5 tambin permiten desplazar los contenidos de los acumuladores (vase captulo 3.4). ninguno Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Despl azar cont eni dos de AKKUs . . . . . . . . . . . . . AKKU 4 1 <AKKU 4> AKKU 3 <AKKU 3> 1 AKKU 2 <AKKU 2, 1 ant es Fig. 6-1 Efecto de la funcin "roll up" despus Despl azar cont eni dos de AKKUs 3 1 AKKU 4 AKKU 3 1 <AKKU 3> 1 AKKU 2 1 cAKKU 2, 1 AKKU 1 1 <AKKU 1> ant es Fig. 6-2 Efecto de la funcin "roll down" despus Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.5 OB 120: Activar/desactivar "bloquear alarmas conjuntamente" Introduccin Un programa STEP 5 puede ser interrumpido por programas de mayor prioridad en lmites de mdulos o de instrucciones. A estos niveles de procesamiento de mayor prioridad pertenecen las alarmas de proceso as como todas las alarmas temporizadas (alarmas temporizadas cclicas, alarma temporizada controlada por reloj y alarma de retardo). En estos casos, el tiempo de ejecucin del programa interrumpido se prolonga en el tiempo de ejecucin de los programas anidados. Con el OB 120 puede impedirse el anidamiento de niveles de procesamiento de mayor prioridad en uno o varios lmites consecutivos de mdulos o de instrucciones (segn ajuste en DX O). Funcin Parmetros El OB 120 altera la reaccin ante alarmas: Activar "bloquear alarmas" significa que a partir de ahora no se registran ms alarmas y se borran las ya registradas (alarmas que p. ej. "esperan" a un lmite de mdulo). Solamente cuando ya ha comenzado a procesarse el OB 2 (alarma de proceso) o bien un OB que procese alarmas temponzadas, ste se procesar hasta el final. Desactivar "bloquear alarmas" significa que a partir de ahora se vuelven a registrar, anidar y procesar todas las alarmas pendientes en el prximo lmite de mdulo o de instruccin. 1. Palabra doble de control El OB 120 registra las alarmas que deben ser bloqueadas en una palabra doble de control del sistema. Los bits de la palabra doble de control tienen el significado siguiente: 1 O = '1' 1 se bloquean todas las alarmas temporizadas cclicas 1 Nq e bit en la palabra doble de control reservados; estos bits tienen que estar a 'O'! Funcin Mientras un bit est a '1' quedar bloqueada la alarma correspondiente. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 2. Acumuladores Resultado Errores NVe funcin, valores admisibles: 1, 2 3 con: 1: El contenido del AKKU 1 se carga en la palabra de control. 2: Todos los bits de la 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. 3: Todos los bits de la mscara del AKKU 1 que estn marcados con un '1' se ponen a 'O'en en la palabra de control. La nueva palabra de control se carga en el AKKU 1. AKKU 1 Nueva palabra de control o mscara, depende de la funcin deseada La llamada al OB 120 da los siguientes resultados: Pueden presentarse los siguientes errores: NVe funcin en AKKU-2-L 1 2 3 NVe funcin no es vlido en AKKU-2-L. Uno de los bits reservados en AKKU 1 (n" a 31) es igual a '1'. Contenido del AKKU 1 En caso de error se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado la CPU pasa al estado STOP. En ambos casos se registra la identificacin de error 1A47H en el AKKU-1-L. antes palabra de control mscara mscara Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 despus palabra de control nueva palabra de control nueva palabra de control Funciones es~eciales intearadas Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente: 1. Cargar n v e funcin 2 3 en el AKKU-2-L 2. Cargar el valor 'O' en el AKKU 1 3. Llamar al OB 120 de funciones especiales 4. Leer el AKKU 1 El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 131. - BS 131 Palabra indicadora "bloquear alarmas conjuntamente" Para bloquear y desbloquear la alarma de proceso pueden utilizarse las instrucciones AS y AF en lugar del OB 120: AS equivale a :L KB 2 :L KM 00000000 00000100 :SPA OB 120 AF equivale a :L KB 3 :L KM 00000000 00000100 :SPA OB 120 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.6 OB 121 : Activar/desactivar "bloquear alarmas temporizadas individualmente" Introduccin Con el OB 121 se puede impedir el anidamiento de determinados OBs de alarma temporizada (alarmas temporizadas con escala de tiempo fija) en uno o ms lmites consecutivos de mdulos o instrucciones. Por ejemplo, puede determinarse que una parte del programa no pueda ser interrumpida por un OB 18 (5 S) ni por un OB 17 (2 S). Las dems alarmas temporizadas programadas se procesan como es habitual. Funcin Parmetros El OB 121 tiene consecuencias sobre la reaccin ante alarmas temporizadas cclicas : Activar "bloquear alarmas temporizadas individualmente" 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 cuando ya haya comenzado un OB de alarma temporizada (para procesar una alarma temponzada con escala de tiempo fija), ste se procesar hasta el final. Desactivar "bloquear alarmas temporizadas individualmente" significa que, a partir de este instante, vuelven a ser registradas, anidadas y procesadas todas las alarmas temporizadas cclicas que aparezcan en el prximo lmite de mdulo o instruccin (segn el ajuste en el DX O). 1. Palabra de control El OB 121 registra las alarmas temporizadas que deben ser bloqueadas en una palabra de control interna del sistema: Los bits de la palabra de control tienen el siguiente significado: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 N%it Oa2 3 = '1' 4 = '1' 5 = '1' 6 = '1' 7 = '1' 8 = '1' 9 = '1' 10 = '1' 11 = '1' 12 a 15 Alarma reservados, estos bits tienen que estar a 'O'! Alarmas temporizadas cclicas con escala de tiempo fija: 10 ms (OB 10) 20 ms (OB 11) 50 ms (OB 12) 100 ms (OB 13) 200 ms (OB 14) 500 ms (OB 15) 1 S (OB 16) 2 S (OB 17) 5 S (OB 18) reservados; estos bits tienen que estar a 'O'! Funciones es~eciales intearadas 2. Acumuladores Errores NVe funcin, valores admisibles: 1, 2 3 con: 1: El contenido del AKKU 1 se carga en la palabra de control. 2: Todos los bits de la 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. 3: Todos los bits de la mscara del AKKU 1 que estn marcados con un '1' se ponen a 'O' en la palabra de control. La nueva palabra de control se carga en el AKKU 1. AKKU 1 Nueva palabra de control o mscara, depende de la funcin deseada. Pueden presentarse los siguientes errores: Nmero de funcin no es vlido en AKKU-2-L. Uno de los bits reservados en AKKU 1 es igual a '1'. En caso de error se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado la CPU pasa al estado STOP. En ambos casos se registra la identificacin de error 1A4AH en el AKKU-1-L. Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente: 1. Cargar n v e funcin 2 3 en el AKKU-2-L 2. Cargar el valor 'O' en el AKKU 1 3. Llamar al OB 121 de funciones especiales 4. Leer el AKKU 1 El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 135. - BS 135 Palabra indicadora "bloquear alarmas temporizadas individualmente" Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.7 OB 122: Activar/desactivar "retardar alarmas conjuntamente" Introduccin Un programa STEP 5 puede ser interrumpido en lmites de mdulos o instrucciones por programas que tengan una prioridad mayor. A estos niveles de procesamiento de prioridad superior pertenecen las alarmas de proceso y las alarmas temporizadas (alarmas temporizadas cclicas, alarma temporizada controlada por reloj y alarma de retardo). El tiempo de ejecucin del programa interrumpido aumenta en el tiempo de ejecucin de los programas anidados. Con el OB 122 se puede impedir el anidamiento de niveles de procesamiento de prioridad superior en uno o ms lmites consecutivos de mdulos o instrucciones (segn el ajuste en el DX O). Funcin Parmetros El OB 122 tiene consecuencias sobre la reaccin ante alarmas: Activar "retardar alarmas" significa que se siguen registrando todas las alarmas que aparezcan, y que quedan registradas las alarmas que ya se encuentran en cola de espera. Sin embargo, no se procesan por el momento las alarmas registradas. Se anulan provisionalmente todos los lmites de instrucciones o de mdulos para el procesamiento de alarmas. Solamente cuando el OB 2 (alarmas de proceso) o un OB de procesamiento de alarmas temponzadas ya ha iniciado, se procesa hasta el final. Desactivar "retardar alarmas" significa que se procesan todas las alarmas registradas en el prximo lmite de mdulo o de instruccin. Nota Si durante la fase "retardar alarmas" se llama por segunda vez a un determinado OB de alarma temporizada se produce una colisin. 1. Palabra doble de control El OB 122 registra las alarmas que deben ser retardadas en una palabra doble de control interna del sistema. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Los bits de la palabra doble de control tienen el siguiente significado: Mientras un bit est a '1', la alarma correspondiente se retardar. N%it en la palabra doble de control 0 = '1' 1 = '1' 2 = '1' 3 = '1' 4 a 3 1 2. Acumuladores Funcin se retardan todas las alarmas temponzadas cclicas se retarda la alarma temporizada controlada por reloj se retardan todas las alarmas de proceso se retarda la alarma de retardo reservados; estos bits tienen que estar a 'O'! NVe funcin, valores admisibles: 1, 2 3 con : 1: El contenido del AKKU 1 se carga en la palabra de control. 2: Todos los bits de la 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. 3: Todos los bits de de la mscara del AKKU 1 que estn marcados con un '1' se ponen a 'O' en la palabra de control. La nueva palabra de control se carga en el AKKU 1. AKKU 1 Nueva palabra de control o mscara, depende de la funcin deseada. Resultado La llamada al OB 122 da los siguientes resultados: N q e funcin en AKKU-2-L 1 3 1 mscara 1 nueva palabra de control 1 1 2 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Contenido del AKKU 1 antes palabra de control mscara despus palabra de control nueva palabra de control Funciones es~eciales intearadas Errores Pueden presentarse los siguientes errores: NVe funcin no es vlido en AKKU-2-L. Uno de los bits reservados en AKKU 1 (n" a 31) es igual a '1'. En caso de error se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado la CPU pasa al estado STOP. En ambos casos se registra la identificacin de error 1A48H en el AKKU 1-L. Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente: 1. Cargar n v e funcin 2 3 en el AKKU-2-L 2. Cargar el valor 'O' en el AKKU 1 3. Llamar al OB 122 de funciones especiales 4. Leer el AKKU 1 El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 132. - BS 132 Palabra indicadora "retardar alarmas conjuntamente" Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.8 OB 123: Activar/desactivar "retardar alarmas temporizadas individualmente" Introduccin Con el OB 123 se puede impedir el anidamiento de determinados OBs de alarma temporizada (alarmas temporizadas con escala de tiempo fija) en uno o ms lmites consecutivos de mdulos o instrucciones. Funcin Parmetros El OB 123 repercute en la reaccin ante alarmas temponzadas: Activar "retardar alarmas temporizadas individualmente" significa que se siguen registrando todas las alarmas que aparecen y que quedan registradas las alarmas temporizadas que ya estn en cola de espera. Sin embargo, no se procesan por el momento las alarmas registradas. Se anulan provisionalmente todos los lmites de instrucciones o de mdulos para el procesamiento de estas alarmas. Solamente cuando un OB de alarma temponzada (para el procesamiento de una alarma temporizada con escala de tiempo fija) ya ha iniciado, se procesa hasta el final. Desactivar "retardar alarmas temporizadas individualmente" significa que se procesan todas las alarmas registradas en el prximo lmite de mdulo o de instruccin (segn el ajuste en el DX O). Nota Si durante la fase "retardar alarmas" se llama por segunda vez a un OB de alarma temporizada, se produce una colisin. 1. Palabra de control El OB 123 registra las alarmas temporizadas que deben ser retardadas en una palabra de control interna del sistema. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Los bits de la palabra de control tienen el siguiente significado: 2. Acumuladores Bit nQ Oa2 3 = '1' 4 = '1' 5 = '1' 6 = '1' 7 = '1' 8 = '1' 9 = '1' 10 = '1' 11 = '1' 12 a 15 NVe funcin, valores admisibles: 1, 2 3 con: Alarma reservados, estos bits tienen que estar a 'O'! Alarmas temporizadas cclicas con escala de tiempo fija: 10 ms (OB 10) 20 ms (OB 11) 50 ms (OB 12) 100 ms (OB 13) 200 ms (OB 14) 500 ms (OB 15) 1 S (OB 16) 2 S (OB 17) 5 S (OB 18) reservados; estos bits tienen que estar a 'O'! 1: El contenido del AKKU 1 se carga en la palabra de control. 2: Todos los bits de la 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. 3: Todos los bits de la mscara del AKKU 1 que estn marcados con un '1' se ponen a 'O' en la palabra de control. La nueva palabra de control se carga en el AKKU 1. AKKU 1 Nueva palabra de control o mscara, depende de la funcin deseada. Errores Pueden presentarse los siguientes errores: NVe funcin no es vlido en AKKU-2-L. Uno de los bits reservados en AKKU 1 es igual a '1'. En caso de error se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos se registra la identificacin de error 1A4BH en el AKKU 1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Observaciones El estado de la palabra de control puede consultarse con la secuencia de programa siguiente: 1. Cargar n v e funcin 2 3 en el AKKU-2-L 2. Cargar el valor 'O' en el AKKU 1 3. Llamar al OB 123 de funciones especiales 4. Leer el AKKU 1 El estado del procesamiento de alarmas puede averiguarse asimismo leyendo la palabra de datos de sistema BS 137. - BS 137 Palabra indicadora "retardar alarmas temponzadas individualmente" Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Registros de Los registros de clculo se modifican mediante una operacin aritmtica clculo (OB 134, 135, 136) de la manera siguiente (en el caso de operaciones en coma fija, solamente se modifica la palabra baja): AKKU1 AKKU2 AKKU3 AKKU4 antes: cAKKU 1> cAKKU 2> cAKKU 3> cAKKU 4> l / / A despus: c~esul t ado> cAKKU 3> cAKKU 4> cAKKU 4> *D (Multiplicar nmeros en coma fija de 32 bits) multiplica AKKU 2 por AKKU 1 y carga el resultado en AKKU 1. Si el resultado es superior al mayor nmero representable en coma fija de 32 bits o inferior al menor nmero representable en coma fija de 32 bits, se indica mediante OV = 1 y OS = 1. AKKU 3 y AKKU 4 se transfieren entonces a AKKU 2 y AKKU 3. lndicadores :D (Dividir nmeros en coma fija de 32 bits) divide AKKU 2 por AKKU 1 y carga el resultado en AKKU 1. AKKU 3 y AKKU 4 se transfieren luego a AKKU 2 y AKKU 3. Depende de Activa lndicadores ANZ 1 x OB 136: MOD MOD (Mdulo de la divisin de dos nmeros en coma fija de 32 bits) divide AKKU 2 por AKKU 1 y carga el mdulo (resto de la divisin) en AKKU 1. AKKU 3 y AKKU 4 se transfieren luego a AKKU 2 y AKKU 3. Depende de Activa lndicadores ANZ O x ANZ 1 x OB 139: PUSH PUSH (Empujar la pila de acumuladores) empuja el AKKU 1 hacia abajo en la pila de acumuladores. PUSH se puede utilizar para introducir vanas veces un mismo valor en dicha pila. lndicadores OV x Depende de Activa ANZ O x Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 OS x ANZ 1 x Depende de Activa OV x OR ANZ O x ANZ 1 OS x STA OV x ANZ O OR VKE OS x OV /ER STA OR OS VKE /ER STA OR VKE STA /ER VKE /ER Funciones es~eciales intearadas 6.10 OB 150: Ajustarlleer la hora del sistema Caractersticas Las caractersticas de la hora del sistema son: de la hora (y fecha) del La resolucin es de 10 ms en la lectura y de 1 s en el ajuste. sistema Se consideran los aos bisiestos. Ajuste horario a elegir entre formato 24 horas o 12 horas "am" (ante meridium) y "pm" (post meridium) Indicacin del da de la semana Las entradas y salidas se efectan en cdigo BCD. El reloj hardware integrado es salvaguardado por una batera tampn en el bastidor del autmata programable. De este modo, una vez ajustada la hora, siempre se dispondr de la hora actual, incluso tras un fallo de la tensin de red y un REARRANQUE. Funcin Parmetros Bit nQ 1"alab. 2"alab. 3"alab. 4"alab. El OB 150 permite ajustar o leer la hora y fecha (hora del sistema) en el programa de usuario de la CPU 928B. Antes de poder leer la hora del sistema es necesario ajustarla. l 1. Campo de datos para los parmetros de tiempo Al ajustar la hora del sistema, el OB 150 toma los valores que deben ser ajustados de un campo de datos; al leer la hora, el OB 150 transfiere los valores actuales al campo de datos. Este campo de datos puede ser generado en un mdulo de datos o en una de ambas zonas de marcas (marcas M o S). El campo de datos consta de cuatro palabras. l a) Formato del campo de datos durante el ajuste del reloj hardware Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 15 12 11 Segundos Formato O Minutos 8 Horas Da de la semana Da del mes Ao O 7 Mes 4 3 O Funciones es~eciales intearadas l b) Formato del campo de datos durante la lectura del reloj hardware Bit 1 1 - 1 5 1"alab. 12 2"alab. Los parmetros de tiempo tienen el significado, las zonas de valores admisibles y la representacin siguientes: Segundos 3"alab. 4"alab. 1 11 11100 segundos Formato l) Despus de llamar al OB 150 se comprueba si la fecha del valor indicado es lgicamente correcta considerando los aos bisiestos. I I Da del mes Ao Parmetros Segundos 11100 segundos Minutos Horas Da de semana Dademes ') Mes Ao Formato Cam~o de datos en la zona de marcas 8 I I Horas Da de la semana 1 O Mes Cuando se crea el campo de datos en una zona de marcas (marcas S o M) se debe tener en cuenta la siguiente asignacin de las palabras del campo de datos a los bytes de marcas. El parmetro 'x' es el parmetro " n q e la primera palabra del campo de datos", que debe ser depositado en el AKKU-1-L al llamar al OB 150: Minutos Campo de valores admisible 00 a 59 00 a 99 00 a 59 00 a 23 01 a 12, segn la indicacin de "formato" O a 6 de lunes a domingo 01 a 31 Ol a 12 00 a 99 Indicacin del formato para el campo de la hora: Bit 15 = O: Formato de 12 horas (seleccin de "am" o "pm" en bit 14) Bit 15 = 1: Formato de 24 horas (bit 14 = 0) Bit 14 = 0: "am" Bit 14 = 1: "pm" Bit nQ 1"al. campo dat. 29al . campo dat. 3"al. campo dat. 4"al. campo dat. 7 Represent. Formato BCD - Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 4 15 8 Byte de marcas x Byte de marcas x+2 Byte de marcas x+4 Byte de marcas x+6 7 O Byte de marcas x+l Byte de marcas x+3 Byte de marcas x+5 Byte de marcas x+7 3 O Funciones es~eciales intearadas 2. Acumuladores Bit nQ El AKKU-2-L contiene informaciones referentes a la funcin deseada y al campo de datos utilizado. Debe tener la siguiente estructura: Resultado 15 Errores Parmetros en el AKKU-2-L 12 NVe funcin, valores admisibles: 1 = ajustar la hora del sistema 2 = leer la hora del sistema NVe funcin 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 11 NVel 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 v e mdulo no es significativo) Tipo de zona de direcciones Nmero de la primera palabra del campo de datos, valores admisibles (en funcin del tipo de zona de direcciones): DB, DX: O a 2044 Marcas M: O a 248 (= n v e byte de marcas 'x ') Marcas S O a 1016 (= n v e byte de marcas 'x ') NVel mdulo de datos 8 Si el OB 150 ha sido procesado correctamente, los bits indicadores OR, ERAB y OS = O. Los restantes bits indicadores as como AKKU 1 y AKKU 2 permanecen inalterados. En caso de error se llama al OB 19 o al OB 31. Si no estn cargados, la CPU pasa al estado STOP. En ambos casos se registran identificaciones de error en el AKKU 1 (vase tabla a continuacin). 7 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 4 3 O Funciones es~eciales intearadas Tabla 6-2 Identificaciones de error del OB 150 Nota Si en la funcin "Ajustar hora del sistema" se introducen parmetros incorrectos y la hora ha sido ajustada de forma correcta por lo menos una vez con anterioridad, entonces se transfieren dichas identificaciones de error, pero el reloj del sistema sigue funcionando. AKKU-1-L 1A07H 1A4CH Ejemplos Hay que ajustar la hora del sistema como sigue: "Ju, 21.10.1993, 11:30 horas O segundos, formato 24 horas" Se supone que los parmetros de tiempo se registran en el mdulo de datos DB 10 a partir de la palabra DW O. El ajuste de la hora del sistema con los valores indicados debe ser iniciado con una precisin al segundo mediante un bit de entrada (bit de activacin, por ej. E 1.0 - pulsador cerca del autmata programable) . Programar en primer lugar el mdulo de datos DB 10 con los valores expuestos a continuacin y cargarlo en el autmata programable. Las operaciones STEP 5 para llamar al OB 150 se programan en el OB 1 de forma que las operaciones de llamada al OB 151 slamente se ejecuten con el siguiente flanco del bit de activacin: Cont i na e n l a pgi na s i g u i e n t e AKKU-2-L - OOOlH OlOOH OlOlH 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H I3209H 020AH Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado Mdulo de datos no cargado NVe funcin = O > 2 Tipo de zona de direcciones no vlido NVe mdulo de datos no vlido "Nmero de la l val abra del campo de datos" no vlido Longitud de mdulo de datos en cabeza de mdulo < 5 palabras Ao indicado en campo de datos no vlido Mes indicado en campo de datos no vlido Da del mes indicado en campo de datos no vlido Da de semana indicado en campo de datos no vlido Hora indicada en campo de datos no vlida Minutos indicados en campo de datos no vlidos Segundos indicados en campo de datos no vlidos 1/100 seg. en campo de datos 3 O Palabra de campo de datos 3 /bit n" a 3 3 O Formato de hora no corresponde al ajuste en OB 151 OB llamado OB 19 OB 31 Funciones es~eciales intearadas O : K H = O O O O byt e i zq. = segundos (BCD), byt e derecho = O 1 : K H = 9 1 3 O 91 = formato (=80H) + hora (=11 BCD) 30 = minutos (BCD) 2: KH = 2 1 3 O 21 = d a de l mes (BCD) 30 = d a de l a semana ( 3 = j u. ) + b i t O a 3 = O 3:KH= 9 3 1 O 93 = ao (BCD) 10 = mes (BCD) Operaciones STEP 5 deposi t adas en e l OB 1 par a llamar a l OB 150: Se r e c i bi f l anco de s eal de l a ent r ada par a a j u s t a r l a hora de l si st ema: STELL:L KH 1 1 O A Val ores par a AKKU-2-L: -NQ DB = 10 Tipo zona de d i r . = 1 par a "campo de dat os en DB" NQ de funci n = 1 par a " aj us t ar " :L KF O AKKU- 1 -L : NQ de l a l a pal abr a de l campo de dat os = O :SPA OB 150 Llamar a l OB 150 La hora act ual del si st ema ha de s e r e s c r i t a en e l mdulo de dat os DB 10 a p a r t i r de l a pal abra de dat os DW 4. Para e l l o s e debe llamar a l OB 150 con l o s si gui ent es parmetros: Valores para AKKU-2-L: i KH 1 ' Tipo zona de d i . = 1 para "campo de dat os en DBq' NQ de funcin = 2 para "l eer " :L KF 4 AKKU-1-L : NQ de l a l a pal abra del campo de dat os = 4 :SPA OB 150 Llamar OB 150 :A DB10 Abri r DB 10 Evaluar DB 10 Despus de l l amar a l OB 150, l a hora act ual de l si st ema e s t r egi s t r ada en el mdulo de dat os DB 10 con e l formato s i gui ent e: ( "J u, 21.10.93, 11:30 horas 20 segundos, 13 cent si mas de segundo, formato 24 hor as") : DW 4: KH = 2 O 1 3 segundos = 20 (BCD) 1/100 segundos = 13 (BCD) DW 5:KH= 9 1 3 O formato = 24 horas ( b i t 14/15 = O l ) , horas = 11(BCD) minutos = 30 (BCD) DW6:KH= 2 1 3 O d a d e l me s = 2 1 (BCD) d a de l a semana = 3 = j ueves DW 7: KH = 9 3 1 O ao = 93 (BCD) mes = 10 (BCD) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.1 1 OB 151 : Ajustarlleer la hora para la alarma temporizada controlada por reloj Funcin Llamando al OB 151 se puede: ordenar que la CPU 928B active en un tiempo determinado la alarma temporizada controlada por reloj ("peticin de tiempo" - OB 9, vase captulo 4.5): - cada minuto - cada hora - cada da - cada semana - cada mes - cada ao - unavez, leer el estado momentneo de una peticin de tiempo, anular una peticin de tiempo ya generada. El OB 151 puede ser llamado en los estados operativos ARRANQUE y RUN. Una alarma temponzada controlada por reloj ya generada se mantiene en caso de un REARRANQUE (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 Bit nQ 1"alab. 2"alab. 3"alab. 4"alab. 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 generar 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 generar y leer la peticin de tiempo: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 15 12 11 Segundos Formato O Minutos 8 Horas Da de semana Da del mes Ao Tipo de peticin 7 Mes 4 3 O Funciones es~eciales intearadas El significado de los parmetros, sus zonas de valores admisibles y su representacin son los siguientes: Despus de llamar al OB 150 se comprueba si la fecha indicada es lgicamente correcta considerando los aos bisiestos. ' ) Significado de "am" y "pm": vase OB 150 en el captulo 6.9. El "formato" tiene que coincidir con el formato indicado al ajustar la hora del sistema mediante el OB 150! Parmetros Tipo de peticin Segundos 11100 segundos Minutos Horas Da de semana Da del mes ') Mes Ao Formato ' ) Cam~o de datos en la zona de marcas Si se crea el campo de datos en una zona de marcas, se debe tener en cuenta la siguiente asignacin de las palabras del campo de datos a los bytes de marcas. El parmetro 'x' es el parmetro " n v e la l val abr a del campo de datos", el cual debe ser depositado en el AKKU-1-L al llamar al OB 151: significado: Bit 15 = O: formato de 12 horas (seleccionar "am" o "pm" en bit 14) Bit 15 = 1: formato de 24 horas (bit 14 = 0) Bit 14 = 0: "am" Campo de valores admisible O a 7 con: O: anular peticin o no hay peticin 1: cada minuto 2: cada hora 3: cada da 4: cada semana 5: cada mes 6: cada ao 7: unavez 00 a 59 00 a 99 00 a 59 00 a 23 01 a 12, segn indicado bajo "formato" O a 6 de lunes a domingo 01 a 31 01 a 12 00 a 99 Indicacin del formato para el campo de la hora, Representacin Formato BCD Formato BCD Bit 1"al. campo dat. 29al . campo dat. 4"al. campo dat. 1 Byte de marcas x+6 Byte de marcas x+7 n V 5 8 3"al. campo dat. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 7 O Byte de marcas x Byte de marcas x+2 Byte de marcas x+l Byte de marcas x+3 Byte de marcas x+4 Byte de marcas x+5 Funciones es~eciales intearadas 2. Acumuladores Bit nQ El AKKU-2-L contiene informaciones referentes a la funcin deseada y al campo de datos utilizado. Debe tener la siguiente estructura: Resultado 15 Parmetros en el AKKU-2-L N q e funcin, valores admisibles: 1 = generar la peticin 2 = leer el estado de la peticin 12 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 NQ de funcin N q e 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 q e mdulo no es significativo) 11 Nmero de la l val abr a del campo de datos, valores admisibles (en funcin del tipo de zona de direcciones): DB, DX: O a 2044 Marcas M: O a 248 (= n q e byte de marcas 'x') Marcas S O a 1016 (= n q e byte de marcas 'x') Tipo de zona de direcciones Si el OB 151 ha sido procesado correctamente, los bits indicadores OR, ERAB y OS = O. Los restantes bits indicadores as como AKKU 1 y AKKU 2 permanencen inalterados. NQ de mdulo de datos 8 Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 7 4 3 O Funciones especiales integradas Errores Nota Si durante la lectura de la peticin de tiempo en el campo de datos, el tipo de peticin es 'O' y los restantes parmetros son 'F' o 'FF' (hexadecimal), no estar activada ninguna peticin. Esto puede ocurrir - cuando se ha ejecutado un NUEVO ARRANQUE sin generar una peticin de tiempo, - cuando ha vencido una peticin de tiempo nica O - cuando se ha anulado una peticin. En caso de error se llama al OB 19 u OB 31. Si stos no estn cargados la CPU pasa al estado STOP. En ambos casos se depositan identificaciones de error en AKKU 1 y AKKU 2 (vase tabla siguiente). Tabla 6-3 Identificaciones de error del OB 151 Nota Si se efecta una parametrizacin incorrecta y anteriormente ya se ha generado una peticin de tiempo vlida, entonces se transfieren dichas identificaciones de error, pero la peticin de tiempo generada con anterioridad sigue en vigor. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 OB llamado OB 19 OB 31 Significado Mdulo de datos no cargado NQ de funcin = O > 2 Tipo de zona de direcciones no vlido NQ de mdulo de datos no vlido "NQ de la lvalabra del campo de datos" no vlido Longitud del mdulo de datos en la cabeza < 5 palabras Ao indicado en campo de datos no vlido Mes indicado en campo de datos no vlido Da del mes indicado en campo de datos no vlido Da de semana indicado en campo de datos no vlido Hora indicada en campo de datos no vlida Minutos indicados en campo de datos no vlidos Segundos indicados en campo de datos no vlidos 1/100 de seg. indicadas en campo de datos z O Tipo de peticin en campo de datos > 7 Formato de la hora no corresponde al ajuste en OB 150 AKKU-1-L 1A07H 1A4DH AKU-2-L - OOOlH OlOOH OlOlH 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH Funciones es~eciales intearadas Aspectos a tener Dependiendo de cundo se deba activar una alarma temporizada controlada por en cuenta reloj (peticin de tiempo), es necesario predefinir cada uno de los parmetros en respecto a los determinadas combinaciones. Para ello es absolutamente necesario indicar parmetros de ciertos parmetros - dependiendo del momento elegido para la alarma tiempo temporizada controlada por reloj - mientras que otros no son evaluados por el programa de sistema y por lo tanto pueden ser suprimidos. La tabla siguiente indica qu parmetros de tiempo deben ser indicados con qu peticiones de tiempo (XXX = indicacin necesaria, --- = no significativa). Tabla 6-4 Asignacin "peticin de tiempo - parmetro de tiempo" 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. Tiempo de alarma cada minuto cada hora cada da cada semana cada mes cada ao una vez Si para el tipo de peticin "cada mes" (= 5) se elige como da del mes el valor "29", "30" "31", el OB 9 slo ser llamado en los meses en los que exista el da elegido. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Segundos XXX XXX XXX XXX XXX XXX XXX Minutos --- XXX XXX XXX XXX XXX XXX Horas --- --- XXX XXX XXX XXX XXX Da de la semana --- --- --- XXX --- --- --- Da del mes --- --- --- --- XXX XXX XXX Mes --- --- --- --- --- XXX XXX Ao --- --- --- --- --- --- XXX Funciones especiales integradas Ejemplos 1. "Peticin cada minuto en el segundo 29" (12:44:29, 12:45:29, etc.): Se debe indicar:Tipo de peticin = 1 (No de funcin en AKKU-2-L = 1) Segundos = 29 2. "Peticin cada hora, a las xx:14:15": Se debe indicar:Tipo de peticin = 2 (No de funcin en AKKU-2-L = 1) Segundos = 15 Minutos = 14 3. "Peticin cada da a las 5:32:47": Se debe indicar:Tipo de peticin = 3 (No de funcin en AKKU-2-L = 1) Segundos = 47 Minutos = 32 Horas = 05 4. "Peticin cada semana, los martes a las 10:50:0OW: Se debe indicar:Tipo de peticin = 4 (No de funcin en AKKU-2-L = 1) Segundos = O0 Minutos = 50 Horas = 10 Da semana = O1 5. "Peticin cada mes, el 14. a las 7:30:15": Se debe indicar:Tipo de peticin = 5 (No de funcin en AKKU-2-L = 1) Segundos = 15 Minutos = 30 Horas = 07 Da del mes = 14 6. "Peticin cada ao, el 1.5. a las 00:01:45": Se debe indicar:Tipo de peticin = 6 (No de funcin en AKKU-2-L = 1) Segundos = 45 Minutos = O1 Horas = O0 Da del mes = O1 Cont i na en l a pgi na s i g u i e n t e Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 7. "Pet i ci n una s ol a vez, e l 31.12.1999 a l a s 23:55:0OW: Se debe i ndi car : Ti po de pet i ci n = 7 (No de funci n en AKKU-2-L = 1) Segundos = O0 Minutos = 55 Horas = 23 Da de l mes = 31 8. "Anular pet i ci n": Se debe i ndi car : Ti po de pet i ci n = O (No de funci n en AKKU-2-L = 1) 9. "Leer pet i ci n": Se debe indicar:NQ de funci n en AKKU-2-L = 2 S i no e s t act i vada ninguna pet i ci n, en e l campo de dat os aparece e l r es ul t ado s i gui ent e: Pal abra de l campo de dat os O: FFFF H Pal abra de l campo de dat os 1: FFFF H Pal abra de l campo de dat os 2: FFFO H Pal abra de l campo de dat os 3: FFFF H Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.12 OB 152: Estadstica de ciclo Introduccin La CPU 928B permite recopilar una serie de datos estadsticos referentes a la duracin del ciclo (estadstica de ciclo). Mediante el OB 152 se puede inicializar la estadstica de ciclo, leer los datos de estadstica as como activar y desactivar la recopilacin de los datos estadsticos. Generalidades Los datos estadsticos comprenden la duracin del ciclo precedente, el tiempo transcurrido en el ciclo actual desde el ltimo lmite de ciclo, el tiempo de ciclo mnimo y mximo desde que se inicializ por ltima vez la estadstica de ciclo, la cantidad de ciclos registrados en la estadstica desde que se inicializ por ltima vez la estadstica de ciclo, el tiempo medio de ciclo: para evaluar el tiempo medio de ciclo se utilizan como mximo los ltimos 256 ciclos registrados estadsticamente. Nota En la estadstica de ciclo solamente se registran ciclos "normales". No se registran cuando el tiempo de ciclo actual ha sido falsificado, por ejemplo, por un NUEVO ARRANQUE. As se evita que estos acontecimientos inoportunos falsifiquen la estadstica de ciclo. Los tiempos de ciclo superiores a 167 segundos ocasionan entradas errneas. Activar/desactivar Despus de un NUEVO ARRANQUE (automtico o manual) la funcin de la estadstica estadstica siempre estar desactivada y los datos estadsticos estarn borrados (la estadstica de ciclo est inicializada). Un REARRANQUE (automtico o manual) no modifica ni el estado de la estadstica ni los datos estadsticos. La funcin de estadstica puede activarse en el estado operativo ARRANQUE o RUN mediante el OB 152. Una vez activada la funcin de estadstica mediante el OB 152 se actualizan los datos estadsticos en cada lmite de ciclo. A partir de entonces pueden leerse llamando al OB 152. Si ya no se requiere la funcin de estadstica puede desactivarse en el estado operativo ARRANQUE o RUN mediante el OB 152. De este modo se evita una sobrecarga del tiempo de ciclo debida a la actualizacin de los datos estadsticos en cada lmite de ciclo. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Datos estadsticos La estadstica de ciclo puede inicializarse asimismo a travs del OB 152 en el ARRANQUE y en RUN. Es conveniente inicializar la estadstica por ej. tras evaluar los datos estadsticos (y en ocasiones en funcin del estado del contador de ciclos). Los datos estadsticos se leen de forma directa como magnitudes individuales o bien se calculan durante la llamada al OB 152. Se transfieren al AKKU-1-L o al AKKU-2-L desde el OB 152. Llamando al OB 152 se pueden averiguar los siguientes valores estadsticos: Tabla 6-5 Valores estadsticos del ciclo - OB 152 ') vase "Clculo del valor medio" ') - La unidad de los nmeros de funcin 1 , 2 y 3 es milisegundos y el margen abarca de O a OFFFFH (en la palabra baja de los acumuladores). - La unidad de los nmeros de funcin 5, 6 y 7 es 10 ms y el margen abarca de O a OFF FFFFH (en las palabras alta y baja de los acumuladores). Valor estadstico AKTZYK LASTZYK MINZYK MAXCYC MmTEL WERT ZYKLUS- ZAHLER 10- ps- ZAHLER 3, El contador de lOps (10-ps- ZmLER) se representa como valor hexadecimal de 8 cifras en las palabras alta y baja del AKKU 1. Clculo del valor El valor medio se calcula mediante el OB 152 segn el algoritmo siguiente: medio En una memoria intermedia y circulatoria del sistema se registra el valor de LASTZYK (ltimo ciclo) cada vez que se actualizan los datos estadsticos. Esta memoria puede almacenar como mximo 256 valores. Una vez llena se pierde el primer valor registrado quedando almacenado el ltimo. Cada vez que se actualizan los datos se genera asimismo la suma de los valores LASTZYK registrados en la memoria intermedia, de manera que contenga siempre los valores LASTZYK ms recientes (mximo 256). Significado Tiempo transcurrido en el ciclo actual Duracin del ltimo ciclo procesado Duracin del ciclo ms corto desde la ltima inicializacin de la estadstica Duracin del ciclo ms largo desde la ltima inicializacin de la estadstica Valor medio de los tiempos de ciclo de los ltimos ciclos procesados - mximo 256 ') Cantidad de ciclos registrados desde la ltima inicializacin de la estadstica. Contador permanente Al llamar al OB 152 se genera el valor medio dividiendo la suma entre la cantidad de valores registrados en la memoria intermedia. Esto significa que el valor medio se genera casi siempre a partir de los valores LASTZYK de los ltimos 256 ciclos. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Formato Nmero en coma fija Unidad 2) Cantidad de ciclos 10 ps Margen 2) O a OFFEEH 3 Funciones es~eciales intearadas Funciones Al llamar al OB 152 se pueden activar las siguientes funciones individuales mediante el n q e funcin correspondiente: Tabla 6-6 Funciones del OB 152 Parmetros Resultado AKKU-1-L El AKKU-1-L contiene el n q e funcin; debe tener la siguiente estructura: Bit nQ N q e funcin, valores admisibles: vase tabla 6-5 15 4 O LOS bits 4 a 15 deben estar a 'O'! 3 O nQ de funcin Despus de llamar al OB 152 los indicadores OS, OR y ERAB = 'O', el VKE (resultado lgico o de combinacin) tambin = 'O', exceptuando los casos expuestos a continuacin. Adems se transfieren a AKKU-1-L y AKKU-2-L los valores estadsticos que requieren algunas funciones (vase tabla siguiente). Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Tabla 6-7 Resultados de las funciones del OB 152 l) Debido a NUEVO ARRANQUE Funcin Desactivar estadstica de ciclo Leer AKTZYK / LASTZYK Leer MINZYK / MAXZYK Leer MllTELWERT (valor medio) / ZYKLUS-&LER (contador de ciclos) Inicializar estadstica de ciclo 10-ps-Zahler (contador de 10 ps) Activar estadstica de ciclo ' ) Si al leer el contador de ciclos el VKE = 'l', al mismo tiempo que se transmite el indicador se borra una marca del sistema para el desbordamiento del ciclo. Esta marca se activar nuevamente cuando se vuelva a desbordar el contador. 3, En las funciones 1, 2 y 3, en la palabra baja de los acumuladores. En las funciones 5, 6, 7 y 9, en las palabras alta y baja de los acumuladores. Resultados Errores AKKU-1-L Se produce un error cuando se transmite un n q e funcin incorrecto al AKKU-1-L (slo valen los nmeros de O a 3 , 8 y 15). En caso de error se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado la CPU pasa al estado STOP. AKKU-2-L En ambos casos se registra en el AKKU-1-L la identificacin de error 1A4EH y en el AKKU-2-L la identificacin de error 0001H. Significado de " VKE = 1 " Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 - AKTZYK incorrecto, los datos del ciclo actual no se recogen en la estadstica. ') o bien Resultado demasiado grande para la funcin 1 (> FFFFH); FFFFH se suministra como valor de sustitucin. Resultado demasiado grande para la funcin 2 (> FFFFH); FFFFH se suministra como valor de sustitucin. Desbordamiento ZYKLUS- z~LER 2, O bien Resultado demasiado grande para la funcin 3 (> FFFFH); FFFFH se suministra como valor de sustitucin. - - - inalterados AKTZYK. 3) MINZYK 3) Ml'ITEL WERT 3) LASTZYK 3, MAXZYK 3, ZYKLUS- Z&LER 3, inalterados 10-ys-Zahler - inalterados Funciones es~eciales intearadas Particularidades A continuacin se indican algunas particularidades a tener en cuenta, referentes al comportamiento del OB 152 en caso de NUEVO ARRANQUE, ARRANQUE o bien cuando tienen lugar determinados acontecimientos. Comportamiento tras NUEVO ARRANQUE Al efectuar un NUEVO ARRANQUE se inicializan los datos estadsticos. Llamando al OB 152 durante el ciclo posterior al NUEVO ARRANQUE se vuelven a obtener los datos de inicializacin. La siguiente tabla muestra cmo el programa de sistema - inicializa los datos estadsticos tras un NUEVO ARRANQUE - los actualiza durante los primeros tres ciclos. NUEVO ARRANQUE programa de sistema inicia- programa de sistema actua- liza datos esta- liza datos esta- OB 20 le' ciclo dsticos dsticos OB 152: "activar estadstica" estadstica" porgrama de sistema actua- liza datos esta- 2"iclo dsticos 3er ciclo - - 1 OB 152: "leer estadstica" i OB 152: "leer estadstica" l) El valor de AKTZYK se toma del temporizador de supervisin de ciclo a travs del OB 152. Por ello, ya se dispone de este valor a partir del primer ciclo. AKTZYK l) LASTZYK MINZYK MAXZYK Ml'ITELW. ZYKL.-Z. ') Valor de inicializacin (= OWWH ms OFFWWH * 10 ps) Durante la inicializacin de los datos estadsticos, adems de los valores por defecto que muestra la tabla, se borra la memoria intermedia y circulatoria del sistema (que sirve para generar el valor medio) y se rearma una marca interna para el desbordamiento del contador de ciclos. O 2) O O O Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 O 2) O O O AKTzyK (1.) O 2, O O O Tiempo cic.(i,) Tiempo cic.(i,) Tiempo cic.(i,) Tiempo cic.(i,) 1 AKTZYK (2.1 Tiempo cic.(i,) Tiempo cic.(i,) Tiempo cic.(i,) Tiempo cic.(i,) 1 Tiempo cic.(2.) T. cic. min. T. cic. mx. T. cic. med. 2 AKTZYK (3,) Tiempo cic.(2.) T. cic. min. T. cic. mx. T. cic. med. 2 Funciones es~eciales intearadas Llamada al OB 152 desde un OB de arranque Llamando al OB 152 para leer los datos estadsticos se obtienen en AKKU-1-L y AKKU-2-L los siguientes valores (columnas grises), dependiendo del tipo de arranque: NUEVO programa de ARRANQUE sistema inicia- liza datos esta- OB 20 dsticos OB 152: estadstica" estadstica" AKTZYK LASTZYK MINZYK O MAXZYK REARRANQUE en ciclo n OB 21/22 I I I 1) Ml'ITELW. ZYKL.-Z. 4 OB 152: "leer estadstica" 1 O I I I o O O 1) O O Valor de inicializacin (= OWWH ms OFFWWH * 10 ps) AKTZYK LASTZYK MINZYK MAXZYK Ml'ITELW. ZYKL.-Z. 1) o Inicializar los datos estadsticos mediante llamada al OB 152 O Tiempo cic.(,.i) incl. cic.(,.l) incl. cic.(,.l) incl. cic.(,-l) n - 1 o O O La siguiente tabla muestra cmo quedan modificados los datos estadsticos al inicializarlos y llamar al OB 152 en el CICLO. Las columnas grises contienen los valores transferidos al leer los datos estadsticos. O O ciclo 1- (n-1) - 1 Actualizar Actualizar AKTZYK LASTZYK MINZYK - r T 7 1 m T AKTZYK (,.i) Tiempo cic.(,.2) MAXZYK Valor de inicializacin (= OWWH ms OFFWWH * 10 ps) OB 152: "leer estadstica" I I I I I I I incl. cic.fn.2) Ml'ITELW. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Tiempo cic.(n-1) I I I I I I I incl. cic.(,.z) OB 152: OB 152: OB 152: "leer "inicializar "leer estadstica" estadstica" estadstica" incl. cic.(n-1) l I l I I I I incl. cit.(,-2) OB 152: "leer estadstica" AKTZY K (n) Tiempo cic.(,.i) incl. cic.(n-1) incl. cic.(,.l) incl. cic.(n-1) O incl. cit.(,-1) 1) incl. cic.(,-l) T O O 1) O no O AKTZYK (n+l) O no O 1) no O no O Funciones es~eciales intearadas Durante la inicializacin de los datos estadsticos, adems de los valores por defecto que muestra la tabla, se borra la memoria intermedia y circulatoria del sistema (que sirve para generar el valor medio) y se rearma una marca interna para el desbordamiento del contador de ciclos. Tras inicializar los datos estadsticos mediante llamada al OB 152 el programa de sistema actualiza los datos slo al final del ciclo siguiente a la inicializacin! Llamada al OB 152 y estadstica de ciclo desactivada Si la estadstica de ciclo se desactiva debido a una llamada al OB 152, se mantienen los datos estadsticos de la ltima actualizacin. Llamando despus al OB 152 para leer los datos se obtienen los datos de la ltima actualizacin efectuada antes de la desconexin. Si se leen los datos estadsticos despus de efectuar un NUEVO ARRANQUE sin haber activado la estadstica de ciclo llamando al OB 152, el OB 152 mostrar los datos de inicializacin. Falsificacin de Cuando tiene lugar un NUEVO ARRANQUE, el tiempo de ciclo actual no puede los datos ser registrado con normalidad, lo que conduce a valores errneos. En tal caso no estadsticos se actualizan los datos estadsticos del ciclo en cuestin. l) El valor de AKTZYK corresponde al tiempo T que ha transcurrido en el ciclo actual desde que tuvo lugar el "fallo". A fin de identificar este caso, adems de los valores que se transfieren al AKKU-1-L y al AKKU-2-L, se pone el VKE = '1'. Ciclo Intermpcin ARRANQUE "leer estadstica" 1 Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 AKTZYK LASTZYK M INZYK MAXZYK MlTELW. ZYKL.-Z. AKTZYK (n.1) Tiempo cic.(,g incl. cic.(,.z) incl. cic.(,.g incl. cic.(,.2) n-2 Tiempo cic.(n-1) incl. cic.(n-1) incl. cic.(n-1) incl. cic.(n-1) n-1 1) Tiempo cic. (u-1) Tiempo cic. (,i) Tiempo cic. (-1) Tiempo cic. (u-1) n-1 no no no no no AKTZYK (,ti) mempo cic.(n-1) inci. cic.(n-1) inci. cic.(n-1) inci. cic.(n-1) n-1 Funciones es~eciales intearadas 6.13 OB 153: Ajustarlleer la hora para la alarma de retardo Introduccin Mediante el OB 153 se pueden transferir al programa de sistema las as llamadas "peticiones de retardo". El efecto que producen estas peticiones es que, una vez transcurrido un tiempo de retardo establecido, se procesa una "alarma de retardo" (vase OB 6, captulo 4.5). Funcin Mediante una llamada al OB 153 se puede definir y arrancar un tiempo de retardo, detener un tiempo de retardo activado (anular una peticin de retardo), leer el tiempo restante actual de un tiempo de retardo activado. Las peticiones de retardo se pueden dictar en los estados operativos ARRANQUE y RUN mediante el OB 153. Vigencia de una Sin embargo, una alarma de retardo que ha sido activada mediante una peticin peticin de de retardo slo es activada por el programa de sistema en el modo RUN retardo (llamada al OB 6). Las peticiones cuyo vencimiento no tenga lugar en modo RUN, son rechazadas por el programa de sistema sin aviso previo. Tambin se rechaza una peticin en curso (an no vencida) cuando la CPU pasa a STOP y en caso de DESCONEXION. Parmetros Acumuladores Tiempo de retardo en milisegundos (mx. 65535) valores admisibles: OOOlH a FFFFH El AKKU-2-L solamente deber ser alimentado al llamar al OB 153 para la funcin "definir tiempo de retardo" ( n q e funcin 1). En las restantes funciones del OB 153 no se evala el contenido del AKKU-2-L. N q e 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 Nota Si al definir un tiempo de retardo an no ha transcurrido un tiempo de retardo definido con anterioridad, entonces ste ltimo es "olvidado" y se arranca el nuevo tiempo de retardo. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Resultado Si el OB 153 ha sido correctamente procesado, los bits indicadores OR, ERAB y OS = o. Si se llama al OB 153 con el n v e funcin '3', el AKKU-1-L contiene el tiempo restante en milisegundos. Si al llamar al OB 153 con el n q e funcin '2' '3' no hay ninguna peticin de retardo activada, entonces el AKKU-1-L contiene el valor 'O'. Errores Pueden ocurrir los errores indicados en la siguiente tabla. Se llama al OB 31 (otros errores en tiempo de ejecucin). Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos se depositan identificaciones de error en AKKU-1-L y AKKU-2-L (vase tabla siguiente). Tabla 6-8 Identificaciones de error del OB 153 Significado 1 ~ A ~ E H OOOlH NQ de funcin = O > 3 1 1 O002H 1 Tiempo de retardo no vlido Ejemplos En el REARRANQUE AUTOMATICO debe ejecutarse una sola vez y transcurridos 5 segundos, una secuencia de operaciones STEP 5. El tiempo de retardo se define y arranca en el mdulo de organizacin de arranque OB 22. Operaciones STEP 5 depositadas en el OB 22 para llamar al OB 153: :L KF +5000 Valor para AKKU-2-L: 5000 ms :L KF +1 Valor para AKKU-1-L: nQ de funcin = 1 para "definir y arrancar tiempo de retardo" :SPA OB 153 Llamar al OB 153 Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Operaciones STEP 5 para llamar al OB 153: :L KF +2 :SPA OB 153 Valor para AKKU-1-L: nQ de funcin = 2 para "detener el tiempo de retardo" Llamar al OB 153 Operaciones STEP 5 para llamar al OB 153: :L KF +3 Valor para AKKU-1-L: nQ de funcin = 3 para "leer el tiempo restante" :SPA OB 153 Llamar al OB 153 El AKKU-1-L contiene el tiempo restante de la peticin de retardo Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.1 4 OB 160 a 163: Bucles contadores Introduccin Estos mdulos de organizacin de funciones especiales permiten realizar bucles de programa con tiempos de ejecucin muy favorables. Funcin Los cuatro mdulos de organizacin OB 160, OB 161, OB 162 y OB 163 permiten anidar hasta cuatro bucles. De este modo pueden utilizarse cuatro distintos bucles contadores en las palabras de datos de sistema BS 60 a 63. A cada uno de los cuatro OBs se le ha asignado una determinada palabra de datos de sistema: Programar el bucle Parmetros Resultado Hay que transferir a una de las palabras de datos de sistema la cantidad de veces que deba ejecutarse el bucle. Si a continuacin se llama al correspondiente OB de funciones especiales, el contador de bucles de la palabra de datos de sistema disminuye en 1. El bucle se ejecuta tantas veces hasta que el contador de bucles contenga el valor cero. Nota Si el contador de bucles ya contiene el valor cero antes de llamar al OB de funciones especiales tambin disminuir en uno: jse ejecutarn 65 536 bucles! Palabras de datos de sistema BS 60 a 63 Contador de bucles, valores admisibles: O a 65 535 decimal ( 0 a FFFFH) Contador de bucles en la palabra de datos de sistema > O: se activa el VKE (VKE = 1). Contador de bucles en la palabra de datos de sistema = 0: se borra el VKE (VKE = 0). Los restantes indicadores de bit y de palabra siempre se borran. No se modifican ni evalan los acumuladores. De este modo quedan disponibles al comenzar el siguiente bucle y no har falta cargarlos. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Errores ninguno Ejemplo La palabra de marcas x contiene la cantidad deseada de bucles a ejecutar. Inicializar bucle :L K B O :L MW x Contador de bucles :SPB =M002 :T BS 62 Transferir contador de bucles a la palabra de datos de sistema "Programa bucle": Administrar bucle: :SPA OB 162 Bucle contador :SPB =M001 En el captulo 9.2 "TNW y TNB: transferir bloques de memoria" encontrar otro ejemplo. Instrucciones de programcin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.15 OB 170: Leer pila de mdulos (BSTACK) Introduccin En la pila de mdulos se encuentran registrados, partiendo del OB 1 o FB O, todos los mdulos que han sido llamados sucesivamente y cuya ejecucin an no ha finalizado. Funcin Parmetros Con el mdulo de organizacin de funciones especiales OB 170 se pueden leer en un mdulo de datos los datos registrados en la pila BSTACK. De este modo se averigua la cantidad de datos existentes en BSTACK y, por consiguiente, la reserva que queda disponible para otros datos. Por cada registro se obtiene la direccin de retroceso correspondiente (contador de direcciones STEP = SAZ), la direccin inicial absoluta (DBA) del mdulo de datos vlido en este mdulo, as como su longitud (cantidad de palabras de datos = DBL). Nota Antes de llamar al OB 170 hay que abrir un mdulo de datos que tenga una longitud suficiente @B o DX). Por cada dato registrado en la pila BSTACK se requieren cuatro palabras de datos. Acumuladores Nmero de la palabra de datos (DW n) a partir de la cual se van a depositar los datos en el DB abierto (offset) cantidad deseada de elementos BSTACK, valores admisibles: 1 a 62 Ejemplo: Si el AKKU-1-L contiene el valor '1', se obtiene el ltimo dato registrado de la pila BSTACK; si contiene un '2' se obtiene el ltimo y el penltimo, etc. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Resultado Despus del procesamiento correcto del OB 170 en el AKKU-2-L sigue encontrndose el offset en el mdulo de datos, en el AKKU-1-L se encuentra la cantidad efectiva de elementos BSTACK representados l), se borra el VKE, pueden evaluarse los indicadores de resultados ANZ O y ANZ 1, estarn borrados los restantes indicadores de bit y de palabra. valores posibles: O a 62, siendo la cantidad representada S la cantidad deseada O = "no hay datos registrados BSTACK" o "error" (imultiplicando el contenido del AKKU-1-L por 4 se obtiene la cantidad de palabras de datos escritas en el DB llamado!) Alteracin de los indicadores de resultado VKE, ANZ1 yANZO Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado cantidad existente de elementos BSTACK c cantidad deseada cantidad existente de elementos BSTACK = cantidad deseada cantidad existente de elementos BSTACK > cantidad deseada error Consulta con SPM SPZ SPP SPB ANZ O 1 O O 1 VKE O O O 1 ANZ 1 O O 1 1 Funciones es~eciales intearadas Registrar los elementos BSTACK en el En caso de llamar al OB 170 el contenido del BSTACK se deposita en el mdulo de datos llamado de la siguiente manera (vase tambin fig. 6-3) : mdulo de datos A = nmero del elemento BSTACK (62 a 1) abierto (al visualizar el ltimo elemento BSTACK ya se puede averiguar la reserva como se indica: A = 17Reserva = A - 1 = 16) B = profundidad del elemento BSTACK (1 a 62) Cabeza de mdul o F l j f Regi st r os ant er i or es del BSTACK Fig. 6-3 Almacenamiento de los registros BSTACK en un mdulo de datos Of f set + DW n DW n t l DW n t 2 DW n t 3 DW n t 4 DW n t 5 DW n t 6 DW n t 7 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 A B 7 1 J ) Ul t i mo r egi st r o BSTACK ( B = 1) > Penl t i mo r egi st r o BSTACK ( B = 2) SAZ D BA Longi t ud A B SAZ D BA Longi t ud Funciones es~eciales intearadas Errores Pueden presentarse los siguientes errores: ningn mdulo de datos abierto, mdulo de datos abierto no existe o no es lo suficientemente largo para acoger la cantidad deseada de datos registrados BSTACK, parmetros no vlidos en AKKU 1 y AKKU 2. En caso de error se activa el VKE as como los indicadores de resultados ANZ O y ANZ 1 (VKE, ANZ O y ANZ 1 = 1); se borran los restantes indicadores de bit y de palabra. El contenido del AKKU-1-L se pone a 'O'. Ejemplo :AX DX 10 Abrir DX 10 :L KY 0,16 Depositar registros BSTACK a partir de DW 16 :L KY 0,3 Se desean los 3 tltimos registros de BSTACK : SPAOB 170 En el BSTACK se han registrado 6 mdulos: BSTACK Profundidad 1 (ltimo registro BSTACK) (primer registro BSTACK) Fig. 6-4 Ocupacin del BSTACK, ejemplo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Despus de la llamada al OB 170, la ocupacin del DX 10 es la siguiente: Of f set +DW 16 Pr of undi dad 1 Pr of undi dad 2 Pr of undi dad 3 AKKU- 2- L = 16 (of f set ) AKKU- 1- L = 3 ( cant i dad de el ement os en DX 10) (l a cant i dad de el ement os del BSTACK es mayor que l a cant i dad de el ement os deseados) Fig. 6-5 Ocupacin del DX 10 despus de llamar al OB 170, ejemplo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.1 6 OB 180: Acceso variable a mdulos de datos Funcin Con el OB 180 se desplaza la direccin inicial del mdulo de datos actual en un valor preestablecido, tenindose en cuenta que la longitud an disponible del mdulo de datos queda reducida (los valores de los registros DBA y DBL cambian conforme al desplazamiento). Nota Antes de llamar al OB 180 tiene que estar abierto un mdulo de datos que sea suficientemente largo (DB o DX). Registros DBA- DBL Al abrir un mdulo de datos con las operaciones A DB y AX DX se carga el registro 'DBA'(direccin inicial del mdulo de datos) con la direccin de la palabra de datos DW O que est depositada en el DB O. Los accesos a mdulos de datos, con operaciones como L DR 60 o B DW 240 etc., siempre se ejecutan de manera relativa a la direccin inicial del mdulo. Adems del registro DBA, cada vez que se llama a un mdulo de datos se carga el registro 'DBL'(1ongitud de mdulo de datos): contiene la longitud (en palabras) del mdulo de datos DB o DX que ha sido abierto, sin contar la cabeza del mdulo. Nota En el registro DBL puede estar registrada una longitud mxima de 4091 palabras de datos! Los accesos STEP 5 a palabras de datos solamente se pueden efectuar hasta el nmero de palabra de datos 255. 1 registro DBA contiene la direccin de la palabra de emoria en la que se encuentra depositada la DW O del B 17: DBA = 151BH. n el registro DBL se encuentra la cantidad de palabras e datos: DBL = 8 (DW O a DW 7). a que el acceso a palabras de datos por medio de las peraciones STEP 5 L DW, U D, B DW, etc. siempre es elativo al DBA, para acceder por ejemplo a la DW 3, se una 3 a 151BH. Con la direccin 151EH se accede a la alabra de datos DW 3. ediante el registro DBL se comprueba si se ha presentado n error de transferencia o de carga. Asi por ejemplo, DW 7 est permitida, pero T DW 8 o L DW 8 son errneas. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Aplicacin del El OB 180 de funciones especiales permite acceder a datos estructurados en un OB 180 mdulo de datos abierto. Esto se consigue desplazando la direccin inicial del mdulo de datos, depositada en el registro DBA, hacia el final del mdulo mediante el OB 180. Al mismo tiempo que se desplaza la direccin inicial, el OB reduce de forma correspondiente la longitud depositada en el registro DBL. Esto ocurre para que la CPU, en accesos posteriores al mdulo de datos, pueda efectuar la supervisin en caso de operaciones de carga y transferencia. Operaciones con mdulos de datos de una longitud superior a 261 palabras (5 palabras de cabeza): el OB 180 permite desplazar a discrecin una "ventana de acceso" de 256 palabras de datos a travs de un mdulo de datos. Aplicacin en caso de estructuras de datos: Un mdulo de datos puede estar dividido en varios lotes de datos de igual longitud y disposicin que los datos contenidos en l. En este caso se habla de una estructuracin del mdulo de datos. Un mdulo de datos as estructurado puede contener, por ejemplo, los datos de varios procesos parciales, siendo la primera palabra de datos un valor de temperatura, la segunda uno de presin, y en las dems palabras de datos, otros valores de medicin del proceso parcial. El OB 180 permite acceder con las mismas operaciones (p. ej.: L DD, S D, T DR etc.) a los datos de cada uno de estos procesos parciales, cargando cada vez el registro DBA con la direccin inicial para los datos del proceso parcial. Al contrario que en otros mecanismos de sustitucin (sustitucin = parametrizacin con ndices), con este procedimiento se obtienen programas STEP 5 ms simples y con tiempos de ejecucin ms favorables. Parmetros Resultado Corrimiento (cantidad de palabras de datos en que debe correrse la direccin inicial del mdulo), valores admisibles: O AKKU-1-L e DBL Despus de llamar con xito al OB 180 el valor del registro DBA (= direccin de la DW O) aumenta en el valor del AKKU-1-L, el valor del registro DBL disminuye en el valor del AKKU-1-L, se borra el VKE (VKE = O), se borran los restantes indicadores de bit y de palabra. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Errores Pueden presentarse los siguientes errores: longitud negativa, ningn mdulo de datos abierto, contenido del AKKU-1-L z DBL. En caso de error (contenido del AKKU-1-L 6 DBL) no se alteran los registros DBA y DBL. Se activa el VKE (VKE = 1) y se borran los restantes indicadores de bit y de palabra. Si el registro DBL contiene el valor 'O' el OB 180 detecta que no hay ningn mdulo de datos abierto. Se activa el VKE (VKE = 1) sealizando un error. Rearmar DBA y Abriendo nuevamente el mdulo de datos con las operaciones A DB o AX DX se DBL al valor recupera el estado inicial. inicial Ejemplo dos palabras de datos en el DB 17 (DBL = 8). :A DB 17 DB 17 abierto :L KB 2 Desplazamiento / corrimiento como constante :SPA OB 180 Llamar al OB 180: se adaptan DBA y DBL Despus de llamar al OB 180 ya no se puede, por ejemplo, llamar a la palabra de datos registrada en la direccin 1520H con DW 5, sino con DW 3, etc. (vase fig. 6-6). Cont i na e n l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Fig. 6-6 Desplazamiento de la direccin inicial DB Gracias a la modificacin simultnea de los registros DBL, queda garantizada la supervisin de errores: la operacin T DW 5 est permitida, mientras que T DW 6/ L DW 6 son errneas. Mediante reiteradas llamadas al OB 180, el DBA puede volver a ser aumentado (el DBL sigue disminuyendo): la operacin A DB 17 recupera el estado inicial (DBA = 151BH, DBL = 8). Si, por ejemplo, el DB 17 tuviera una longitud de 258 palabras de datos, con las operaciones STEP 5 ya no se podria acceder a las DW 256 y DW 257. Desplazando el DBA dos valores se puede acceder a las palabras de datos 256 y 257 con "DW 254" y "DW 255". (En cuanto al registro DBA/DBL, vase tambin capitulo 9) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.17 OB 181: Comprobar mdulos de datos (DBIDX) Introduccin El mdulo de organizacin de funciones especiales OB 181 permite comprobar, si existe un determinado mdulo de datos DB o DX, en qu direccin est registrada la primera palabra del mdulo de datos, cuntas palabras de datos contiene el mdulo de datos en cuestin, el tipo y la zona de memoria utilizados. Aplicacin del Conviene utilizar la funcin "comprobar DBDX" antes de las instrucciones OB 181 TNBITNW, 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, se puede llamar al OB 181 antes de una transferencia en bloque de palabras de datos, para cerciorarse de que el mdulo de datos de destino sea vlido y lo suficientemente largo para acoger todas las palabras de datos que han de ser copiadas. Funcin Parmetros Resultado El OB 181 comprueba si existe el mdulo de datos indicado y da como resultado los parmetros caractersticos del mdulo de datos. nmero de mdulo, valores admisibles: 1 a 255 identificacin del mdulo, valores admisibles: 1 = D B 2 = DX El mdulo comprobado se encuentra en la CPU: - AKKU-1-L: direccin de la l val abr a de datos (DW O), - AKKU-2-L: longitud del mdulo de datos en palabras (sin cabeza) Ejemplo: el AKKU-2-L contiene el valor '7': el mdulo de datos consta de las palabras de datos DWOaDW6, - VKE: = O, Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas - ANZ l/ANZO: se alteran conforme a la posicin del mdulo (vase tabla siguiente), - dems indicadores de bit y de palabra: se borran. El mdulo comprobado no se encuentra en la CPU o ha ocurrido un error: - AKKU l y 2 : no se modifican, - VKE: = 1, - ANZ l/ANZO: = 1, - dems indicadores de bit y de palabra: se borran. VKE, ANZ 1, De acuerdo con el resultado de la comprobacin se activan los siguientes ANZ O indicadores, los cuales pueden ser evaluados mediante las operaciones que figuran en la columna "consulta": Errores VKE O O O 1 Ejemplos Pueden presentarse los siguientes errores: ANZ 1 O O 1 1 nmero de mdulo errneo (no vlido: O - DB O o DX O), identificacin de mdulo errnea (vlida: 1 = DB, 2 = DX; no vlida: 0, entre 3 y 255), ANZ O 1 O O 1 error de memoria. V. captulos 8.3, 9.2 y 9.3 Consulta SPM SPZ SPP SPB Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado DB/DX en la memoria de usuario DB/DX en DB-FMM DB/DX no existe o error DB/DX en modo EPROM (slo lectura) DB/DX en modo FMM (lectura y escritura) DB/DX existe Funciones es~eciales intearadas 6.18 OB 182: Copiar zona de datos Funcin El OB 182 copia un bloque de datos de longitud variable de un mdulo de datos a otro. Como mdulos fuente y destino pueden utilizarse mdulos DB y DX. El inicio del bloque puede ser seleccionado a voluntad, tanto en el mdulo de datos fuente como destino. El OB 182 puede copiar un mximo de 4091 palabras de datos. Contiene pseudolmites de instrucciones. Parmetros Bit nQ 1"alab. 2"alab. 3"alab. 4"alab. 5"alab. Nota Los mdulos fuente y destino pueden ser idnticos. Las zonas de datos fuente y destino pueden solaparse. Los datos originales de la zona fuente se copian en la zona destino sin ser modificados, incluso en caso de solaparse. Despus del proceso de copia, la zona de interseccin de la fuente (zona solapada) queda sobreescrita. Esta caracterstica de la funcin puede utilizarse para desplazar una zona de datos dentro de un mdulo. 1. Campo de datos con parmetros de copia Antes de llamar al OB 182 hay que darle a un campo de datos los parmetros necesarios para el proceso de copia deseado. Este campo de datos puede crearse en un mdulo de datos DB o DX, en la zona de marcas M o S. El campo de datos define los mdulo de datos fuente y destino, la direccin inicial del bloque de ambos mdulos as como la cantidad de palabras de datos a transferir. El campo consta de cinco palabras: Significado de los parmetros y campos admisibles: 15 8 Tipo de DB fuente 7 O NVe DB fuente Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Parmetros Tipo de mdulo de datos (fuente y destino) NVe mdulo de datos (fuente y destino) NVe la l val abra de datos (fuente y destino) Cantidad de palabras de datos NVe la l val abra de datos a transferir en el DB fuente Campo de datos admisible 1 = DB, 2 = DX 3 a 255 O a 4090 1 a 4091 Tipo de DB destino NVe DB destino NVe la l val abra de datos a transferir en el DB destino Cantidad de palabras de datos Funciones es~eciales intearadas Cam~o de datos en la zona de marcas; Si se crea el campo de datos en una zona de marcas hay que tener en cuenta la siguiente asignacin de las palabras de datos a los bytes de marcas. X es el parmetro " NVe la l val abr a del campo de datos" que debe ser depositado en el AKKU-1-L al llamar de OB 182: Bit nQ 1"al. campo dat. 29a l . campo dat. 3"al. campo dat. 4"al. campo dat. 5"al. campo dat. 2. Acumuladores AKKU-2-L 15 8 byte de marcas x byte de marcas xt 2 byte de marcas xt 4 byte de marcas xt 6 byte de marcas xt 8 El AKKU-2-L contiene indicaciones sobre el campo de datos utilizado. Debe tener la siguiente estructura: 7 O byte de marcas x t l byte de marcas xt 3 byte de marcas xt 5 byte de marcas xt 7 byte de marcas xt 9 Bit nQ Parmetros en el AKKU-2-L 15 8 Tipo de zona de direcciones 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 7 O NVel mdulo de datos NVel mdulo de datos, valores admisibles: 3 a 255 (slo si el tipo de zona de direcciones es '1' '2'; si el tipo de zona de direcciones es '3' '4' no es significativo) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Resultado Errores NVe la l val abr a del campo de datos, valores admisibles (dependiendo del tipo de zona de direcciones): DB, DX: O a 2043 Marcas M: O a 246 (= n v e byte marcas 'x') Marcas S O a 1014 (= n v e byte marcas 'x') Despus de procesar correctamente el OB 182, los bits indicadores OR, ERAB y OS = O. Todos los dems bits indicadores, as como AKKU 1 y AKKU 2 permanecen inalterados. En caso de error se llama al OB 19 u OB 31. Si los OB 19 y OB 31 no estn cargados, la CPU pasa al estado STOP. En ambos casos de depositan identificadores de error en AKKU-1-L y AKKU-2-L (vase la siguiente tabla). Tabla 6-9 Identificadores de error del OB 182 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 AKKU-1-L 1A06H 1A34H AKU-2-L - OOOlH OlOOH OlOlH 0102H 0200H 0201H 0202H 0203H 0210H 0211H 0212H 0213H 0220H 0221H 0222H 0223H Significado Mdulo no cargado Definicin errnea del campo de datos Tipo de zona de direcciones no valido NVel mdulo de datos no vlido "Nmero de la l val abra del campo de datos" no vlido "Tipo del mdulo de datos fuente" no vlido "NWel mdulo de datos fuente" no vlido "NWe la 1"alabra de datos a transferir en el DB fuente" no vlido Longitud del mdulo de datos fuente en la cabeza < 5 palabras "Tipo del mdulo de datos destino" no vlido "NWel mdulo de datos destino" no vlido "NWe la 1"alabra de datos a escribir en el DB destino" no vlido Longitud del mdulo de datos destino en la cabeza e 5 palabras "Cantidad de palabras a transferir" no vlida (= O > 4091) Mdulo de datos fuente demasiado corto Mdulo de datos destino demasiado corto Mdulo de datos destino protegido contra escritura (modo EPROM) OB llamado OB 19 OB 31 Funciones especiales integradas 6.19 OB 185 : Activar/desactivar la proteccin contra escritura Funcin Si utiliza una Memory Card y debe acceder ya en el OB 20 a los mdulos de datos, puede desactivar la proteccin contra escntura llamando al OB 185 en el OB 20. Aplicacin El OB 185 evala el bit O del AKKU 1 L y ajusta la proteccin contra escritura segn corresponda. Posteriormente transfiere el valor del bit O del AKKU 1 L al bit O del dato de sistema BS 138. Los dems bits del AKKU 1 L no se evalan. El OB 185 slo se ejecuta durante un nuevo arranque, es decir, en el OB 20. En los dems estados operativos, su llamada no tiene efecto alguno, por lo que tampoco causa ni un error ni una reaccin a un error. Parmetros Activar/desactivar la proteccin contra escritura Valores admisibles: Bit 0=0: Desactivar la proteccin contra escritura Bit 0=1: Activar la proteccin contra escritura Resultado EL OB 185 se pone a O en los indicadores de bit OR y /ERAB, as como en los indicadores de palabra OS. Estado de la Puesto que el OB 185 modifica al dato BS que es consultado al final del OB 20 proteccin nuevamente por el sistema, si el usuario cambia dicho dato directamente es contra escritura posible que la proteccin contra escritura se modifique tambin de forma accidental. Resumen CPU 928B en modo RAM sinptico Proteccin contra escritura desactivada: bit O del BS 138 = O Pila USTACK del PG: identificador de cartucho: RAM 32 KW Capacidad de memoria del PG: RAM hasta 07FFEH Direccin final de la memoria de usuario del PG: 08000H Todos los mdulos: "vlidos en la RAM" -> se pueden cargar, borrar y sobreescribir CPU928B en modo EPROM Proteccin contra escritura activada: bit O del BS 138 = 1 Pila USTACK del PG: identificador de cartucho: EPROM Capacidad de memoria del PG: RAM hasta OOOOOH Direccin final de la memoria de usuario del PG: OEEEEH Mdulos de cdigo y mdulos de datos no copiados en la DB-RAM: "vlidos en la EPROM" -> no se pueden cargar, borrar ni sobreescribir Mdulos de datos copiados en la DB-RAM: "vlidos en la RAM" -> se pueden cargar, borrar y sobreescribir Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.20 OB 186: Comprimir memoria Funcin Con el mdulo de organizacin OB 186 se puede comprimir la memoria y consultar o comprobar el estado de la funcin de compresin. La funcin del OB 186 equivale a la funcin del PG "Comprimir memoriau (v. captulo 11.2). Parmetros Resultado Nota Mientras la memoria se comprime mediante el OB 186, se rechaza la funcin del aparato de programacin "Comprimir memoria". Otras funciones del aparato de programacin slo se pueden ejecutar entonces de forma limitada. Al estar activadas las funciones del aparato de programacin se rechazar el OB 186. La funcin "Comprimir memoria" mediante el OB 186 toma bastante tiempo, por lo que el programa de sistema la reparte en varios ciclos. No se visualizan mensajes explcitos. No obstante, stos se pueden emitir llamando cclicamente al OB con el nmero de funcin 2. El OB 186 no llama a ningn OB de error. AKKU-1-L El AKKU 1 L contiene el nmero de funcin. Valores admisibles: 0001H: Iniciar la compresin 0002H: Consultar/comprobar el estado de la funcin de compresin EL OB 186 se pone a O en los indicadores de bit OS y /ERAB, as como en los indicadores de palabra OR. Si se llama al OB 186 se obtienen los siguientes resultados: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.21 OB 1901192: Transferir marcas a un mdulo de datos Aplicacin Los mdulos de organizacin OB 190 y OB 192 transfieren una cantidad de bytes de marcas determinada por el usuario en un mdulo de datos previsto para ello. Esto puede ser ventajoso, por ejemplo, antes de llamadas a mdulos, en mdulos de organizacin de errores o en caso de interrumpirse el procesamiento cclico del programa debido a un procesamiento controlado por tiempos o por alarmas. A continuacin, estos bytes de marcas pueden volver a ser escritos desde el mdulo de datos mediante los mdulos de organizacin OB 191 y OB 193. Nota Utilizar los OB 190 y OB 191 para rescatar y releer fcilmente los bytes de marcas, puesto que resulta muy ventajoso en cuanto al tiempo de ejecucin. Antes de llamar al OB 190/192 hay que abrir un mdulo de datos (DBDX)! Los OB 1901192 transfieren a un mdulo de datos solamente desde la zona de marcas M, y no desde la zona de marcas S. Funcin Despus de llamar al OB 1901192 se registran los bytes de marcas en el mdulo de datos abierto a partir de la direccin de la palabra de datos indicada. Los OB 1901192 extraen del AKKU 2 la zona de las marcas a rescatar. Los OB 190 y 192 son idnticos a excepcin de la forma en que transfieren los bytes de marcas: El OB 190 transfiere las marcas byte por byte. El OB 192 transfiere las marcas palabra por palabra. Esto es importante cuando los datos transferidos al mdulo de datos hayan de ser procesados posteriormente y cuando el mdulo de datos se use no solamente como memoria intermedia. La siguiente figura aclara esta diferencia: Copi ar mar cas con OB 190: Marcas - Mdul o de dat os Mdul o de dat os Fig. 6-7 Tranferencia byte por byte (OB 190) y palabra por palabra (OB 192) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Parmetros Resultado Errores Nota Si se transfiere una cantidad impar de bytes de marcas, solamente se usa la mitad de la ltima palabra de datos del mdulo utilizada . En el OB de destino queda inalterado el dato de la izquierda en el caso del OB 190 y el dato de la derecha en el caso del OB 192. 1. Indicaciones sobre la fuente de datos: AKKU-2-LH Primer byte de marcas a transferir, valores admisibles: O a 255 Ultimo byte de marcas a transferir, valores admisibles: O a 255 (;Ultimo byte de marcas z primer byte de marcas!) 2. Indicaciones sobre el destino AKKU-1-L Nmero de la primera palabra de datos a escribir en el mdulo de datos abierto: Los valores admisibles se basan en la longitud del mdulo de datos en la memoria: pueden aparecer nmeros > 255. Si se procesa correctamente el OB de funciones especiales 190/192 se borra el resultado lgico VKE (VKE = O). Los acumuladores permanecen inalterados. En caso de error se activa el VKE (VKE = l ), los acumuladores no se modifican. Pueden presentarse los siguientes errores: ningn mdulo de datos DB o DX abierto zona de marcas errnea (ltimo byte de marcas e primer byte de marcas) nmero de palabra de datos no existe. longitud del mdulo de datos DB o DX insuficiente Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.22 OB 1911193: Transferir bloques de datos a la zona de marcas Aplicacin Con los mdulos de organizacin OB 191 y OB 193 se transfieren datos de un mdulo de datos a la zona de marcas. As, por ejemplo, se pueden reescribir en la zona de marcas los bytes de marcas anteriormente "rescatados" en un mdulo de datos. Los OBs 1911193 se diferencian de los OBs 1901192 solamente por el hecho de que la fuente y el destino de datos estn intercambiados: OB 1901192: Zona de marcas + Mdulo de datos OB 1911193: Zona de marcas Mdulo de datos Nota Antes de llamar a los OBs 1911193 hay que abrir un mdulo de datos lo suficientemente largo (DBDX)! Los OBs 1911193 transfieren desde el mdulo de datos solamente a la zona de marcas M, y no a la zona de marcas S. Funcin Despus de llamar al OB 1911193 se leen palabras de datos del mdulo de datos abierto a partir de la direccin indicada y se transfieren a la zona de marcas. Los OBs 191 y OB 193 son idnticos, a excepcin de la forma en que transfieren los datos: El OB 191 transfiere las palabras de datos byte por byte. El OB 193 transfiere las palabras de datos palabra por palabra. La figura ilustrada en la pgina siguiente aclara esta diferencia. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Mdul o de dat os O6 191 k Mar cas DL DR Mdul o de dat os O6 193 Mar cas Fig. 6-8 Tranferencia byte por byte (OB 191) y palabra por palabra (OB 193) Parmetros 1. Indicaciones sobre la fuente Nmero de la primera palabra de datos a transferir en el mdulo de datos abierto 2. Indicaciones sobre el destino Primer byte de marcas a escribir, valores admisibles: O a 255 Ultimo byte de marcas a escribir, valores admisibles: O a 255 (;Ultimo byte de marcas z primer byte de marcas!) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Resultado Si se ha procesado correctamente el OB 191 193 de funciones especiales, se borra el VKE (VKE = O). Los acumuladores permanecen inalterados. En caso de error se activa el VKE (VKE = l), los acumuladores permanecen inalterados. Errores Pueden presentarse los siguientes errores: ningn mdulo de datos DB o DX abierto, zona de marcas errnea (ltimo byte de marcas e primer byte de marcas), nmero de palabra de datos no existe, longitud del mdulo de datos DB o DX insuficiente. Ejemplos Antes de llamar a l mdulo de programa PB 12 hay que r escat ar todas l a s marcas (MB O a MB 255) en e l mdulo de dat os DX 37 a p a r t i r de l a di recci n 100 y, seguidamente, r ees cr i bi r l os . :AX DX 37 Llamar a l mdulo de dat os :L KY 0,255 Zonademar casMBOaMB255 :L KB 100 NQ de l a pal abra de dat os en dest i no :SPAOB 190 Rescatar marcas Cambio de mdulo: : SPA PB 12 Reescri bi r: (Mdulo de dat os ya llamado) :L KB 100 NQ de l a l a pal abra de dat os en l a fuent e :L KY 0,255 Zonademar casMBOaMB255 :SPA OB 191 Reescri bi r marcas Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas as marcas utilizadas por el programa de usuario ciclico no pueden ser tilizadas adicionalmente por un programa de usuario controlado por tiempo por alarma. A cada nivel de procesamiento tiene que asignrsele una parte eterminada de la zona de marcas. or ej.:programa de usuario ciclico: M B O ... . ... M B 9 9 programa de usuario controlado por tiempo: MB 100 ... . ... MB 199 programa de usuario controlado por alarma: MB 200 ... . ... MB 255 o obstante, si el programa de usuario ciclico ya est utilizando los 256 ytes de marcas y el programa de usuario controlado por tiempo, por ej., ambin necesita los 256 bytes de marcas, hay que intercambiarlos y lmacenarlos de forma intermedia al efectuar el cambio de nivel de procesamiento. Las marcas se rescatan y cargan ms deprisa utilizando las funciones especiales OB 190 y OB 191. La figura 6-9 muestra como se almacena de forma intermedia en un mdulo de datos DB z una zona de marcas MB x a MB y, utilizada conjuntamente por el OB 1 y el OB 13 (alarma temporizada 100 ms): - - Fig. 6-9 Rescate de las zonas de marcas en el cambio de nivel de procesamiento Pr ogr ama STEP 5 en el OB 13: :A DB 100 :L KY 0,255 :L KB O :SPA OB 190 :L KB 128 :L KY 0,255 :SPAOB 191 :A DB 100 :L KY 0,255 :L KB 128 :SPA OB 190 :L KB O :L KY 0,255 :SPA OB 191 Instrucciones de programacin CPU 9288-311821 C79000-G8578-C870-01 Funciones es~eciales intearadas - En la CPU 928B, se procesan mucho ms deprisa las operaciones de procesamiento de bits uno por uno (U, O, ON, UN, S, R, =) que acceden a la zona de marcas, que otras operaciones comparables de accesos a mdulos (comprese por ej. con las operaciones 'U M' . 'U D' o Por este motivo, el tiempo de ejecucin disminuir si se copian y procesan los datos en la zona de marcas, y se vuelven a transferir posteriormente al mdulo. - El byte alto y el byte bajo pueden ser intercambiados sin gran esfuerzo transferiendo las palabras de datos a la zona de marcas y volviendo a transferirlas al mdulo de datos con los OBs necesarios, como muestra la Mdul o de datos Marca Mdul o de datos Fig. 6-10 Intercambio del byte alto con el byte bajo en un DB con los OB 19310B190 - Se pueden "desplazar" bloques de datos dentro de un mdulo de datos indicando, al retransferir desde la zona de marcas, el mismo nmero de DB pero con otra palabra de datos. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.23 OB 200 y OB 202 a 205: Comunicacin en multiprocesamiento Resumen En el captulo 10 se encuentran instrucciones detalladas sobre estos mdulos de organizacin de funciones especiales. Los mdulos de organizacin de funciones especiales OB 200 y OB 202 a OB 205 permiten transferir datos en modo multiprocesador entre las distintas CPUs utilizando el coordinador KOR 923C. OB 200: Inicializar Este mdulo de organizacin de funciones especiales instala en el coordinador KOR 923C la memoria intermedia, en la que se almacenan temporalmente los bloques de datos a transferir. OB 202: Emitir Esta funcin transfiere un bloque de datos a la memoria intermedia del coordinador KOR 923C e indica la cantidad de bloques de datos que todava pueden ser transmitidos. OB 203: Test de emisin El OB 203 de funciones especiales avengua la cantidad de bloques de memoria libres existentes en la memoria intermedia del coordinador KOR 923C. OB 204: Recibir Esta funcin recoge un bloque de datos de la memoria intermedia del coordinador KOR 923C e indica la cantidad de bloques de datos que todava pueden ser recibidos. OB 205: Test de recepcin El mdulo de organizacin de funciones especiales OB 205 avengua la cantidad de bloques de memoria ocupados en la memoria intermedia del coordinador KOR 923C. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.24 OB 21 6 a 21 8: Accesos a pginas Qu son Para poder alojar una gran cantidad de memorias de comunicacin en la zona de pginas? direcciones del bus S5, se dispone de una zona de direcciones de una longitud de 1024 bytes (2048 bytes reservados) registrada 256 veces en la memoria. Estas zonas de memoria (pginas) se encuentran dispuestas una al lado de la otra, o bien una detrs de la otras (como las pginas de un libro). En modo multiprocesador, las tarjetas que intervienen slo pueden acceder a una sola pgina de esta memoria. Las dems pginas deben estar protegidas contra lectura y escritura. Esto se efecta de la siguiente manera: Para seleccionar las pginas necesarias se utiliza un "registro de direcciones de pginas" que se encuentra en todas las tarjetas que operan con pginas y que tiene una direccin fija en el bus S5. En cada una de estas tarjetas el usuario puede ajustar mediante el interruptor DIL los nmeros (direcciones) de las pginas, de manera que cada pgina no aparezca ms de una vez en el autmata programable. Antes de cada lectura o escritura de una pgina, la CPU indica el nmero de pgina escribindolo en el registro de direcciones de pginas. Todas las tarjetas que operan de este modo en el bus S5 reciben simultneamente ("broadcast") este nmero y lo depositan en su memoria. Solamente podr ser escrita o leda a travs del bus S5 la pgina que tenga esta direccin ; las dems pginas estarn bloqueadas. Cmo acceder Los mdulos de organizacin OB 216 hasta OB 218 as como algunas operaciones a las pginas? STEP 5 (vase captulo 9) permiten acceder a las "pginas". Los mdulos de organizacin contienen las siguientes funciones: Escritura de un bytelpalabralpalabra doble en una pgina OB 217: Lectura de un bytelpalabralpalabra doble de una pgina Ocupacin de una pgina por la CPU (sirve para la coordinacin en modo multiprocesador) Estas funciones sirven para fines de comprobacin y permiten programar mdulos de comunicacin o funciones similares. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Nota Por lo general se pueden ejecutar todas las funciones con los mdulos de funciones estndar "Mdulos de comunicacin" y con los mdulos de organizacin integrados de funciones especiales "Comunicacin en multiprocesamiento" (OB 200, OB 202 a OB 205), los cuales permiten acceder "automticamente" a las pginas. Los accesos a las pginas deben ser programados, a ser posible, solamente mediante llamadas a los OB 216 a OB 218. Por el contrario, las operaciones STEP 5 que tambin estn previstas para ello, solamente debern ser utilizadas si se dispone de amplios conocimientos del sistema. Zonas de direcciones para periferia en el bus S5 Bi t FOOO FCOO FEFF FFOO . . FFFF Fig. 6-11 Posicin de la zona de direcciones de pginas en el bus S5 Tamao de pgina 1024 direcciones (direcciones de bytes o de palabras) 2048 direcciones (direcciones de bytes o de palabras) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Zona de direcciones ocupada F400H - WFFH F400H - FBFFH 7 o Zona P Zona Q Mar cas de acopl ami ent o Zona de si st ema (semf oros) en el coor di nador Zona de di recc. de una pgi na Per i f er i a decent r al (o l i bre) Registro de direcc. de p k g i n a a No ocupado Zona de memor i a ml t i pl e Tamao: 1024 2048 byt e ., ''. Pgi na nQ255.,."' Pgi na n" Funciones es~eciales intearadas Parametrizando los mdulos de organizacin de funciones especiales OB 216, OB 217 y OB 218 se determina cul de las 256 pginas se va a utilizar. El nmero de la pgina actual se registra automticamente en una clula con la direccin OFEFFH (vase figura 6-11). Todos los direccionamientos se refieren entonces a la pgina cuyo nmero ha sido registrado. Nota El registro de direcciones de pginas con la direccin OFEFF H no puede ser leido. Sin embargo, con esta direccin se puede leer, en la tarjeta del coordinador 923C, el registro de errores de bus (vase manual de sistema S5 135Ul155U). Observaciones Para la escritura (OB 216) y lectura (OB 217) de un bytelpalabralpalabra doble en una pgina, se accede a los bytes en el siguiente orden: Di r ecci n n Repr esent aci n byt e Di r ecci n n Byt e al t o Repr esent aci n pal abr a Di r ecci n n t l Byt e baj o Di r ecci n n Di r ecci n n t l Di r ecci n n t 2 Byt e al t o en pal . al t a Byt e baj o en pal . al t a Byt e al t o en pal . baj a Byt e baj o en pal . baj a r Repr esent aci n pal abr a dobl e Fig. 6-12 Posicin de los bytes durante la escritura (OB 216) /lectura (OB 217) como palabra o palabra doble en una pgina Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.24.1 OB 216: Escritura en pgina Funcin El mdulo de organizacin de funciones especiales transfiere un byte, una palabra o una palabra doble del AKKU 1 ('justificado a la derecha) a una pgina determinada. El direccionamiento de la pgina en modo mono o multiprocesador as como la transferencia del dato completo ( 1, 2 4 bytes) constituyen una unidad de programa inseparable que no puede ser interrumpida. Parmetros Acumuladores Identificacin del dato a transferir, valores admisibles: O = byte 1 = palabra 2 = palabra doble Nmero de la pgina actual, valores admisibles: O a 255 Direccin de destino en la pgina, valores admisibles: O a 2047 AKKU 1 Dato a escribir (byte, palabra, palabra doble: justificado a la derecha) Ocupacin del AKKU antes de escribir y antes de llamar al OB 216: AKKU 3 e Pal abr a al t a Pal abra baj a + AKKU 2 AKKU 4 Byt e al t o Byt e baj o x x X X Byt e al t o Byt e baj o x x I dent i f . de l ongi t ud N q e pgi na O: byt e (8 bi t) 0 hast a 255 1: pal abr a( l 6 bit) 2: pal abra dobl e (32 bi t) X X Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Di r ecci n ( r el at i va al comi enzo de l a pgi na) O 2047 con i denti f de l ongi t ud O (byte) O . 2046 con i dent i f . de l ongi t ud 1 (pal abra) O . 2044 con i dent i f . de l ongi t ud 2 (pal abra dobl e) AKKU 1 4 x + Dat o (8 bi t ) -b 4 x r7 Dat o (16 bi t ) b L : A 4 Dat o (32 bi t ) 31 24 2 3 16 ' 15 8 l7 O Funciones es~eciales intearadas Resultado La escritura en la pgina es satisfactoria: - AKKU 1 y AKKU 3: no se modifican, - AKKU-2-L: contiene un valor aumentado en 1 , 2 4 (segn la longitud del dato transferido), - VKE: = 1, - restantes indicadores de bit y de palabra: se borran. No es posible escribir en la pgina: - los acumuladores: no se modifican, - VKE: = o, - restantes indicadores de bit y de palabra: se borran. Errores Pueden presentarse los siguientes errores: identificacin de longitud errnea en el AKKU-3-LH, direccin de destino en la pgina: errnea o no existe, nmero de pgina indicado no existe. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.24.2 OB 217: Lectura de pgina Funcin El mdulo de organizacin de funciones especiales transfiere un byte, una palabra o una palabra doble desde una pgina determinada al AKKU 1 (justificado a la derecha). El direccionamiento de la pgina en modo mono o multiprocesador as como la transferencia del dato completo ( 1, 2 4 bytes) constituyen una unidad de programa inseparable que no puede ser interrumpida. Parmetros Acumuladores Identificacin del dato a transferir, valores admisibles: Nmero de pgina actual, valores admisibles: O = byte 1 = palabra 2 = palabra doble Direccin fuente en la pgina, valores admisibles: O a 2047 Ocupacin del AKKU antes de leer y antes de llamar al OB 217: P a l a b r a a l t a P a l a b r a b a j a B v t e a l t o B v t e b a i o -)tt B v t e a l t o B v t e b a i o 7 AKKU 4 1 x x 1 x x 1 AKKU 3 AKKU 2 X X k x L D a t o (8 b i t ) I d e n t i f . d e l o n g i t u d N q e p g i n a O: byt e ( 8 bi t) O h a s t a 255 1: pal abra(16 bit) 2: pal abra dobl e (32 bi t) X X AKKU 1 - x D a t o (16 b i t ) - 4 D i r e c c i n ( r e l a t i v a a l c o m i e n z o d e l a p g i n a ) O t 1 . 2047 t 1 con i denti f de l ongi t ud O (byte) O t 2 . 2046 t 2 con i denti f de l ongi t ud 1 (pal abra) O t 4 . 2044 t 4 con i denti f de l ongi t ud 2 (pal . dobl e) 1) D a t o (32 b i t ) 24 2 3 16 ' 15 8 l 7 O ' ) Al macenami ent o de l os dat os despus de l l amar al OB 217 I n s t r u c c i o n e s de p r o g r a m a c i n CPU 9 2 8 B - 3 U B 2 1 C 7 9 0 0 0 - G8 5 7 8 - C 8 7 0 - 0 1 Funciones es~eciales intearadas Resultado La lectura de la pgina es satisfactoria: contiene (justificado a la derecha) el valor ledo (el posible resto de los 32 bits se borra), - AKKU3: no se modifica, - AKKU-2-L: contiene un valor aumentado en 1 , 2 4 (segn la longitud del dato transferido), - VKE: = 1, - restantes indicadores de bit y de palabra: se borran. No es posible leer la pgina: - los acumuladores: no se modifican, - VKE: = o, - restantes indicadores de bit y de palabra: se borran. Errores Pueden presentarse los errores siguientes: identificacin errnea de longitud en AKKU-3-LH, direccin fuente en la pgina: errnea o no existe, nmero de pgina indicado no existe. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.24.3 OB 218: Ocupacin de pgina Funcin El mdulo de organizacin de funciones especiales transfiere el nmero de la CPU a una pgina determinada en caso de que el contenido de la clula direccionada en esta pgina sea igual a cero. Mientras el nWe la CPU est registrado en la clula, la pgina quedar reservada para esta CPU y no podr ser ocupada por otras CPUs. El mdulo de organizacin OB 218 sirve para sincronizar la transferencia de datos y tiene especial importancia cuando se deban enviar o transferir bloques de mayores dimensiones que estn relacionados entre s. En modo multiprocesador, por cada asignacin de bus no se transfieren ms de 4 bytes. Por este motivo conviene efectuar un bloqueo. El direccionamiento de la pgina, la lectura y, en ocasiones, la escritura de la identificacin del slot constituyen una unidad de programa que no puede ser interrumpida. Parmetros AKKU 2 AKKU 1 Acumuladores Nmero de la pgina a ocupar, valores admisibles: O a 255 Direccin de destino en la pgina, valores admisibles: O a 2047 (Los contenidos de AKKU 3 y AKKU 4 no son significativos.) Ocupacin de la pgina antes de llamar al OB 218: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 r. Pal abr a baj a h L A Byt e al t o Byt e baj o x N q e pgi na : O hast a 255 4 Pal abr a al t a X X Byt e al t o Di r. ( r el at i va al comi enzo de l a pgi na) O hast a 2047 Byt e baj o 31 24 2 3 16 15 8 ' 7 O x x Funciones especiales integradas Resultado La ocupacin de la pgina es satisfactoria: - los acumuladores: no se modifican, - VKE: = 1, - restantes indicadores de bit y de palabra: se borran. No es posible ocupar la pgina: - los acumuladores: no se modifican, - VKE: - restantes indicadores de bit y de palabra: se borran. Errores Puede ocurrir el error siguiente: n v e pgina indicado no existe. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.24.4 Ejemplo de programacin Del DB 45 de una CPU 928B hay que transferir las palabras de datos 4 a 11 por medio del KOR 923C al DX 45 (palabras de datos O a 7) de una segunda CPU 928B. La sincronizacin entre emisor y receptor (en modo multiprocesador!) se realiza mediante el OB 218. Pgina actual en el coordinador: Clula de coordinacin en la pgina (ocupar): Zona de transferencia de datos en la pgina (leer y escribir): dir. 54-69 Operaciones STEP 5 en el EMISOR: :L KB 255 Nmero de pgina :L KB 53 Direccin de clula de coordinacin : SPA OB 218 Transferir identificacin de slot a clula en pgina :SPB =M001 Si VKE = 1 (tranferencia satisfactoria), salto a marca De lo contrario fin de mdulo M001 :A DB 45 Abrir mdulo de datos fuente :L KY 2,255 2 = ident. de longitud palabra doble, nQ de pgina :L KB 54 Direccin inicial en pgina Escribir el AKKU 3 :L DD 4 Palabras de datos 4 y 5 (= 4 byte) : SPA OB 2 16 Transferir la palabra doble Aumentar en 4 la direccin (AKKU-2-L = 58) Rescatar direccin de destino :L DD 6 :SPAOB 216 Transferencia de la 2a palabra doble :L DD 8 :SPAOB 216 Transferencia de la 3a palabra doble :L DD 10 :SPAOB 216 Transferencia de la 4a palabra doble Direccin con identificacin de slot AKKU 1 = 0 :SPAOB 216 Borrar identificacin de slot, habilitar zona de transferencia de datos Cont i na e n l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Operaciones STEP 5 en el RECEPTOR: :L KB 255 Nmero de pgina :L KB 53 Clula de coordinacin : SPA OB 218 Ocupacin de la pgina por 2a CPU :SPB =M002 Si VKE = 1, salto a marca M002 :AX DX 45 Mdulo de datos destino :L KY 2,255 :L KB 54 Escribir AKKU 3 :L KB O Escribir AKKU 2 : SPA OB 217 Leer la palabra doble Aumentar en 4 la direccin (AKKU-2-L = 58) :T DD O Transferencia AKKU 1 a la palabra de datos O y 1 :SPAOB 217 Leer 2a palabra doble :T DD 2 :SPAOB 217 Leer 3a palabra doble :T DD 4 :SPAOB 217 Leer 4a palabra doble :T DD 6 :L KY 0,255 :L KB 53 Direccin con identificacin de slot :L KB O AKKU 1 = 0 :SPAOB 216 Borrar identifiacin de slot, habilitar zona de transferencia de datos Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.25 OB 220: Ampliacin del signo Aplicacin Una ampliacin del signo es necesaria para ampliar un nmero negativo en coma fija de 16 bit a un nmero en coma fija de 32 bit, antes de una conversin de coma fija a coma flotante (32 bit, operacin FDG). Funcin Parmetros Resultado Errores Esta funcin especial ampla el signo de un nmero en coma fija de 16 bit en el AKKU-1-L a la palabra alta (AKKU-1-H): Si el bit 215 = O (nmero positivo), la palabra alta se carga con KH = 0000. Si el bit 215 = 1 (nmero negativo), la palabra alta se carga con KH = FFFF. AKKU-1-L Nmero en coma fija de 16 bit El AKKU-1-H se carga de acuerdo con el signo del nmero en coma fija en AKKU-1-L (vase arriba). Ninguno Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.26 OB 221 : Ajustar el tiempo de supervisin de ciclo Funcin La llamada a esta funcin especial permite modificar el tiempo de supervisin de ciclo y determinar nuevamente el tiempo mximo de ciclo. El tiempo estndar es de 150 ms. Con esta llamada simultneamente se arranca de nuevo el temporizador para la supervisin: el tiempo de ciclo mximo admisible para el ciclo en el que se llama al OB 221 se prolonga por el nuevo valor ajustado, contando a partir del momento en que se efecta la llamada a la funcin especial. El tiempo de supervisin de todos los ciclos restantes corresponde al nuevo valor ajustado (= valor de tiempo que el usuario transfiere al AKKU 1). Parmetros Resultado Errores AKKU 1 Nuevo tiempo de ciclo (en milisegundos), valores admisibles: 1 ms -13000 ms, nmero en coma fija positivo (KF) AKKU-1-H El AKKU-1-H tiene que contener el valor 'O' Tras un procesamiento correcto del OB 221 quedar ajustado el nuevo tiempo de supervisin de ciclo. El tiempo de supervisin indicado no se encuentra en la zona de 1 ms a 13000 ms. La funcin no se ejecuta. El programa de sistema detecta un error en tiempo de ejecucin y llama al OB 31. Las siguientes reacciones dependen de cmo est programado el OB 31 (vase captulo 5.6). Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos se registra la identificacin 1A3AH en el AKKU-1-L. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.27 OB 222: Nuevo arranque del tiempo de supervisin de ciclo Funcin La funcin especial OB 222 produce una reactivacin del tiempo de supervisin de ciclo. Es decir, el temporizador de supervisin arranca de nuevo. Al llamar a esta funcin se prolonga el tiempo mximo del ciclo actual por el valor ajustado, a partir del momento en que se efectu la llamada. Parmetros Errores Ninguno Ninguno 6.28 OB 223: Comparar los modos de arranque Funcin Llamando al OB 223 se comprueba si los modos de arranque de todas las CPUs que intervienen en modo multiprocesador son idnticos. Parmetros Resultado Errores lndicadores Nota El OB 223 solamente deber ser llamado cuando todas las CPUs hayan finalizado el arranque. Si la sincronizacin del arranque est activada @X) esto quedar garantizado llamando al OB 223 en estado operativo RUN. Si la sincronizacin del arranque est desactivada habr que tomar otras medidas de seguridad (por ejemplo, llamada retardada al OB 223). Ninguno Indicadores de error si difieren los modos de arranque Si los tipos de arranque de todas las CPUs que intervienen en modo multiprocesador difieren, la CPU en la que se proces el OB 223 detectar un error en tiempo de ejecucin. Se llama al OB 31. Si el OB 31 no est cargado la CPU pasa al estado STOP indicando el error LZF. Su LED STOP parpadea de forma lenta. Las restantes CPUs pasan a STOP y lucen de forma permanente. Durante la llamada al OB 31 y en el estado STOP, el AKKU 1 contiene la identificacin de error 1A3BH. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.29 OB 224: Transferir marcas de acoplamiento en bloques Funcin Las marcas de acoplamiento se transfieren al final de cada ciclo de programa. En modo monoprocesador, las marcas de acoplamiento se transfieren completas, en forma de bloque de datos, a la memoria del coordinador (KOR) o del CP y10 desde esta memoria a las marcas de la CPU. Por el contrario, en modo multiprocesador cada una de las CPU solamente puede utilizar el bus mientras el coordinador (KOR) habilita su acceso al bus. Por este motivo slo se transfiere un byte cada vez que se habilita el bus. A continuacin acceden las restantes CPUs al bus S5. Los datos que guarden relacin entre s y que estn repartidos entre varios bytes de marcas sern separados. Llamando al mdulo de organizacin OB 224 se consigue una transferencia en bloque de todas las marcas indicadas en el DB 1 de la CPU en cuestin. Mientras una CPU est transferiendo las marcas de acoplamiento no podr ser interrumpida por otra CPU. Puesto que la CPU siguiente debe esperar a poder transferir sus marcas, se retarda el procesamiento cclico del programa hasta que termine el tiempo de espera (itiempo de ciclo!). Por consiguiente el OB 224 garantiza una consistencia de datos de toda la informacin de las marcas de acoplamiento. Hay que llamarlo en el programa de arranque en todas las CPUs que intervienen en la transferencia de las marcas de acoplamiento en todos los modos de arranque utilizados. Parmetros Errores Ninguno Ninguno Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Funcin Los OBs 226 y 227 existen an en el sistema operativo por motivos de compatibilidad. La funcin original de los mismos (es decir, crear una suma de verificacin mediante el programa de sistema) se ha integrado entretanto en el programa de sistema. Al llamar cualquiera de dichos dos OBs se obtiene el valor "O". Los programas de usuario que utilicen los OBs para crear una suma de verificacin se pueden seguir utilizando sin necesidad de modificarlos. Nota El programa de sistema comprueba automticamente la suma de verificacin despus de conectarse la alimentacin o antes de efectuar un borrado total. Suma de verificacin Las EPROMS del firmware de la CPU 928B contienen una suma de verificacin. Cuando se conecta la alimentacin o al efectuarse un borrado total, el software del sistema calcula por su parte una suma de verificacin y la compara con el valor almacenado. Si la suma de verificacin calculada no es igual al valor almacenado, se presenta un error grave de sistema (los LEDs RUN y STOP se encienden, ROJONERDE-STOP). La CPU no funciona. Una vez desconectada y conectada de nuevo la alimentacin, la CPU exige (si es an posible) un BORRADO TOTAL. El dato BS EA80H contiene el valor 1170H. El BORRADO TOTAL causa nuevamente un ROJONERDE-STOP. Los OBs 226 y 227, que se podan utilizar hasta ahora para recalcular la suma de verificacin, dan siempre como resultado una "suma de verificacin correcta". Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.31 OB 228: Leer la informacin de status de un nivel de procesamiento Funcin Cuando tienen lugar determinados acontecimientos, el programa de sistema llama al nivel de procesamiento correspondiente. De este modo queda "activado" el nivel de procesamiento de programa. Con el mdulo de organizacin OB 228 se puede comprobar si un nivel de procesamiento determinado est activado o desactivado en un determinado momento. El usuario deber transferir al AKKU 1 el nmero del nivel de procesamiento de programa cuyo estado (status) desee consultar. Los nmeros corresponden a los registrados en la pila USTACK bajo el concepto "NIVEL". Cuando se efecta la llamada al mdulo, ste deposita en el AKKU-1-L la informacin sobre el estado del nivel de procesamiento indicado. Evaluando esta informacin se puede hacer procesar el programa en funcin del estado de otro nivel de procesamiento. Parmetros Nmero del nivel de procesamiento (vase USTACK, NIVEL), valores admisibles (hexadecimal): vase tabla siguiente Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 NVe nivel en AKKU-1-L 02 04 06 08 OA OC OE 10 12 14 16 18 1A 1C 1E 20 22 Nombre del nivel NUEVO ARRANQUE CICLO ALARMA TEMPORIZADA 5 s ALARMA TEMPORIZADA 2 s ALARMA TEMPORIZADA 1 s ALARMA TEMPORIZADA 500 ms ALARMA TEMPORIZADA 200 ms ALARMA TEMPORIZADA 100 ms ALARMA TEMPORIZADA 50 ms ALARMA TEMPORIZADA 20 ms ALARMA TEMPORIZADA 10 ms PETICION DE TIEMPO no ocupado ALARMA DE REGULADOR no ocupado ALARMA TEMPORIZADA CONTROLADA POR RELOJ no ocupado N q e nivel en AKKU-1-L 24 26 28 2A 2C 2E 30 32 34 36 38 3A 3C 3E 40 42 44 46 Nombre del nivel ALARMA DE PROCESO no ocupado no ocupado no ocupado Aborto Error de interfaz Colisin de alarmas temporizadas Error de regulador Error de ciclo no ocupado Error de cdigo de instruccin Error en tiempo de ejecucin Error de direccionamiento Retardo en acuse de recibo no ocupado no ocupado REARRANQUE MANUAL REARRANQUE AUTOMATICO Funciones es~eciales intearadas Resultado - AKKU-1-L: contiene informacin sobre el estado: = O += el nivel de programa no ha sido llamado z O += el nivel de programa est activado - AKKU-2-L: en l se encuentra el contenido anterior del AKKU-1-L; se pierde el contenido anterior del AKKU-2-L. Errores Ninguno Ejemplo Se ha de ignorar un retardo en acuse de recibo durante el NUEVO ARRANQUE, pero sin hacerlo en los restantes niveles de programa. Al comenzar con el tratamiento de errores hay que llamar al OB 228 desde el OB 23 (QVZ) para comprobar si cuando tuvo lugar el QVZ estaba activado el nivel de programa NUEVO ARRANQUE (nmero 02). La forma en que deba continuar el tratamiento de errores se har depender de la informacin sobre el estado que se obtenga: AKKU-1-L = O: NUEVO ARRANQUE pasivo -, QVZ no tuvo lugar en el NUEVO ARRANQUE, sino en otro nivel de procesamiento de programa. Hay que procesar programa de error. AKKU-1-L * O: NUEVO ARRANQUE activado -, QVZ tuvo lugar en el NUEVO ARRANQUE y por lo tanto, puede ser ignorado. Por consiguiente, el OB 228 permite tratar errores de forma especifica. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.32 OB 230 a 237: Funciones para FBs estndar Introduccin Los mdulos de organizacin de funciones especiales OB 230 a OB 237 estn reservados para funciones de comunicacin y solamente pueden ser llamados dentro de los mdulos de funciones estndar FB 120 a FB 127. Mdulos de Estos mdulos de funciones estndar - los as llamados "mdulos de comunicacin comunicacin" - controlan en modo mono y multiprocesador el trfico de datos a travs de la zona de pginas. Se utilizan cuando los procesadores de comunicacin (CPs) deban recibir datos o parmetros as como informaciones de control, o bien cuando se deban transferir stos a los CPs. Asignacin De la tabla siguiente se desprende desde qu mdulos de comunicacin se llaman a los mdulos de organizacin de funciones especiales OB 230 a OB 237. Aplicacin de los Para la aplicacin de los mdulos de comunicacin, que pueden ser adquiridos como mdulos de producto de software en disquete, encontrar informaciones ms detalladas en el comunicacin manual correspondiente (v. bibliografa 184. Mdulo de funciones estndar FB 120 FB 121 FB 122 FB 123 FB 124 FB 125 FB 126 FB 127 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 OB de funciones especiales OB 230 OB 231 OB 232 OB 233 OB 234 OB 235 OB 236 OB 237 Mdulo de comunicacin SEND RECEIVE EETCH CONTROL RESET SYNCHRON SEND ALL RECEIVE ALL Funciones especiales integradas 6.33 OB 240 a 242: Funciones especiales para registros de desplazamiento Introduccin A continuacin se explican los campos de aplicacin de los registros de desplazamiento as como los aspectos a tener en cuenta. Aplicacin Los registros de deplazamiento pueden ser utilizados, por ejemplo, en una instalacin de produccin para programar con el autmata programable la transformacin sucesiva del material. La CPU 928B ofrece mximo 64 registros software de desplazamiento. En dichos registros se pueden escribir datos y leerlos. Esto se efecta mediante los as llamados "indicadores": los indicadores son bytes de marcas que contienen los datos de clulas individuales de un registro de desplazamiento. Estructura Un registro software de desplazamiento consta de clulas de 8 bits de ancho dispuestas una al lado de la otra. Puede tener una longitud de entre 2 y mximo 256 clulas de memoria. Posicin en la Los datos de un registro de deplazamiento se encuentran en la RAM de mdulos DB-RAM de datos de la CPU. Cada registro est asignado de forma fija a un mdulo de datos determinado y, por consiguiente, tiene el mismo nmero que el mdulo de datos (n% vlidos: 192 a 255). En caso de haber instalado por ejemplo un registro de desplazamiento con el nmero 210, los datos correspondientes se encontrarn en el mdulo de datos 210. La DB-RAM abarca aproximadamente 46 Kbytes (direccin KH 8000 a KH DD7F). En esta zona se encuentran los mdulos de datos copiados con los OB 254 y 255 (desde KH 8000 hacia arriba) as como los registros instalados por el usuario (desde KH DD7F hacia abajo). Si al copiar DBs o instalar registros de desplazamiento la zona de memoria de la DB-RAM no es suficiente, la CPU detecta un error en tiempo de ejecucin y llama al OB 31. Las siguientes reacciones dependern de cmo est programado el OB 31 (vase captulo 5.6). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Principio Las siguientes figuras ilustran el concepto de un registro software de desplazamiento con 3 indicadores y 12 clulas de memoria: I ndi cador 1 I ndi cador 2 I ndi cador 3 i t de marcas O i t de marcas 1 i t de marcas 2 i t de marcas 3 i t de marcas 4 i t de marcas 5 i t de marcas 6 i t de marcas 7 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 Fig. 6-13 Esquema bsico de un registro de desplazamiento de 3 indicadores y 12 clulas de memoria Inicializar Desplazar Al inicializar un registro de desplazamiento (vase captulo 6.34) hay que indicar el nmero del byte de marca para el indicador 1 (= indicador bsico). Este queda ajustado de forma fija en la primera clula de memoria del registro de desplazamiento. Los dems indicadores deben ser posicionados de forma relativa al indicador bsico, pudindose utilizar por cada registro de desplazamiento entre 1 y mximo 6 indicadores. Al desplazar un registro de desplazamiento - del mismo modo que en el caso de un registro hardware de desplazamiento - se transfiere byte por byte el contenido de todas las clulas de registro de una clula a la siguiente (vase fig. 6-14). Cada llamada a la funcin de desplazamiento produce un desplazamiento de la informacin de exactamente 1 clula de memoria (1 impulso). En este caso los indicadores obtienen nuevos datos. De forma correspondiente a las flechas arriba dibujadas la informacin se desplaza a lo largo de todo el registro de desplazamiento, hasta llegar a la ltima clula de memoria, desde donde vuelve a la clula 1 (en el registro ilustrado en la figura 6-16 ocurre despus de 12 impulsos). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Ejemplo Las figuras 6-14 y 6-15 muestran el desplazamiento de la informacin dentro de un registro de desplazamiento con 3 indicadores y 12 clulas de memoria. Antes de llamar a la funcin especial, se activan determinados bits en los indicadores (marcas) para caracterizar la informacin del indicador: Activar el bit de marcas O del indicador 1 :S M 0.0 Activar el bit de marcas 3 del indicador 2 Activar el bit de marcas 2 del indicador 3 Despus se llama a la funcin de desplazamiento I ndi c ador 1 I ndi c ador 2 I ndi c ador 3 Fig. 6-14 Esquema de un registro de desplazamiento de 3 indicadores y 12 clulas de memoria antes del primer impulso Bi t de marcas O Bi t de marcas 1 Bi t de marcas 2 Bi t de marcas 3 Bi t de marcas 4 i t de marcas 5 Despus de la llamada a la funcin especial, la informacin de 8 bits de ancho de las clulas de memoria se ha desplazado en el valor de una clula: O 1 0 0 1 O 1 0 0 1 O 1 0 0 1 O 1 0 0 1 I ndi cador 1 I ndi cador 2 I ndi cador 3 1 , 3 1 , , Fig. 6-15 Esquema de un registro de desplazamiento de 3 indicadores y 12 clulas de memoria despus del primer impulso 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 O 1 O 1 Bi t de marcas C Bi t de marcas 1 Bi t de marcas 2 Bi t de marcas 2 Bi t de marcas L Bi t de marcas E Bi t de marcas E Bi t de marcas i I Cont i na en l a pgi na s i g u i e n t e 0 0 1 0 0 O 0 1 0 0 O 0 1 0 0 O 0 1 0 0 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 O O O O 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 O O O O O O O O O 1 O 1 1 O 1 O Bi t 4 Bi t 5 Bi t 6 Bi t 7 O O O O O O O O Bit 4 Bit 5 Bit 6 Bit 7 Funciones es~eciales intearadas La informacin que ahora se encuentra en los indicadores puede evaluarse con Los bits de marcas 0, 3 y 2 pueden ser consultados en el indicador base: de este modo puede evaluarse toda la informacin que proviene de las entradas efectuadas en todos los indicadores. Mdulos de organizacin Para utilizar un registro de desplazamiento se dispone de 3 mdulos de organizacin de funciones especiales: Esta funcin inicializa un registro de desplazamiento. OB 241: Esta funcin procesa un registro de desplazamiento. 0 B 242: Esta funcin borra un registro de desplazamiento. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.34 OB 240: Inicializar registro de desplazamiento Aplicacin Antes de poder procesar un registro de desplazamiento, hay que inicializarlo. Para ello hay que llamar al OB 240 una sola vez, preferiblemente en un mdulo de organizacin de arranque. Los parmetros que requiere el OB 240 para la instalacin de un determinado registro de desplazamiento se encuentran en un mdulo de datos con el mismo nmero que el registro de desplazamiento que se va a inicializar. Por lo tanto son vlidos los nmeros de DB entre 192 y 255. Funcin Parmetros Con las informaciones del mdulo de datos abierto se reserva e inicializa una determinada zona de memoria al final de la DB-RAM. Mdulo de datos abierto valores admisibles: nWB: de 192 a 255 El mdulo de datos est estructurado de acuerdo con un esquema fijo, que tiene que ser respetado. Puede tener una longitud mxima de 9 palabras de datos (DW O a DW 8). 1 Long. de registro de despl. (bytes) L DW 1 1 NP del I Q byte de marcasiindicador bi si co DW 2 Distancia n D W ~ l Distancia n DW 4 l Distancia n DW 5 Distancia n 5 1 DW 6 l Distancia n DW 7 O 1 DW 8 o Iltima palabra de datos Fig. 6-16 Estructura del mdulo de datos para la inicializacin de un registro de despla- zamiento Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Ocupacin de las Cada una de las palabras de datos ha de estar ocupada de la manera siguiente: palabras de datos Palabra de datos O Siempre debe contener O. Palabra de datos 1 La longitud L del registro de desplazamiento equivale a la cantidad (en bytes) de clulas de memona del registro. Puede encontrarse entre 2 S L S 256. Palabra de datos 2 El nmero del primer byte de marcas determina el indicador bsico y tambin el bloque de marcas que se le asigna a los indicadores. El bloque de marcas abarca la totalidad de los indicadores definidos por el usuario. Los dems indicadores se determinan efectuando entradas en las palabras de datos DW 3 hasta mximo DW 7, siendo utilizada una palabra de datos por indicador. Si, por ejemplo, se desean instalar otros dos indicadores, significa que, junto con el indicador bsico, sern tres indicadores. Hasta el final del bloque de marcas debern quedar suficientes marcas a disposicin para todos los indicadores parametrizados. Palabra de datos 3 hasta mximo 7 Los dems indicadores se indican de manera indirecta: Se definen segn la distancia entre ellos y el indicador bsico (clulas del registro de desplazamiento = cantidad de bytes). n2 = distancia entre el indicador 2 y el indicador bsico n3 = distancia entre el indicador 3 y el indicador bsico n4 = distancia entre el indicador 4 y el indicador bsico etc. (1 hasta mximo 5 entradas) Ultima palabra de datos (DW 4 hasta mximo DW 8) (En el ejemplo DW 8) Siempre tiene que contener O. Si adicionalmente al indicador bsico se parametnzan solamente dos indicadores, entonces en la DW 5 hay un 0, etc. Todas las indicaciones se efectan con nmeros en coma fija. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Espacio de memoria Errores Nota jLa cantidad de indicadores (mximo 6 con el indicador bsico) no puede ser supenor a la longitud del registro de desplazamiento! La distancia entre un indicador y el indicador bsico no debe ser supenor a la longitud del registro de desplazamiento. La palabra de datos DW O y la palabra de datos despus de la ltima distancia de indicador siempre tienen que contener O. El mdulo de datos tiene que ser abierto antes de llamar al OB 240! El mdulo de datos llamado tiene que tener un nmero entre DB 192 y DB 255. Por cada registro de desplazamiento se requieren n = longitud de registro de desplazamiento/2 + 8 palabras de datos, es decir, la longitud de la DB-RAM desminuye en n palabras de datos, desplazndose la direccin final de la RAM de mdulos de datos hacia una direccin menor. Si un registro de desplazamiento que ha de ser inicializado ya existe, y la longitud del registro de desplazamiento nuevo y del registro de desplazamiento ya existente son iguales, se vuelve a inicializar el espacio ya ocupado. De lo contrario, la zona anterior se declara no vlida y se abre una nueva zona. Nmero de mdulo de datos no vlido (<192), espacio insuficiente en la DB-RAM, error formal en la esctructuracin del mdulo de datos, longitud para registro de desplazamiento no vlida, error de parametnzacin en los indicadores. En caso de error la CPU detecta un error en tiempo de ejecucin y llama al OB 31. La reaccin siguiente depender de cmo est programado el OB 31 (vase captulo 5.6). Si el OB 31 no est cargado la CPU pasa al estado STOP. En ambos casos el AKKU-1-L contiene identificadores de error que describen ms detalladamente el error que se ha producido. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.35 OB 241 : Procesar registro de desplazamiento Introduccin El mdulo de organizacin de funciones especiales OB 241 procesa un registro de despazamiento que previamente tiene que haber sido inicializado por el OB 240. En la CPU 928B se pueden llamar mximo 64 registros de desplazamiento. Aplicacin Funcin Parmetros Resultado Errores Antes de llamar al OB 241, normalmente se activan o rearman determinados bits de marcas en los indicadores. Con cada llamada al OB 241 se desplaza la informacin byte por byte de una clula de memoria a la clula superior. Correspondientemente, los indicadores son alimentados con nuevas informaciones. Llamando nuevamente al OB 241 se puede "empujar" toda la informacin por todo el registro de desplazamiento hasta la ltima clula de memoria, desde donde vuelve a pasar a la clula 1. Cada vez que se procesa el OB 241, el registro de desplazamiento direccionado por el AKKU-1-L se desplaza una posicin hacia la derecha. Nmero del registro de desplazamiento a procesar, valores admisibles: 192 a 255 Despus de llamar al OB 241, los indicadores (mximo 6 por registro de desplazamiento, posicionables a voluntad exceptuando el indicador bsico) contienen los datos de la clula de memoria anterior. A continuacin pueden evaluarse los datos. Nmero de registro de desplazamiento no vlido en AKKU 1, Registro de desplazamiento no inicializado. En caso de error, la CPU detecta un error en tiempo de ejecucin y llama al OB 31. La reaccin siguiente depender de cmo est programado el OB 31 (vase captulo 5.6). Si el OB 31 no est cargado la CPU pasa al estado STOP. En ambos casos el AKKU-1-L contiene identificadores de error que describen ms detalladamente el error que se ha producido. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.36 OB 242: Borrar registro de desplazamiento Funcin Con esta funcin se "borra" un registro de desplazamiento en la RAM de mdulos de datos: se borra la entrada de la lista de direcciones DB O y se declara no vlido el correspondiente registro de desplazamiento en la DB-RAM ( jatencin! : los registros de desplazamiento borrados siguen ocupando espacio en la memoria). Parmetros Resultado Errores Nmero del registro de desplazamiento a borrar, valores admisibles: 192 a 255 Despus de llamar al OB 242 se borra el registro de desplazamiento y no puede volver a ser utilizado: para procesarlo nuevamente debe volver a ser inicializado. nmero de registro de desplazamiento no vlido en AKKU 1, registro de desplazamiento no inicializado. En caso de error, la CPU detecta un error en tiempo de ejecucin y llama al OB 31. La reaccin siguiente depender de cmo est programado el OB 31 (vase captulo 5.6.2). Si el OB 31 no est cargado la CPU pasa al estado STOP. En ambos casos el AKKU-1-L contiene identificadores de error que describen ms detalladamente el error que se ha producido. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.37 OB 2501251 : Regulacin/Algoritmo PID Introduccin En la CPU 928B del S5-135U se pueden llamar uno o varios reguladores PID. Cada regulador tiene que ser inicializado en el mdulo de organizacin de arranque. Para la transferencia de parmetros se utiliza un mdulo de datos. El algoritmo de regulacin en s est integrado en el programa de sistema y solamente puede ser llamado por el usuario como mdulo de organizacin. Como interfaz de datos entre el algortimo de regulacin y el programa de usuario se debe utilizar un mdulo de datos. 6.37.1 Descripcin de las funciones del regulador PID Fig. 6-17 Esquema modular del regulador PID Z Ent rada manual : Ent rada de YH, si S3 est a O Ent rada de dYH, si S3 est a 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funciones especiales integradas lndice k Exploracin nmero k Palabra de control STEU Conmutador S 1 STEU-BR 1 S2 STEU-BR O S3 STEU-BR 3 S4 STEU-BR 5 Algoritmo PID Diferenciador Posicin O 1 O 1 O 1 O 1 Compensacin de perturba- ciones Efecto Al diferenciador se le asigna la diferencia de regulacin XWk. Al diferenciador se le puede asignar otra seal a travs de XZ. Funcionamiento manual Funcionamiento automtico Algoritmo de consigna Algoritmo de velocidad (de respuesta) Aadiendo magnitudes perturbadoras Sin aadir magnitudes perturbadoras Sentido invertido del regulador Limitacin de la informacin de consigna Para conseguir una funcin que corresponda a la posicin de los conmutadores de dicho esquema modular al parametrizar el regulador PID, hay que activar adecuadamente los bits de la palabra de control STEU. El regulador continuo ha sido concebido para lneas de control rpidas, que se observan, por ejemplo, en la ingeniera de procesos, tales como regulaciones de presin, de temperatura o de flujo. El regulador en s est basado en un algoritmo PID. Su seal de salida puede ser emitida a voluntad, bien como magnitud de consigna (algoritmo de consigna) o bien como modificacin de la magnitud de consigna (algoritmo de velocidad). Los distintos componentes P, 1 y D pueden desconectarse con sus propios parmetros R, TI y TD prefijando las clulas en cuestin con ceros. De este modo es posible realizar fcilmente todas las estructuras de regulacin que se deseen, como por ejemplo reguladores PI, PID o PD. Al diferenciador se le puede asignar opcionalmente la diferencia de regulacin XW o - a travs de la entrada XZ - una magnitud perturbadora arbitraria, o bien el valor efectivo invertido -x. En caso de que para la compensacin de una magnitud perturbadora se desee un control anticipativo del actuador de regulacin sin considerar tiempos se le puede aadir una magnitud perturbadora medible al algoritmo de consigna. En funcionamiento manual se toma la magnitud de consigna seleccionada con anterioridad YN. Cuando se requiera un sentido invertido del regulador se deber indicar un valor K negativo. Cuando la informacin de consigna (dY o Y) se encuentra en un lmite se desconecta automticamente la parte 1 para evitar que empeore el comportamiento del regulador. El programa de regulador puede ser alimentado definiendo valores fijos o bien por definicin adaptiva (dinmica) de parmetros (K, R, TI, TD). La entrada se efecta a travs de las clulas de memoria asignadas a los distintos parmetros. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas 6.37.2 Algoritmo PID Introduccin El regulador PID est basado en un algoritmo de velocidad segn el cual se calcula en un tiempo determinado t = k TA el incremento de consigna correspondiente dYk de acuerdo con la frmula siguiente: = K ( dPWkR + dIk + dDk ) Componente P + componente 1 + componente D dXXXk: Modificacin de la magnitud XXX en el tiempo t U puede ser W o Z, segn se le asigne XW o XZ al diferenciador. De forma anloga vale: En caso de XWk: En caso de XZ: QWk = PWk - PWk-1 QZk = PZk - PZk-1 TA dIk =TI XWk TI=- TN 1 TV dDk = - (TD QUk + d&-1) TD = - 2 TA Si en el tiempo tk se desea la magnitud de consigna Yk como salida del regulador, sta se calcula con la frmula siguiente: En la mayora de los procesos de planificacin de reguladores se presupone que R = 1 para obtener un comportamiento P. Con la magnitud R se puede regular el componente proporcional del regulador PID. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Mdulos de datos para el regulador Los datos especficos del regulador se introducen por medio de un mdulo de datos de transferencia (inicializacin y procesamiento del regulador PID, vase captulos PID 6.38 y 6.39). En el mdulo de datos de transferencia x deben indicarse los datos siguientes: K, R, TI, TD, W, STEU, YH, BGOG, BGUG El mdulo de datos de transferencia tiene que constar de 49 palabras de datos con los nmeros O a 48. La ocupacin de los datos de estas palabras se describe en la tabla siguiente. Estructuracin del mdulo de datos de transferencia Tabla 6-10 Mdulo de datos de transferencia para regulacin PID Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Dir. en el DB DWO DD 1 DD 3 DD5 DD7 DD9 DW 11 DD12 DD14 DD16 DW18 DW 19 Nombre - K R TI TD Wk STEU YHk BGOG BGUG l"Hk Wk E/S - E E E E E E E E E E E Formato num. 2) - GP GP GP GP GP BM GP GP GP LP LP Formato PG 3) - KG KG KG KG KG KM KG KG KG KF KF Observacin Reserva Coeficiente proporcional K >O: Sentido positivo de regulacin, es decir, modificacin en sentido idntico del valor nominal y magnitud de consigna K <O: Sentido negativo de regulacin; zona de nmeros en coma flotante Parmetro R, normalmente = 1 en caso de reguladores con componente P TI=TA/TN TD=TV/TA Introducir aqu el valor nominal, si bit 6 de STEU = 1, de lo contrario en la palabra n"9 (-1 sWk <1) Palabra de control Introducir aqu el valor manualmente, si bit 6 de STEU = 1, de lo contrario en la palabra n q 8 (-1 sYHk 4 ) . En caso de algoritmo de velocidad, hay que indicar aqu incrementos del valor de consigna Valor superior del lmite 4, -1 sBGOG 51 (YAkmx); !! BGUG<BGOG!! Valor inferior del lmite 4, -1 sBGUG 51 (YAkmi, ) Introducir aqu el valor manual, si bit 6 de STEU = O (-1 sYH 4 ) . En caso de algoritmo de velocidad, hay que indicar aqu incrementos del valor de consigna Introducir aqu el valor nominal, si bit 6 de STEU = O (-1 s wk <1) Funciones es~eciales intearadas l) E = entrada, S = salida ' ) GP = nmero en coma flotante, LP = nmero de coma a la izquierda, BM = patrn de bits 3, Formato propuesto (KH, KM tambin son vlidos) Dir. en el DB 4, En caso de formato de coma a la izquierda hay que introducir el valor del lmite superior e inferior segn las frmulas siguientes: DD 14 = BGOG: BGOG Valor como nmero de coma flotante= - 32767 Nombre DD 16 = BGUG: BGUG Valor como nmero de coma flotante= - 32767 Tabla 6-10 DW20 DW21 DD 22 DW 24 DD 25 DD 27 DW29 DD30 DD 32 DD 34 DD 36 DD38 DD40 DW42 DD44 DD46 DW 48 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 E/S (continuacin): MERK Xk Xk Zk Zk Zk-1 XZk XZk XZk.1 PZk.1 dDk-1 XWk-1 PWk.1 - Yk-1 YAk YAk Formato num. 2) - E E E E - E E - - - - - - - S S Formato PG 3) Observacin BM LP GP LP GP GP LP GP GP GP GP GP GP - GP GP LP KF KF KG KF KG KG KF KG KG KG KG KG KG - KG KG KF Bit O = 1: sobrepasa el lmite positivo; Bit 1 = 1: sobrepasa el lmite negativo Entrada valor efectivo para bit 7 de STEU = O (-1 5 Xk < 1) Entrada valor efectivo para bit 7 de STEU = 1 (-1 5 Xk < 1) Magnitud perturbadora (-1 5 Zk <1) Aqu entrada de la magnitud perturbadora, si bit 7 de STEU = 1 (-1 5 Zk <l ) Valor anterior de la magnitud perturbadora Magnitud asignada al diferenciador por medio de la entrada XZ (-1 5 XZk 4 ) ; entrada aqu si bit 7 de STEU = O Aqu entrada XZ si bit 7 de STEU = 1 (-1 5 XZk <1) Valor anterior de XZk XZk.1 - XZk-2 Componente diferencial Valor anterior de la diferencia de regulacin XWk-1 - XWk-2 Reserva Valor anterior del valor de consigna Yk-1 o dYk-1 antes del limitador Magnitud de salida Magnitud de salida BGUG S YA S BGOG Funciones especiales integradas Ejemplo de valores lmite - Valores limite valor del l mi t e superior = 0 , l valor del l mi t e i nf eri or = - 0 , l - Entradas en los DBs: DD 14: +lo00 000 +O0 DD 16: -1000 000 +O0 - El valor de partida se limita: DW 48: 13276 DD 15: 10, l Observacin: Para l os valores l mi t e fuera de 1 s e l i mi ta e l valor de partida en formato de coma fl otante ( DD 46) . Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Ocupacin de la palabra de control STEU (palabra de datos DW 11 en DB de transferencia) Tabla 6-11 Palabra de control en el DB de transferencia para regulaciones PID Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 DW 11 Bit nQ 11.0 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 Nombre AUTO XZEI N REG-AUS GESCHW HANDART NO-Z PGDG VAR-GP STOS a 11.15 Significado = 1: Funcionamiento automtico = O: Funcionamiento manual = 1: Al diferenciador se le asigna otra magnitud a travs de la entrada XZ, la cual no puede ser XWk. = O: Al diferenciador se le asigna XWk. No se considera la entrada XZ. = 1: Al llamar al regulador (OB 251), a excepcin de K, R, TI, TD, BGOG, BGUG, STEU, YHk, Wk, Zk y Zk-1, se borran una vez todas las magnitudes (DW 20 a DW 48) del DB de regulador. El regulador est desconectado. Se actualiza el valor anterior de la magnitud perturbadora. = O: Regular = 1: Algoritmo de velocidad = O: Algoritmo de consigna = 1: En caso de GESCHW (velocidad) = O (algoritmo de consigna) se conserva la ltima magnitud de consigna emitida. En caso de GESCHW = 1 (algoritmo de velocidad) se pone el incremento dYk = 0. = O: En caso de GESCHW = 0, despus de cambiar a funcionamiento manual, el valor de consigna emitido YA es conducido en 4 pasos de exploracin exponenciales al valor ajustado manualmente. Despus los valores manuales son recogigos inmediatamente a la salida del regulador. En caso de GESCHW = 1, los valores manuales se transmiten directamente a la salida del regulador. En funcionamiento manual, los lmites son efectivos. En funcionamiento manual se actualizan las siguientes magnitudes: Xk, m k - 1 Y PWk-1 XZk, XZk.1 y PZk.1, si bit 1 de STEU = 1 Zk und Zk-1, si bit 5 de STEU = O La magnitud dDk-1 se pone a O. El algoritmo no se calcula. = 1: Sin aadir magnitudes perturbadoras = O: Aadiendo magnitudes perturbadoras = 1: Entrada de Wk, YHk como nmero en coma flotante = O: Entrada como nmero de coma a la izquierda = 1: Las variables Xk, XZk y Zk se introducen como nmero en coma flotante = O: Entrada de las vanables como nmero de coma a la izquierda = 1: Sin conmutacin "manual-automtico" suave = O: Con conmutacin "manual-automtico'' suave No significativos Funciones especiales integradas 6.38 OB 250: Inicializar algoritmo PID Funcin El OB 250 inicializa el algoritmo PID. Se llama en los OBs de arranque OB 20/21/22. Parmetros Los parmetros necesarios para la inicializacin se encuentran en el mdulo de datos de transferencia (DB x). 1 !Lm6dulo de transferencia debe ser abierto antes de llamar al OB 250. Por cada regulador hay que utilizar para la transferencia de los datos un DB x propio (x 2 254). Partiendo de ste, el programa de sistema genera automticamente otro DB x + 1 en la RAM de mdulos de datos, el cual es utilizado como campo de datos por el regulador en el funcionamiento cclico; los correspondientes nmeros de mdulos de datos debern estar libres. Los mdulos de datos DB x + 1 forman la interfaz de datos entre los reguladores y el usuario o la periferia. Errores El OB 250 utiliza internamente el OB 254 u OB 255 (duplicar mdulos de datos). En caso de error, la CPU detecta un error en tiempo de ejecucin y llama al OB 31. Si ste no est programado la CPU pasa al estado STOP. Los identificadores de error depositados en el AKKU 1 se referirn entonces al OB 250. Nota Si durante la inicializacin no estaba libre el DB x + 1, ste ser utilizado por el programa de sistema como campo de datos de regulador sin dar aviso previo y siempre que tenga la misma longitud que un regulador de mdulos de datos (48 palabras de datos); en tal caso se borran las palabras de datos 20 a 48. De lo contrario la CPU pasa al estado STOP. En lugar de mdulos de datos DB tambin se pueden utilizar mdulos de datos ampliados DX. Su inicializacin es anloga a la de los mdulos de datos DB. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas 6.39 OB 251: Procesar algoritmo PID Aplicacin El OB 251 es llamado durante el procesamiento cclico de programa y se encarga de procesar el algortimo PID. Llamada Una vez transcurrido el tiempo de exploracin se ha de llamar al regulador. Hay que respetar la siguiente secuencia: 1" Abrir el mdulo de datos DB x + 1 2" Cargar los datos de entrada Xk, XZk, Zk y YHk o un subconjunto de ellos 3" Convertir al formato correcto los datos de entrada y transferirlos al DB x + 1 4" Llamar al OB 251 (procesamiento de regulador PID) 5" Cargar el dato de salida YAk del DB x + 1 6" Convertir el dato y transferirlo a la periferia de proceso Formato de las Para la representacin interna de nmeros, el algoritmo de regulacin PID utiliza el entradas y formato de coma flotante pudiendo ser alimentado con nmeros en coma flotante. salidas de Tambin es posible alimentar el algoritmo de regulacin PID con nmeros de coma a reguladores la izquierda (vase al respecto bit 6 y 7 de la palabra de control STEU). En este caso, en cada llamada, el regulador convierte por s solo las palabras al formato de coma flotante. La conversin de las palabras de las tarjetas de entrada y de salida en el programa STEP 5 ser ms favorable en cuanto al tiempo de ejecucin si se utiliza el formato de coma a la izquierda (vase table al final de este captulo). Entradas W, YH, X, Z y XZ pueden ser introducidos opcionalmente como nmero en coma flotante o de coma a la izquierda. En el mdulo de transferencia de datos se dispone de diferentes espacios de memoria para cada magnitud. Entrada como (Ms informaciones sobre el nmero de coma a la izquierda: vase tabla al final nmero de coma de este captulo) a la izquierda Nota Si se respetan las zonas nominales de entrada de las tarjetas de entrada analgica hay que tener en cuenta que la notacin binaria de un determinado valor de entrada ser otra que en caso de aprovechar toda la zona de entrada. Esto tiene especial importancia a la hora de ajustar el valor nominal, puesto que puede ocurrir que no pueda alcanzarse un valor nominal introducido por el aparato de programacin, aunque el valor efectivo est muy por encima del valor deseado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Salida Si el conversor analgico-digital da los valores negativos como valor absoluto y signo, entonces se deber formar el complemento de dos antes de que sean transferidos al mdulo de datos de regulador. A continuacin se deber poner la posicin binaria 15 = 1. Si el nmero -O es posible como valor absoluto y antesigno en forma de en el conversor analgico-digital utilizado, no se deber formar con l ningn complemento de dos, sino que el nmero deber pasar en forma de +O al mdulo de datos de regulador: La salida del regulador YA se encuentra en el DB en forma de nmero de coma a la izquierda y de nmero en coma flotante. El formato de las entradas y salidas de coma a la izquierda debe ser convertido antes y despus de llamar al regulador en el programa STEP 5 - teniendo siempre en cuenta las tarjetas de entrada y salida utilizadas (conversor analgico-digital, conversor digital-analgico) - antes de transferirlas al o desde el DB regulador. Observaciones Utilizacin del STOS generales Si STOS (bit 8 de STEU) est a cero, la conmutacin de funcionamiento manual a automtico se realiza suavemente, es decir, una diferencia de regulacin pendiente y de cualquier dimensin slo se regula a travs de la componente 1. Pero si se selecciona TI = TA/TN = O (regulador P o PD), la diferencia de regulacin no modifica la magnitud de consigna al conmutar. Esto puede evitarse poniendo STOS = 1. Entonces, la diferencia de regulacin se regula rpidamente al conmutar de "manual-automtico", independientemente de que TI = O o no. El salto de magnitud de consigna que se produce en este caso corresponde a la magnitud de la diferencia de regulacin, por lo que no es arbitrario en el sentido de un fallo del funcionamiento del regulador. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Indicacin de MERK, bits O y 1 Los bits O y 1 de MERK pueden ser utilizados para indicar que la magnitud de consigna (el incremento de consigna en el algoritmo de velocidad) se encuentra dentro del lmite superior o inferior. Ya que el algoritmo evala estos bits para desconectar la componente 1, no deben ser sobreescritos. Nota Los mdulos de datos de regulador de DB x+ 1 no deben volver a ser cargados durante el funcionamiento cclico. Regulacin en cascada Si se ha estructurado una regulacin en cascada basada en dos o ms reguladores, hay que tener en cuenta lo siguiente: - Si se subdivide una cascada, todos los reguladores tienen que pasar simultneamente al funcionamiento manual para que ningn regulador se pueda desviar a consecuencia de su componente 1, o , por lo menos el regulador del circuito exterior tiene que operar en funcionamiento manual, para que la ltima magnitud de consigna que corresponde al valor nominal del circuito interior, pueda ser conservada o llevada a un valor de seguridad. - Si la cascada ha de ser cerrada, ambos circuitos a la vez o por lo menos el circuito interior tienen que estar operando en funcionamiento automtico para que el valor de consigna del circuito exterior pueda ser tomado como valor nominal. Conmutacin a funcionamiento manual Si al conmutar a funcionamiento manual, el tramo de regulacin es separado del regulador y se reposiciona en el actuador directamente, la magnitud de consigna obtenida de esta manera tiene que ser asignada manualmente al regulador. Esto hace que al conmutar de funcionamiento manual a automtico, la salida del regulador concuerde con la magnitud de consigna ajustada en funcionamiento manual. En el caso del algoritmo de velocidad se trata de la modificacin de la magnitud de consigna. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Valores caractersticos de reguladores Regulador P El valor caracterstico de un regulador P es K. Se trata del cociente de la magnitud de salida y entrada: K = XaiXe. Regulador PI Los valores caractersticos de un regulador PI son el coeficiente proporcional K y el tiempo de reajuste TN. El coeficiente proporcional K es el cociente de la magnitud de salida y entrada, el cual determina el comportamiento P. El tiempo de reajuste TN es el tiempo que se requiere en la respuesta, para conseguir a consecuencia del efecto 1, una modificacin de magnitud de consigna igual a la que corresponde a la componente P. Regulador PD Los valores caractersticos de un regulador PD son el coeficiente proporcional K (vase arriba) y el tiempo de accin derivada TV. El tiempo de accin derivada es el tiempo que necesitada un regulador P, a una velocidad constante de modificacin de la magnitud de entrada, para producir una modificacin igual al valor de la magnitud de salida, que un regulador PD produce inmediatemente debido a su componente D. Para determinar el tiempo de accin derivada TV, no se parte de una funcin de salto, sino de una modificacin lineal de la magnitud de entrada. Regulador PID Los valores caractersticos del regulador PID son el coeficiente proporcional K, el tiempo de reajuste TN y el tiempo de accin derivada TV. Estos determinan el comportamiento P, 1 y D. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones especiales integradas Modificacin de La componente P de la magnitud de consigna se calcula segn la siguiente parmetros frmula: Componente P = KP (XWk - XWk-1) Si se modifica KP o R en funcionamiento automtico, esta alteracin solamente tiene efecto sobre las modificaciones posteriores de la diferencia de regulacin XWk. El valor momentneo de la magnitud de consigna no se altera al modificar los parmetros. Esta caracterstica permite modificar parmetros suavemente. Si este comportamiento es indeseado, puede ser eliminado mediante el siguiente clculo, el cual ha de ser efectuado una sola vez en cada modificacin de parmetros (ejemplo de la modificacin KP): Si para modificar parmetros se utiliza el siguiente programa, el regulador se comporta como un regulador analgico: :L KPnuevo cargar KPnuevo :L mant eri or cargar KPanterior : -G :L DD38 XWk-i :xG :L DD44 Yk-1 :+G :T DD44 = Yk-1 Abreviaturas dYk para el regulador dZk PID GP k K LP OG R TA TD TI t TN TV UG Wk Xk XWk Yk YAk Zk Incremento de consigna calculado Incremento perturbador Representacin en coma flotante Exploracin n% Coeficiente proporcional Representacin en coma a la izquierda Limite superior (limitador) Parmetro R Tiempo de exploracin TVITA TAlTN Instante de exploracin = k TA Tiempo de reajuste Tiempo de accin derivada Lmite inferior (limitador) Valor nominal Valor efectivo Diferencia de regulacin Magnitud de consigna calculada Valor de consigna (incremento o magnitud de consigna) Magnitud perturbadora Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Nmero de coma Para representar un nmero de coma a la izquierda en un mdulo de datos se a la izquierda requiere una palabra de datos. La asignacin entre nmeros de coma a la izquierda en notacin decimal, nmeros en coma a la izquierda en notacin dual y la visualizacin en formato KF en el aparato de programacin se muestra en el siguiente ejemplo. Tabla 6-12 Nmeros de coma a la izquierda Los nmeros negativos de coma a la izquierda resultan en la notacin dual formando el complemento de dos de nmeros positivos de coma a la izquierda. Los nmeros de coma a la izquierda (LE) pueden ser convertidos al formato (KF) utilizado en el aparato de programacin segn la siguiente relacin: Nmero en coma fija -32767 -24576 -16384 -8192 o t 8192 t16384 t24576 t32767 Nmero de coma a la izquierda en con -1 e LP e+1 y -32767 S KF S + 32767 notacin decimal -0.999... . -0.75 -0.5 -0.25 o t0.25 t0.5 t0.75 t0.999 ... . Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 notacin dual 1000000000000001 1010000000000000 1100000000000000 11 10000000000000 0000000000000000 0010000000000000 0100000000000000 0110000000000000 O111111111111111 Funciones es~eciales intearadas 6.40 OB 2541255: Desplazarlduplicar mdulos de datos Introduccin Con las funciones especiales OB 2541255 se transfieren mdulos de datos individuales desde la memoria de usuario a la RAM de mdulos de datos de la CPU. Las funciones especiales OB 254 y OB 255 se ejecutan de la misma manera, slo que el OB 254 opera exclusivamente con mdulos de datos DX y el OB 255 con mdulos de datos DB. Aplicacin Funcin Desplazar o duplicar un mdulo de datos Desplazar El mdulo de datos es desplazado desde la memoria de usuario a la RAM de mdulos de datos. El mdulo de datos se desplaza desde la memoria de usuario a la DB-RAM manteniendo su nmero de mdulo original. La nueva direccin inicial se registra en la lista de direcciones del DB O. Duplicar Se copia un mdulo de datos de la memoria de usuario o de la DB-RAM con otro nWe mdulo en la RAM de mdulos de datos. La direccin inicial del nuevo mdulo de datos se registra en la lista de direcciones del DB O. La direccion inicial del mdulo anterior se mantiene en el DB O, es decir, el mdulo de datos original sigue siendo vlido. La direccin inicial se registra en el DB O slo cuando haya concluido toda la transferencia y todas los identificadores estn registrados correctamente en la cabeza del mdulo. Por consiguiente, el programa de sistema solamente considerar vlido el mdulo duplicado cuando la transferencia haya finalizado por completo. Nota No es posible desplazar el DB O a la DB-RAM puesto que ste ya se encuentra en ella. Sin embargo, es posible duplicar el DB O. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funciones es~eciales intearadas Parmetros 1. AKKU-1-L-L Errores Nmero del mdulo a copiar, valores admisibles: O a 255 (O slo para DX o para duplicar un DB) Con el valor del AKKU-1-H-L se indica si se desea desplazar o duplicar un mdulo: AKKU-1-H-L = 0: El mdulo de datos DB (llamada OB 255) o DX (llamada (OB 254) que corresponde al nmero indicado en el AKKU-1-L-L se desplaza a la DB-RAM. AKKU-1-H-L = n v e l mdulo nuevo, valores admisibles: 1 a 255 El mdulo de datos DB (llamada OB 255) o DX (llamada OB 254) que corresponde al nmero indicado en el AKKU-1-LL se duplica en la DB-RAM y se registra en el DB O con el nmero depositado en el AKKU-1-H-L. Los valores de AKKU-1-L-H y AKKU-1-H-H no son considerados por los OB 254 y OB 255, y por lo tanto, no son significativos a la hora de parametrizar los OBs. El mdulo de datos que va ser desplazado no existe (OB19). El mdulo ya se encuentra en la DB-RAM (OB 31) (por ello la funcin slo se deber ejecutar una vez y preferentemente durante el arranque). El espacio de memoria de la DB-RAM es insuficiente (OB 31). En caso de error no se ejecuta la funcin. El programa de sistema detecta un error en tiempo de ejecucin y llama al OB 19 u OB 31. La siguiente reaccin depender de cmo se haya programado el OB 19 31 (vase captulo 5.6). Si el OB 19 31 no est cargado la CPU pasa al estado STOP. En ambos casos el AKKU-1-L contiene una identificacin de error que explica ms detalladamente el error que se ha producido. Ejemplo DB. La tabla siguiente muestra la ocupacin de la memoria despus de llamar repetidas veces al OB 255 con los parmetros expuestos en la tabla. Orden de Funcin A KKU - 1 - DB en memoria tras llamada -H-H -H-L -L-H -L-L Mem.deusuario DB-RAM Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo de datos ampliado DX O 7 Resumen breve Este captulo explica en qu casos se puede utilizar el mdulo de datos DX O y cmo est estructurado. Le informa asimismo del significado de los distintos parmetros DX O. Por medio de ejemplos aprender cmo crear un mdulo de datos DX O o cmo parametrizarlo a travs una mscara. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 7.1 7.2 7.3 7.4 Tema Aplicacin Estructura del DX O Parmetros del DX O Ejemplos de parametnzacin Pgina 7-2 7-3 7-6 7- 10 Mdulo de datos am~liado DX O 7.1 Aplicacin Introduccin El usuario puede adaptar a sus necesidades determinadas funciones del programa de sistema cambiando los parmetros estndar en el DX O (marcados con una "E" en la tabla de parmetros). Los ajustes estndar del programa de sistema (E) se activan automticamente cada vez que se ejecuta un NUEVO ARRANQUE. Despus se evala el DX O. Si el usuario no ha parametrizado ni cargado el mdulo DX O, entonces seguirn siendo vlidos los ajustes estndar; en caso contrario, valen los ajustes parametrizados por el usuario. Los ajustes del DX O se efectan programando los valores con instrucciones STEP 5, de la misma manera como se programan en un mdulo de datos cualquiera (vase captulo 7.2) o bien - con el software de sistema para el aparato de programacin SS-DOS a partir de la versin 3.0 - introduciendo los valores a modo de parmetros a travs de una mscara especial del aparato de programacin (vase captulo 7.4.2). Nota DX O slo se evala cuando se ejecuta un NUEVO ARRANQUE. Para los parmetros que no se hayan introducido en el DX O se adoptan los ajustes predeterminados en el programa de sistema. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo de datos am~liado DX O 7.2 Estructura del DX O Introduccin El DX O se divide en tres partes: la identificacin inicial del DX O (DW O, 1 y 2) varios bloques de distinta longitud (segn la cantidad de parmetros) Y la identificacin final EEEE. Identificacin inicial Bloque Identificacin del bloque Longitud del bloque Parmetros Identificacin final Caracteres ASCII MASKXO en DW O hasta DW 2 Un bloque del DX O consta de 1 hasta n palabras de datos. Estas contienen: la 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. Los parmetros vlidos estn descritos en el captulo 7.3. Los valores numricos indicados estn en formato hexadecimal (KH). Indica el final del DX O con EEEEH en la ltima palabra de datos. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo de datos am~liado DX O Estructura Bi t nQ 15 8 7 O Caract eres M A ASCI I : S K X o 1 I dent i f . de bl oque 1 1 Long. de bl oque 1 1 Parmet ro Parmet ro Parmet ro Bl oque 1 Parmet ro / / - I dent i f . de bl oque 2 Bl oque 2 Long. de bl oque 2 1 I dent i f . de bl oque n 1 Long. de bl oque n 1 Parmet ro Parmet ro Parmet ro Bl oque n Fig. 7-1 Estructura del DX O DW m Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 E E E E I dent i f . f i nal Mdulo de datos am~liado DX O Ejemplo de introduccin del DX O Identificacin inicial DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830 Ident./longitud de bloque DW 3: KH = O101 Parmetro (ocupa 1 DW) DW 4: KH = 1001 Ident./longitud de bloque DW 5: KH = 0402 Parmetro (ocupa 2 DW) DW 6: KH = 1000 DW 7: KH = 0400 Identificacin final DW 10: KH = EEEE Bloque 2 Observar las siguientes indicaciones al parametrizar el DX O: El orden de entrada de los bloques es arbitrario. No hace falta indicar los bloques que no se requieran. Si se repite un bloque determinado valdr el ltimo bloque entrado. El orden de entrada de los parmetros es arbitrario. No hace falta indicar los parmetros que no se requieran. Si se repite un parmetro determinado valdr el ltimo parmetro entrado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo de datos am~liado DX O 7.3 Parmetros del DX O Significado de los parmetros Tabla 7-1 Parmetros DX O y su significado Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ident~longitud de bloque Parmetro 1' pa1.12"al. Significado E = ajuste por defecto en caso de que el DX O no est cargado o falte el bloqueiparmetro ARRANQUE y RUN O ~ X X l) 1000 1001 2000 2001 3000 3001 4000 4001 6000 6001 BBOO yyyy E REARRANQUE AUTOMATICO tras CONEXION NUEVO ARRANQUE AUTOMATICO tras CONEXION E Sincronizacin del ARRANQUE en modo multiprocesador Sin sincronizacin del ARRANQUE en modo multiprocesador E Supervisin de errores de direccionamiento Sin supervisin de errores de direccionamiento E REARRANQUE NUEVO ARRANQUE CON MEMORIA E Aritmtica de coma flotante con mantisa 16 bit (ia CPU ejecuta las operaciones con un mantisa de 24 bit de ancho) Aritmtica de coma flotante con mantisa 24 bit Cantidad de temporizadores a actualizar ' ) Preajuste: yyyy = 256 temporizadores, es decir, temporizador O hasta 255 vlidos: 0...256 Procesamiento cclico del programa 04xx ') 1000 yyyy 4000 4001 Tiempo de supervisin de ciclo en milisegundos; Preajuste: yyyy = 150 ms, vlido: 1s yyyy s 32C8 @ex) 1 ms hasta 13000 ms (dec) 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) Procesamiento de alarmas: alarmas temporizadas 06xx ') 3) 2000 2001 Seleccin del modo de procesamiento 3, E Seal de alarma de proceso, activacin por nivel Seal de alarma de proceso, activacin por flancos Tratamiento de errores 1Oxx l) 1000 1001 Tratamiento de colisiones de alarmas temporizadas: E Stop de sistema cuando tiene lugar el suceso y el OB 33 no est cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 33 no est cargado. Mdulo de datos am~liado DX O l) xx = longitud de bloque (cantidad de palabras de datos ocupadas por los parmetros) 3, Para ms informacin respecto a la actualizacin de los temporizadores consulte las explicaciones en la pgina siguiente 4, Los parmetros y su significado se desprenden de la tabla ilustrada en la pgina 7 - 9 Ident~longitud de bloque Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Parmetro 1' pa1.12"al. Significado E = ajuste por defecto en caso de que el DX O no est cargado o falte el bloqueiparmetro Tabla 7-1 (continuacin): 1 Oxx EEEE 1200 1201 1400 1401 1800 1801 1AOO 1AO1 1COO 1CO1 1E00 1E01 2000 2001 Tratamiento de errores de regulador: E Stop de sistema cuando tiene lugar el suceso y el OB 34 no est cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 34 no est cargado. Tratamiento de errores de ciclo: E Stop de sistema cuando tiene lugar el suceso y el OB 26 no est cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 26 no est cargado. Tratamiento de errores en cdigo de instruccin: E Stop de sistema cuando tiene lugar el suceso y el OB 27/29/30 no est cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 27/29/30 no est cargado. Tratamiento de errores en tiempo de ejecucin: E Stop de sistema cuando tiene lugar el suceso y el OB 19/31/32 no est cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 19/31/32 no est cargado. Tratamiento de errores de direccionamiento: E Stop de sistema cuando tiene lugar el suceso y el OB 25 no est cargado. No se produce stop de sistema cuando tiene lugar el suceso y el OB 25 no est cargado. Tratamiento de errores de retardo en acuse de recibo: Stop de sistema cuando tiene lugar el suceso y el OB 23/24 no est cargado. E No se produce stop de sistema cuando tiene lugar el suceso y el OB 23/24 no est cargado. Tratamiento de errores de interfaces: Stop de sistema cuando tiene lugar el suceso y el OB 35 no est cargado. E No se produce stop de sistema cuando tiene lugar el suceso y el OB 35 no est cargado. Identificacin final Mdulo de datos am~liado DX O Nota El software actual del aparato de programacin (STEP 5/ST versin 6 o STEP 5/MT versin 2) para crear el DX O por medio de una mscara no coloca los parmetros para el tratamiento de errores de interfaces (ident. de bloque lOxx, parmetro 2001) ni tampoco los parmetros para seleccionar "Rearranque o nuevo arranque con memoria" (ident. de bloque 02xx, parmetro 4000 4001). Estos parmetros pueden ser introducidos, por ejemplo, con la funcin del aparato de programacin "Salida mdulo" (tngase en cuenta que hay que modificar la longitud de bloque!). Un DX O que haya sido modificado de esta manera ya no podr ser editado con la funcin "Salida mscara". Actualizacin de los temporizadores De forma estndar se actualizan los temporizadores T O hasta T 255. Si en el DX O se registra la cantidad 'O' no se actualizan los temporizadores ni aunque se encuentren en el programa. Tampoco se emite ningn mensaje de error. Nota La cantidad de temponzadores tambin se puede parametrizar en el mdulo de datos DB 1 (vase captulo 10.1.6). Sin embargo, recomendamos indicar este parmetro solamente en el DX O. Si, no obstante, se desea ajustar la cantidad de temponzadores tanto en el DX O como en el DB 1 valdr el valor que se haya indicado en el DB l ! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo de datos am~liado DX O Parmetros para De la tabla siguientes se desprende el parmetro correspondiente al el procesamiento procesamiento de alarma deseado, con el que se programa el DX O. Dependiendo de alarmas del parmetro elegido tendrn efecto determinadas alarmas (o todas) en lmites de mdulos, correspondiendo a los smbolos, y otras alarmas (o todas) en lmites de instrucciones: E = Aj ust e est andar 0 I nt errupci n en l mi t es de mdul os I nt er r upci n en l mi t es de i nst rucci ones Para- metro (ante- rior) ' ) (1 OOC) 1224 (1 00A) 1220 121C (1 008) 1216 1214 1212 1210 120E 120C 120A 1208 1206 1204 (1 006) l) El software de PG utiliza los parmetros "anteriores" para crear el nuevo DX O. Si se desea visualizar en un PG un DX O que ha sido programado con nuevos parmetros mediante STEP 5, esto conduce a un aviso de error. Nota Si el tratamiento de alarmas est ajustado para activarse en lmites de instrucciones, en caso de interrupcin pueden interrumpirse tambin las operaciones 'TNB' o 'TNW'. Esto vale igualmente para algunos mdulos de organizacin de funciones especiales, mdulos de funciones estndar y mdulos de funciones de reguladores. Al arma de tiempo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 A l a r m a t e m p o r i z a d a 5 s 2 s 1 s 500 200 100 50 20 10 ms ms ms ms ms ms 1 2 2 C E n n n n n n n n n n n n o n n o n n n n n n 0 I 1 0 0 0 0 1 1 1 n n n n n n n n n n n m ~ ~ ~ ~ o ~ ~ ~ ~ m m O O n n o n n n m m m o o n n o o n m m m m O I 1 o O o m m m m m n n n n n m m m m m m n n n o m m m m m m m n n n m m m m m m m m o o m m m m m m m m m n m m m m m m m m m m m m m m m m Al arma de re- gul a- dar Alarma de re- tardo n 0 m m m m m m m m m m m m Al arma de pro- ceso n m m m m m m m m m m m m m Mdulo de datos am~liado DX O 7.4 Ejemplos de parametrizacin Programacin STEP 5 procesa un programa breve en funcin de tiempo. De forma estndar, todas las CPUs comenzan simultneamente con el procesamiento cclico del programa 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 pararnetrizacin del DX O 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 su arranque. Programacin del DX O para la CPU C: DX 0 Ident. incial "MASKXO" DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830 18 ident./long. de bloque DW 3: KH = 0201 Parmetro 1 DW 4: KH = 2001 Ident. final DW 5: KH = EEEE Con la siguiente parametrizacin del DX O se - desactiva la supervisin de errores de direccionamiento, - desactiva la actualizacin de los temporizadores, - ajusta el tiempo de ciclo a 4 s. DX 0 Ident. inicial "MASKXO" DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830 18 ident./long. de bloque DW 3: KH = 0203 Parmetro DW 4: KH = 3001 ~armetro l) DW 5: KH = BBOO DW 6: KH = 0000 28 ident./long. de bloque DW 7: KH = 0402 ~armetro l) DW 8: KH = 1000 DW 9: KF = +4000 Ident. final DW 10: KH = EEEE Esta pararnetrizacin del DX O tiene las siguientes repercusiones sobre el procesamiento del programa: - Aquella parte de la imagen de proceso que no tenga asignada ninguna tarjeta de E/S puede ser utilizada como "zona de marcas" adicional. - El tiempo de ejecucin del programa de sistema disminuye, puesto que no se actualizan temporizadores. - S610 se detecta un error de ciclo cuando el tiempo de ejecucin del programa de usuario y del programa de sistema juntos superen los 4 s. l) Para los parmetros que ocupen dos palabras de datos se deber indicar ' 2 ' a la hora de introducir la longitud del bloque1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Mdulo de datos am~liado DX O Parametrizacin El software de sistema SS-DOS para el aparato de programacin (a partir de la mediante la versin 3) dispone de pantallas que permiten parametrizar el DX O. El software pantalla del para PG crea automticamente el mdulo de datos DX O de acuerdo con los aparato de ajustes estndar y los parmetros que haya introducido el usuario. Para poder programacin efectuar estas parametnzaciones se requieren dos pantallas. El manual del aparato de programacin respectivo describe las operaciones bsicas para seleccionar y rellenar las pantallas del aparato de programacin. Modo de rellenar La pantalla del aparato de programacin prevista para rellenar el DX O consta de las pantallas DX O dos partes: La primera pantalla parcial (fig. 7-2) contiene los grupos de parmetros ARRANQUE TRAS DE CONEXION A RED, SINCRONIZAR EL ARRANQUE EN MODO MULTIPROCES., TRANSFERENCIA EN BLOQUE DE MARCAS DE ACOPL., SUPERVISION DE ERRORES DE DIRECCIONAMIENTO, SUPERVISION DE TIEMPO DE CICLO, CANTIDAD DE TEMPORIZADORES, PRECISION DE LA ARITMETICA DE COMA FLOTANTE (sin efecto, la CPU ejecuta las operaciones aritmticas con un mantisa de 24 bits de ancho) / DXO PARAMETRIZACION (S5 135U: CPU 928, PROCESADOR) DX O ARRANQUE DE TENSION: SINCRONIZAR ARRANQUE MULTIPROCESO TRANSFERIR MARCAS DE ACOPLAMIENTO VIGILANCIA ERROR DIRECC. VIGILANCIA T. CICLO (X 10 MS): NUMERO TEMPORIZADORES PRECISION ARITMETICA COMA FLOTANTE #24 BIT MANTISA SOLO EN CPU 928# 1 (1 = REARRANQUE 2 = NUEVO ARRANQUE) SI 15 (PROC. R: 1 - 400 CPU 928: 1 - 600) 256 (PROC. R: 0 - 128 CPU 928: O - 256) 16 BIT MANTISA Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 7ig. 7-2 Pantalla del aparato de programacin para parametrizar el DX O / 1"arte F7 F1 F3 ELEGIR F8 F2 F4 F5 F6 SEGUIR Mdulo de datos am~liado DX O Una vez introducidos los parmetros necesarios en la lvantalla, o si los parmetros a modificar no se encuentran all, se puede llamar a la segunda pantalla parcial (figura 7-3), la cual contiene el siguiente grupo de parmetros: ERROR DE DIRECCIONAMIENTO, ERROR DE CICLO, ERROR DE ACUSE DE RECIBO, COLISION DE ALARMAS TEMPORIZADORAS, ERROR EN CODIGO DE INSTRUCCION, ERROR DE REGULADOR, ERRON EN TIEMPO DE EJECUCION, PROCESAMIENTO DE ALARMAS DE PROCESO, INTERRUPCION DEL PROGRAMA DE USUARIO POR ALARMAS. / DXO PARAMETRIZACION (S5 135U: CPU 928, PROCESADOR) DX O ) STOP SISTEMA POR SUCESO Y 0 B ERROR NO EXISTENTE: ERROR DE DlRECClON (OB 25) SI ERROR CICLO ( 08 26) SI ERROR DE ACUSE (OB 23, 24) NO ERROR RELOJ (OB 33) SI ERROR INSTRUCCION (OB 27, 29, 30) SI ERROR REGUL. ( 08 34) SI ERROR EJECUCION (OB 19, 31, 32) SI ELABORACION DE ALARMAS NIVEL - TRIGGER INTERRUPCION DEL PROGRAMA DE USUARIO POR ALARMAS: MODO 1 1: TODAS ALARMAS ENTRE MODULOS 2: TODAS ALARMAS ENTRE INSTRUC. 3: SOLO ALARMAS PROCESO ENTRE INSTRUC. 4: SOLA ALARMAS PROCESO Y REGUL. ENTRE INSTRUC. X: (X = 10, ... 17) ALARMA TIEMPO 0810 - OBX Y REGUL./PROCESO ENTRE INSTRUCCIONES #SOLO PARA LA CPU 92%' ig. 7-3 Pantalla del aparato de programacin para parametrizar el DX O / 2"arte El siguiente diagrama secuencia1 explica cmo rellenar pantallas parciales y sus respectivos campos de entrada, cmo almacenar los parmetros y cmo cargar el mdulo de datos DX O creado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 F7 F1 \ F3 ELEGIR F8 F2 F4 F5 F6 SEGUIR Mdulo de datos am~liado DX O Diagrama secuencia1 para rellenar la pantalla DX O SI Repet i r el si gui ent e proceso hast a haber real i zado t odas las modi f i caci ones necesari as en l a 1@ mscara: - Seleccionar el campo de entrada: Posi ci onar el cursor del ant e del campo de parmet ros. El campo i ndi cador F3 en el margen i nf eri or de l a pant al l a i ndi ca si exi st en di st i nt as opci ones a el egi r (' ' ELEGI R' ' ) o si se puede modi f i car el val or del parmet ro (' ' ENTRADA' ' ). - 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 admisible. Pulsar l a t ecl a F6 ( " SEGUI R" ) ; se vi sual i za l a 2@ mscara. Modi f i car los parmet ros como descri t o para l a 1@ mscara. Pulsar l a t ecl a de acept aci n: el sof t ware del aparat o de programaci n acept a t odos los aj ust es ef ect uados en ambas mscaras y genera con el l os el mdul o de dat os DX O. El DX O queda regi st rado en el aparat o de programaci n. Puede ser cargado en l a CPU o en un cart ucho EPROM medi ant e el aparat o de programaci n. El ejemplo de la pgina siguiente muestra cmo se rellenan las pantallas. Ejemplo de cmo rellenar la pantalla DX O Se desea parametrizar el DX O para obtener un comportamiento del programa de sistema distinto al estndar: - En modo multiprocesador, la CPU para la que ha sido programado el DX O no deber esperar en el arranque a que las dems CPUs finalicen su arranque. - El tiempo de supervisin de ciclo ha de ser de 100 ms. - Las operaciones aritmticas deben ejecutarse con una mantisa de coma flotante de 24 bits. - Si se producen errores de ciclo, la CPU no debe pasar a STOP si el OB 26 no est cargado. - El programa de usuario debe ser interrumpido por todas las alarmas en lmites de instrucciones. Para efectuar estos ajustes, rellenar la pantalla como se indica: Primera ~antalla DX O: - En el campo del parmetro "SINCRONIZAR ARRANQUE MULTIPROCESO": seleccionar NO con la tecla de funcin F3. - En el campo del parmetro "VIGILANCIA T. CICLO": pulsar primero la tecla de funcin F3 y despus introducir la cifra 10 ( = 100 ms). - En el campo del parmetro "PRECISION ARITMETICA COMO FLOTANTE": seleccio- nar la "mantisa 24 bit" con la tecla de funcin F3. - A continuacin pulsar la tecla de funcin F6 (SEGUIR). As se visualizar la segunda pantalla DX O. Seounda p a n a l a Dx O: - En el campo del parmetro "ERROR CICLO": seleccionar NO con la tecla de funcin ~ 3 . - En el campo MODO y con el parmetro "INTERRUPCION DEL PROGRAMA DE USUARIO POR ALARMAS": introducir la cifra '2' (= activar todas las alarmas en lmites de instrucciones) - Confirmar todas las entradas con la tecla de aceptacin. A continuacin, el software del aparato de programacin crear el mdulo de datos DX O. Transferir finalmente el DX O a la memoria de la CPU o a un cartucho EPROM. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria Resumen breve Este captulo explica cmo est organizada la memoria de la CPU 928B, versin -3UB21. En l se encuentran informaciones importantes a las que puede acceder el usuario y que han sido depositadas en algunas palabras de datos del sistema. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 8.1 8.2 8.2.1 8.2.2 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 Tema Estructura de la zona de memoria Distribucin de la zona de direcciones de la CPU 928B-3UB21 Distribucin de la zona de direcciones de la RAM de sistema Distribucin de la zona de direcciones de la periferia Organizacin de la memoria de usuario de la CPU 928B-3UB21 Cabezas de mdulos en la memoria de usuario Listas de direcciones de mdulos en el mdulo de datos DB O Zona BA/BB Zona BS/BT Ocupacin de los bits de las palabras de datos de sistema Pgina 8-2 8-3 8-4 8-5 8-7 8-8 8-9 8-12 8-13 8-16 Ocu~acin v oraanizacin de la memoria 8.1 Estructura de la zona de memoria Cuadro sinptico La zona de memoria de la CPU 928B se divide bsicamente en las siguientes zonas: Tabla 8-1 Estructura de la zona de memoria Las direcciones exactas de estas zonas estn indicadas en los esquemas de ocupacin de memoria indicados en las pginas siguientes. Zona de memoria Memoria de usuario para: OB, FB, FX, PB, SB, DB, DX DB-RAM para: mdulos de datos, registros de desplazamiento Marcas: S Zona de interfaz: BA, BB Zona de sistema: BS, BT Contadores: Z Temporizadores: T Marcas: M Imagen de proceso (PA) de las entradas y salidas: PAE, PAA Zona de periferia, se divide en: Periferia P Periferia Q IM 3 IM 4 Marcas de acoplamiento Coordinador (tarjeta KOR) Pginas (CP, IP, KOR 923C) Periferia decentral Nota El acceso STEP 5 a una clula de memoria que se encuentre en el interior 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. Las direcciones bsicas de todas las zonas de operandos estn registradas en la zona de datos de sistema (zona BS) (vase "Ocupacin de la memoria"). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Longitud mx. 32 .21 pal. 23 .21 pal. 1024 byte 256 pal. respec. 256 pal. respec. 256 pal. 256 pal. 256 byte 128 byte respec. 256 byte 256 byte 256 byte 256 byte 256 byte 256 byte 2048 byte 768 byte Anchura 16 bit 16 bit 8 bit 16 bit 16 bit 16 bit 16 bit 8 bit 8 bit 8 bit Ocu~acin v oraanizacin de la memoria 8.2 Distribucin de la zona de direcciones de la CPU 928B-3UB21 B i t n Q 15 8 7 O l Memori a de usuari o l l mx. 32 x 2" pal abras DB-RAM 23 x 2' pal abras DB O (l i sta de di recci ones de mdul os) Marcas S E8 0 0 0 Datos de transferencia del sistema (zona BAIBB), datos del si stema (zonas BS/BT), E E F F EFOO E D F F E F F F F O O O contadores, tempori zadores F F F F 15 E E O O Marcas Zona PA peri feri a o ~ (di gi tal /anal gi ca CPII P) RAM de si stema, i nterna en l a CPU (vase tambi n fi g. 8-2) Bus S5 (vase tambi n fi g. 8-3) l Fig. 8-1 Distribucin de la zona de direcciones en la CPU 928B-3UB21lesquema Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria 8.2.1 Distribucin de la zona de direcciones de la RAM de sistema Bi t nQ 8000 EAFF EBOO EBFF ECO0 ECFF EDOO EDFF Fig. 8-2 DB-RAM Marcas S BA: zona de i nt er f az BB: zona ampl i ada de i nt erf az BS: zona de dat os de si st ema BT: zona ampl i ada de dat os de si st ema Cont ador es (256) Tempori zadores (256) EEOO Marcas Zona PA EFFF 7 o Distribucin de la zona de direcciones de la RAM de sistema Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria 8.2.2 Distribucin de la zona de direcciones de la periferia Bi t n" O FOOO F07F F080 FOFF F1 O0 F1 FF F200 F2FF F300 F3FF F400 Per i f er i a di gi t al (con PA), 1024 bi t s de ent r ada / 1024 bi t s de sal i da Per i f er i a di gi t al o anal gi ca (si n PA), 1024 bi t s de ent r ada / 1024 bi t s de sal i da Per i f er i a ampl i ada 2048 bi t s de entrada12048 bi t s de sal i da FBFF FCOO Per i f er i a decent r al , vol umen ampl i ado de di r ecci ones 7 Zona P 1 Zona Q l 2048 bi t s de marcas de acopl ami ent o ( en l a t ar j et a del coordi nador/ CP) 32 semf or os ( en l a t ar j et a del coordi nador) Zona de t r ansf er enci a de dat os par a CP (pgi nas) FCFF FDOO ; , FFOO f t Zona de pgi nas I Zona I M 3 Zona I M 4 A Fig. 8-3 Distribucin de la zona de direcciones de la periferia (8 bit) en el bus S5 FFFF Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupado Ocu~acin v oraanizacin de la memoria Zonas de direcciones para la periferia y su programacin Con las operaciones STEP 5 se puede acceder a la perifena directamente o por medio de la imagen de proceso. Hay que tener en cuenta que la imagen de proceso slo existe para los byte de las entradas y salidas de la perifena P, cuyas direcciones byte sean de O a 127! Zona (direccin absoluta) Periferia P con imagen de proceso (imagen de proceso (imagen de proceso Periferia P Penfena digital entradasisalidas F07F analgica Periferia Q Periferia ampliada entradasisalidas FlFF Nota El usuario puede acceder con su programa a zonas de direccio- nes decentrales a travs de las interfaces IM 304, IM 307 e IM 308. De este modo se obtienen dos nuevas zonas de memoria equivalentes a la zona Q. Sin embargo, al contrario que en el caso de la zona Q, slo puede accederse a estas zonas mediante direccionamiento absoluto, o tambin con el mdulo FB 196 del paquete de software "funciones bsicas" (vase catlogo ST 59, bibliografa 190. Se accede con Parmetro Cuando se procesan las operaciones slo se modifica la imagen de proceso. Slo al final del ciclo se transfiere el nuevo estado de la imagen de proceso a la periferia. LEB / TEB O a 127 L E W/ TEW O a 126 LED / TED U E / UNE / OE / ONE S E / R E / = E LAB / TAB O a 127 LAW/ TAW O a 126 LAD / TAD 1 O a 124 U A / U N A / O A / O N A - 0. 0a 127.7 S A / R A / = A A las entradas y salidas se accede directamente byte por byte o palabra por palabra. LPY / TPY O a 127 L P W/ TPW O a 126 LPY / TPY 128 a 255 L P W/ TPW 128 a 254 A las entradas y salidas se accede directamente byte por byte o palabra por palabra. LQB / TQB O a 255 LQWI TQW O a 254 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria 8.3 Organizacin de la memoria de usuario de la CPU 928B-3UB21 Introduccin La memoria de usuario comprende la zona de memoria desde OOOOHhasta 7FFFH. Al cargar los diferentes mdulos del programa de usuario, stos se almacenan en orden arbitrario (direcciones ascendentes). "Carga Los mdulos de datos DB/DX se pueden cargar de diversa manera, segn el alternativa" de ajuste registrado en la palabra de datos de sistema BS 144: mdulos de datos De acuerdo con el ajuste estndar los mdulos de datos se cargan en primer lugar en la memoria de usuario. Solamente cuando sta est llena se depositan los mdulos de datos en la DB-RAM interna (8000H a DD7FH). Activando el bit O en BS 144 puede invertirse el orden (= "carga alternativa"). Informacin Con la funcin del aparato de programacin on line SPAUS (extensin de la sobre la memoria memoria) se obtiene la direccin (hexadecimal) de la clula de memoria que contiene la instruccin de fin de mdulo del ltimo mdulo de la memoria de usuario, as como el tamao de la misma. Administracin Al corregir los mdulos, el mdulo "antiguo" se declara no vlido y se registra de los mdulos un nuevo mdulo en la memoria y en la lista de direcciones. Del mismo modo, cuando se borran los mdulos, stos no son realmente borrados sino declarados no vlidos. Los huecos que se producen al borrar los mdulos se administran como espacios libres de memoria y se vuelven a utilizar cuando se cargan nuevos mdulos. Los huecos que se hayan creado al borrar mdulos no se pueden reutilizar inmediatamente (v. "Comprimir memoria). En modo EPROM no es posible corregir ni borrar mdulos. Comprimir memoria Con la funcin on line COMPRIMIR MEMORIA se crea espacio de memoria para nuevos mdulos: esta funcin optimiza la ocupacin del espacio de memoria borrando los mdulos declarados no vlidos y agrupando los mdulos vlidos. Esta compresin se efecta por separado, en la memoria de usuario y en la DB-RAM (vase captulo 11.2). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria 8.3.1 Cabezas de mdulos en la memoria de usuario Estructura Cada mdulo en la memoria comienza con una cabeza de mdulo de 5 palabras de longitud. l val abra: Identificacin inicial del mdulo: 7070H 2"alabra: Byte alto = tipo de mdulo Bi t ng 15 14 13 1 12 1 11 1 10 9 1 8 1 0 1 ~ Mdul o de dat os DB 02H Mdul o de pasos SB 04H Mdul o de programa PB 05H Mdul o de f unci ones FX 08H Mdul o de f unci ones FB OCH Mdul o de dat os DX 10H Mdul o de organi zaci n OB O O Mdul o no vl i do, no regi st rado en l a l i st a de di recci ones DB O. O 1 Mdul o en l a RAM es vl i do, regi st rado en l a l i st a de di recci ones DB O. Mdul o no vl i do y prot egi do cont ra escri t ura (vl i do en " EPROM" ) Byte bajo = nmero de mdulo El nmero de mdulo (O a 255) se encuentra en el byte bajo de la 2"alabra de la cabeza y est codificado como nmero dual: 00 a FFH. 3"alabra: El byte alto de la 3"alabra contiene las identificaciones del aparato de programacin; el byte bajo contiene una parte del nmero de biblioteca. 4"alabra: La 4"alabra contiene el resto del nmero de biblioteca. 5"alabra: En la 5"alabra (byte bajo y alto) se encuentra la longitud del mdulo, incluida la cabeza del mdulo. La longitud se indica en palabras. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria 8.3.2 Listas de direcciones de mdulos en el mdulo de datos DB O Introduccin El mdulo de datos DB O contiene la lista de direcciones iniciales de todos los mdulos de usuario que se encuentran en el cartucho de memoria o en la DB-RAM de la CPU. Esta lista de direcciones se genera tras un BORRADO TOTAL y se actualiza automticamente al transferir o modificar mdulos de datos con el aparato de programacin. Direcciones iniciales de las listas de direcciones Por cada tipo de mdulo existe en el DB O una lista de direcciones de 256 palabras de longitud reservada especialmente, es decir, por cada mdulo de datos hay 1 palabra reservada. Los mdulos de datos no cargados o borrados tienen la direccin inicial 'O'. Las direcciones iniciales de las distintas listas de direcciones de mdulos estn registradas asimismo en los datos de sistema BS 32 a BS 38: BS 32: Direccin inicial de la lista de direcciones DX BS 33: Direccin inicial de la lista de direcciones FX BS 34: Direccin inicial de la lista de direcciones DB BS 35: Direccin inicial de la lista de direcciones SB BS 36: Direccin inicial de la lista de direcciones PB BS 37: Direccin inicial de la lista de direcciones FB BS 38: Direccin inicial de la lista de direcciones OB (slo 48 palabras de longitud) Direcciones Las direcciones iniciales de los mdulos que figuran en las listas de direcciones iniciales de los indican siempre la primera palabra que sigue a la cabeza del mdulo: mdulos en mdulos de datos indican la palabra de datos DW O. en mdulos de cdigo indican la primera instruccin STEP 5 (en los FBs indi- can la instruccin 'SPA' antes del nombre y de la lista de parmetros). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Almacenamiento de las direcciones de mdulos en el DB O DBO n = di recc. inicial de l a l i sta de direcciones PB (= contenido de BS 36) Direccin PB 1 Direccin PB 2 Si como direccin se ha registrado el valor 'O', el mdulo de datos no est cargado. nt 178 Direccin PB 178 ~ nt 179 Direccin PB 179 ~ Fig. 8-4 Direcciones de mdulos en el DB O Ejemplos de cmo averiguar una direccin de mdulo :L BS 37 D i r . bs i ca l i s t a de d i r . FB :L KB 40 + nmero FB = di r ecci n de l a cl ul a de memo- r i a que cont i ene l a d i r . i n i c i a l d e l FB 40 Cargar l a di r ecci n i n i c i a l de l FB 40 en e l AKKU 1. ( El mdulo no e x i s t e s i l a di r ecci n i n i c i a l = 0) :L BS 37 D i r . bs i ca l i s t a de d i r . FB Cargar r e g i s t r o BR con d i r . bsi ca Cargar e l cont eni do de l a cl ul a de memoria " di r . bs i ca + 40" en e l AKKU 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria :L B S 3 4 Cargar direccin bsica de la lista de dir. DB :L KB 50 Calcular la direccin del registro para el DB 50 y cargar la direccin inicial en el AKKU 1 :L K B O Saltar a la marca NIVO si el mdulo no existe :SPB =NIVO Cargar la direccin inicial del DB 50 en el AKKU 3 y AKKU 1 Disminuir en 1 la direccin inicial y cargar la longitud del mdulo en el AKKU 1 NIVO : ....... Reaccin en caso de no existir el mdulo DB O Memoria de usuario Fig. 8-5 Direccin inicial del DB 50 Resultado: AKKU-1-L: Longitud del DB 50 AKKU-2-L: Direccin inicial del DB 50 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria b) -robar mdulos de datos !DB/DXjW con el mdulo de or-acin de funciones esneciales OB 181: El OB 181 (vase captulo 6.16) ejecuta la misma funcin que se ha descrito en el ejemplo a). Adems comprueba si el mdulo de datos se encuentra en la memoria de usuario (cartucho RM o EPROM) o si se encuentra en la DB-RM. :L KY1,50 Mdulo de datos DB 50 :SPA OB 181 "Comprobar mdulos de datos (DB/DX)" :SPB =NIVO Salto, si no existe :SPM =PROM Salto, si existe en el cartucho EPROM :SPZ =ANWE Salto, si existe en el cartucho RAM :SPP =DBRA Salto, si existe en el cartucho DB :SPA =FEHL Salto al tratamiento de errores Mdulo de datos no existe Mdulo de datos se encuentra en la memoria de usuario protegido contra escritura/en modo EPROM Mdulo de datos se encuentra en la memoria de usuario no protegido contra escritura/en modo RAM Mdulo de datos se encuentra en la DB RAM Tratamiento de errores Resultado: AKKU-1-L: longitud del DB 50 AKKU-2-L: direccin inicial del DB 50 VKE = 1, si no existe el DB 50 8.3.3 Zona BA/BB Resumen La zona BA, que tiene una longitud de 256 palabras, est situada en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E800H a E8FFH. La zona BB, que tiene una longitud de 256 palabras, est situada en la RAM interna del sistema de la CPU. Esta ocupa las direcciones E900H a E9FFH. El total de las zonas BA (BA O a BA 255) y BB (BB O a BB 255) puede ser utilizado por el usuario para sus propias necesidades. jLa zona BAJBB se borra, es decir, se rellena con ceros solamente con un BORRADO TOTAL! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria 8.3.4 Zona BS/BT Zona BS Zona BT La zona BS contiene tanto informaciones para el programador del sistema como datos internos del sistema. La zona BS con una longitud de 256 palabras se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones EAOOH a EAFFH. Precaucin Solamente pueden escribirse las palabras de datos de sistema BS 1, BS 60 a BS 63, BS 133, BS 140 y BS 144: - BS 60 a BS 63 estn a disposicin del usuario. - BS 1 y BS 133 tienen una funcin definida y repercuten en el procesamiento del programa. !Slo deben ser escritas con las identificaciones vlidas! Los restantes datos de sistema slo pueden ser ledos: Si se efecta un acceso de escritura en uno de estos datos de sistema puede tener consecuencias en el funcionamiento del autmata programable as como en el aparato de programacin conectado: pueden tener lugar averas graves que pueden poner en peligro a personas y mquinas. Las informaciones de algunos datos de sistema (sobre la estructura interna de la CPU, la versin de software, la identificacin de la CPU etc.) se obtienen asimismo con la funcin on line PARAMETROS SISTEMA. A continuacin se indican, de forma complementaria a las figuras 8-6 y 8-7, las ocupaciones de los bits de algunos datos de sistema, las cuales pueden ser evaluadas por el usuario con operaciones STEP 5 o con el aparato de programacin (las abreviaturas se explican en el captulo 5.3). La zona BS se borra solamente con un BORRADO TOTAL. La zona BT, que tiene una longitud de 256 palabras, se encuentra en la RAM interna del sistema de la CPU. Esta ocupa las direcciones EBOOH a EBFFH. La zona BT (BT O a BT 255) puede ser utilizada por el usuario para sus propias necesidades. La zona BT se borra solamente con un BORRADO TOTAL. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Ocupacin de la zona BS 7 : reservado Fig. 8-6 Ocupacin de la zona BS, 1"arte Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria 3 0 3 1 3 2 1 3 9 1 1 1 1 EA27 5 4 EA36 1 5 5 1 Cont ador de 1 hor a ( hast a 3599 seci, hex. ) 1 EA37 33 34 35 3 6 3 7 3 8 1 5 6 1 I - 1 1 EA38 Reser vado par a mdul o de comuni caci n 1 59 I EA3B ' 6 0 1 I I 1 EA3C 63 ' Reser vado par a el usuar i o I ' EA3F 1 6 4 1 Reservado para el programa de si st ema 1 EA40 ! 7 9 ! i EA4E EA1 E EA1 F EA20 Longi t ud de l as i nf or maci ones de l a cabeza de mdul o Di recci n bsi ca de l a l i st a de di recci ones FX Di recci n bsi ca de l a l i st a de di recci ones DB Di recci n bsi ca de l a l i st a de di recci ones SB Di recci n bsi ca de l a l i st a de di recci ones PB Di recci n bsi ca de l a l i st a de di recci ones FB Di recci n bsi ca de l a l i st a de di recci ones OB 80 1 Identi fi caci n adicional de error si bit FE-5 en BS 8 est activado 1 EA50 : 81 1 1 EA51 Identi fi caci n de l a CPU 1 EA2 1 EA22 EA23 EA24 EA25 EA26 Reser vado par a el pr ogr ama de si st ema Estado SW i nterfaz PG Di recci n bsi ca de l a l i st a de di recci ones DX 1 133 1 Identificacin "Actualizacin de imagen de proceso" 1 EA85 130 131 132 134 1 1 EA86 135 1 Palabra de indicadores "Bloquear alarmas temporizadas individualmente" 1 EA87 I dent i f i caci n "Regul aci n" Pal abra de i ndi cadores "Bl oquear alarmas conj untamente" Pal abra de i ndi cadores "Retardar al armas conj unt ament e" 139 ; Proteccin del software EA8B 1 140 1 Palabra de indicadores "Escribir v borrar mdulos" 1 EA8C EA82 EA83 EA84 136 137 1 141 1 ' EA8D 1 4 3 , EA8F 1 1441 Carci a al t er nat i va de mdul os de dat os 1 EA90 138 Proteccin contra escritura Dara la memoria de usuario en modo EPROM EA8A Palabra de indicadores "Retardar alarmas individualmente" Fig. 8-7 Ocupacin de la zona BS, 29ar t e EA88 EA89 ' 1 4 5 ' - I EA9 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 255 EAFF Ocu~acin v oraanizacin de la memoria 8.3.5 Ocupacin de los bits de las palabras de datos de sistema Palabra de indicadores de interrupcin Direccin: EAOOH Tabla 8-2 Ocupacin del BS O @alabra de indicadores de interrupcin) El dato de sistema BS O corresponde a la CAUSA DE INTERRUPCION en la pila USTACK. Si durante el procesamiento del programa se produce, por ejemplo, un error en tiempo de ejecucin se activa el bit n". Al finalizar el nivel de procesamiento se rearma el bit n". O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 DOPP Ocu~acin v oraanizacin de la memoria BS 1 Palabra borradora de indicadores de interrupcin UALW Direccin: EAOlH BS 1: interfaz activa, habilitada para el usuario! Activando el bit n 9 o el bit n"0 de la palabra UALW se ignora el siguiente ADF o QVZ y no se altera el programa que est siendo procesado. Cuando se produce un QVZ o ADF el programa de sistema rearma el bit respectivo. Tabla 8-3 Ocupacin del BS 1 @alabra borradora de indic. de interrupcin) Cada nivel de procesamiento tiene su propia palabra UALW! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria Ejemplo de la UALW con UALW que se produzca un retardo en acuse de recibo y se procesa un programa especial previsto para este caso. Con UALW se comprueba asimismo si est registrada en el DB 1 una determinada direccin de periferia. Si no lo est, se impide con la UALW un error de direccionamiento y se procesa un programa especial. :SPA FB 10 NOMB . : PERITEST Comprobar si se puede acceder a una tarjeta PADR : PB 128 con la direccin de periferia 128 MASK : KM 00000100 00000000 :SPN =M001 Si la direccin de periferia no est registrada se procesa esta parte de programa. :SPA FB 10 NOMB . : PERITEST Comprobar si en el DB 1 hay una tarjeta registrada PADR : AB 4 con la direccin de periferia 4 MASK : KM 00000010 00000000 :SPN =M002 Si la direccin de periferia no est registrada, se procesa esta parte de programa. NOMB . : PERITEST BE2 :PADRE/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :MASKE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KM :L B S 1 Cargar y grabar UALW :T BS 60 :LW =MASK Activar bit QVZ o ADF :T B S 1 Reescribir UALW :L =PADR Acceso tnico a periferia o acceso a la imagen de proceso :L B S 1 :LW =MASK Enmascarar bit QVZ o ADF :L BS 60 Volver a escribir la UALW anterior para que :T B S 1 pueda ser detectado el prximo QVZ o ADF Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Palabra colectora de indicadores de interrupcin UAMK Direccin: EA02H Los 16 bits de la palabra colectora de indicadores de interrupcin corresponden a las causas posibles expuestas bajo CAUSA DE ERROR en la pila USTACK. Cuando se produce un error determinado se activa el bit correspondiente. Tabla 8-4 Ocupacin del BS 2 @alabra colectora de indic. de interrupcin) La palabra colectora de indicadores de interrupcin (UAMK en la pila USTACK) slo puede ser leida! Byte alto Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Bit nQ 15 14 13 12 11 10 9 8 Ocupacin NAU PEU BAU MP-STP ZYK QVZ ADF STP Byte bajo 7 6 5 4 3 2 1 O BCF FE-3 LZF REG STUEB STUEU WECK DOPP Ocupacin y organizacin de la memoria Ejemplo de la UAMK cdigo de instruccin (BCF) se activa adems el bit nQ 7 de la UAMK. Contenido de la UAMK (binario): 00000010 10000000 Notacin (hexadecimal) en la pila USTACK: Mientras que en el campo CAUSA DE INTERRUPCION de la pila USTACK slo se encuentra marcado con una cruz el tltimo error que ha tenido lugar, en la UAMK se suman todos los errores ocurridos hasta el momento (USTACK, profundidad 5: en la UAMK hay 5 bits activados). El contenido de la UAMK se puede evaluar convirtiendo el cdigo hexadecimal a cdigo binario. De este modo se comprueba qu errores han causado el estado STOP. Los bits de error se rearman en cuanto se finaliza y abandona el procesamiento del correspondiente nivel de programa de tratamiento de errores. Los indicadores de interrupcin de errores que no tienen asignado ningtn nivel de procesamiento (por ej. NAU, PEU, STUEB, etc.) se borran en el Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Identificaciones de STOP y de ARRANQUE Direccin: EAOSH Las identificaciones corresponden a los bits de control de la primera y segunda lnea de la pila USTACK.Ocupacin del BS Tabla 8-5 Ocupacin del BS 5 (identif. de STOP y de ARRANQUE) O 1 MWA-ZUL Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Identificaciones de CICLO, de cartucho y MPL Direccin: EA06H Las identificaciones corresponden a los bits de control de la tercera y cuarta lnea de la pila USTACK. Tabla 8-6 Ocupacin del BS 6 (identific. de CICLO y de cartucho/MPL) O 1 DIG-AUS Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Identificaciones de BORRADO TOTALIinicializar identificaciones de error Las identificaciones corresponden a los bits de control de la quinta y sexta lnea de la pila USTACK. Tabla 8-7 Ocupacin del BS 7 (identificaciones de BORRADO TOTAL e inicializar identificaciones de error) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Identificaciones de error HWISW Direccin: EAOSH Las identificaciones corresponden a los bits de control de la sptima y octava lnea de la pila USTACK. Tabla 8-8 Ocupacin del BS 8 (identificaciones de error HWISW) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 O DOPP-FE Ocu~acin v oraanizacin de la memoria BS 29 Identificacin de slotltipo de CPU y autmata programable (AG) Direccin: EAlDH Tabla 8-9 Ocupacin del BS 29 (identificacin de slotltipo CPU y AG) Tipo de autmata programable (AG) o BS 29 (alto) BS 29 (bajo) Interfaz activa, es utilizada por los mdulos de comunicacin y en la comunicacin en modo multiprocesador, as como por el OB 218 y las operaciones SES y SEF. Tipo de CPU: 1011 CPU 928B Tipo de AG: O1 1 1 S5-135U Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Direccin: EASOH (alto y bajo) Aqu se encuentra informacin adicional que especifica el error que se ha producido cuando el bit n" en BS 8 es activado por el sistema, o bien cuando el bit de control FE-5 aparece marcado con una cruz en la pantalla de la pila USTACK: Direccin: EA82H (low) Identificacin en BS 80 2460H El dato de sistema BS 130 indica los siguientes estados del nivel de procesamiento "regulacin": Causa del error Seal "ready" en bus S5 pendiente Bit nW = O : nivel de procesamiento "regulacin" activado Bit nW = 1 : nivel de procesamiento "regulacin" suprimido Antes de llamar a un mdulo de organizacin de arranque (OB 20, 21 22) el programa de sistema evala el mdulo de datos DB 2 (si es que existe). Segn el resultado de la evaluacin el programa de sistema activa o rearma el BS 130. Despus llama a un OB de arranque. Si el BS 130 (bajo) est rearmado, se ejecuta el procesamiento del regulador en modo cclico de acuerdo con la lista de reguladores del DB 2. Palabra de indicadores "bloquear alarmas conjuntamente": vase OB 120 (captulo 6.5) Direccin: EA83H (bajo) El dato de sistema BS 131 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas": Tabla 8-10 Ocupacin del BS 131 (bloquear alarmas conjuntamente) Bit = '1' significa: alarma(s) bloqueada(s). Bit nQ 7 6 5 4 3 2 1 O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Byte bajo: bloquear alarmas coqjuntamente o O o o Alarma de retardo Alarma de proceso Alarma temporizada controlada por reloj Alarmas temporizadas con escalas de tiempo fijas Ocu~acin v oraanizacin de la memoria BS 132 Palabra de indicadores "retardar alarmas conjuntamente": vase OB 122 (captulo 6.7) Direccin: EA84H (bajo) El dato de sistema BS 131 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas": Tabla 8-11 Ocupacin del BS 132 (retardar alarmas conjuntamente) Bit = '1' significa: alarma(s) retardada(s). Bit nQ 7 6 5 4 3 2 1 O Actualizacin de la imagen de proceso Direccin: EA8SH (bajo) Byte bajo: retardar alarmas coqjuntamente o O o o Alarma de retardo Alarma de proceso Alarma temporizada controlada por reloj Alarmas temporizadas con escalas de tiempo fijas Tabla 8-12 Ocupacin del BS 133 (actualizacin de la imagen de proceso) Bit = '1' significa: Cada bit impide una sola vez la actualizacin de la imagen de proceso. Inmediatamente despus vuelve a ser puesto a 'O'. Bit nQ 7 6 5 4 3 2 1 O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Byte bajo: actualizacin de la imagen de proceso no ocupados KM-AUS KM-EIN DIG-EIN DIG-AUS Ocu~acin v oraanizacin de la memoria Palabra de indicadores "bloquear alarmas temporizadas individualmente": vase OB 121 (captulo 6.6) Direccin: EA87H El dato de sistema BS 135 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas temporizadas": Tabla 8-13 Ocupacin del BS 135 (bloquear alarmas temporizadas individualmente) I I Byte alto: bloquar alarmas temporizadas individualmente Bit nQ 1 Alarma temporizada 500 ms (OB 15) 11 10 9 Alarma temporizada 5 s (OB 18) Alarma temporizada 2 s (OB 17) Alarma temporizada 1 s (OB 16) Byte bajo: bloquear alarmas temporizadas individualmente 1 Alarma temporizada 10 ms (OB 10) 7 6 5 4 Bit = '1' significa: alarma temporizada bloqueada Alarma temporizada 200 ms (OB 14) Alarma temporizada 100 ms (OB 13) Alarma temporizada 50 ms (OB 12) Alarma temporizada 20 ms (OB 11) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Palabra de indicadores "retardar alarmas temporizadas individualmente " : vase OB 123 (captulo 6.8) Direccin: EA89H El dato de sistema BS 137 indica los siguientes estados de los niveles de procesamiento "procesamiento de alarmas temporizadas": Tabla 8-14 Ocupacin del BS 137 (retardar alarmas temporizadas individualmente) I I Byte alto: retardar alarmas temporizadas individualmente Bit nQ 1 Alarma temporizada 500 ms (OB 15) 1 11 10 9 Alarma temporizada 5 s (OB 18) Alarma temporizada 2 s (OB 17) Alarma temporizada 1 s (OB 16) Byte bajo: retardar alarmas temporizadas individualmente 1 Alarma temporizada 10 ms (OB 10) 1 7 6 5 4 Bit = '1' significa: alarma temporizada retardada Alarma temporizada 200 ms (OB 14) Alarma temporizada 100 ms (OB 13) Alarma temporizada 50 ms (OB 12) Alarma temporizada 20 ms (OB 11) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria Proteccin contra escritura para la memoria de usuario en modo EPROM Direccin: EASAH Cuando los mdulos se copian de una Memory Card (modo EPROM), la memoria de usuario est protegida contra escritura. Borrando o activando el identificador de proteccin contra escritura (bit O de BS 138) mediante el PG y efectuando luego un NUEVO ARRANQUE, se puede desactivar o reactivar directamente la proteccin contra escritura. (Los bits 1 a 15 de BS 138 carecen de importancia). Para activar o desactivar la proteccin contra escritura: 1Vi sual i ce en el PG el contenido de la direccin EA8AH. 2"ctive o borre el bit O de BS 138, sobreescribiendo el contenido de la direccin EA8AH con la configuracin binaria OOOxH(x = 1 para activar el identificador de proteccin contra escritura; x = O para borrarlo). 3Wfecte un NUEVO ARRANQUE. Una vez ejecutado el OB 20, se evala el bit O de la palabra de datos del sistema BS 138 y la proteccin contra escritura se activa o se desactiva segn corresponda. BS 138 se puede activar no slo mediante el PG (l), sino tambin a travs del OB 20. El estado de la proteccin contra escritura se conserva hasta el siguiente BORRADO TOTAL de la CPU. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocupacin y organizacin de la memoria BS 139 Proteccin del software El dato de sistema BS 139 controla la funcin "Proteccin del software". Con dicha funcin es posible evitar que se lean, sobreescriban y borren mdulos mediante el aparato de programacin @.ej. por personal no autorizado), ajustando a tal efecto una contrasea. Contrasea La funcin "Proteccin del software" se encuentra vinculada a una contrasea que se le comunica al programa de sistema a travs de BS 139. Ajustar una Al ajustar una contrasea en BS 139 se activa automticamente la proteccin del contrasea/activar software. la proteccin del software Slo se puede ajustar una (nueva) contrasea si se ha borrado la antigua. Borrar la Una vez borrada la contrasea se desactiva automticamente la proteccin del contrasea/desact software. ivar la proteccin Al borrar la contrasea es preciso comunicrselo al programa de sistema del software mediante BS 139. 5 intentos de borrado como mximo: Si desea borrar la contrasea e indica una contrasea errnea, el programa de sistema rechaza los intentos y los cuenta. Una vez realizados 5 intentos errneos (como mximo), el sistema de programa suspende la edicin de la contrasea. Entonces slo ser posible reintentar borrar la contrasea despus de un NUEVO ARRANQUE. Una vez borrada la contrasea y al realizarse un NUEVO ARRANQUE se borra el "contador de intentos errneos". Cmo se ajusta La contrasea se ajustaborra (y la proteccin del software se activaldesactiva) o se borra la escribiendo en el dato de sistema BS 139 una determinada configuracin binaria contrasea? (v. "Ocupacin al escribir") mediante el programa STEP 5 una peticin del PG "Salida direccin". Nota La CPU se suministra de fbrica con la contrasea borrada y con la proteccin del software desactivada. Ese mismo estado se obtiene despus de un BORRADO TOTAL. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Cundo se Una contrasea se puede ajustar en cualquier momento. No obstante, despus de activa o se ajustar la contrasea, la proteccin del software se activa slo en determinados desactiva la momentos: proteccin del software? en estado operativo STOP: peridicamente en el punto de control de sistema "Stop", en estado operativo ARRANQUE: una vez despus de llamar a los OBs de arranque (OB 20, OB 21 y OB 22), en estado operativo RUN: cclicamente antes de llamar al OB 1. Ocupacin del Para llamar a la proteccin del software es preciso escribir en el dato de sistema dato de sistema BS 139 una configuracin binaria conforme a la funcin a ejecutar. En la tabla al escribir siguiente se muestra cmo se debe estructurar dicha configuracin binaria. Direccin: EASBH Tabla 8-15 Ocupacin del BS 139 (proteccin del software) al escribir Bits 8 a 13 de una contrasea de 14 bits Bits O a 17 de una contrasea de 14 bits o Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Leer el dato de Al leer el dato de sistema BS 139 es posible determinar si se ejecut una sistema BS 139 "peticin" de escribir en dicho dato. El programa de sistema deposita un mensaje all. Ocupacin del dato de sistema al leer: Una vez llamada la funcin de proteccin del software se puede evaluar (leer) el mensaje para determinar si la peticin tuvo xito. Direccin: EASBH Tabla 8-16 Ocupacin del BS 139 (proteccin del software) al leer Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Contador binario O 1 = desbordamiento del contador de intentos Ocupacin y organizacin de la memoria Mensajes vlidos Cundo activar Se recomienda activar la proteccin del software inmediatamente despus del la proteccin del borrado total mediante el PG. Desde el programa de usuario, se puede activar por software temprano en el OB 20. Visualizacin OOOOH 4xOlH 4xO2H 4xO4H 4x08H 4xlOH Reacciones al Si se ha activado la proteccin del software, el sistema reacciona a las violarse la violaciones por peticiones del PG. En la tabla siguiente se muestran las proteccin del reacciones a las diversas peticiones del PG. software Explicacin Sin error Se ha desbordado el contador de los intentos de borrado. Para poner a "O" el contador es preciso efectuar un NUEVO ARRANQUE. Contrasea no admisible (0000H 3FFFH) Estando activada la proteccin del software se intent ajustar una nueva contrasea (x = nmero de intentos de borrado). Se intent borrar la contrasea existente (desactivar la proteccin del software) con una contrasea errnea. El contador de los intentos de borrado se ha incrementado y el estado del contador "x" se indica en el mensaje (nmero binario en los bits 8 a 10). Se intent borrar una contrasea no existente. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 PG-Funktion Borrar mdulo Leer mdulo Sobreescribir mdulo (el mdulo no existe todava) Sobreescribir mdulo (el mdulo ya existe) Emisin en el PG Mensaje "Tipo y nmero de mdulo no admisible" Mdulo comodn ("dummy"): FBIFX: NQ de FB NAME :DUMMY :BE DBDX: DWO 6500 OPIPBISB: :BE El mdulo se introduce. Mensaje "Mdulo existente"; una vez pulsada la tecla de aceptacin, aparece el mensaje "Tipo y nmero de mdulo errneo" Ocu~acin v oraanizacin de la memoria Ejemplos de escritura y lectura del BS 139 (Es recomendable activar la proteccin del software desde el programa en uno de los OBs de arranque: OB 20, OB 21, OB 22) :L KH COAF KH = Configuracin binaria "Ajustar contrasea" (Contrasea = OOAFH :T BS139 Mediante la siguiente secuencia de operaciones de STEP 5 en el OB 1 se puede reaccionar a un error registrado al ajustar la contrasea, evaluando a tal efecto el mensaje que se emite entonces. Tenga en cuenta que el mensaje slo se puede evaluar despus de determinadas acciones del programa de sistema. :L BS139 :L K B O Llamar al mdulo de funcin para procesar errores NAME : PW-FEHLER Estado: la CPU se encuentra en estado operativo RUN o STOP. Para borrar y modificar la contrasea: lQVisualice el contenido de la direccin EA8BH. 20 Borre la contrasea antigua sobreescribiendo el contenido con el nmero hexadecimal 80AFH ("OOAFH" = contrasea antigua). 30 Permita que transcurra el tiempo de ciclo del OB 1 como minimo. 40 Visualice nuevamente el contenido de la direccin EA8BH. 50 Introduzca la nueva contrasea "1234HW, sobreescribiendo el contenido con el nmero hexadecimal D234H. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria Palabra indicadora "escritura y lectura de mdulos" Direccin: EASCH El dato de sistema BS 140 indica si se han sobreescrito, cargado o borrado mdulos desde que se borr por tlima vez el dato de sistema BS 140. Por cada mdulo se combinan con una funcin OR los bits de modificacin y tipo de mdulo. Antes de comenzar una nueva fase de supervisin hay que borrar el dato de sitema BS 140. El BS 140 tambin se borra al efectuar el BORRADO TOTAL. Tabla 8-17 Ocupacin del BS 140 (identificaciones de lectura y escritura) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ocu~acin v oraanizacin de la memoria "Carga alternativa de mdulos de datos en la DB-RAM" Direccin: EA90H En la CPU 928B se cargan todos los mdulos del aparato de programacin de forma estndar primero en el cartucho de memoria de usuario. Slo cuando all ya no quede ms espacio libre se depositan mdulos de datos (DB, DX) en la DB-RAM y solamente stos. Con el bit nW del dato de sistema BS 144 se puede alterar el orden de carga de los mdulos de datos: Bit O = O: Ajuste "comportamiento estndar": Los mdulos de datos se cargan primero en el cartucho de memoria de usuario. Slo cuando en sta ya no quede ms espacio libre stos sern cargados en la DB-RAM. Bit O = 1: Los mdulos de datos se cargan primero en la DB-RAM. Slo cuando en sta ya no quede ms espacio libre, stos sern cargados en la memoria de usuario. Los restantes bits del BS 144 no estn ocupados. Nota Los mdulos de cdigo se cargan slo en la memoria de usuario, independientemente del ajuste del BS 144. El ajuste del BS 144 no influye en operaciones y OBs de funciones especiales para crear mdulos y cargarlos en otro lugar. Dicho ajuste tampoco afecta el copiado de mdulos de la Memory Card. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Resumen breve El presente 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. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 9.1 9.2 9.2.1 9.2.2 9.3 9.3.1 9.4 9.4.1 9.4.2 9.4.3 9.4.4 Tema Introduccin Accesos a la memoria a travs de la direccin de AKKU 1 LIRITIR: Cargaltransferencia indirecta de registros de 16 bits Ejemplos de aplicacin de registros Transferir bloques de memoria Ejemplo de transferencia de bloques de memoria Operaciones con el registro base de direcciones (registro BR) Operaciones de transferencia entre registros Accesos a la memoria local Accesos a la memoria global Accesos a la memoria de pginas Pgina 9-2 9-6 9-7 9-14 9-16 9-19 9-24 9-25 9-27 9-28 9-31 Accesos a la memoria a travs de direcciones absolutas 9.1 Introduccin Resumen 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". 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 operaciones que operan con direcciones absolutas slo deben ser utilizadas por usuarios que tengan muy buenos conocimientos del sistema. Memoria local La memoria local es la zona de memoria que existe en todas las CPUs (memoria de usuario, DB-RAM, zonas BA, BB, BS y BT, contadores, temporizadores, marcas, imagen de proceso). Memoria global Slo existe una memoria global para todas las CPUs en modo multiprocesador y se direcciona a travs del bus S5. Organizacin de Las zonas de memoria estn organizadas byte por byte o palabra por palabra. la memoria Organizacin byte por byte: cada direccin direcciona un byte. Organizacin palabra por palabra: cada direccin direcciona una palabra de 16 bits (= 2 bytes). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas OOOOH EDFFH EEOOH EFFFH i nt erna, l ocal , ml t i pl e (correspondi endo al nmero de CPUs enchufadas) ext erna, gl obal , a t ravs del bus S5, ni ca Regi stro de di recci ones de pgi nas (regi stro de sel ecci n) Fig. 9-1 Memoria global y local Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Accesos a la Las siguientes operaciones permiten acceder a zonas de memoria locales y memoria globales a travs de direcciones absolutas (vase tambin fig. 9-2). Accesos a la Es posible acceder tanto a la zona local como a la global: zona local y global a la zona local (direcciones OOOOH a EFFFH) y a la zona global organizada byte por byte (direcciones FOOOH a F3FFH, FCOOH a FFFFH) se accede con: LIR, TIR, TNB, TNW, a la parte de la zona local organizada palabra por palabra (direcciones OOOOH a E3FFH y E800H a EDFFH) se accede con: LRW, TRW, LRD, TRD. Accesos Es posible acceder a las siguientes partes de la zona global: solamente a la zona global a la parte de la zona global organizada byte por byte (direcciones OOOOHa EFFFH) se accede con: LB GB, LB GW, LB GD, TI3 GB, TB GW, TB GD, TSG, a la parte de la zona global organizada palabra por palabra (direcciones OOOOHa EFFFH) se accede con: LW GW, LW GD, TW GW, TW GD, TSG . Accesos a la Es posible acceder a las siguientes partes de la zona de pginas: zona de pginas a la parte de la zona global organizada byte por byte (direcciones F400H a 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 F400H a FBFFH, = zona de pginas): LW CW, LW CD, TW CW, TW CD, TSC Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 0 Acceso no posi bl e 0 Acceso posi bl e a) LIR, TIR, TNB, TNW c) LB GB, LB GW, LB GD TB GB, TB GW, TB GD, (TSG) u b) LRW, TRW, LRD, TRD d) LW GW, LW GD TW GW, TW GD, (TSG) e) LB CB, LB CW, LB CD TB CB, TB CW, TB CD, (TSC) f) LW CW, LW CD, TW CW, TW CD, (TSC) Fig. 9-2 Accesos a zonas de memoria locales o globales a travs de direcciones absolutas (vase tambin fig. 9-1) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.2 Accesos a la memoria a travs de la direccin de AKKU 1 Aplicacin Los registros son recursos de la CPU que sirven para procesar el programa STEP 5. Cada registro tiene 16 bits de ancho. Las operaciones LIR (carga indirecta del registro) y TIR (transferencia indirecta del registro) permiten acceder al contenido de los registros. Operaciones Tabla 9-1 Operaciones para accesos indirectos a la memoria mediante registros La palabra de memoria se encuentra en la zona local (direcciones OOOOHa EFFFH) o bien en la parte de la zona global organizada byte por byte (direcciones FOOOH a F3FFH, FCOOH a FFFFH). Operacin LIR TIR En las pginas siguientes se explica qu registros se pueden utilizar en las operaciones. Tambin encontrar algunos ejemplos que muestran cmo aplicar las operaciones. Operando NQ de registro O a 15 NQ de registro O a 15 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Funcin Cargar el registro indicado con el contenido de una palabra de memoria direccionada por AKKU 1 Cargar el contenido del registro indicado en la palabra de memoria direccionada por AKKU 1-L Accesos a la memoria a travs de direcciones absolutas 9.2.1 LIR/TIR: Cargaltransferencia indirecta de registros de 16 bits La tabla siguiente indica los nmeros de los registros que pueden utilizarse en la CPU 928B para las operaciones LIR y TIR as como su ocupacin. Tabla 9-2 Registro de 16 bits para LIRiTIR l) Cuando el contenido de la clula de memoria direccionada deba ser cargado en el registro ' l ' , la direccin registrada en el AKKU-1-L ser sobreescrita. La CPU 928B no dispone de los registros 4, 5, 7, 13 y 14. Por consiguiente, las operaciones LIR/TIR que tengan estos nmeros de registro sern tratadas como una operacin cero (NOP). Acceso LIR/TIR Las instrucciones LIR y TIR no deben ser utilizadas para acceder a la zona de a la zona pginas (E400H a FBFFH) en el autmata programable multiprocesador de pginas S5-135U. Utilizar las instrucciones expuestas en el captulo 9.4.4 "Acceso a la memoria de pginas", o bien las funciones especiales indicadas en el captulo 6.21 "OB 216 a OB 218: Accesos a pginas". Acceso LIR/TIR Si se accede con LIR/TIR a zonas de memoria de solamente 8 bits de ancho a zonas de (direcciones de memoria de E400H a E7FFH as como z EEOOH), hay que tener memoria de 8 bits en cuenta que con TIR slo se transfiere el byte bajo del registro (el byte alto se pierde) con LIR, se sobreescribe el byte alto del registro con FFH. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Las figuras 9-3 y 9-4 muestran la diferencia que radica entre los accesos LIRITIR a las zonas de memoria organizadas palabra por palabra y byte por byte: 1 TI R n 15 o Cl ul a de memor i a di r ecci onada AKKU 1 Fig. 9-3 Acceso LIR/TIR a zonas de memoria de 16 bits (organizadas palabra por palabra) \ \- 1 LI R n 15 o Regi st ro n LI R n 15 o Cl ul a de memor i a di recci onadaC AKKU 1 o Cl ul a de m di r ecci onadaC memor i a ----..- Regi st r o n AKKU 1 15 o Regi st r o n . 1 TI R n Fig. 9-4 Acceso LIR/TIR a zonas de memoria de 8 bits (organizadas byte por byte) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Registros O a 3 y Durante el procesamiento del programa, la CPU utiliza los acumuladores como 9 a 12: AKKU 1, memoria intermedia. Con las instrucciones LIR y TIR se puede transferir el 2 , 3 ~ 4 contenido de los acumuladores a las clulas de memoria de direccionamiento absoluto o cargar el contenido de las clulas de memoria de direccionamiento absoluto en los AKKUs. La direccin absoluta de la clula de memoria se encuentra en el AKKU 1-L. Ejemplos palabra de marcas MW 100. :L KH A000 Cargar la dir. A000 de la clula de memoria en el AKKU 1 Cargar el contenido de la clula de memoria direccio- nada por el AKKU 1 en el registro 1 = AKKU-1-L :T MW 100 Depositar la direccin A000 en la palabra de marcas MW 100 memoria de direccin A000. :L m 2 0 0 Cargar la palabra de marcas MW 200 en el AKKU 1 :L KH A000 Cargar la direccin A000, a la que se debe transferir, en el AKKU 1 (palabra de marcas MW 200 a AKKU 2) Transferir el contenido del registro 3 = AKKU-2-L a la clula direccionada por el AKKU 1 Registro 6: DBA Cuando se abre un mdulo de datos con las instrucciones A DB y AX DX, el (direccin inicial registro 6 se carga con la direccin de la DW O del mdulo de datos abierto. Esta del mdulo de direccin se encuentra en la lista de direcciones de mdulos del DB O . datos) El registro DBA se pone a 'O' antes de cada llamada al OB 1 o FB O. El registro DBA permanece inalterado si el procesamiento del programa contina en otro mdulo debido a una instruccin de salto (SPNSPB) cuando se anida otro nivel de procesamiento del programa. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Este se modifica cuando se abre otro mdulo de datos se retrocede a un mdulo de orden superior despus de haber abierto un nuevo mdulo de datos en el mdulo llamado (vase tambin captulo 2.4.2). Nota En la pila USTACK se encuentra indicada bajo DB-ADR la direccin registrada en el registro DBA. Los accesos a las palabras de datos se efectan por lo general con las operaciones STEP 5 L/T DW, L/T DR, L/T DL, L/T DD, U/O/UN/ON/=/S/R Dx.y. Sin embargo estas operaciones slo se pueden utilizar hasta la palabra de datos DW 255. Manipulando adecuadamente el registro DBA se puede incluso acceder a las palabras de datos > 255. Esto tambin se puede realizar con el mdulo de organizacin de funciones especiales OB 180 (vase captulo 6.15) Ejemplos Di recci ones DX 17 151 6H 151 7H 5 pal abras - 151 8H Cabeza de mdul o - 151 9H 151AH DBA- 151BH KH = 0000 DW O 151 CH KH = 0001 DW 1 Fig. 9-5 Utilizacin del registro DBA Cuando se llama al DX 17, la direccin de la palabra de memoria, en la que se encuentra la DW O se deposita en el registro DBA; en el ejemplo: DBA = 151BH. Nota: En la pila USTACK se encuentra indicada bajo 'DB-ADR' la direccin registrada en el DBA. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas del mdulo de datos DB 100. NOMB. : LIR/TIR6 :L BS 34 De la direccin inicial de la lista de direcciones + 100 :ADD BF +lo0 resulta el registro de la lista de direcc. del DB 100 Transferir direccin inicial del DB 100 (DW O) a AKKU 1 :ADD KF +200 Depositar direccin de la DW 200 en el DB 100, :T BS 62 en la palabra de datos de sistema BS 62 :L BS 20 Cargar direccin base datos de sistema :ADD KF +62 Cargar direccin de la BS 62 en AKKU 1 Cargar registro DBA con el contenido de la direccin de la BS 62, es decir, el principio del mdulo de datos se pone en la DW 200 :L DW 100 DW (200 + 100) = cargar DW 300 :T MW 100 Depositar DW 300 en la palabra de marcas MW 100 NOMB. :OB18O :A DB 100 Cargar los registros DBA y DBL con los valores del :L KF 200 DB 100 y aumentar con el OB 180 :SPA OB 180 el registro DBA en 200 y disminuir el registro DBL en 200 :SPB =FEHL Salida de error, si el DB 100 contiene 200 o menos palabras de datos :L DW 100 Cargar DW 300 y :T MW 100 depositar en MW 100 Programa parcial para tratamiento de errores Nota Si se cambia el registro DBA como muestra el ejemplo 2 no se modifica el registro DBL. De este modo ya no estar garantizada la supervisin de errores de transferencia! Utilizando el OB de funciones especiales 180 "acceso variable a mdulos de datos" tambin se puede desplazar el registro DBA una cantidad determinada de palabras de datos. Puesto que el OB 180 modifica a la vez el registro DBL se siguen supervisando posibles errores de transferencia. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Registro 8: DBL Adems del registro DBA, cada vez que se llama a un mdulo de datos se carga (longitud del el registro DBL. Este registro contiene la longitud (en palabras) del mdulo de mdulo de datos) datos llamado, sin contar la cabeza del mdulo. Cada vez que se llama al OB 1 o al FB O el registro DBL se pone a 'O'. El registro DBL permanece inalterado cuando el procesamiento del programa contina en otro mdulo debido a una instruccin de salto (SPNSPB) cuando se anida (intercala) otro nivel de procesamiento. El registro DBL se modifica cuando se abre otro mdulo de datos cuando se retrocede a un mdulo de orden superior despus de haber abierto un nuevo mdulo de datos en el mdulo llamado (vase tambin captulo 2.4.2). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Ejemplo DX 17 Di r ecci ones 151 6H 151 7 H 1518H 1519H 151AH DBA - 151BH 151CH 151 DH 151EH 151 FH 1520H 1521H 1522H Fig. 9-6 Utilizacin del registro DBL " DBL-REO" . Cuando se llama al DX 17, el nmero de palabras de datos existentes se deposita en el registro DBL; en el ejemplo: DBL = 8 (DW O a DW 7) Nota:El nmero depositado en el registro DBL se indica en USTACK bajo 5 pal abr as Cabeza de mdul o aaaa bbbb CCCC dddd eeee f f f f 9999 h h h h Registro 15: SAZ Durante el procesamiento del programa STEP 5, el registro 15 contiene en la (contador de memoria de programa la direccin absoluta de la siguiente operacin a procesar. direcciones STEP) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.2.2 Ejemplos de aplicacin de registros El programa abajo expuesto escribe la constante KH = A5A5 en todas las palabras de datos del DB 50. Modificando las instrucciones STEP 5 escritas en negrita tambin se puede utilizar para escribir valores arbitrarios en otros mdulos de datos (DB o DX). Si se detectan mdulos de datos que no existen o mdulos de datos que contienen cero palabras de datos, se produce un salto a la marca NIVO. La direccin inicial (DBA) y la longitud (DBL) del mdulo de datos se averigua mediante la funcin especial OB 181 "Comprobar mdulo de datos (DB/DX)". El programa utiliza los cuatro acumuladores. La figura siguiente muestra la ocupacin de los acumuladores durante la ejecucin del programa hasta la marca SCHL. Dentro del bucle no se modifica la ocupacin de los acumuladores. El AKKU 1 contiene primero la direccin de la 6 1 t h palabra de datos (DBA + DBL - 1) y disminuye en 1 cada vez que se ejecuta el bucle. El AKKU 2 contiene la direccin de la primera palabra de datos (DBA). El bucle se abandona cuando el contenido del AKKU 1 sea menor que el del AKKU 2. Para escribir en las palabras de datos se utiliza la instruccin TIR 10, la cual almacena el contenido del AKKU-3-L (la constante) en la direccin depositada en el AKKU-1-L. :L KHA5A5 Constante que debe escribirse en todas las palabras de datos :L KY 1,50 Tipo y nmero del mdulo de datos :SPA OB 181 OB de funciones especiales "Comprobar mdulo de datos" :SPB =NIVO Aborto, si DB 50 no existe AKKU 1 := direccin de la tltima palabra de datos + 1 AKKU 2 := direccin de la primera palabra de datos AKKU 3 := Constante Aborto, si DB 50 contiene cero :SPB =NIVO palabras de datos SCHL :ADD BF-1 Escribir la constante registrada en el AKKU-3-L en todas las palabras de datos, comenzando con la tltima palabra de datos Consulta si se ha alcanzado la la palabra de datos :SPB =SCHL Retorno al bucle si la la palabra de datos atn no ha sido alcanzada Continuacin del programa... Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas despus de rellenar todas las palabras de datos si el DB 50 no existe o contiene cero palabras de datos. Nota: E1 programa parcial a partir de la marca "SCHL" puede ser utilizado para escribir una constante en zonas de memoria arbitrarias (por ej. marcas, temporizadores, contadores). Orden de ej ecuci n SPA OB181 SPB =NIVO AKKU 2 0 4 - AKKU 1 @ b/ DBA :L K B O Constante a escribir en todos los bytes de marcas :L BS 14 Direccin base de la zona de marcas (=direccin del primer byte de marcas MB O) :L KF+256 + longitud de la zona de marcas = (direccin del tltimo byte de marcas MB 255) + 1 SCHL :ADD BF -1 Escribir la constante registrada en AKKU-3-LL en los 256 bytes de marcas, comenzando por el byte de marcas MB 255 :SPB =SCHL Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.3 Transferir bloques de memoria Aplicacin Las operaciones de sistema TNB y TNW permiten transferir bloques de memoria (mx. 255 byte con TNB, mx. 255 palabras con TNW). Con estas operaciones puede accederse tanto a la zona de meoria local como a la parte de memoria global organizada byte por byte (direcciones FOOOH a F3FFH, FCOOH a FFFFH). Operaciones Tabla 9-3 Operaciones para la transferencia de bloques Parmetros Operacin TNB TNW Longitud de bloque Operando = cantidad de bytes (TNB) o cantidad de palabras (TNW) Direccin final de la zona fuente AKKU-2-L = direccin final de la zona fuente Operando O a 255 O a 255 Direccin final de la zona destino AKKU-1-L = direccin final de la zona destino Funcin Transferencia en bloque O a 255 byte Transferencia en bloque O a 255 palabras La zona fuente y la zona destino deben encontrarse completas en una de las zonas indicadas en la tabla 9-4 y no deben solaparse. Zonas de memoria admisibles Tabla 9-4 Zonas de memoria admisibles para TNB y TNW Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Direcciones OOOOHa 1FEEH OOOOHa 3FEEH OOOOHa 7FEEH 8000H a DD7EH DD80H a E3FEH E400H a E7EEH E800H a EDFFH EEOOH a EFEEH FOOOHa FFEEH Zona de memoria Memoria de usuario: Cartucho memoria usuario (16 bit) 8 Kpalabras Cartucho memoria usuario (16 bit) 16 Kpalabras Cartucho memoria usuario (16 bit) 32 Kpalabras RAM de sistema: DB-RAM (16 bit) DB O (16 bit) Marcas S (8 bit) Datos de sistema (16 bit: BA, BB, BS, BT, contadores y temporizadores) RAM (8 bit: marcas, imagen de proceso) Periferia (8 bit)/bus S5 Accesos a la memoria a travs de direcciones absolutas Ejecucin La transferencia en bloques se efecta de forma decreciente, es decir, comienza con la direccin ms alta de la zona fuente (= direccin final) y finaliza con la ms baja. Aplicacin en la En caso de utilizar un autmata programable multiprocesador S5-135U, las zona de pginas operaciones TNB y TNW no son apropiadas para acceder a la zona de pginas (direcciones F400H - FBFFH). Utilizar en su lugar las operaciones indicadas en el captulo 9.4.4 "Acceso a la memoria de pginas", o bien las funciones especiales descritas en el captulo 6.24 "OB 216 a OB 218: Accesos a pginas". Particularidades Pseudolmites de Las operaciones TNB y TNW son operaciones STEP 5 de larga duracin que instrucciones contienen "pseudolmites de instrucciones": es decir, la transferencia de datos se con TNB y TNW efecta, dependiendo de cules sean la zona fuente y destino, en bloques parciales de distinto tamao. Si durante la transferencia de un bloque parcial tiene lugar un error (por ej. error de ciclo) o una interrupcin (por ej. por una alarma temporizada o de proceso), entonces se anida el mdulo de organizacin correspondiente al final de este bloque parcial, en el pseudolmite de instruccin. Para llamar al OB de alarma de proceso o de una alarma temporizada en un pseudolmite de instruccin es imprescindible que est ajustado en el DX O "interrupcin en lmites de instrucciones". Si durante la transferencia tienen lugar uno o varios retardos en acuse de recibo y10 un error de direccionamiento, entonces se transfieren primero todos los bloques parciales y antes de ejecutar la siguiente operacin se llama una vez al mdulo de organizacin de error previsto para este caso (en caso de QVZ y ADF a la vez, se llama slo al OB de QVZ). Como direccin de error siempre se indicar la primera direccin, en la que se haya producido un error. Puesto que TNB y TNW operan de forma decreciente, en caso de direcciones de error mltiples, ser la direccin de error ms alta de la zona en la que ha ocurrido el primer error. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas TNB y TNW entre zonas de memoria de 8 y 16 bits Di r ecci ones Di r ecci ones cr eci ent es cr eci ent es Di recci n -w f uent el dest i no I - Di recci n f uent el dest i no Tr ansf er enci a de l os byt es 1 a 5: : L <di r ecci n f uent e> : L <di r ecci n dest i no> : TNB 5 Tr ansf er enci a de l os byt es 1 a 4: : L <di r ecci n f uent e> : L <di r ecci n dest i no> : TNW 2 Fig. 9-8 Transferencia de bloques de memoria Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.3.1 Ejemplo de transferencia de bloques de memoria Hay que copiar un bloque de mx. 4095 palabras de un mdulo de datos DB o DX a otro mdulo de datos DB o DX. El principio del bloque se determina dentro del mdulo de datos fuente y destino mediante un valor offset entre O y 4095. El programa se deposita en el mdulo FB 10. STAT -Status Fig. 9-9 Mdulo de funciones para el trfico de bloques de datos Antes de copiar se comprueban los parmetros de entrada. En caso de error, en el parmetro de salida STAT se activa el bit nQ 7 y los bits nQ O a 2 indican el tipo de error: 1=DB fuente=DB dest i no 2.offset o longitud > 4095 3=DB f uent e no exi st e o no es vl i do 4=DB f uent e demasiado cor t o 5=DB dest i no no exi st e o no es vl i do 6=DB dest i no en memoria de sl o l ect ura (cartucho EPROM) 7=DB dest i no demai sado cort o Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas b) Estructura de l programa: El FB 10 se divide en cinco partes cuyas tareas son las siguientes: - Parmetros de entrada: a) Comprobar que el mdulo de datos fuente y destino no sean del mismo tipo y no lleven el mismo nmero. b) Comprobar que los parmetros de entrada "offset fuente", "offset destino" y "longitud de bloque" sean menores que 4096 . - Mdulo de datos fuente: a) Comprobar que el mdulo de datos fuente exista y sea suficientemente b) Calcular la direccin absoluta de la tltima palabra de datos en el bloque - Mdulo de datos destino: a) Comprobar que el mdulo de datos destino exista, que su longitud sea suficiente y si se encuentra en la memoria de lectura-escritura (cartucho de memoria RAM o DB-RAM) . b) Calcular la direccin absoluta de la tltima palabra de datos en el bloque de destino. - Transferencia: Ejecutar la copia con la instruccin TNW. Los bloques que superen 255 palabras se transfieren en bloques parciales de 128 palabras cada uno (instruccin TNW 128). Los restos se transfieren mediante una instruccin TNW adicional. Alimentar el parmetro de salida "Status" de acuerdo con el resultado de las comprobaciones efectuadas. c ) Clulas de memoria ocupadas: MW 242 Direccin final del destino de los datos MW 244 Direccin final de la fuente de los datos MW 246 Longitud de bloque MW 248 Offset en el mdulo de datos destino MW 250 Tipo y nmero del mdulo de datos destino MW 252 Offset en el mdulo de datos fuente MW 254 Tipo y nmero del mdulo de datos fuente BS 60 Contador de bloques parciales Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas b) Programacin del m6dulo de funciones FB 10: Nota: Para copiar a partir de la palabra de datos DW 0, hay que suprimir las partes de programa impresas en negrita y cursiva. No se indica ningin valor offset. SEGMENTO 1 NOMB : : DB-DB-TR TRANSFERENCIA MODULO DE DATOS - MODULO DE DATOS BE2 :QTNRE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: : QOFFE/ A/ D/ B/ T/ Z: KM/KH/KY/KC/KF/KT/KZ/KG: KF BE2 :ZTNRE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: : ZOFFE/ A/ D/ B/ T/ Z : KM/KH/KY/KC/KF/KT/KZ/KG: KF BE2 :LAENE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: BE2 : STATE/A/D/B/T/Z : A BI/BY/W/D:BY COMIENZO PARAMETROS DE ENTRADA :LW =QTNR TIPO (DB/DX) Y NUMERO DEL :T m 2 5 4 MODULO DE DATOS FUENTE :LW =ZTNR TIPO (DB/DX) Y NUMERO DEL :T m 2 5 0 MODULO DE DATOS DESTINO CDB FUENTE = DB DESTINO? :SPB =F001 SALTO EN CASO AFIRMATIVO :LW = QOFF OFFSET EN EL MODULO : T MW 252 DE DATOS FUENTE :LW = ZOFF OFFSET EN EL MODULO : T M W 248 DE DATOS DESTINO :LW =LAEN LONGITUD (CANTIDAD DE PALABRAS DE DATOS) DEL :T MW 246 BLOQUE A TRANSFERIR (LONGITUD DE BLOQUE) O (OFFSET FUENTE/OFFSET DESTINO) : L KH FOOO LONGITUD >= 4096 ? SALTO EN CASO AFIRMATIVO :SPP =F002 FIN PARAMETROS DE ENTRADA Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas COMIENZO DEL MODULO DE DATOS FUENTE :L m 2 5 4 TIPO Y NUMERO DEL MODULO DE DATOS FUENTE :SPA OB 181 COMPROBAR MODULO DE DATOS :SPB =F003 SALTO EN CASO DE TEST DE MODULO NEGATIVO Al: CANTIDAD DW , A2: DIRECCION A3: DIRECCION : L MW 252 OFFSET DEL MODULO DE DATOS FUENTE A3 : CANTIDAD DW, A4 : DI RECCI ~N :L m 2 4 6 LONGITUD DE BLOQUE OFFSET + LONGITUD DE BLOQUE CANTIDAD DW < OFFSET + LONGITUD DE BLOQUE ? :SPB =F004 SALTO EN CASO AFIRMATIVO :L K B 1 A2: OFFSET + LONGITUD DE BLOQUE, A3: DIRECCION OFFSET + LONGITUD DE BLOQUE - 1 OFFSET + LONGITUD DE BLOQUE. - 1 + DIRECCION :T m 2 4 4 DIRECCION FINAL DE DATOS FUENTE FIN DEL MODULO DE DATOS FUENTE COMIENZO DEL MODULO DE DATOS DESTINO :L m 2 5 0 TIPO Y NUMERO DEL MODULO DE DATOS DESTINO :SPA OB 181 COMPROBAR MODULO DE DATOS :SPB =F005 SALTO EN CASO DE TEST DE MODULO NEGATIVO :SPM =F006 SALTO EN CASO DE MODULO EN EPROM Al: CANTIDAD DW, A2: DIRECCION A3: DIRECCION : L M 2 4 8 OFFSET EN EL MODULO DE DATOS DESTINO A3 : CANTIDAD DW, A4 : DIRECCION :L m 2 4 6 LONGITUD DE BLOQUE OFFSET + LONGITUD DE BLOQUE CANTIDAD DW < OFFSET + LONGITUD DE BLOQUE? :SPB =F007 SALTO EN CASO AFIRMATIVO :L K B 1 A2: OFFSET + LONGITUD DE BLOQUE, A3: DIRECCION OFFSET + LONGITUD DE BLOQUE - 1 OFFSET + LONGITUD DE BLOQUE - 1 + DIRECCION :T m 2 4 2 DIRECCION FINAL DE DATOS DESTINO FIN DEL MODULO DE DATOS DESTINO Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas COMIENZO DE LA TRANFERENCIA :L K B O VALOR DE COMPARACION :L MB 246 LONGITUD DE BLOQUE, BYTE ALTO LONGITUD DE BLOQUE >= 256 PALABRAS? MULTIPLICACION POR 2, CANTIDAD DE :T BS 60 BLOQUES PARCIALES CON 128 PALABRAS CADA UNO :L MW244 DIRECCION FINAL DE DATOS FUENTE :L MW242 DIRECCION FINAL DE DATOS DESTINO :SPB =REST SALTO SI LONGITUD DE BLOQUE e256 PALABRAS SCHL :TNW 128 TRANSFERENCIA DE UN BLOQUE PARCIAL :ADD KF -128 REDUCIR LA DIRECCION FINAL DE LA FUENTE EN EL VALOR DE LA LONGITUD DEL BLOQUE PARCIAL :ADD KF -128 REDUCIR LA DIRECCION FINAL DEL DESTINO EN EL VALOR DE LA LONGITUD DEL BLOQUE PARCIAL :SPA OB 160 BUCLE CONTADOR :SPB =SCHL SALTO SI NO SE HAN TRANSFERIDO TODOS LOS BLOQUES PARCIALES REST :B MW 246 LONGITUD DE BLOQUE, BYTE BAJO TRANSFERIR EL RESTO DE BLOQUE FIN DE TRANSFERENCIA COMIENZO DEL AVISO :L K B O IDENTIFICACION 00 (HEX.): SIN ERROR ENDE :T =STAT PARAMETROS DE SALIDA STATUS/ERROR FOOl :L KB 129 IDENTIFICACION DE ERROR 81 (HEX.): :SPA =ENDE DB FUENTE = DB DESTINO F002 :L KB 130 IDENTIFICACION DE ERROR 82 (HEX.): :SPA =ENDE OFFSET O LONGITUD >= 4096 F003 :L KB 131 IDENTIFICACION DE ERROR 83 (HEX.): :SPA =ENDE DB FUENTE NO VALIDO F004 :L KB 132 IDENTIFICACION DE ERROR 84 (HEX.): :SPA =ENDE DB FUENTE DEMASIADO CORTO F005 :L KB 133 IDENTIFICACION DE ERROR 85 (HEX.): :SPA =ENDE DB DESTINO NO VALIDO F006 :L KB 134 IDENTIFICACION DE ERROR 86 (HEX.): :SPA =ENDE DB DESTINO EN LA MEMORIA DE SOLO LECTURA F007 :L KB 135 IDENTIFICACION DE ERROR 87 (HEX.): :SPA =ENDE DB DESTINO DEMASIADO CORTO FIN DE AVISO Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.4 Operaciones con el registro base de direcciones (registro BR) Aplicacin El registro base (32 bit) permite el clculo de direcciones as como operaciones indirectas de carga y transferencia de registros, sin necesidad de utilizar los acumuladores para el direccionamiento. Se accede a la clula de memoria cuya direccin absoluta se calcula sumando el contenido del registro BR y una constante: Direccin absoluta = contenido del registro BR + constante Operaciones Tabla 9-5 Operaciones de cargaltransferencia con el registro BR 1) Los bits 2" a Z3' del registro BR se ponen a 'O'. Operacin MBR ABR MBR O a FFFFF ABR - 32767 a 132767 Constante 20 bi t 31 o. . . . . . . . . o B R Operando Constante (OH a F FFFFH) Constante (-32 768 a t32 767) Constante 16 bi t (no en coma fi j a) Funcin Cargar el registro BR con una constante de 20 bit1) Sumar una constante de 16 bits al contenido del registro BR Fig. 9-10 Carga del registro BR Modificacin del El registro BR no se modifica si el procesamiento contina en otro mdulo registro BR que pertenezca al mismo nivel de procesamiento a consecuencia de una instruccin de salto ('SPA FB'/'SPB FB'). El registro BR no se modifica en caso de anidar otro nivel de procesamiento de programa . El registro BR se pone a 'O' cuando el programa de sistema efecta una llamada a otro nivel de procesamiento de programa. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.4.1 Operaciones de transferencia entre registros Aplicacin Las operaciones expuestas a continuacin pueden ser utilizadas para intercambiar de forma rpida valores entre los registros AKKU 1, el contador de direcciones STEP (SAZ) y el registro base de direcciones (BR). Operaciones Tabla 9-6 Operaciones de registro a registro l) LOS bits 2'' a Z3' se ponen a '0'. La figura siguiente muestra cmo se modifican los registros con dichas operaciones. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas x , , , , , , , , , , , , , , X X MAS, 14 y O 3 1 1615 O AKKU 1, BR MBS SAZ 1 MSA, MSB AKKU 1 , BR m m m m m m m m m m m m m m O 0 1 AKKU 1 Fig. 9-11 Operaciones de transferencia de registro a registro Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.4.2 Accesos a la memoria local Aplicacin Con las operaciones siguientes se puede acceder a la memoria local organizada byte por byte a travs de una direccin de memoria absoluta. La direccin absoluta es la suma del contenido del registro BR y la constante de 16 bits contenida en la instruccin (-32768 a +32767). Operaciones Tabla 9-7 Operaciones para accesos a la memoria local l) A K K U 2 nuevo = A K K U lantigUo Operacin LRW LRD TRW TRD Campo de direcciones admisible Reaccin ante error Operando Constante (-32768 a t32767) Constante (-32768 a t32767) Constante (-32768 a t32767) Constante (-32768 a t32767) La direccin absoluta debe encontrarse Descripcin Sumar la constante indicada al ') contenido del registro BR y cargar la palabra as direccionada en el AKKU-1-L Sumar la constante indicada al ') contenido del registro BR y cargar la palabra doble as direccionada en el AKKU 1 Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-L a la palabra as direccionada Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU 1 a la palabra doble as direccionada en caso de LRW, TRW: entre OOOOHy E3FFH o E800H y EDFFH, en caso de LRD, TRD: entre OOOOHy E3FEH o E800H y EDFEH. Si la direccin calculada de la clula de memoria no se encuentra en el campo de direcciones admisible, entonces la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que explican ms detalladamente el error que se ha producido (vase captulo 5.7.2). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.4.3 Accesos a la memoria global Aplicacin Con las siguientes operaciones se puede acceder a la memoria global organizada byte por byte o palabra por palabra a travs de una direccin de memoria absoluta. La direccin absoluta es la suma del contenido del registro BR y la constante contenida en la instruccin (-32768 a 32767). Comprobacin y El acceso de cada una de las CPUs a zonas de memorias utilizadas conjuntamente se forzado puede controlar a travs de una clula ocupada. A cada zona de memoria utilizada de de una clula forma conjunta se le asigna una clula ocupada que debe ser verificada antes de cada ocupada acceso por todas las CPUs que intervengan. Esta clula contiene bien el valor 'O' o en la zona global la identificacin de slot de la CPU que en ese momento est utilizando la zona de memoria y que debe habilitarla de nuevo escribiendo un 'O' en la clula ocupada. Vanse las explicaciones referentes a las operaciones "activar semforo1SES" y "habilitar semforo1SEF" en el captulo 3.5.5. La operacin TSG se encarga de comprobar y activar una clula ocupada. Ejecucin Operacin TSG Resultado La clula utilizada es el byte bajo de la palabra direccionada por la suma del registro BR + la constante. Si el contenido del byte bajo es 'O', la instruccin TSG registra la identificacin del slot (de la BS 29) en la clula ocupada. Operando -32768 a t32767 La comprobacin (= lectura) y ocupacin eventual (= escritura) constituyen una unidad de programa que no puede ser interrumpida. Descripcin Sumar la constante indicada al contenido del registro BR y comprobar y activar la clula ocupada as direccionada El resultado de la comprobacin se puede evaluar por medio de los indicadores ANZOyANZl : Nota La operacin TSG debe ser utilizada por todas las CPUs que tengan que acceder de forma sincronizada a una zona de memoria global conjunta. ANZ1 O 1 O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 ANZO O O 1 Significado El contenido de la clula es 'O'; la CPU registra su propia identificacin de slot. La identificacin del slot ya ha sido registrada en la clula ocupada. La clula ocupada contiene otra identificacin de slot. Accesos a la memoria a travs de direcciones absolutas Campo de La direccin absoluta debe encontrarse entre OOOOHy EFFFH. direcciones abmisible Reaccin ante Si la direccin calculada de la clula de memoria no se encuentra dentro del error campo de direcciones admisible, la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.7.2). Operaciones de carga y transferencia para la memoria global organizada Tabla 9-8 Operaciones para accesos a la memoria global organizada byte por byte b-yte por b-yte l) AKKU-1-LH y AKKU-1-H se ponen a '0'. ' ) AKKU-1-H se pone a '0'. 3, AKKU 2 nuevo : = AKKU lantiguo Campo de direcciones admisible La direccin absoluta debe encontrarse en caso de LB GB, TB GB: entre OOOOH y EFFFH, en caso de LB GW, TI3 GW: entre OOOOH y EFFEH, en caso de LB GD, TI3 GD: entre OOOOH y EFFCH. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas Reaccin ante Si la direccin calculada de la clula de memoria no se encuentra dentro del error campo de direcciones admisible, la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.7.2). Operaciones de carga y transferencia para la memoria global Tabla 9-9 Operaciones para accesos a la memoria global organizada palabra por organizada palabra palabra por palabra AKKU-1-H se pone a '0'. ' ) AKKU 2 nuevo : = AKKU lmtiguo Operacin LW GW LW GD TW GW TW GD Campo de direcciones admisible La direccin absoluta debe encontrarse Operando -32768 a t32767 -32768 a t32767 -32768 a t32767 -32768 a t32767 en caso de LW GW, TW GW: entre OOOOH y EFFFH, Descripcin Sumar la constante indicada al contenido del registro BR y cargar la alabra as direccionada en el AKKU- 1-L . 1) 8 Sumar la constante indicada al contenido del registro BR y cargar la palabra doble as direccionada en el AKKU 1. ' ) Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU-1-L a la palabra as direccionada. Sumar la constante indicada al contenido del registro BR y transferir el contenido del AKKU 1 a la palabra doble as direccionada. en caso de LW GD, TW GD: entre OOOOH y EFFEH. Reaccin ante Si la direccin calculada de la clula de memoria no se encuentra dentro del error campo de direcciones admisible, la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.7.2). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Accesos a la memoria a travs de direcciones absolutas 9.4.4 Accesos a la memoria de pginas Aplicacin Con las siguientes operaciones se puede acceder a pginas organizadas byte por byte o palabra por palabra, a travs de una direccin de memoria absoluta. La direccin absoluta es la suma del contenido del registro BR y la constante contenida en la instruccin (-32768 a 32767). Ejecucin del La zona global contiene una "ventana" entre las direcciones F400H a FBFFH acceso a pginas para la insercin de una de mx. 256 zonas de memoria (= pginas). Una pgina ocupa un campo de direcciones de mx. 2 Kbytes 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 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 (cargaltransferencia) a la zona de pginas debe abrirse una de las 256 pginas. Para ello hay que transferir al AKKU-1-L el nmero de la pgina que va a ser abierta; 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 siguientes de pginas escriben el contenido del registro de pginas en el registro de seleccin de las tarjetas correspondientes en el bus S5. Modificacin del registro de pginas El registro de pginas permanece inalterado cuando se efecta una llamada a otro mdulo del mismo nivel de procesamiento. Si el registro de pginas es modificado en un mdulo, su valor permanece i- nalterado si al final del mdulo se retrocede al mdulo que ha efectuado la llamada. Tras anidar otro nivel de procesamiento, el programa de sistema carga el registro de pginas con el mismo valor que tena antes del anidamiento. El registro de pginas se pone a 'O' cuando el programa de sistema llama a otro nivel de procesamiento. Apertura de una pgina 1 Operacin 1 Parrnetro 1 Descripcin 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 ACR Activar la pgina cuyo nmero se encuentra en AKKU-1-L valores admisibles: O a 255 Accesos a la memoria a travs de direcciones absolutas Reaccin ante El nmero de pgina debe encontrarse entre O y 255. En caso contario, la CPU error detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.7.2). Comprobacin y El acceso de cada una de las CPUs a zonas de memorias utilizadas conjuntamente se activacin de puede controlar a travs de una clula ocupada. A cada zona de memoria utilizada de una clula forma conjunta se le asigna una clula ocupada que debe ser verificada antes de cada ocupada en la acceso por todas las CPUs que intervengan. Esta clula contiene bien el valor 'O' o zona de pginas la identificacin de slot de la CPU que en ese momento est utilizando la zona de memoria y que debe habilitarla de nuevo escribiendo un 'O' en la clula ocupada. (Vanse las explicaciones referentes a las operaciones "activar semforo1SES" y "habilitar semforo1SEF" en el captulo 3.5.5.) La instruccin TSC se encarga de comprobar y activar una clula ocupada en la pgina abierta. Ejecucin Operacin TSC Resultado La clula utilizada es el byte bajo de la palabra direccionada por la suma del registro BR + la constante. Si el contenido del byte bajo es 'O', la instruccin TSC registra la identificacin del slot en la clula. Operando -32 768 a t32 767 La comprobacin (= lectura) y ocupacin eventual (= escritura) forman una unidad de programa que no puede ser interrumpida. Descripcin Sumar la constante indicada al contenido del registro BR y comprobar y activar la clula ocupada as direccionada en la pgina abierta. El resultado de la operacin TSC se puede evaluar por medio de los indicadores ANZOyANZl : Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 ANZ1 O 1 O ANZO O O 1 Significado El contenido de la clula es 'O'; la CPU registra su propia identificacin de slot. La identificacin del slot ya ha sido registrada en la clula ocupada. La clula ocupada contiene otra identificacin de slot. Accesos a la memoria a travs de direcciones absolutas Re a c c i n ante error 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 tambin se debe encontrar en la tarjeta correspondiente y en la pgina utilizada conjuntamente entre F400H y FBFFH. En caso contrario, la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.7.2). Operaciones de carga y t ransf erenci a para pginas Organizadas~abla 9-10 Operaciones para accesos a ventanas organizadas byte por byte bvte rior bvte l) AKKU-1-LH y AKKU-1-H se ponen a '0' ' ) AKKU-1-H se pone a '0'. 3, AKKU 2 nuevo: = AKKU lantiguo - ~ Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin LB CB LB CW LB CD TB CB TB CW TB CD Operando -32768 a t32767 -32768 a t32767 -32768 a t32767 -32768 a t32767 -32768 a t32767 -32768 a t32767 Descripcin Sumar la constante indicada al contenido del registro BR y cargar el byte as direccionado en la pgina abierta en el AKKU-1-LL. ') 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. ' ) 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) 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 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. Accesos a la memoria a travs de direcciones absolutas Campo de La direccin absoluta debe encontrarse direcciones admisible en caso de LB CB, TB CB: entre F400H y FBFFH, en caso de LB CW, TB CW: entre F400H y FBFEH, en caso de LB CD, TB CD: entre F400H y FBFCH. Reaccin ante Si la direccin del byte calculada no se encuentra en el campo de direcciones error admisible, la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.6.2). Operaciones de carga y transferencia para pginas organizadas Tabla 9-11 Operaciones para accesos a pginas organizadas palabra por palabra palabra por palabra AKKU-1-H se pone a '0'. ' ) AKKU 2 nuevo: = AKKU lantiguo Operacin LW CW LW CD TW CW TW CD Campo de direcciones admisible La direccin absoluta debe encontrarse Operando -32768 a t32767 -32768 a t32767 -32768 a t32767 -32768 a t32767 en caso de LW CW, TW CW: entre F400H y FBFFH, Descripcin Sumar la constante indicada al contenido del registro BR y cargar la palabra as direccionada en la pgina abierta en el AKKU-1-L. ') 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. en caso de LW CD, TW CD: entre F400H y FBFEH. Reaccin ante Si la direccin calculada no se encuentra en el campo de direcciones admisible, error la CPU detecta un error en tiempo de ejecucin y llama al OB 31, si est cargado. Si el OB 31 no est cargado, la CPU pasa al estado STOP. En ambos casos, el AKKU-1-L contiene identificaciones de error que describen ms detalladamente el error que se ha producido (vase captulo 5.7.2). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Resumen breve Este captulo explica en primer lugar cundo utilizar el modo multiprocesador y cmo intercambiar datos entre las CPUs. Tambin explica qu debe hacer y tener en cuenta el programador a la hora de operar 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). lndice del capftulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Pgina 10-3 10-4 10-8 10-9 10-13 10-15 10-16 10-17 10-20 10-21 10-22 10-24 10-29 10-30 10-30 10-32 10-33 Captulo 10.1 10.1.1 10.1.2 10.1.3 10.2 10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6 10.2.7 10.3 10.4 10.4.1 10.4.2 10.4.3 Tema Modo multiprocesador Intercambio de datos a travs de marcas de acoplamiento Asignacin de periferia y marcas de acoplamiento en modo rnultiprocesador (DB 1) Cmo se crea el mdulo de datos DB l? Comunicacin en multiprocesamiento Cmo se identifica el emisor y el receptor? Por qu se almacenan datos de forma intermedia? Cmo se procesa y administra la memona intermedia? Aspectos a tener en cuenta durante el arranque del sistema Lo que debe tenerse en cuenta al llamar a los OBs de comunicacin Cmo se parametnzan los OBs de comunicacin? Cmo se evalan los parmetros de salida? Tiempos de ejecucin de los OBs de comunicacin Funcin INICIALIZAR (OB 200) Funcin Parmetros de llamada Parmetros de entrada Modo multi~rocesador v comunicacin en multi~rocesamiento Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 10.4.4 10.5 10.5.1 10.5.2 10.5.3 10.5.4 10.6 10.6.1 10.6.2 10.6.3 10.6.4 10.7 10.7.1 10.7.2 10.7.3 10.7.4 10.8 10.8.1 10.8.2 10.8.3 10.8.4 10.9 10.9.1 10.9.2 10.9.3 Tema 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 Funcin TEST DE RECEPCION (OB 205) Funcin Parmetros de llamada Parmetros de entrada Parmetros de salida Aplicaciones Llamada a los OBs de funciones especiales por medio de mdulos de funciones Transferencia de mdulos de datos Ampliacin de la zona de marcas de acoplamiento Pgina 10-36 10-38 10-38 10-38 10-39 10-41 10-43 10-43 10-43 10-43 10-44 10-45 10-45 10-45 10-45 10-46 10-48 10-48 10-48 10-48 10-49 10-50 10-50 10-58 10-64 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.1 Modo multiprocesador Definicin del El modo multiprocesador tiene lugar desde el momento en que se enchufa un concepto coordinador al aparato central, independientemente del nmero de CPUs que estn funcionando. Cundo se Cuando el programa de usuario sea demiasado extenso para una sola CPU y debe operar el espacio de memoria sea insuficiente, habr que repartir el programa entre en modo multi- varias CPUs. procesador? Cuando una determinada parte de la instalacin deba ser procesada de forma especialmente rpida, habr que separar el correspondiente programa parcial y hacerlo 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 procesar la parte 1 por la CPU 1, la parte 2 por la CPU 2 y as sucesivamente. En lo referente al modo multiprocesador es imprescindible consultar las informaciones correspondientes en el manual del sistema. Estas pueden ser de utilidad a la hora de decidir qu CPUs son ms apropiadas para la tarea a resolver. De qu Para el intercambio cclico de pequeas cantidades de datos binarios entre las mecanismos de CPUs o entre las CPUs y algunos procesadores de comunicacin se dispone de comunicacin se las "marcas de acoplamiento". dispone? Para el intercambio de grandes cantidades de datos (por ej. mdulos de datos completos) entre las CPU 948, CPU 9461947, CPU 928B, CPU 928 y CPU 922 se pueden utilizar las "funciones especiales para comunicacin en multiprocesamiento" OB 200 y OB 202 a OB 205 @ara ms informacin vase el captulo 10.2 y siguientes). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.1.1 Intercambio de datos a travs de marcas de acoplamiento Introduccin 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) y 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 se almacenan fsicamente y de forma intermedia en el coordinador. Las marcas de acoplamiento son bytes de marcas que se tranfieren. Estas se definen en el mdulo DB 1 de cada CPU como marcas de acoplamiento de entrada o salida. Si, por ejemplo, se ha definido el byte de marcas 50 en la CPU 1 como marca de acoplamiento de salida, entonces se transfiere cclicamente su estado de seal a travs del coordenador a aquella CPU, en la que se haya definido el byte de marcas 50 como marca de acoplamiento de entrada (vase captulo 10.1.5). Nota No se emitirn avisos de error en caso de que el byte de entrada exista fsicamente pero slo sea escrito por un lado y no sea leido 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 las direcciones F200H a F2FFH. Cada CPU o procesador de comunicacin dispone de 256 bytes de marcas de acoplamiento. Ajuste de los Para evitar ocupaciones dobles, es necesario asignar prioridades a las tarjetas puentes KOR o CP. Se pueden activar o desactivar bloques de 32 bytes cada uno. El manual del sistema le informar cmo ajustar los puentes. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Ejemplo Coordi nador Salidas de marcas de acopl.: MB 96 a MB 119 Escri t ura Entradas de marcas de acopl.:d MB 120 a MB 125 Lect ura Zonas habi l i t adas medi ant e puent es: Byt es de marcas de acopl ami ent o MB 96 a MB 127 Salidas de marcas de acopl.: MB 120 a MB 125 Escri t ura Entradas de marcas de acopl.:.+ MB 96 a MB 119 Lect ura Fig. 10-1 Transferencia de marcas de acoplamiento en modo multiprocesador Nota - Como marcas de acoplamiento slo pueden ser utilizados aquellos bytes de marcas que han sido habilitados en el coordinador o en el (los) procesadore(s) de comunicacin (CP) correspondiente(s). - Si en una o varias CPUs se ha definido un determinado byte de marcas como marca de acoplamiento de entrada, este byte deber estar definido en otra CPU o en otro CP como marca de acoplamiento de salida. Y: un byte de marcas no debe definirse como marca de acoplamiento de salida ms que en una sola CPU. Sin embargo, este byte se puede definir como marca de acoplamiento de entrada, por ejemplo, en otras tres CPUs! - Los byte de marcas que no hayan sido definidos en una CPU como marcas de acoplamiento pueden ser utilizados como marcas "normales"! ;No utilizar las marcas S como marcas de acoplamiento! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Intercambio de Para transferir datos entre una CPU y un procesador de comunicacin, se tiene datos entre que habilitar la cantidad necesaria de marcas de acoplamiento en el procesador CPUS y de comunicacin (CP). Ah se dispone tambin de 256 bytes divisibles en zonas procesadores de de 32 bytes. comunicacin Para 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, a fin de evitar que las direcciones estn doblemente ocupadas. Para 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 deben ser divididas en zonas de 32 byte. Los bytes de marcas de acoplamiento utilizados en el procesador de comunicacin deben ser enmascarados en el coordinador, retirando los puentes correspondientes (vase manual del sistema). Tambin en este caso vale: un byte de marcas slo deber ser definido como salida de marcas de acoplamiento en una sola CPU. Por el contrario, un byte de marcas puede ser definido como marca de acoplamiento de entrada en varias CPUs. Ejemplo Zona habi l i t ada: Salidas de marcas de acopl.: CP 1: MB 96 a MB 119 CP 2: MB 201 a MB 205 Zona habi l i t ada: Entradas de marcas de acopl.: 4 CP 1: MB 120 a MB125 CP 2: MB 195 a MB 200 Fig. 10-2 Ejemplo de zonas de marcas de acoplamiento en CPs Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Transferencia Las marcas de acoplamiento indicadas en el DB 1 se transfieren al final del ciclo de marcas de junto con la actualizacin de la imagen de proceso. acoplamiento en modo multi- El coordinador enva sucesivamente a cada CPU la seal de acceso libre al bus. procesador En este caso, cada CPU slo deber transferir un byte. Debido a este tipo de transmisin encadenada puede ocurrir que se descompongan informaciones homogneas de marcas de acoplamiento superiores a 1 byte. Si se desean transferir informaciones que comprendan ms de un byte, parametrizando correspondientemente el mdulo de datos DX O 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 siguiente CPU tiene que esperar a poder realizar su transferencia, se retrasa en este tiempo el procesamiento cclico del programa. Comunicacin en multipro- cesamiento 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: Prefijar OB 202: EMITIR: Emitir un bloque de datos OB 203: TEST DE EMISION: Comprobar posibilidad de emisin OB 204: RECIBIR: Recibir un bloque de datos OB 205: TEST DE RECEPCION: Comprobar posibilidad de recepcin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.1.2 Asignacin de periferia y marcas de acoplamiento en modo multiprocesador (DB 1) Introduccin La zona de periferia del autmata programable slo existe una vez en el bus S5. La zona de periferia abarca las direcciones FOOOHa FFFFH. En modo multiprocesador todas las CPUs acceden "simultneamente" a esta zona de periferia. Para que no se sobreescriban datos es necesario repartir la zona de periferia entre las distintas CPUs. Para ello hay que programar el DB 1 en toda CPU que intervenga en el proceso. En el DB 1 se definen las entradas y salidas (direcciones de byte 0-127) y las entradas y salidas de marcas de acoplamiento con las que deber operar cada una de las CPUs. En modo multiprocesador siempre deber existir un DB 1 (vaco) aunque la CPU no utilice periferia ni marcas de acoplamiento. Nota Durante la actualizacin de la imagen de proceso cada una de las CPUs solamente tendr en cuenta los bytes de entrada y salida definidos en el DB l! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.1.3 Cmo se crea el mdulo de datos DB 1? Entradal creando/modificando el DB 1 en el aparato de programacin a travs de la modificacin mscara DB 1 del DB 1 o editando el DB 1 como mdulo de datos en el aparato de programacin y transfirindolo despus a la CPU. Nota Solamente se aceptar el DB 1 introducido o modificado cuando se efecte un NUEVO ARRANQUE de la CPU! Crear con la mscara DB 1 1" Seleccionar en el aparato de programacin el editor correspondiente a la mscara DB 1 (vase figura 10-3). 2" Introducir los valores deseados para las "entradas digitales" etc. como nmeros decimales. 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, o cargarlo en un cartucho de memoria EPROM. Nota La longitud de bloque de los temporizadores puede indicarse en la mscara DX O y/o DB 1. No obstante, recomendamos indicar este parmetro slo en la mscara DX O (vase captulo 7). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Ejemplo de la mscara DB 1 Asignacin periferia: Entradas digitales: 0 , 1 , 2 , 3 , 7 , 1 0 , , , , , ) ) ) ) , ! 0 , 2 , 4 , 1 2 , 1 I I I I ! Marcas acopl. entrada: 5 0 , 5 1 , 6 0 , , ) , , , ) ) , , Marcas acopl. salida: 70, 72, 100, , ) , , , ) , , , Long. bloq. temp.: , ) Fig. 10-3 Mscara del aparato de programacin para generar el DB 1 Editar el DB 1 1" Escribir la identificacin inicial del DB 1 en las palabras de datos O, 1 y 2: como mdulo de datos DW O: KH = 4D41 ('M' 'A') DW 1: KH = 534B ('S' 'K') DW 2: KH=3031 ('O' '1') 2" Introducir a continuacin (a partir de la palabra de datos 3) las distintas zonas de operandos. Antes de cada zona de operandos se debe introducir 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 acoplamiento entradas KH = CEO0 Palabra de ident. para marcas de acoplamiento salida KH = CAOO Despus de la palabra de identificacin se deben 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Nota El orden de introduccin de los datos es arbitrario. Obsrvese que la imagen de proceso de las entradas y salidas se actualiza en orden inverso al orden en que se han registrado las direcciones en el DB 1 (es decir, en primer lugar se actualiza la ltima entrada). Es posible introducir un mismo byte repetidas veces, p. ej. para fines de test. Hay que tener presente que la imagen de proceso de los bytes repetidos ser actualizada repetidamente. Ejemplo de edicin del DB 1 identificacin inicial del DB 1 Palabra de ident. de entradas dig. KF = +00001; Byte de entrada 1 KF = +00002; Byte de entrada 2 KF = +00003; Byte de entrada 3 KF = +00007; KF = +00010; Byte de entrada 10 Palabra de ident. de salidas dig. KF = +00000; Byte de salida O KF = +00002; Byte de salida 2 KF = +00004; KF = +00012; Byte de salida 12 Palab. ident. de entradas marcas acopl. KF = +00051; KF = +00060; Byte de marcas 60 Palab. ident. de salidas marcas acopl. KF = +00072; KF = +00100; Byte de marcas 100 KH = EEEE; Identificacin final Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Aceptacin del El DB 1 es aceptado por el programa de sistema en el NUEVO ARRANQUE. DB 1 Este verifica entonces si las entradas y salidas o marcas de acoplamiento indicadas en DB 1 dan el acuse de recibo de las tarjetas correspondientes. En caso contrario, la CPU pasa a STOP indicando un error de DB 1; el LED STOP parpadea lentamente. En este caso no se procesa el programa de usuario. Desde el momento en que el DB 1 ha sido programado y aceptado por la CPU mediante un NUEVO ARRANQUE, valen las siguientes reglas: Los accesos a las tarjetas de E/S a travs 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 operaciones de combinacin con entradas y salidas). Los accesos a direcciones de la imagen de proceso que no estn registradas en el DB 1 causan un error de direccionamiento. La carga directa de bytes de periferia, sin pasar por la imagen de proceso, con las operaciones L PY, L PW, L QB, L QW es posible para todas las entradas que acusen recibo, independientemente de que estn registradas en el DB 1. La transferencia directa (T PY, T PW) a los bytes O 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 causan 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. Asimismo es posible la transferencia directa para direcciones de byte de la zona de periferia ampliada (T QB, T QW), independiente-mente de que estn registradas en el DB 1. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2 Comunicacin en multiprocesamiento Definicin del Por comunicacin en multiprocesamiento se entiende el intercambio de concepto cantidades de datos extensas (mdulos de datos) entre CPUs que operan en modo multiprocesador. Para este tipo de comunicacin se requiere un coordinador KOR 923C. Introduccin Para la transferencia de mdulos de datos, ms exactamente: de bloques de datos de mximo 64 bytes (= 32 palabras de datos), se dispone de las siguientes funciones especiales integradas en la CPU: OB 200: INICIALIZAR: Prefijar OB 202: EMITIR: Emitir un bloque de datos OB 203: TEST DE EMISION: Comprobar posibilidad de emisin OB 204: RECIBIR: Recibir un bloque de datos OB 205: TEST DE RECEPCION: Comprobar posibilidad de recepcin En adelante, los OBs de funciones especiales OB 200 y de OB 202 a OB 205 se denominan " OBs de comunicacin". Conocimientos Para la utilizacin de estas funciones bastan conocimientos bsicos del lenguaje necesarios de programacin STEP 5 y del funcionamiento de los autmatas programables SIMATIC S5. Estos conocimientos bsicos se obtienen consultando las obras listadas en el captulo de bibliograa. Ejecucin Para transferir datos, en la CPU emisora se deber activar la funcin EMITIR y en la CPU receptora la funcin RECIBIR. En este caso, las palabras de datos correlativas de un mdulo de datos DB o DX que se encuentran en la CPU emisora, se transportan mediante el coordinador KOR 923C a la CPU receptora, donde se almacenan en un mdulo de datos DB o DX con el mismo nmero y en 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 cabeza) no sea un mltiplo de 32 palabras, en el ltimo bloque se transfieren excepcionalmente menos de 32 palabras. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento El mdulo de datos de la CPU receptora 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 EMlTIR existan en el mdulo de datos de recepcin; de lo contrario, la funcin RECIBIR detecta un error. Ejemplo Datos de Datos de emisin en la recepcin en la CPU emisora: CPU receptora: dulo de datos: DB 17 ireccin de la alabra de datos: DW 32 a DW 63 DW 32 a DW 63 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.1 Cmo se identifica el emisor y el receptor? Cada bloque de datos intercambiado entre las CPUs se identifica por un nmero de la CPU emisora y un nmero de la CPU receptora. Las CPUs se numeran de forma que la CPU enchufada en el extremo izquierdo recibe el nmero 1 y las siguientes hacia la derecha reciben un nmero ascendente, aumentando de uno en uno. Ejemplo K C C C O P P P P P E E E R U U U C 1 2 3 Fig. 10-4 Identificacin emisor/receptor Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.2 Por qu se almacenan datos de forma intermedia? Generalmente se utiliza el modo multiprocesador para repartir las tareas a ejecutar entre distintas CPUs. Puesto que estas tareas no son idnticas y, puesto que adems pueden variar las caractersticas de las CPUs que intervienen en el proceso, 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 coordenador KOR 923C. La fuente o destino de un bloque de datos queda determinado 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 K C C C O P P P R U U U C 1 2 3 La CPU 3 registra sus datos en la memoria intermedia del coordinador. K C C C O P P P R U U U C 1 2 3 Cuando la CPU 2 est lista para recibir, copia los datos de la memoria intermedia del coordinador en el DB de destino. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.3 Cmo se procesa y administra la memoria intermedia? Procesamiento La memoria intermedia se basa en el principio FIFO (primera entrada - primera salida, principio de cola de espera). Con ello se determina que la secuencia de recepcin sea igual a la secuencia de emisin. Esto vale para cada una de las lneas de comunicacin (caracterizadas por la CPU emisora y la CPU receptora) y es completamente independiente de las dems lneas. Salvaguarda de La memoria intermedia es salvaguardada por una batera tampn; gracias a ello datos se puede efectuar 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, no se pierden los datos del autmata programable. Administracin La capacidad mxima de memoria del coordinador KOR 923C se remonta a 48 bloques con una longitud fija de 32 palabras cada uno. La funcin INICIALIZAR asigna estos bloques de memoria a cada una de las lneas de comunicacin. Cada bloque de memoria almacena exactamente un bloque de datos. Su longitud puede ser de 1 a 32 palabras. Un bloque de datos es registrado por una funcin EMITIR en un bloque de memoria y es extrado de ello por 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 una lnea de comunicacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Ejemplo Se inicializa la lnea "de la CPU 3 a la CPU 2". Se le asignan siete bloques de memoria en la memoria intermedia del coordinador. A continuacin, se puede realizar por ejemplo la siguiente transmisin: Capacidad de emisin (cantidad de bloques de memorla Ilbres) Fig. 10-5 Ejemplo de la ocupacin de la memoria intermedia del KOR La emisin y recepcin de n bloques de datos significa que las correspondientes funciones son llamadas n veces consecutivas. Para conseguir una representacin ms simplificada, en este ejemplo se realiza primero la emisin o la recepcin. Sin embargo, 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 1. 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...). 1 Receptor: CPU 2 1 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Resumen La memoria intermedia del coordinador KOR 923C sirve para equiparar los procesos asncronos 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 > O), 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 a disposicin del receptor. Adems as se habilitan bloques de memoria (la capacidad de emisin aumenta) y se evita el bloqueo del emisor (es decir, capacidad de emisin "agotada", o sea = 0). Nota Mientras la capacidad de recepcin O representa el estado ideal (todos los datos emitidos han sido retirados por el receptor), la capacidad de emision O indica errores de planificacin 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.4 Aspectos a tener en cuenta durante el arranque del sistema La comunicacin en multiprocesamiento exige que en todas las CPUs el paso de STOP a RUN (= ARRANQUE) se ejecute idnticamente, es decir, que se ejecute de forma uniforme en todas las CPUs un NUEVO ARRANQUE, o bien un REARRANQUE. Con los correspondientes mando (selector frontal, aparato de programacin), parametrizacin (DX O) programacin (con el 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 intervengan en el proceso de comunicacin. NUEVO ARRANQUE La memoria intermedia debe ser instalada en el mdulo de organizacin OB 20 (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 puede llamar a 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 o del FB O. REARRANQUE En los mdulos de organizacin OB 21 (REARRANQUE MANUAL) y OB 22 (REARRANQUE AUTOMATICO) no se debe utilizar la funcin INICIALIZAR. La llamada a las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION puede ocasionar problemas; vanse abajo las observaciones al respecto. Una vez terminado el REARRANQUE, es decir, en RUN, el programa de usuario no se procesa desde el principio, sino que contina a partir del punto de interrupcin. El punto de interrupcin se puede encontrar por ejemplo dentro de la funcin EMITIR. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.5 Lo que debe tenerse en cuenta al llamar a los OBs de comunicacin Proceder del siguiente modo: 1" Llamar a la funcin INICIALIZAR slo en el mdulo de organizacin OB 20 de nuevo arranque en una CPU. 2" Llamar a la funcin EMITIR, TEST DE EMISION, RECIBIR y 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 O ("interrupcin en lmites de instrucciones") y del tipo de procesamiento (REARRANQUE, tratamiento de interrupciones, por ej. OB 26 en caso de error de tiempo de ciclo), es posible que una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION sea interrumpida. Si una interfaz con el usuario anidada en el punto de 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 (error n"7, captulo 10.2.8). Procesamiento Una vez prefijada la memoria intermedia (funcin INICIALIZAR), en todas las paralelo CPUs se pueden procesar paralela y simultneamente las funciones EMITIR, TEST DE EMISION, RECIBIR, TEST DE RECEPCION en cualquier combinacin y con cualquier parametrizacin. Si se observa 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 OBs de comunicacin no requieren ninguna zona de trabajo (por ej. para el almacenamiento intermedio de variables) y tampoco abren mdulos de datos. Por supuesto que acceden a zonas que contienen parmetros, pero slo se modifican aquellos definidos como parmetros de salida. lndicadores de Los indicadores de resultado (ANZ l/ANZ O, VKE, etc.) son alterados por los resultado OBs de comunicacin. Para ms informacin consultar el captulo 10.2.8. Modificacin de CPU 922, CPU 928, Los contenidos de los AKKU 1 a AKKU 4 los acumuladores CPU 928B: y los contenidos de los registros no son modificados por los OBs de comunicacin. CPU 9461947, Todos los contenidos de los registros y AKKU 1, 2 y 3 CPU 948: permanecen inalterados; slo se modifica el AKKU 4. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.6 Cmo se parametrizan los OBs de comunicacin? Los OBs de comunicacin presentan las siguientes clases de parmetros: parmetros de entrada, parmetros de salida 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 una para parmetros de salida. Parmetros de Los parmetros de entrada determinan el modo en que se debe ejecutar una entrada funcin. Estos son leidos y evaluados parcial o completamente por los OBs de funciones especiales. No se ejecutan accesos de escritura. Parmetros de Los parmetros de salida contienen todas las informaciones requeridas por el salida programa que efecta la llamada (por ej.: indicadores de error) referentes al resultado de una peticin. Estos son leidos y evaluados parcial o completamente por los OBs de comunicacin. 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). Parmetro de En todos los OBs de comunicacin se transfiere como parmetro de llamada el llamada nmero del primer byte de marcas del campo de datos (= indicador del campo de datos) al AKKU-1-L. Valores admisibles: de O a 246. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Ejemplo Campo de datos con parametros de la funcin RECIBIR (OB 204) MB x + O: CPU emisora Parmetro de entrada MB x + 1: no ocupado MB x + 2: Byte indicador Parmetro de salida MB x + 3: Capacidad de recepcin Parmetro de salida MB x + 4: Identificacin de mdulo Parmetro de salida MB x + 5: Nmero de mdulo Parmetro de salida MB x + 6: Direccin de la primera Parmetro de salida MB x + 7: palabra de datos recibida Parmetro de salida MB x + 8: Direccin de la ltima Parmetro de salida MB x + 9: palabra de datos recibida Parmetro de salida Este ejemplo muestra que 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). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.2.7 Cmo se evalan los parmetros de salida? Los parmetros de salida indican entre otras cosas si una funcin ha podido ser procesada. De lo contrario, indican por qu se ha abortado la funcin. Indicadores de Las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR, TEST resultado DE RECEPCION puedan modificar los indicadores de resultado (vanse instrucciones de programacin de las correspondientes CPUs, observaciones generales referentes a las operaciones STEP 5): los bits OV y OS (indicadores de palabras) siempre se borran, los bits OR, STA, ERAB (indicadores de bits) siempre se borran, VKE, ANZ 1 y ANZ O indican si una funcin ha sido ejecutada completa y correctamente. Tabla 10-1 Indicadores de los OBs de comunicacin uncin abortada por un conflicto de En lo sucesivo se presupone que el indicador 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 salida. Bit nQ A = 1: Advertencia E = 1: Error I = l : Conflicto de inicializacin Nmero: - de una advertencia - de un error - de un conflicto de inicializacin 7 A Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 6 E 5 1 4 O 3 Nmero 2 1 O Modo multi~rocesador v comunicacin en multi~rocesamiento 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 que en los indicadores de resultados. Partiendo de la condicin mencionada anteriormente, segn la cual por lo menos el indicador del campo de datos debe contener un valor correcto, este byte siempre ser significativo. Si la funcin ha sido ejecutada correcta y completamente, se borran todos los bits (= O), y todos los dems parmetros de salida tambin son significativos. Si la funcin es abortada por una advertencia (bit n V = 1), slo sigue siendo significativo el indicador de 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% = 1) o con un conflicto de inicializacin (bit n" = 1), todos los dems parmetros de salida permanecen inalterados. Evaluacin del Las identificaciones 'A', 'E' e '1' indican entre otras cosas el significado de la byte indicador informacin "nmero". Aparte de esta evaluacin bit por bit, tambin es posible interpretar todo el byte indicador como nmero en coma fija sin signo. En el caso de una interpretacin global del byte indicador, resultan grupos numricos que significan lo siguiente: Tabla 10-2 Byte indicador de los OBs de comunicacin/grupos numricos Los errores son detectados y visualizados conforme al orden ascendente de los nmeros de error. Esto significa que pueden haberse producido varios errores aunque (en este instante) slo se visualice un error. Los dems errores se irn visualizando a medida que se efecten ms llamadas. Campo de valores O 33 a 42 65 a 73 129 a 130 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 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 Modo multiprocesador y comunicacin en multiprocesamiento Ejemplo uevamente un error con un nmero mayor que el anterior, no de los errores se ha eliminado. Conflicto de El conflicto de inicializacin slo puede producirse con la funcin inicializacin INICIALIZAR. Este exige una modificacin de la programacin/parametrizacin. Nmeros de conflictos de inicializacin (evaluacin global del byte indicador): Tabla 10-3 Byte indicador: nmeros de conflictos de inicializacin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Byte ind. 33 34 35 36 37 38 39 40 41 42 Significado Las pginas utilizadas para la comunicacin en multiprocesamiento (119.52 a 255) no existen o no estn completas. Las pginas requeridas para la comunicacin en multiprocesamiento (119.52 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 ident. de mdulo = 1 : DB O, DB 1, DB 2 - en caso de ident. de mdulo = 2 : DX O, DX 1, DX 2 El parmetro "nmero de mdulo" es errneo, ya que el mdulo de datos parametnzado no existe. El parmetro "direccin inicial de la lista de asignaciones" es demasiado grande o el mdulo de datos es demasiado corto. 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. Modo multi~rocesador v comunicacin en multi~rocesamiento Errores En caso de error se deber modificar la programacin o la parametnzacin. Nmeros de errores (evaluacin global del byte indicador): Tabla 10-4 Byte indicador: nmeros de errores Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Byte ind. 65 66 67 68 69 70 71 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 nW'propio". El parmetro "CPU emisora" (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 nN'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 y se 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 una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION en un nivel de programa subordinado (por ej. procesamiento cclico), - El nmero "propio" 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. Los datos de administracin (administracin de cola de espera) de las lneas de comunicacin seleccionadas son errneos; hay que volver a instalar la memona intermedia del coordinador KOR 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 PECIBIR) 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 el nmero de mdulo suministrado por el emisor PECIBIR) no es vlido, ya que se trata de un mdulo de datos de significado especial. Hay que diferenciar los siguientes casos: - en caso de ident. del mdulo = 1 : DB O, DB 1, DB 2 - en caso de ident. del mdulo = 2 : DX O, DX 1, DX 2 El parmetro "nmero de mdulo" (EMITIR) o el nmero de mdulo suministrado por el emisor PECIBIR) es errneo. El mdulo de datos parametnzado no existe. Modo multi~rocesador v comunicacin en multi~rocesamiento Advertencia Byte ind. La funcin no ha podido ser ejecutada; hay que repetir la llamada a la funcin, por ejemplo, en el ciclo siguiente. Significado Nmeros de advertencia (evaluacin global del byte indicador): Tabla 10-5 Byte indicador: nmeros de advertencias Tabla 10-4 (continuaci6n): 72 73 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 El parmetro "nmero de bloque" (EMITIR) es errneo. El mdulo de datos es demasiado corto o el nmero de bloque es demasiado elevado. El mdulo de datos es demasiado pequeo para recibir al bloque de datos suministrado por el emisor PECIBIR). Byte ind. 129 130 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. Modo multi~rocesador v comunicacin en multi~rocesamiento 10.3 Tiempos de ejecucin de los OBs de comunicacin El "tiempo de ejecucin" es el tiempo de procesamiento de los mdulos de organizacin de funciones especiales. Tabla 10-6 Tiempos de ejecucin de los OBs de comunicacin El tiempo que transcurre entre la llamada a un mdulo y su terminacin puede aumentar considerablemente si es interrumpido por actividades de prioridad superior (por ej ., actualizacin de temporizadores, etc.). OB de funciones especiales Los tiempos de ejecucin indicados en la tabla 10-6 resultan a condicin de que, de las cuatro CPUs enchufadas, acceda al bus S5 slo aquella CPU, cuyos tiempos de ejecucin sean medidos. Si las otras CPUs tambin utilizan el bus de forma intensiva, aumenta el tiempo de ejecucin, especialmente durante la emisin/recepcin. Nombre del mdulo OB 200/Inicializar OB 202/Emitir OB 203/Test de emisin OB 204/Recibir OB 205/Test de recepcin Tiempo de transferencia Una caractenstica importante de una lnea de comunicacin (por ej. de la CPU 1 a la CPU 2) es el tiempo total de transferencia de datos. Este se compone de los siguientes tiempos: CPU 928 104 ms 533 ps (200 ps carga bsica t 10,5 pslpal.); 92 ps en caso de advertencia 40 ys 528 ps (195 ps carga bsica t 10,5 pslpal.); 79 ps en caso de advertencia 39 ys tiempo de emisin (vase tiempo de ejecucin), tiempo de almacenamiento intermedio (en el coordinador KOR 923C) Y tiempo de recepcin (vase tiempo de ejecucin). CPU 928B 104 ms 533 p (200 p carga bsica + 103 plpal.); 92 ps en caso de advertencia 40 ps 528 P (195 ps carga bsica + 103 plpal.); 79 ps en caso de advertencia 39 ps El tiempo durante el cual los datos se encuentran "de camino" depende primordialmente del tiempo de almacenamiento intermedio y, por consiguiente, de la estructura del programa de usuario (comparar "almacenamiento intermedio de datos"). CPU 948 90 ms 542 p (220 p carga bsica t 19 pslpal. doble); 110 ps en caso de advertencia 115 ps 506 p (218 p carga bsica t 18 pslpal. doble); 132 ps en caso de advertencia 120 ps Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.4 Funcin INICIALIZAR (OB 200) 10.4.1 Funcin Para poder transmitir datos de una CPU a otra, los datos tienen que ser almacenados transitoriamente. Para ello, la funcin INICIALIZAR instala una memoria intermedia en el coordinador KOR 923C. La capacidad de memoria se instala (inicializa) en bloques de una longitud fija de 32 palabras. Cada bloque de memoria almacena exactamente un bloque de datos de una longitud entre 1 y 32 palabras de datos. Un bloque de datos se registra en un bloque de memoria con una funcin EMITIR y se retira con una funcin RECIBIR. En caso de haber dos CPUs enchufadas, resultan dos lneas de comunicacin (direcciones de transferencia, "canales"): l c p u 1 1 CPU 2 l En caso de haber tres CPUs enchufadas, resultan seis lneas de comunicacin: CPU 1 1 , CPU 2 ~ Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento En caso de haber cuatro CPUs enchufadas, resultan doce lneas de comunicacin: Con la funcin INICIALIZAR se determina la forma de asignar los 48 bloques de memoria disponibles a las 12 lneas de comunicacin posibles. 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. CPU 1 b Nota Antes de que en las CPUs se puedan llamar a las funciones EMITIR/ RECIBIRJTEST DE EMISIONREST DE RECEPCION, es necesario llamar en una CPU a la funcin INICIALIZAR, la cual tiene que haber sido procesada completamente y sin errores. CPU 2 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 a otras funciones de comunicacin en multiprocesamiento, es decir, tampoco se puede llamar a la funcin INICIALIZAR. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 A A Y A A CPU 4 CPU 3 b Modo multi~rocesador v comunicacin en multi~rocesamiento 10.4.2 Parmetros de llamada Estructura del Antes de llamar al OB 200 hay que poner a disposicin en el campo de datos los campo de datos parmetros de entrada. El OB 200 requiere en el campo de datos 8 bytes de (de parmetros) marcas M para los parmetros de entrada y de salida: MBx+O: Modo de operacin Parmetro de entrada (automtico/manual) MB x + l : Cantidad de CPUs Parmetro de entrada MB x + 2: Identificacin de mdulo Parmetro de entrada MBx +3 : Nmero de mdulo Parmetro de entrada Direccin inicial de la Parmetro de entrada MBx +5 : M + 4 K lista de asignaciones MB x + 6: Byte indicador Parmetro de salida MBx +7 : Capacidad total Parmetro de salida Al llamar al OB 200 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parmetros: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.4.3 Parmetros de entrada Modo de Modo de operacin = 1: Automtico operacin Modo de operacin = 2: Manual (automtico/ Modo de operacin = O 3 a 255: No vlido, conduce a un conflicto manual) de inicializacin Cantidad de Este parmetro slo es significativo si se ha seleccionado el modo de operacin CPUs "automtico". Seleccionando el modo de operacin "automtico", los bloques de memoria disponibles se distribuirn por partes iguales, segn la cantidad de CPUs: Identificacin de Estos parmetros slo son significativos si se ha seleccionado el modo de mdulo, nmero operacin "manual". Posteriormente se deber preparar en un mdulo de datos de mdulo, una lista de asignaciones en la que, segn un esquema establecido, se asignan los direccin de 48 (o menos) bloques de memoria a las mx. 12 lneas de comunicacin. Esta la lista de funcin es especialmente conveniente si las CPUs intercambian volmenes de asignaciones datos distintos. Cantidad de CPUs 2 3 4 0; 1; 5 a 255 No es necesario ni conveniente asignar bloques de memoria a las CPUs que no intervengan en la comunicacin en multiprocesamiento. Con los parmetros identificacin de mdulo, nmero de mdulo Cantidad de lneas de comunicacin 2 6 12 Y direccin inicial de la lista de asignaciones Bloques de memoria por lnea de comunicacin 24 8 4 se determina dnde se registra la lista de asignaciones. No vlido, conduce a conflicto de inicializacin Identificacin de Identificacin = 1: Mdulo de datos DB mdulo Identificacin = 2: Mdulo de datos DX Identificacin = de O 3 a 255 : No vlida, conduce a un conflicto de inicializacin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Nmero de Como nmero de mdulo se debe indicar el nmero del mdulo de datos DB o mdulo DX, en el que se encuentra la lista de asignaciones. Direccin inicial Esta determina, junto con la identificacin y el nmero de mdulo, la zona (ms de la lista de exactamente: la direccin inicial de la zona) del mdulo de datos, en el que est asignaciones depositada la lista de asignaciones. Indquese 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. Lista de Con la lista de asignaciones se determina cuntos de los 48 bloques de memoria asignaciones existentes deben ser asignados a las distintas lneas de comunicacin. El programa de sistema no modifica la lista. Su estructura es la siguiente: Tabla 10-7 Lista de asignaciones para el OB 200 (inicializar) En vez de las letras minsculas de "a" hasta "m" (aqu en negrita) se deben poner nmeros entre O y 48 de acuerdo con los bloques de memoria asignados; su suma no deber superar el valor 48. Nota La estructura representada en la tabla 10-7 tiene que respetarse aunque estn enchufadas menos de cuatro CPUs. Palabra de datos DW n t O DW n t 1 DW n t 2 DW n t 3 DW n t 4 DW n t 5 DW n t 6 DW n t 7 DW n t 8 DW n t 9 DW n t 10 DW n t 11 DW n t 12 DW n t 13 DW n t 14 DW n t 15 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Formato KC KY KY KY KC KY KY KY KC KY KY KY KC KY KY KY Valor S 1 2 , a 3 , b 4 , c S2 l , d 3 , e 4 , f S3 l , g 2 , h 4 , i S4 l , k 2 , 1 3 , m Significado Emisor = CPU 1 Receptor = CPU 2 Receptor = CPU 3 Receptor = CPU 4 Emisor = CPU 2 Receptor = CPU 1 Receptor = CPU 3 Receptor = CPU 4 Emisor = CPU 3 Receptor = CPU 1 Receptor = CPU 2 Receptor = CPU 4 Emisor = CPU 4 Receptor = CPU 1 Receptor = CPU 2 Receptor = CPU 3 Modo multiprocesador y comunicacin en multiprocesamiento Ejemplo pocos dat os a l a CPU 2 como acuse de r eci bo, en un t r f i c o l gi co de acuses. Ent r e l a s CPU 1 y CPU 3 no s e r equi er e ningin i nt ercambi o de dat os. La l i s t a de asi gnaci ones s e deposi t a en e l mdulo de dat os DB 40, a p a r t i r de l a DW O y t i e n e l o s s i gui ent es parmetros: DB 40 FD: CPU928ST.S5D CPU 2/2 bl oques CPU 3/ningin bloque CPU 4 (no exi st e) / ni ngi n bloque CPU 1/22 bl oques CPU 3/22 bl oques CPU 4 (no exi st e) / ni ngi n bloque CPU l/ningin bloque CPU 2/2 bl oques CPU 4 (no exi st e) / ni ngi n bloque CPU 4 (no e xi s t e ) CPU l/ningin bloque CPU 2/ningin bloque CPU 3/ningin bloque Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.4.4 Parmetros de salida Byte indicador Este byte indica si la funcin INICIALIZAR ha sido procesada correcta y completamente. Conflicto de La funcin detecta e indica los conflictos de inicializacin representados segn el inicializacin orden ascendente de sus nmeros. Cuando se produce un conflicto de inicializacin es necesario modificar la programacin/parametrizacin. En el byte indicador pueden aparecer todos los nmeros repesentados en la tabla siguiente. Tabla 10-7 Byte indicador: nmeros de advertencia Errores Byte ind. 33 34 35 36 37 38 39 40 41 42 En la funcin INICIALIZAR no puede aparecer un indicador del grupo de nmeros "error". Significado Las pginas necesarias para la comunicacin en multiprocesamiento (nQ 252 a 255) no existen o no estn completas. Las pginas necesarias para la comunicacin en multiprocesamiento (nQ 252 a 255) son defectuosas. El parmetro "automtico/manual" no es vlido. Hay que diferenciar los casos siguientes: - 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 casos siguientes: - 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 del mdulo es menor que 1, - la identificacin del 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 identific. de mdulo = 1 : DB O, DB 1 , DB 2 - en caso de identific. de mdulo = 2 : DX O, DX 1, DX 2 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. 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento Advertencia En la funcin INICIALIZAR no puede aparecer un indicador del grupo de nmeros "advertencia". Capacidad total Este parmetro indica cuntos de los 48 bloques de memoria disponibles 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, lo que significa que la capacidad de memoria no es aprovechada en su totalidad. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.5 Funcin EMITIR (OB 202) 10.5.1 Funcin La funcin EMlTIR transfiere un bloque de datos a la memoria intermedia del coordinador KOR 923C. Adicionalmente indica cuntos bloques de datos an pueden ser emitidos y almacenados de forma intermedia. 10.5.2 Parmetros de llamada Estructura del Antes de llamar al OB 202 se tienen que poner a disposicin los parmetros de campo de datos entrada en el campo de datos. El OB 202 requiere en el campo de datos 6 bytes de (de parmetros) marcas M para los parmetros de entrada y de salida: MBx+O: CPU receptora Parmetro de entrada MB x + l : Identificacin de mdulo Parmetro de entrada MB x + 2: Nmero de mdulo Parmetro de entrada MBx +3 : Nmero de bloque Parmetro de entrada MBx +4 : Byte indicador Parmetro de salida MBx +5 : Capacidad de emisin Parmetro de salida Al llamar al OB 202 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parmetros: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.5.3 Parmetros de entrada CPU receptora Nmero de la CPU receptora (destino); el valor admisible se encuentra entre 1 y 4, pero no debe ser igual a su "propio" nmero. Identificacin Identificacin = 1: Mdulo de datos DB de mdulo Identificacin = 2: Mdulo de datos DX Identificacin = O o de 3 a 255: No vlido, conduce a un aviso de error Nmero de El nmero de mdulo, junto con la identificacin de mdulo y el nmero de mdulo 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 se debe tener en cuenta que determinados mdulos de datos tienen un significado especial, por ejemplo: DB O, DB 1 o DX O (vanse las instrucciones de programacin de las correspondientes CPUs). Estos mdulos de datos no deben ser utilizados para la tranferencia de datos aqu descrita! En caso de utilizar estos nmeros de mdulo se aborta la funcin, dando el correspondiente aviso de error. Nmero de bloque El nmero de bloque identifica la zona de datos fuente. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Nmero de bloque O 1 2 3 4 5 6 7 8 9 Zona de datos Primera palabra de datos DW O DW 32 DW 64 DW 96 DW 128 DW 160 DW 192 DW 224 DW 256 DW 288 Ultima palabra de datos DW 31 DW 63 DW 95 DW 127 DW 159 DW 191 DW 223 DW 255 DW 287 DW 319 Modo multi~rocesador v comunicacin en multi~rocesamiento Ejemplo 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 de acuerdo con la tabla expuesta. El DB es demasiado corto: Si el final del mdulo de datos se encuentra dentro del bloque parametrizado, se transfiere una zona de una longitud entre 1 y 31 pala- bras en el ltimo bloque. El bloque se encuentra fuera del DB: Si la primera direccin de palabra de datos averiguada de un bloque se encuentra fuera de la longitud del mdulo, la funcin EMITIR detecta e indica un error. palabras constituyen la cabeza del mdulo. primera pal. ltima pal. de datos: mayor Parametrizacin errnea Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.5.4 Parmetros de salida Byte de salida Este byte indica si la funcin EMITIR ha sido procesada completa y correctamente. Conflicto de No es significativo en relacin con la funcin EMITIR. inicializacin Errores Al llamar a la funcin EMITIR pueden aparecer los siguientes nmeros de error (evaluacin global del byte indicador): Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Byte indicador 65 67 68 69 70 71 72 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 sido finalizada con un conflicto de inicializacin. - Llamada doble: la llamada a la funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cclico de programa). - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXIONJCONEXION, 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 KOR 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 identific. de mdulo = 1 : DB O, DB 1, DB 2 - en caso de identific. de mdulo = 2 : DX O, DX 1, DX 2 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 elevado. Modo multi~rocesador v comunicacin en multi~rocesamiento Advertencia La funcin no ha podido ser ejecutada; hay que repetir la llamada, por ejemplo en el ciclo siguiente. Puede aparecer el siguiente nmero de advertencia (evaluacin global del byte indicador): Capacidad de El parmetro "capacidad de emisin" indica cuntos bloques de datos pueden ser emisin emitidos y almacenados de forma intermedia. Byte indicador 129 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Significado La funcin EMITIR no puede transferir datos, ya que la capacidad de emisin (vase abajo) era igual a cero durante la llamada a la funcin. Modo multi~rocesador v comunicacin en multi~rocesamiento 10.6 Funcin TEST DE EMlSlON (OB 203) 10.6.1 Funcin La funcin TEST DE EMISION averigua la cantidad de bloques de memoria libres en la memoria intermedia del coordinador KOR 923C. De acuerdo con este valor m, la funcin EMITIR puede ser llamada m veces para tranferir m bloques de datos. 10.6.2 Parmetros de llamada Estructura del Antes de llamar al OB 203 se tienen que poner a disposicin los parmetros de campo de datos entrada en el campo de datos . El OB 203 requiere en el campo de datos 4 bytes de (de parmetros) marcas M para los parmetros de entrada y de salida: MBx+O: CPU receptora Parmetro de entrada MB x + l : - no ocupado MB x + 2: Byte indicador Parmetro de salida MBx +3 : Capacidad de emisin Parmetro de salida Al llamar al OB 203 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parmetros: 10.6.3 Parmetros de entrada CPU receptora El nmero de la CPU "propia", as como el nmero de la CPU receptora caracterizan la lnea de comunicacin, de la cual se va a averiguar la capacidad de emisin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.6.4 Parmetros de salida Byte indicador Este byte indica si la funcin TEST DE EMISION ha sido ejecutada completa y correctamente. Conflicto de No es significativo en relacin con la funcin TEST DE EMISION. inicializacin Errores Al llamar a la funcin TEST DE EMISION pueden aparecer los si- guientes nmeros de error (evaluacin global del byte indicador): Advertencia Byte indicador 65 67 68 En la funcin TEST DE EMISION no puede aparecer un indicador del grupo de nmeros "advertencia". 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 sido finalizada con un conflicto de inicializacin. - Llamada doble: la llamada a la funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cclico de programa). - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXIONJCONEXION, 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 KOR 923 C. Capacidad de El parmetro "capacidad de emisin" indica cuntos bloques de datos pueden ser emisin emitidos y almacenados de forma intermedia. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.7 Funcin RECIBIR (OB 204) 10.7.1 Funcin La funcin RECIBIR acepta un bloque de datos de la memoria intermedia del coordinador KOR 923C. Adicionalmente indica cuntos bloques de datos estn almacenados de forma intermedia y an pueden ser recibidos. La funcin RECIBIR debe ser llamada en un bucle tantas veces como sea necesario, hasta que hayan sido recibidos todos los bloques de datos almacenados de forma intermedia. 10.7.2 Parmetros de llamada Estructura del Antes de llamar al OB 204 se tienen que poner a disposicin los parmetros de campo de datos entrada en el campo de datos. El OB 204 requiere en el campo de datos 10 bytes (de parmetros) de marcas M para los parmetros de entrada y de salida: MBx+O: CPU emisora MB x + l : - Parmetro de entrada no ocupado MB x + 2: Byte indicador Parmetro de salida MBx +3 : Capacidad de recepcin Parmetro de salida MBx +4 : Identificacin de mdulo Parmetro de salida MBx +5 : Nmero de mdulo Parmetro de salida Direccin de la primera Parmetro de salida MBx +7 : MBx +6 : H palabra de datos recibida Parmetro de salida Direccin de la ltima Parmetro de salida MB x + 9: H palabra de datos recibida Al llamar al OB 204 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parmetros: 10.7.3 Parmetros de entrada CPU emisora El mdulo de recepcin recibe datos suministrados por la CPU emisora. Hay que indicar el n u e la CPU emisora. El valor admisible se encuentra entre 1 y 4, pero tiene que ser diferente al nmero "propio". Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.7.4 Parmetros de salida Byte indicador Este byte indica si la funcin RECIBIR ha sido ejecutada correcta y completamente. Conflicto de No es significativo en relacin con la funcin RECIBIR. inicializacin Errores Al llamar a la funcin RECIBIR pueden aparecer los siguientes nmeros de error (evaluacin global del byte indicador): Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Byte indicador 66 67 68 69 70 71 73 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 INICIALIZAR no ha sido llamada o ha sido finalizada con un conflicto de inicializacin. - Llamada doble: la llamada a la funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cclico de programa). - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXIONJCONEXION, 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 seleccionados son errneos; con la funcin INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador KOR 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. El nmero de mdulo suministrado por el emisor no es vlido, ya que se trata de un mdulo de datos de significa-do especial. Hay que diferenciar los casos siguientes: - en caso de identific. de mdulo = 1 : DB O, DB 1, DB 2 - en caso de identific. de mdulo = 2 : DX O, DX 1, DX 2 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. Modo multi~rocesador v comunicacin en multi~rocesamiento Advertencia La funcin no ha podido ser ejecutada; hay que repetir la llamada a la funcin, por ejemplo en el ciclo siguiente. Puede aparecer el siguiente nmero de advertencia (evaluacin global del byte indicador): Capacidad de El parmetro "capacidad de recepcin" indica cuntos bloques de datos an estn recepcin almacenados de forma intermedia y pueden ser recibidos. Byte indicador 130 Identificacin de Identificacin = 1: Mdulo de datos DB mdulo: Identificacin = 2: Mdulo de datos DX Identificacin = O o de 3 a 255: No vlido, conduce a un aviso de error Significado La funcin RECIBIR no puede recibir datos, ya que la capacidad de recepcin durante la llamada a la funcin era igual a cero. Nmero de mdulo Nmero de mdulo del DBPX en el que han sido recibidos y depositados los datos (y del cual han sido recogidos en la CPU emisora con la funcin EMITIR). Cabe observar que los mdulos de datos de recepcin deben encontrarse en una memoria de escrituraPectura (RAM); la utilizacin de memorias de slo lectura (EPROM) nicamente es conveniente en caso de mdulos de datos de emisin. Direccin de la Nmero de la palabra de datos dentro del DBIDX en el que ha sido depositada la primera palabra primera palabra de datos emitidalrecibida. de datos recibida Direccin de la Nmero de la palabra de datos dentro del DBIDX en el que ha sido depositada la ltima palabra de ltima palabra de datos emitidalrecibida. datos recibida Nota La diferencia entre las direcciones de la primera y ltima palabra de datos transmitida se remonta mximo a 31, ya que por cada llamada a la funcin se transmiten como mximo 32 palabras. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.8 Funcin TEST DE RECEPCION (OB 205) 10.8.1 Funcin La funcin TEST DE RECEPCION determina la cantidad de bloques ocupados en la memoria intermedia del coordinador KOR 923C. Segn esta cantidad m, la funcin RECIBIR puede ser llamada m veces para recibir m bloques de datos. 10.8.2 Parmetros de llamada Estructura del Antes de llamar al OB 205 se tienen que poner a disposicin los parmetros de campo de datos entrada en el campo de datos . El OB 205 requiere en el campo de datos 4 bytes de (de parmetros) marcas M para los parmetros de entrada y de salida: MBx+O: CPU emisora MB x + l : - Parmetro de entrada no ocupado MB x + 2: Byte indicador Parmetro de salida MBx +3 : Capacidad de recepcin Parmetro de salida Al llamar al OB 205 se debe transferir al AKKU-1-L el n q e byte de marcas, con el que comienza el campo de datos de parmetros: 10.8.3 Parmetros de entrada CPU emisora El nmero de la CPU "propia" as como el nmero de la CPU emisora, caracterizan la lnea de comunicacin de la cual se est averiguando la capacidad de recepcin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 10.8.4 Parmetros de salida Byte indicador Este byte indica si la funcin TEST DE RECEPCION ha sido ejecutada por completo y sin errores. Conflicto de No es significativo en relacin con la funcin TEST DE RECEPCION. inicializacin Errores Al llamar a la funcin TEST DE RECEPCION pueden aparecer los si- guiente nmeros de error (evaluacin global del byte indicador): Advertencia Byte indicador 66 67 68 Capacidad de recepcin 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 INICIALIZAR no ha sido llamada o ha sido finalizada con un conflicto de inicializacin. - Llamada doble: la llamada a la funcin EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION no es vlida, puesto que en esta CPU ya se ha llamado a una de las funciones INICIALIZAR, EMITIR, TEST DE EMISION, RECIBIR o TEST DE RECEPCION, en un nivel de programa subordinado (por ej. procesamiento cclico de programa). - El nmero "propio" de la CPU es errneo (datos de sistema destruidos); despus de DESCONEXIONJCONEXION, 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 seleccionados son errneos; con la funcin INICIALIZAR se instala nuevamente la memoria intermedia en el coordinador KOR 923 C. En la funcin TEST DE RECEPCION no puede aparecer un indicador del grupo de nmeros "advertencia". El parmetro "capacidad de recepcin" indica cuntos bloques de datos estn almacenados de forma intermedia y pueden ser recibidos. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multi~rocesador v comunicacin en multi~rocesamiento 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 simultneamente se estn procesando alarmas (por ej. mediante el OB 2) hay que salvar las "marcas de trabajo" al principio del tratamiento de una interrupcin y volver a escribirlas posteriormente. 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 a 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 a discrecin 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, no obstante, y debido a la falta de parmetros formales, tambin resulta ms difcil de leer. 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. NVe FB FB 200 FB 202 FB 203 FB 204 FB 205 El significado exacto de los parmetros de entrada y salida se encuentra en la descripcin del mdulo de organizacin de funciones especiales utilizado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Nombre de FB INITIAL SENDEN SEND-TST EMPFANG EMPF-TST Funcin Prefijar Emitir un bloque de datos Comprobar posibilidad de emisin Recibir un bloque de datos Comprobar posibilidad de recepcin Modo multiprocesador y comunicacin en multiprocesamiento Nota Los siguientes ejemplos son aplicaciones acabadas que el usuario puede transcribir directamente a su propio programa. Programacin de los mdulos de funciones FB 200 INITIAL (1) - AUMA INIK - (2) - ANZC GKAP - (4) - ANFZ 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 Conflicto de inicializacin Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento SEGMENTO 1 NOMB. : INITIAL BE2 :AUMA E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :ANZC E/A/D/B/T/Z: E BI/BY/W/D: BY BE2 :TNZU E/A/D/B/T/Z: E BI/BY/W/D: W BE2 :ANFZ E/A/D/B/T/Z: E BI/BY/W/D: W BE2 :INIK E/A/D/B/T/Z: A BI/BY/W/D: BY BE2 :GKAP E/A/D/B/T/Z: A BI/BY/W/D: BY Automtico/manual Cantidad de CPUs Tipo DB, NQ DB Direccin inicial de la lista de asignaciones OB de funciones especiales: :SPA OB 200 "Inicializar" Conflicto de inicializacin Capacidad total Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento FB 2 0 2 SENDEN (1) - ECPU FEWA ( 2 ) TNDB SKAP ( 3 ) BLNR Tipo (byte alto) y nmero (byte bajo) del mdulo de datos fuente Nmero de bloque Errorladvertencia Capacidad de emisin LON=40 SEGMENTO 1 NOMB . : SENDEN BEZ :ECPU E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BEZ : TNDB E/ A/ D/ B/ T/ Z : E BI/BY/W/D: w BEZ :BLNR E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BEZ :FEWA E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BEZ : SKAP E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY CPU receptora T i p o DB, NQ DB Nme r o de bloque OB de funci ones especiales: :SPA OB 202 " Emi t i r un bl oque de da t os " E r r o r / a d v e r t e n c i a C a p a c i d a d de e m i s i n Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento FB 203 SEND-TST (1) ECPU FEHL SKAP (3) Capacidad de emisin LON=30 SEGMENTO 1 NOMB . : SEND-TST BEZ :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY BEZ :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY BEZ : SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY CPU receptora OB de funciones especiales: :SPA OB 203 "Comprobar posibilidad de emisin" Capacidad de emisin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento FB 204 EMPFANG ( 1) SCPU FEWA - EKAP ( 3 ) TNDB - ANFA - ENDA - Clase Tipo CPU emisora Errorladvertencia 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) Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento SEGMENTO 1 NOMB . : EMPFANG BEZ :SCPU E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BEZ :FEWA E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BEZ :EKAP E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BEZ : TNDB E/ A/ D/ B/ T/ Z : A BI/BY/W/D: W BEZ :=FA E/ A/ D/ B/ T/ Z: A BI/BY/W/D: W BEZ :ENDA E/ A/ D/ B/ T/ Z: A BI/BY/W/D: W CPU e m i s o r a OB de f u n c i i o n e s especiales: :SPA OB 204 " R e c i b i r un bloque de datos" E r r o r / a d v e r t e n c i a C a p a c i d a d de r e c e p c i n T i p o DB, NQ DB D i r e c c i n i n i c i a l D i r e c c i n f i n a l Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento FB 2 0 5 EMPF-TST ( 1 ) SCPU FEHL - EKAP ( 3 ) Clase Tipo CPU emisora Capacidad de recepcin LON=30 SEGMENTO 1 NOMB . : EMPF-TST BEZ :SCPU E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BEZ :FEHL E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BEZ : EKAP E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY CPU e mi s o r a OB d e funciones especiales: : SPA OB 205 " Co mp r o b a r posi bi l i dad de r e c e p c i n " E r r o r Ca p a c i d a d d e recepcin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento 10.9.2 Transferencia de mdulos de datos Con el mdulo de funciones UEBT-DAT (FB 110) se transfiere en el ejemplo una cantidad parametrizable de bloques de datos desde un mdulo de datos de una CPU a un mdulo de datos del mismo tipo y mismo nmero de otra CPU. El nmero FB (FB 110) es arbitrario y puede ser modificado. En primer lugar se describe cmo programar el FB 110 y despus su aplicacin. Programacin del FB 110 La zona de datos a transferir se determina mediante los parmetros de entrada ERSB ( = nmero del primer bloque de datos a tranferir) y ANZB (= cantidad de bloques de datos a transferir). Un bloque de datos normalmente est formado por 32 palabras. Segn la longitud del mdulo de datos, se transfieren menos de 32 palabras en el ltimo bloque de datos. La transferencia se inicia con un flanco positivo en la entrada STAR. Si luego el parmetro de salida REST es igual a cero, esto significa que el mdulo de funciones UEBT-DAT ha podido emitir todos los bloques de datos (segn parmetro ANZB). Si el parmetro de salida REST contiene un valor mayor que cero, hay que ejecutar, por ejemplo en el ciclo siguiente, llamadas consecutivas. En este caso, la totalidad del lote de parmetros (es decir, los valores de todos los parmetros) deber ser modificada por el (programa de) usuario slo cuando el parmetro de salida REST haya alcanzado el valor cero, es decir, cuando haya finalizado la transferencia. Es posible llamar repetidamente al mdulo de funciones UEBT DAT utilizando cada vez lotes de parmetros distintos. En este caso se transfieren simultneamente diferentes zonas de datos ("intercaladas entre s"). Adems se pueden utilizar "directamente" los mdulos de organizacin de funciones especiales para la cmunicacin en multiprocesamiento, OB 202 a OB 205. En el ejemplo de aplicacin se ha hecho uso de esta posibilidad. Si en el mdulo de funciones UEBT-DAT no se ha podido procesar correctamente la funcin EMITIR (OB 202), se transfiere el correspondiente nmero de error al parmetro de salida FEHL, el VKE = '1' y el parmetro de salida REST = 'O'. El mdulo de funciones UEBT-DAT utiliza los bytes de marcas MB 246 a MB 251 como marcas de trabajo. Todas las dems variables cuyo valor contina siendo significativo hasta que, tras mltiple ejecucin del mdulo de funciones UEBT-DAT el parmetro de salida REST = 'O', obtienen la asignacin de espacios de memoria mediante el mecanismo de los parmetros formales/actuales. Este procedimiento es necesario para poder transferir simultneamente mdulos de datos distintos. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento R e a l i z a c i n FB 110 UEBT-DAT (1) - STAR FEHL - ( 6) REST - - ( 7 ) ( 3) T N D B AKBN - ( 4 ) - ANZB FLAM - ( 9) ( 5) ERSB Significado Iniciar transferencia del mdulo de datos despus del flanco positivo E CPU receptora Tipo (byte alto) y nmero (byte bajo) del mdulo de datos a transfenr Cantidad de bloques de datos a transferir Nmero del primer bloque de datos a transfenr Cantidad de bloques de datos que quedan por transferir Nmero actual de bloque AKBN ') Marca de flanco l) Marcas intermedias internas, no estn previstas para su evaluacin. SEGMENTO 1 NOMB . : UEBT-DAT BE2 :STAR E/ A/ D/ B/ T/ Z: E BI/BY/W/D: B I BE2 :ECPU E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BE2 :TNDB E/ A/ D/ B/ T/ Z: E BI/BY/W/D: W BE2 :ANZB E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BE2 :ERSB E/ A/ D/ B/ T/ Z: E BI/BY/W/D: BY BE2 :FEHL E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BE2 :REST E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BE2 :AKBN E/ A/ D/ B/ T/ Z: A BI/BY/W/D: BY BE2 :FLAM E/ A/ D/ B/ T/ Z: A BI/BY/W/D: B I Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Prefijar campo de parmetros para OB 202 Emitir primeramente los bloques de datos eventualmente existentes :SPB =UEBT :UN =STAR :RB =FLAM :ON =STAR :SPB =OUT Inicializar las marcas globales tras un flanco positivo en la entrada START Mientras REST sea ><O, 0038 SCHL:L seguir intentando emitir bloques de datos :SPB =OUT 003B UEBT:L =AKBN OB de funciones especiales: :SPA OB 202 "Emitir un bloque de datos" :SPM =FEHL Abortar en caso de error :SPP =OUT Abortar si cap. de emisin = O Incrementar nmero de bloque Decrementar cantidad de bloques restantes :SPA =SCHL 004A OUT :U :UN M 0.0 0050 FEHL :T =FEHL Fin de programa en caso de error: VKE = 1, FEHL contiene nmero de error Flanco positivo en la entrada START? Fin regular del programa: VKE = O, FEHL = O Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Aplicacin del FB 110 En el programa de usuario ciclico, la CPU 1 ha de transmitir los mdulos de datos DB 3 (bloques de datos 2 a 5) y DB 4 (bloques de datos 1 a 3) a la CPU 2. En la CPU 2 tambin se ha de llamar en el programa de usuario ciclico la funcin RECIBIR (OB 04) . llamada en: llamada en: Inicializar (OB 200) OB 20 Organizacin de emisin (FB 1) Organizacin de recep. (FB 2) - existente: DB de emisin DB 3; DB 4 El programa de usuario que se encuentra en el mdulo de funciones FB 1 de la C W 1, contiene dos veces la llamada al mdulo de funciones UEBT-DAT, con dos lotes 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. SEGMENTO 1 NOMB.:S-ORO emitir a la CPU 2 .. .. del mdulo de datos DB 3 .. cuatro bloques de datos .. a partir del bloque de datos 2 Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento :SPA FB 110 OOOA NOMB.:UEBT-DAT OOOB STAR : E 2.0 OOOC ECPU : OOOD TNDB : OOOE ANZB : OOOF ERSB : O010 FEHL : O011 REST : 0012 AKBN : 0013 FLAM : M 8.0 :SPB =HALT Abortar despus de error emitir a la CPU 2 .. .. del mdulo de datos DB 4 .. tres bloques de datos .. a partir de bloque de datos 1 :SPA FB 110 0023 NOMB.:UEBT-DAT 0024 STAR : E 2.1 0025 ECPU : MB 10 0026 TNDB : MW 11 0027 ANZB : MB 13 0028 ERSB : MB 14 0029 FEHL : 002A REST : 002B AKBN : 002C FLAM : M 8.1 :SPB =HALT Abortar despus de error 0032 HALT : Aqui se efectda el tratamiento de errores (por ej. stop, salida de avisos por la impresora, ...) Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento En la CPU 2, la funcin RECIBIR (OB 204) llamada por el FB 2 transfiere cada bloque de datos emitido al correspondiente mdulo de datos. La recepcin de todos los mdulos de datos puede repartirse entre varios ciclos. SEGMENTO 1 NOMB.:E-ORO :L K B 1 Recibir datos de la CPU 1 :T MB 246 0003 SCHL :L KB 246 OB de funciones especiales: : SPAOB 204 "Recibir" :SPM =FEHL Abortar en caso de error :L MB 249 La funcin "recibir" :L K B O se llama hasta que la memoria intermedia :SPB =SCHL no contenga ms bloques de datos, es decir, la capacidad de recepcin = 0. OOOC FEHL : Aqui se efectda el tratamiento de errores (por ej. stop, salida de avisos por impresora, ...) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento 10.9.3 Ampliacin de la zona de marcas de acoplamiento Tarea Solucin En el autmata programable S5-135U/155U, cada uno de los 256 bytes de marcas puede convertirse en una marca de acoplamiento de entradalsalida registrndolo en el mdulo de datos DB 1. De este modo queda reducida no obstante, la cantidad de bytes de marcas que pueden ser utilizados "normalmente". Adems, para la transferencia de un lote de datos (varios bytes) se requieren medidas adicionales (variable de semforo o parametrizacin del DX O "transferencia de marcas de acoplamiento en bloque") para evitar que el receptor evale un lote de datos transmitido slo parcialmente. Las palabras correlativas de un mdulo de datos DB o DX, a partir de la DW O, 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 se reciben las palabras de datos de acoplamiento por medio 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 se emiten al final del ciclo mediante los mdulos de organizacin de funciones especiales para la comunicacin en multiprocesamiento. De este modo, pueden ser recibidos por las dems CPUs al comienzo del ciclo. Para cada una de las mx. 12 lneas de comunicacin posibles e independientemente de las dems vale: la CPU emisora slo entra en actividad cuando la CPU receptora ha retirado todos los datos "antiguos" de la memoria intermedia del KOR 923C. la CPU receptora slo entra en actividad cuando la CPU emisora ha depositado todos los datos "nuevos" en la memoria intermedia del KOR 923C. As pues, la CPU receptora dispone de un lote de datos completamente nuevo o bien el lote de datos antiguos permanece inalterado: ;los datos "antiguos" y los "nuevos " no se mezclan! Estructura de los La lista de comunicaciones describe qu palabras de datos (denominadas en lo datos sucesivo zona de palabras de datos) deben transferirse de qu CPU a qu CPU (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 que intervengan en el proceso. Las zonas de palabras de datos siempre comienzan a partir de la palabra de datos DW O; su longitud se indica en bloques. Cabe observar lo siguiente: Un bloque completo consta de 32 palabras de datos. Si el ltimo bloque de un 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento 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 una longitud mayor que la zona de datos recibida, las palabras de datos sobrantes pueden ser utilizadas en la CPU correspondiente. Estructura de la lista de comunicaciones Tabla 10-8 Lista de comunicaciones para la ampliacin de la zona de marcas de acoplamiento l) Vase ejemplo en la pgina siguiente ... CPU 3 ... CPU 4 deCPU3 a ... ... CPU 1 ... CPU 2 ... CPU 4 deCPU4 a ... ... CPU 1 ... CPU 2 ... CPU 3 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 DW6 DW7 DW8 DW9 DW 10 DW 11 DW 12 DW 13 DW 14 DW 15 2 l5 2 O 1 l) ... 2 l5 2 O 10 l) ... DW 22 DW 23 S 3 DW 24 DW 25 DW 26 DW 27 DW 28 DW 29 DW 30 DW 31 ... ... ... 3 4 ... ... ... 2 l) ... S 3 1 2 4 S 4 ... ... ... ... ... ... ... ... ... S 4 1 2 3 ... ... ... Modo multiprocesador y comunicacin en multiprocesamiento La lista de comunicaciones consta de dos listas parciales de estructura similar: 16 palabras de datos cada una. Partiendo de cada una de las cuatro CPUs emisoras (SI, S2, S3, S4), para la 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 definen por la cantidad de bloques = O; 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 del mdulo de datos que contiene la zona de palabras de datos a transferir. Estas entradas pueden ser leidas 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 ... ... a CPU 3 2 bloques de datos del DB 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 O a 15, y la lista parcial 2 tiene que ocupar las palabras de datos 16 a 31. Las entradas destacadas en negrita no deben ser modificadas. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Estructura programa del 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 esta lnea. Para la emisin y recepcin de zonas de palabras de datos, en cada CPU se reservan dos mdulos de funciones: Los nmeros FB son arbitrarios y pueden ser modificados. NQ FB FB 100 FB 101 Los mdulos de funciones SEND-DAT y EMPF-DAT leen en la lista de comunicaciones qu zonas de palabras de datos de qu mdulos de datos deben ser emitidas o recibidas. Siempre se emite o recibe la zona de datos completa. En caso de que no se puedan efectuar estas operaciones por falta de capacidad de emisin o recepcin, se prescinde de la emisin o recepcin. Nota Este ejemplo (ampliacin de las marcas de acomplamiento mediante los mdulos de funciones SEND-DAT y EMPF-DAT) solamente se ejecutar correctamente si en ninguna de las CPUs se llamen adicionalmente a los mdulos de organizacin de funciones especiales para la comunicacin en multiprocesamiento OB 202 a OB 205. Nombre SEND-DAT EMPF-DAT 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! Funcin Emisin de zonas de palabras de datos a las dems CPUs Recepcin de zonas de palabras de datos de las dems CPUs Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento OB de nuevo ar r anque par a ocupar por def ect o l a memor i a i nt er medi a en el coordi nador KOR 923C Pr ogr ama de usuari o c cl i co ampl i ado con l a l l amada a l os mdul os de f unci ones EMPF-DAT y SEND-DAT SPA FB 101 SPA FB 100 BE 1) El OB 200 sl o puede ser l l amado en una CPU. FB 100 Mdul o de f unci ones: SEND-DAT Emi t i r mdul os de dat os Mdul o de f unci ones: EMPF-DAT Reci bi r mdul os de dat os Mdul o de dat os que cont i ene l a l i st a de comuni caci ones Mxi mo t r es mdul os de ent r ada y t r es de sal i da Fig. 10-6 Esquema de los mdulos necesarios DB xxx E a - J l uado por . . . Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Programacin de los mdulos de funciones Antes de llamar al FB 100 tiene que abrirse el mdulo de datos que contiene la lista de comunicaciones. El mdulo de funciones SEND-DAT requiere para evaluar las informaciones contenidas en la lista de comunicaciones, el nmero de la CPU desde la que ha sido llamado. Si dentro de un mdulo de funciones no ha podido ser ejecutada correctamente la funcin EMITIR (OB 202), el nmero de error o de advertencia correspondiente se transfiere al parmetro de salida FEWA y el VKE se de CPU), FEWA contiene el valor 16 (bit nQ 4 = 1). El mdulo de funciones SEND-DAT utiliza los bytes de marcas MB 239 a MB 251 como marcas de trabajo. FB 100 SEND-DAT Significado Nmero de la CPU en la que se llama al FB 100. Son vlidos los nmeros 1 a 4. FEWA Errorladvertencia (vase funcin EMiTIR / OB 202) LON=90 SEGMENTO 1 NOMB . : SEND-DAT BEZ : CPUN E/A/D/B/T/Z : D KM/KH/KY/KC/KF/KT/KZ/KG:KF BEZ : FEWA E/A/D/B/T/Z : A BI/BY/W/D: :LW =CPUN CPUN = CPUN - 1 Error en caso: :SPM =FEWA NQ CPU <1 :SPB =FEWA NQ CPU >4 Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento CPUN = CPUN * 4 Direccin base Contador de cmunicaciones OOlA SCHL:L MB 245 Direccin base + contador :ADD BF+16 + offset Cantidad de bloques reservados = O ? :SPB =LEER NQ de la CPU receptora OB de funciones especiales: :SPA OB 203 "Comprobar posibilidad de emisi6nt Aborto en caso de error :SPB =OBFE Capacidad de emisin >< cantidad de bloques reservados? :SPB =LEER Contador de bloques Tipo y nmero del DB fuente 003C UEBT:L KB 246 OB de funciones especiales: :SPA OB 202 Emitir un bloque de datos Aborto en caso de :SPB =OBFE error/advertencia NQ de bloque = NQ de bloque + 1 Transferir todos los bloques? :SPB =UEBT Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento 0048 LEER :L ME 244 Incrementar contador de cmunicaciones Se han procesado todas las lneas de cmunicacin? :SPM =SCHL Fin regular de programa: VKE = O, FEWA = O 0052 FEWA :L Fin de programa en caso de error: 0053 OBFE :T =FEWA VKE = 1, FEWA contiene nmero de error/advertencia Antes de llamar al FB 101 tiene que abrirse el mdulo de datos que contiene la lista de comunicaciones. El mdulo de funciones EMPF-DAT requiere el nmero de la CPU en la que ha sido llamado para evaluar las informaciones contenidas en las lista de cmunicaciones. Si dentro de un mdulo de funciones no ha podido ser ejecutada correctamente la funcin RECIBIR (OB 204), se transfiere el nmero de error o de advertencia correspondiente al parmetro de salida FEWA y el VKE se pone a 1. Adems, si el parmetro de entrada CPUN no es vlido, FEWA recibe el valor 16 (bit nQ 4 = 1). El mdulo de funciones EMPF-DAT utiliza los bytes de marcas ME 242 a MB 255 como marcas de trabajo. FB 101 EMPF-DAT Significado Nmero de la CPU en la que se llama al FB 101. Son vlidos los nmeros 1 a 4. FEWA Errorladvertencia (vese funcin RECIBIR / OB 204) Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento LON=88 SEGMENTO 1 N-. : EMPF-DAT BEZ :CPUN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG:KF BEZ :FEWA E/A/D/B/T/Z: A BI/BY/W/D: :LW =CPUN E r r o r si : :SPB =FEWA NQ CPU < 1 :LW =CPUN :SPB =FEWA NQ CPU >4 C o n t a d o r de cmuni caci ones Indicador s e a l a l i s t a parcial 2 OOlA BUSC:L MW 244 R a s t r e a r l a l i s t a parcial 2 hasta encont r ar l a s i gui ent e ent r ada para l a CPU receptora con e l n me r o ' CPUNr. :LW =CPUN :SPB =BUSC :SPB =LEER D e f i n i r e l nQ de l a CPU KM 00000000 00001100 e m i s o r a del i ndi cador a l a l i s t a parcial 2. OB de funci ones especiales: : SPA OB 205 " Co mp r o b a r posi bi l i dad de recepcin" :SPB = OBFE A b o r t o en caso de error Cont i na en l a pgi na s i g u i e n t e C a n t i d a d de bloques de me mo r i a reservados = O ? Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Capacidad de recepcin = cantidad de bloques de memoria reservados? :SPB =LEER 003C EMPF:L KB 246 OB de funciones especiales: :SPA OB 204 "Reci bi r un bloque de datos" :SPM =OBFE Abortar si hay error/advertencia Si capacidad de recep. = O procesar la siguiente lnea de comunicacin :SPB =EMPF 0045 LEER:L MB 242 Incrementar contador de cmunicaciones Se han procesado todas las lneas de cmunicacin? :SPM =SUCH Fin regular de programa: VKE = O, FEWA = O 004F FEWA :L KB 16 Fin de programa en caso de error: 0050 OBFE :T =FEWA Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Ejemplo de aplicacin Se han de intercambiar datos entre tres CPUs: - de CPU 1 a CPU 2: mdulo de datos DB 3, DW O a DW 127 (= 4 bloques) - de CPU 1 a CPU 3: mdulo de datos DX 4, DW O a DW 63 ( = 2 bloques) - de CPU 2 a CPU 1 mdulo de datos DB 5, DW O a DW 95 ( = 3 bloques) DX 4, 2 bl oques DB 5 , 3 bl oques t CPU 3 Fig. 10-7 Intercambio de datos entre 3 CPUs En las tres CPUs, el mdulo de funciones FB 1 ha de constituir la interfaz con el programa de usuario cclico. En caso de NUEVO ARRANQUE, la CPU 1 ha de llamar a la funcin INICIALIZAR (OB 200). La lista de cmunicaciones ha de encontrarse en el mdulo de datos DB 100. Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento 1. Cargar mdulos Hay que cargar los siguientes mdulos adems del OB 1 en las distintas CPUs: Programa de usuario FB: SEND-DAT FB: EMPF-DAT Lista de comunicaciones DB 5; DX 4 2. Generar lista de comunicaciones Primeramente se ha de generar la lista de comunicaciones y luego debe ser registrada en el DB 100: LON=3 7 HOJA 1 Lista parcial 1 - - KC = ' Sl ' ; emitir de CPU 1 a .. KY = 001,003; .. CPU 2, el DB 3 KY = 002,004; . . CPU 3, el DX 4 KY = 000,000; KC=S2 ; emitir de CPU 2 a .. KY = 001,005; .. CPU 1, el DB 5 KY = 001,005; .. CPU 3, el DB 5 KY = 000,000; KC = ' 53' ; KY = 000,000; KY = 000,000; KY = 000,000; KC = ' 54' ; KY = 000,000; KY = 000,000; KY = 000,000; Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento Lista parcial 2 - - KC = 'Sl'; emitir de CPU 1 a .. KY = 002,004; .. CPU 2, 4 bloques de datos KY = 003,002; .. CPU 3, 2 bloques de datos KY = 004,000; emitir de CPU 2 a .. .. CPU 1, 3 bloques de datos KY = 003,003; .. CPU 3, 3 bloques de datos KY = 004,000; KC = '53'; KY = 001,000; KY = 002,000; KY = 004,000; KC = '54'; KY = 001,000; KY = 002,000; KY = 003,000; Las palabras de datos DW 16 a DW 31 contienen la lista de asignaciones necesaria para la funcin INICIALIZAR manualmente (OB 200). 3. Programar la llamada al OB 200 en el mdulo de arranque OB 20 para la CPU 1 El OB 200 es llamado durante el arranque por el OB 20 listado a continuacin de la CPU 1. LON=y yABS SEGMENTO 1 inicializacin manual de las pginas de memoria En el DB 100 est registrada la lista de asignaciones a partir de la palabra de datos DW 16 OB de funciones especiales: :SPA OB 200 "Inicializar" :UN M252.5 Fin de 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 impresora, o ...) Cont i na en l a pgi na s i g u i e n t e Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Modo multiprocesador y comunicacin en multiprocesamiento 4. Programar las llamadas a los mdulos de funciones en el FB 1 de las CPUs En cada una de las CPUs se ampla el programa de usuario con la llamada a los mdulos de funciones EMPF-DAT y SEND-DAT. El mdulo de funciones FB 1, listado a continuacin, est destinado para la CPU 1. Para la ejecucin en las otras CPUs simplemente se tiene que modificar el parmetro de entrada CPUN (nmero de CPU) . SEGMENTO 1 0000 NOMB . : EM-SE Lista de comunicaciones DB 100 :SPA FBlOl Recibir los mdulos de datos de entrada 0003 NOMB.:EMPF-DAT 0004 CPUN : 0005 FEWA : :SPB =FEWA Abortar si hay error/advertencia Aqu se intercala el programa de usuario cclico que lee datos de los mdulos de entrada y registra datos en los mdulos de datos de salida. Lista de comunicaciones DB 100 :SPA FBlOO Emitir los mdulos de datos de salida 0012 NOMB.:SEND-DAT 0013 CPUN : 0014 FEWA : :SPB =FEWA Abortar si hay error/advertencia 0018 FEWA : Despus de error/advertencia ejecutar tratamiento de errores (aqu se intercala el tratamiento de errores, por ej. stop, salida de aviso de error por impresora o monitor, o...) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces y funciones del aparato de programacin Resumen breve El presente captulo explica cmo acoplar el aparato de programacin (PG) a una CPU 928B 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 aparato de programacin (lvnterfaz serie) no es necesario leer el captulo 11.4. Este captulo explica cmo acoplar un PG a una CPU a travs de otras interfaces. Expone asimismo los aspectos a tener en cuenta en caso de utilizar las funciones del aparato de programacin en ambas interfaces. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo 11.1 11.2 11.2.1 11.2.2 11.2.3 11.3 11.4 11.5 11.5.1 11.5.2 11.5.3 Tema Panormica Funciones del aparato de programacin Informaciones Funciones de memorizacin y transferencia Test del programa Actividades en los puntos de control Acoplamiento PG - AG a travs de la 1" 2" interfaz serie Funcionamiento paralelo de dos interfaces serie de PG Puesta en funcionamiento Funcionamiento Ejecucin en determinados modos operativos Pgina 11-2 11-3 11-5 11-5 11-7 11-15 11-16 11-17 11-19 11-19 11-21 lnterfaces v funciones del a~arato de ~roaramacin 11.1 Panormica Acoplamiento El programa de usuario se carga y comprueba mediante las funciones on line del al aparato de software STEP 5. programacin Para ello es necesario acoplar la CPU al aparato de programacin. Se dispone de las siguientes interfaces: acoplamiento a travs de la interfaz serie estndar "PG - AG", acoplamiento a travs de la 2Vnterfaz serie de la CPU 928B. Las funciones del aparato de programacin se ejecutan paralelamente en ambas interfaces serie. Cuadro sinptico Las funciones del aparato de programacin ofrecen las siguientes ayudas para de las funciones poner en funcionamiento y comprobar el programa STEP 5: Tabla 11-1 Ayudas para la puesta en funcionamiento y test Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Ayuda Apartado Informacin Direccin ms alta utilizable del cartucho RAM y ltima direccin ocupada del cartucho de memoria Lista de mdulos cargados Visualizar contenido de palabrasi bytes de memoria y bytes de periferia "Extensin de memoria" "Lista de mdulos" "Salida direccin" Administracin de la memoria Borrar toda la memoria Comprimir espacio de mem. libre Administrar mdulos "Borrado total" "Comprimir memoria" "Transferir/borrar mdulos" Test del programa Arrancaridetener CPU Comprobar secuencia de instrucciones en un mdulo Comprobar pasos del programa individualmente Visulizar el estado lgico de las variables de proceso Emitir seales de salida en stop Visualizar/modificar variable de proceso "AG-StartiAG-Stop" "Status" "Control de elaboracin" "Status variables" "Forzado" "Forzado variables" lntertaces y funciones del aparato de programacin 11.2 Funciones del aparato de programacin Conceptos Los conceptos usados a continuacin para las funciones del aparato de usados programacin pueden diferir de los conceptos empleados en el software del aparato de programacin utilizado. Llamada y manejo Ejecucin Puntos de control del sistema Puntos de control del usuario En el manual correspondiente al aparato de programacin utilizado se explica cmo llamar y operar con las funciones del aparato de programacin. Nota Mientras la memoria se comprime mediante el OB 186, se rechaza la funcin del aparato de programacin "Comprimir memoria". Otras funciones del aparato de programacin slo se pueden ejecutar entonces de forma limitada. Al estar activadas las funciones del aparato de programacin se rechazar el OB 186. En el autmata programable se ejecutan las funciones del aparato de programacin en puntos de control definidos. Existen puntos de control en el programa de sistema (= puntos de control del sistema) y puntos de control en el programa de usuario (= puntos de control del usuario). En el estado operativo STOP existe el punto de control de sistema "stop", el cual es llamado con regularidad. En el estado operativo RUN se llama al punto de control del sistema "ciclo" al finalizar el nivel de programa CICLO, antes de la actualizacin de la imagen de proceso. Si la CPU est en ESTADO DE ESPERA se llama con regularidad al punto de control del sistema "estado de espera". Adems existe un punto de control del sistema en funcin de tiempo "asncrono". Este punto de control se anida de forma asncrona durante el procesamiento del programa. En las funciones de test "Status mdulo" y "Control elaboracin" se utilizan puntos de control del usuario. Se llama a un punto de control cuando se ha ejecutado una instruccin marcada por el aparato de programacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces y funciones del aparato de programacin Estado operativo Hasta ahora el usuario conoca los estados operativos STOP, ARRANQUE y ESTADO DE RUN. En la funcin del aparato de programacin "Control elaboracin ONU la ESPERA CPU adopta un estado operativo adicional: el ESTADO DE ESPERA. Cuando la CPU se encuentra en ESTADO DE ESPERA se pueden llamar a otras funciones del aparato de programacin. Caractersticas En el estado de espera no se procesa el programa de usuario. LEDs de la placa frontal: LED RUN: apagado LED STOP: apagado LED BASP: encendido Todas las clulas de tiempo estn "congeladas", es decir, los temporizadores no estn en marcha (y no se modifican). Tambin se detienen todos los tiempos del sistema como por ejemplo los de regulacin y los de procesamiento controlado por tiempo. Los temporizadores vuelven a funcionar una vez abandonado el ESTADO DE ESPERA. En el ESTADO DE ESPERA se registran causas de interrupcin tales como PEU, BAU, MPSTP o selector en posicin STOP, pero no se produce ninguna reaccin. Interrupciones Si en el ESTADO DE ESPERA se han registrado causas de interrupcin, inmediatamente despus de abandonar dicho estado se llaman a los niveles de procesamiento correspondientes. Cuando tiene lugar un NAU se abandona el ESTADO DE ESPERA y se interrumpe la funcin on line "Control elaboracin". Despus de la CONEXION en los bits de control estar marcado con una cruz BARBEND. El estado STOP slo puede ser abandonado con un NUEVO ARRANQUE. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces y funciones del aparato de programacin 11.2.1 Informacin Extensin de memoria La funcin de PG "Extensin memoria" visualiza en pantalla la direccin ms alta utilizable en el cartucho de memoria RAM (en caso de EPROM se indica un 'O') y la ltima direccin del cartucho de memoria ocupada por mdulos del programa de usuario. Lista de mdulos La funcin "Lista de mdulos" visualiza en el aparato de programacin la lista de todos los mdulos programados. Se puede llamar a esta funcin mientras est activada 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 formato hexadecimal. Se puede acceder a todas las direcciones. En la zona de la imagen de proceso no se activa ningn ADF si el correspondiente byte no tiene asignada ninguna tarjeta de EIS; y en la zona de periferia no se genera ningn QVZ. En la zona direccionable por bytes (marcas, imagen de proceso) se representa el byte alto como 'FE'. En la zona de periferia se indica el byte alto en forma de '00' para las direcciones que acusan recibo. Cuando una direccin de periferia no da el acuse, el byte alto se indica como 'FE'. 11.2.2 Funciones de memorizacin y transferencia Borrado total Con la funcin "Mdulos/Borrar/Todos mdulos" se puede efectuar un borrado total de una CPU desde el aparato de programacin. El borrado total se efecta de forma incondicional (vase captulo 4.3.2). Si al llamar la funcin "Mdulos/Borrar/Todos mdulos" la CPU se encuentra en el estado ARRANQUE o RUN, en primer lugar pasa al estado STOP y despus llama al OB 28 en caso de estar cargado. Nota NO se deber efectuar un "borrado total" mientras est activada la funcin "Control elaboracin" ! Comprimir memoria Esta funcin optimiza la ocupacin de la memoria por parte de los mdulos: el espacio que ocupan los mdulos marcados como no vlidos es sobreescrito por los mdulos vlidos y existentes en el programa de usuario (el mdulo se carga en otro espacio de la memoria) de forma que se encuentren ordenados uno detrs del otro desde el principio de la memoria. Esto se hace por separado en el cartucho de memoria RAM y en la DB-RAM y puede efectuarse en los puntos de control del sistema "ciclo" y "stop". Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces y funciones del aparato de programacin En la CPU 928B siempre se puede ejecutar la funcin "Comprimir memoria" en STOP, incluso cuando la pila BSTACK no est vaca. Cuidado Despus de "Comprimir memoria" en STOP slo se podr utilizar el modo de arranque NUEVO ARRANQUE. No se actualizan las pilas USTACK y BSTACK. Fallo de la Si durante la compresin de la memoria tiene lugar un fallo de la tensin de red, tensin de red una vez restablecida la tensin habr finalizado el proceso de compresin y no se durante la desplazarn ms mdulos. Llamando nuevamente a la funcin "Comprimir compresin memoria" continuar la compresin. Errores en la La funcin "Comprimir memoria" detecta los siguientes errores en la memoria de memoria de mdulos: mdulos longitud de mdulo errnea, patrn '7070' falsificado en la cabeza del mdulo, Tipo de mdulo no vlido (en caso de OBs: n v e mdulo no vlido). Cuando se produce uno de estos errores se abandona la funcin y en el PG se visualiza el correspondiente aviso. En este caso hay que efectuar primero un "Borrado total"; la memoria quedar vaca. Nota NO se deber utilizar la funcin "Comprimir memoria" mientras est activada la funcin "Control elaboracin" ! "Mdulos/ Transferir" Con esta funcin se transfieren los mdulos de cdigo y de datos nuevos o ya existentes a la memoria de usuario de la CPU o a la DB-RAM interna. Si uno de los mdulos ya se encuentra en la memoria de usuario de la CPU o en la DB-RAM, a ste se le asigna una marca que lo declara no vlido. El mdulo nuevo recibe a su vez una marca que lo declara vlido. Los mdulos slo se declaran no vlidos cuando no estn siendo procesados. "Mdulos/Borrar" Esta funcin permite declarar no vlidos a los mdulos de cdigo y de datos de la memoria de usuario de la CPU. Los mdulos slo se declaran no vlidos cuando no estn siendo procesados. El espacio de memoria en el que estaban almacenados dichos mdulos queda libre y, por tanto, puede ser aprovechado por otros mdulos activando la funcin "Comprimir memoria". Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces y funciones del aparato de programacin 11.2.3 Test del programa AG-Startl El mando del aparato de programacin corresponde al accionamiento manual. AG-Stop Llamando a la funcin del aparato de programacin "AG-Stop" en el estado operativo RUN el autmata programable se pone en STOP. El estado de los LEDs en la CPU conectada al aparato de programacin es el siguiente: LED STOP: encendido LED BASP: encendido En los bits de control est marcado con una cruz el campo PG-STP. En modo multiprocesador se activa el bit de control MP-STP en las restantes CPUs. Se puede arrancar una CPU mediante NUEVO ARRANQUE o REARRANQUE. En modo monoprocesador la CPU abandona el estado STOP, mientras que en modo multiprocesador se prefija en primer lugar el modo de arranque (bit de control NEUST o MWA activado), quedando la CPU en STOP. Activando a 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 lo haya hecho la ltima CPU. Funcin de PG NUEVO ARRANQUE: Se ejecuta un NUEVO ARRANQUE MANUAL de la CPU. Funcin de PG REARRANQUE: Dependiendo de cmo est ajustado el DX O se ejecuta un REARRANQUE MANUAL o un NUEVO ARRANQUE MANUAL CON MEMORIA. Status mdulo La funcin "Status" (estado) permite comprobar en cualquier lugar del programa de usuario determinadas secuencias de instrucciones (operaciones STEP 5) de un mdulo. Por cada instruccin ejecutada en el mdulo se visualizan en el aparato de programacin los estados lgicos de los operandos, el contenido de los acumuladores, el VKE, etc. (paso a paso). Del mismo modo tambin se puede verificar la parametrizacin de mdulos de funciones: se visualizan los estados lgicos de los operandos actuales. Llamar funcin e El llamado "punto de parada" se prefija activando la funcin "Status" del aparato indicar el punto de programacin e introduciendo el tipo y nmero del mdulo (indicando de parada eventualmente el orden de anidamiento y el criterio de bsqueda) que debe ser comprobado. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces y funciones del aparato de programacin Si se activa esta funcin durante el procesamiento del programa en RUN, el procesamiento continuar hasta alcanzar la instruccin marcada con el punto de parada prefijado, en el orden de anidamiento correcto. A continuacin se ejecutan las instrucciones supervisadas hasta el lmite de la instruccin. El resultado del procesamiento de las instrucciones se visualiza en el aparato de programacin. Llamada en STOP La funcin "Status" tambin puede ser llamada en STOP. Despus se puede efectuar un NUEVO ARRANQUE o un REARRANQUE MANUAL. La CPU procesa entonces el programa de usuario hasta el punto de parada establecido. Luego se emiten los datos correspondientes a la secuencia de instrucciones deseada. Por consiguiente, la funcin "Status" tambin ser adecuada para comprobar el programa de usuario en el arranque o en el primer ciclo. Nota El resultado del procesamiento de las instrucciones no se visualiza en cada ciclo. Anidamientos e Una secuencia de instrucciones marcada por un punto de parada prefijado se interrupciones ejecuta de forma completa, aunque entretanto se haya anidado y procesado otro nivel de procesamiento (por ej. un OB de error, una alarma de proceso o temporizada) en un lmite de instruccin. Si la CPU se pone en STOP a causa de una interrupcin en el nivel de programa 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). Cuando la CPU cambia de un modo operativo a otro (por ej. RUN += STOP += REARRANQUE MANUAL), la funcin queda activada. Para finalizar la funcin "Status" hay que pulsar la tecla de interrupcin en el aparato de programacin. 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 es necesario 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. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces y funciones del aparato de programacin Llamar funcin e Para llamar a la funcin "Control de elaboracin" hay que indicar el tipo y indicar el primer nmero del mdulo a comprobar (en caso necesario indicar el orden de punto de parada anidamiento) y marcar en el aparato de programacin la primera instruccin cuyos datos se desean visualizar. As se indica un primer punto de parada. En los bits de control estar marcado con una cruz BARB. Se bloquean las salidas (el LED BASP luce). Llamada en el ARRANQUE y en RUN Cuidado Si se ajusta el modo test en el coordinador no se bloquean las salidas (LED BASP = apagado). Si entonces se procesan instrucciones que modifiquen la periferia digital, o si la CPU ejecuta la actualizacin de la imagen de proceso, los generadores de seales emitirn las correspondientes seales. Si se ha prefijado el primer punto de parada durante el procesamiento del programa en el ARRANQUE o en RUN, la CPU contina el procesamiento hasta alcanzar la instruccin marcada como punto de parada. La instruccin se ejecuta hasta su lmite (las instrucciones BMW y BDW se procesan incluida la instruccin de sustitucin). Despus la CPU pasa al ESTADO DE ESPERA donde se emiten los datos de la instruccin que ha sido marcada y procesada por ltimo. Llamada en STOP Tambin se puede llamar la funcin "Control de elaboracin" en 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 ejecuta el procesamiento del programa hasta la instruccin marcada y se comporta como se indica. Continuar la Punto de partida: La CPU se encuentra en ESTADO DE ESPERA. funcin y prefijar otro punto de Para continuar la funcin, existen dos posibilidades. parada lo Prefijar un punto siguiente de parada: El punto de parada prefijado se desplaza una instruccin. A partir de ah, la CPU abandona el ESTADO DE ESPERA y contina el procesamiento del programa hasta esta instruccin. Cuando la instruccin ha sido procesada hasta su lmite, la CPU vuelve al ESTADO DE ESPERA y emite los datos desde ah. Si la instruccin es alcanzada en un nivel de programa anidado, la CPU contina el procesamiento. El punto siguiente de parada permanece prefijado como antes. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces y funciones del aparato de programacin 1 : : seSt ado STOP no se puede prefijar ningn punto siguiente de parada! 2" Prefijar un nuevo punto de parada: Prefijar 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 visualiza los datos. Con la funcin "Control elaboracin" tambin puede conseguirse que la CPU recorra todo un ciclo adicional (comprobar por ciclos). Para ello en el ESTADO DE ESPERA se deber colocar el punto de parada en la misma instruccin que antes. Sin embargo, la instruccin no debe encontrarse en un bucle de programa. En este caso se ejecuta una vez el bucle; no se procesa el programa ms all del lmite del ciclo. Nota En el ESTADO DE ESPERA pueden llamarse otras funciones como "Directorio", "Status variables" o "Forzado variables". En cuanto se reemprende el procesamiento del programa tras abandonar el ESTADO DE ESPERA, los temporizadores y los tiempos de sistema vuelven a funcionar hasta que se alcance otro punto de parada. Anular el punto Si an no se ha alcanzado un punto de parada prefijado se tiene la posibilidad de de parada anularlo posteriormente, accionando en el aparato de programacin la tecla de interrupcin. La CPU pasa al ESTADO DE ESPERA. Luego se puede prefijar un nuevo punto de parada o llamar a la funcin "Control elaboracin OFF". Abortar la funcin Llamando a la funcin "Control elaboracin OFF" se puede abortar la funcin durante el procesamiento del programa y en el ESTADO DE ESPERA y en STOP. La CPU pasa a STOP (o permanece en STOP). EL LED STOP parpadea de forma lenta. En los bits de control hay una cruz en BARBEND. Despus hay que efectuar 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 aborta la funcin tal como se indica arriba. Anidamientos Si se ha activado la funcin "Control de elaboracin" se pueden anidar otros niveles de procesamiento una vez abandonado el ESTADO DE ESPERA. Si la instruccin ha sido procesada en el punto de parada y en este punto se ha llamado a otro nivel de procesamiento (por ej. un OB de error o de alarma), entonces se anidar y procesar este nivel hasta el final, slo cuando se vuelva a abandonar el ESTADO DE ESPERA. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces v funciones del a~arato de ~roaramacin Nota Los datos se leen y emiten en el lmite de la instruccin. Los posi- bles anidamientos restantes an no han sido procesados. La figura 11-1 muestra cmo se ejecuta la funcin "Control de elaboracin. l er punt o de -, Ej ecutar i nstrucc. parada l leer datos I y I ESTADO DE ESPERA (emi ti r datos) Punto de Al arma de proceso, parada c al arma tempori zada, si gui ente OB de error 1 Yier datos 1 ~ ESTADO DE ESPERA (emi ti r datos) + 1 Al arma de proceso, N al arma tempori zada, OB de error I 1 Fig. 11-1 Ejecucin del test en "Control de elaboracin" Las peticiones como PEU, MP-STP, selector en posicin STOP etc., efectuadas durante el ESTADO DE ESPERA slo se registran pero no se ejecutan. Sin embargo, tienen efecto tan pronto como se abandone el ESTADO DE ESPERA: se anidar un nivel de procesamiento de programa o una interrupcin har que la CPU pase a STOP. Rige el orden en que tengan lugar los sucesos. Las peticiones simultneas se efectuarn segn su prioridad. Nota Si la CPU se encuentra en el ESTADO DE ESPERA 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 retardo en acuse de recibo. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces v funciones del a~arato de ~roaramacin Interrupciones Procesamiento del programa (ARRANQUEIRUN) += estado STOP: Si durante el procesamiento del programa tiene lugar una interrupcin (por ej. STOP en modo multiprocesador, periferia no disponible, selector en STOP, OB de error no programado, etc.) y el punto de parada prefijado an no ha sido alcanzado, la CPU se pone inmediatamente en STOP. Si ahora se realiza un arranque (NUEVO ARRANQUE o REARRANQUE MANUAL) la funcin "Control de elaboracin" permanece activada y el punto de parada sigue estando prefijado. Procesamiento de la instruccin en el punto de parada (ARRANQUEIRUN) += estado STOP: Si durante el procesamiento de la instruccin en el punto de parada o en el punto siguiente de parada aparecen peticiones de STOP (selector en STOP, instruccin STEP 5 STS, OB de error no programado), la CPU se pone inmediatamente en STOP tras procesar la instruccin. Si no se prefija ningn otro punto de parada en STOP, la CPU pasa al ESTADO DE ESPERA tras ejecutar el ARRANQUE. La funcin "Control de elaboracin" queda activada. Estado de espera += STOP Las causas de interrupcin que tienen lugar durante el ESTADO DE ESPERA (por ej. stop multiprocesador, periferia no disponible, selector en posicin STOP) o que provienen de la instruccin anterior (error que conduce a STOP) son registradas, pero la CPU sigue en ESTADO DE ESPERA. Slo cuando se vuelva a indicar otro punto de parada durante el ESTADO DE ESPERA y la CPU abandone dicho estado, las causas de interrupcin producirn un cambio al estado STOP. El nuevo punto de parada quedar prefijado si se ejecuta un ARRANQUE (NUEVO ARRANQUE o REARRANQUE MANUAL). Nota Si en el ESTADO DE ESPERA se acciona el selector de RUN a STOP la CPU slo se pondr en STOP tras abandonar el ESTADO DE ESPERA. Si durante el "Control de elaboracin" la CPU pasa al estado STOP a causa de ciertas interrupciones, despus del ARRANQUE seguir activada la funcin "Control de elaboracin" (y eventualmente el punto de parada prefijado)! Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces y funciones del aparato de programacin Status variables Con la funcin de PG "Status variables" se pueden visualizar los estados lgicos actuales de determinados operandos (variables de proceso). Esta funcin activa puntos de control de sistema en el CICLO, en STOP y en el ESTADO DE ESPERA. Cuando se alcanza un punto de control se visualiza el estado lgico actual de las variables de proceso deseadas. Se pueden indicar todas las variables de proceso (entradas, salidas, marcas, temporizadores, contadores y palabras de datos). En la zona de imagen de proceso no se activa ningn ADF en caso de acceder a una direccin a la que no se le haya asignado periferia alguna. Ejecucin Si se ejecuta la funcin en el estado operativo RUN o ARRANQUE, el durante el procesamiento del programa contina hasta alcanzar el punto de control de procesamiento sistema "ciclo". Al final del ciclo se consultan y visualizan los estados lgicos de del programa los operandos. Las entradas se leen de la imagen de proceso. Mientras no se interrumpa la funcin, los estados lgicos se actualizarn cclicamente durante el procesamiento del programa. Sin embargo, no se consultan en todos los puntos de control de sistema. Si no se alcanza el punto de control "ciclo" no se visualizan los estados lgicos (por ej. en un bucle continuo del programa de usuario)! Ejecucin de la Cuando se ejecuta la funcin "Status variables" en STOP se visualizan los funcin en STOP estados lgicos de los operandos tal y como se encuentran en el punto de control "stop". Lo importante es que las entradas se consultan y emiten directamente desde la tarjeta de EIS. De este modo se puede comprobar, por ejemplo, si una seal de entrada perifrica logra llegar a la CPU. En modo multiprocesador tambin se pueden indicar todas las entradas, independientemente de la asignacin establecida en el DB 1. Las salidas se leen en la imagen de proceso. Ejecucin de la Tambin se puede llamar a la funcin "Status variables" cuando la CPU se funcin en encuentra en ESTADO DE ESPERA con la funcin "Control de elaboracin". ESTADO DE En el punto de control "estado de espera" se consultan y emiten los estados ESPERA lgicos de los operandos. Al igual que en el estado STOP las entradas se leen directamente, mientras que las salidas se leen de la imagen de proceso. Cambio de Cuando la CPU cambia de un estado operativo a otro (por ej. RUN += STOP += estado operativo/ REARRANQUE MANUAL), la funcin "Status variables" permanece activada. finalizar la Se finaliza pulsando la tecla de interrupcin en el aparato de programacin. funcin Las variables no se emiten en todos los ciclos de programa. l Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces y funciones del aparato de programacin Forzado Con la funcin "Forzado" se pueden ajustar directamente a un estado lgico determinado los bytes de salida del autmata programable (sin necesidad de la imagen de proceso) y detectar generadores de seales que no acusen recibo (periferia digital O a 127) (aviso en el aparato de programacin). Tambin se pueden comprobar y comandar directamente los aparatos de proceso alimentados por las salidas ("actuadores" como por ej. motor, vlvula). La funcin "Forzado" slo es admisible en STOP! l Ejecucin de la Cuando se llama a la funcin en STOP se suprime el bloqueo de salidas funcin (BASP = desactivado). Toda la periferia digital (FOOOH a F07FH) se borra, siendo sobreescritas todas las direcciones con el valor 'O'. Esta funcin no puede ser interrumpida durante el borrado de la periferia. Las salidas perifercas se fuerzan directamente, de byte en byte y sin alterar la imagen de proceso de las salidas! En modo multiprocesador pueden forzarse todas las salidas perifricas (independientemente de la asignacin de periferia en el DB 1). Si la funcin est activada (aviso "Forzado finalizado" en el aparato de programacin) se puede ejecutar un NUEVO ARRANQUE o un REARRANQUE MANUAL. Si se retorna a STOP se puede volver a forzar. En este caso no se borran los generadores de seales de salida. Finalizar la funcin Forzado de variables La funcin se finaliza pulsando la tecla de interrupcin en el aparato de programacin. El bloqueo de las salidas se activa nuevamente (diodo luminoso BASP = encendido). Con la funcin del aparato de programacin "Forzado variables" pueden modificarse una vez los valores de operandos (variables de proceso). Esto es posible en cualquier estado operativo de la CPU. Se pueden indicar todas las variables de proceso. En la zona de la imagen de proceso no se activa ningn ADF en caso de acceder a una direccin que no tenga asignada periferia alguna. La modificacin acta en los puntos de control del sistema de forma "asncrona", es decir, slo al final del ciclo. Cabe tener en cuenta que los valores forzados pueden ser sobreescritos posteriormente (por ej. por el programa de usuario o la actualizacin de la imagen de proceso). Nota El aparato de programacin fuerza las variables de proceso E, A, M byte por byte y DW, T, Z palabra por palabra. En caso de forzar varios operandos, los bytes modificados (en caso de DW, T, Z las palabras) se modificarn sucesivamente en la memoria, llamando varias veces a la funcin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces v funciones del a~arato de ~roaramacin 11.3 Actividades en los puntos de control Cuadro sinptico La tabla siguiente muestra las tareas que ejecutan las funciones de PG en los puntos de control de sistema. Tabla 11-2 Actividades en los puntos de control l) Actividades que pueden ser distribuidas a lo largo de varios puntos de control del sistema ' ) Mximo un mdulo por cada punto de control de sistema 3, Despus de "Comprimir en STOP" se requiere un NUEVO ARRANQUE Actividades de las funciones on line Entrar la direccin: escribir datos ') Entrar el mdulo: declarar vlido el mdulo Borrar mdulo Comprimir memoria: desplazar mdulo 1) 2) STARTISTOP BORRAR STATUS: leer datos y emitirlos STATUS VARMLES: leer datos y emitirlos CONTROL DE ELABORACION: predeterminar puntos de parada leer datos y emitirlos FORZADO (generador de seal) ') FORZADO VARIABLES 1) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Punto de control de Usuario "Stop" * 3) Punto de "Ciclo" control de sistema "Estado de espera " "Asincrno" lnterfaces v funciones del a~arato de ~roaramacin 11.4 Acoplamiento PG - AG a travs de la 1" 2" interfaz serie Posibilidades de E1 acoplamiento "aparato de programacin - autmata programable" puede acoplamiento realizarse de distintas maneras: Conexin directa con la CPU - a travs del cable de conexin estndar Conexin con el aparato de programacin a travs del coordinador KOR C; el aparato de programacin se conecta al coordenador mediante el cable de conexin. De este modo ya no puede utilizarse la lqnterfaz serie. Conexin con el aparato de programacin a travs de un multiplexor del aparato de programacin 757. En el manual del sistema S5-135U1155U (bibliografa 120 pueden consultarse los cables de conexin vlidos. Conexin con el aparato de programacin a travs de SINEC H1/ L21L1 y "puente"; es posible interconectar un KOR C o un multiplexor del aparato de programacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces v funciones del a~arato de ~roaramacin 11.5 Funcionamiento paralelo de dos interfaces serie de PG Introduccin La segunda interfaz de la CPU 928B (SI 2) puede ser utilizada como interfaz con el aparato de programacin del mismo modo que la primera. Para poder acoplar el aparato de programacin a travs de esta interfaz se deber pedir adicionalmente el mdulo de interfaces del aparato de programacin (el nQ de referencia est indicado en el manual del sistema 135U/155U, bibliografa 124. Fig. 11-2 Utilizacin de la segunda interfaz como interfaz de PG Todas las funciones del aparato de programacin pueden ser utilizadas con ambas interfaces. A continuacin se exponen todas las informaciones necesarias para poder operar con aparatos de programacin u OPs utilizando simultneamente ambas interfaces. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces v funciones del a~arato de ~roaramacin Ejemplos de configuracin CPU 928B CP 143 - SI1 PG conectado v a SINEC H1 y KOF - S12 PG conectado directamente Fig. 11-3 Ejemplo de configuracin 1 SS 1 OP conectado directamente (para mando y observacin - SS 2 PG conectado directamente (para programacin) Fig. 11-4 Ejemplo de configuracin 2 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces v funciones del a~arato de ~roaramacin 11.5.1 Puesta en funcionamiento Procedimiento Para poder utilizar la segunda interfaz de la CPU 928B como interfaz del aparato de programacin se debe proceder de la siguiente manera: 1" Montar el mdulo de interfaces del PG en la CPU 928B. 2" Conectar el aparato de programacin a la interfaz serie SI2. 11.5.2 Funcionamiento Funciones En caso de emplear la segunda interfaz serie como interfaz del aparato de integradas en programacin, se dispondr en cada interfaz del total de funciones de la interfaz el aparato de estndar del aparato de programacin, a menos que las funciones no se programacin interfieran unas a otras, es decir, que deben ser llamadas una tras otra. Es conveniente dividir las funciones del aparato de programacin en tres grupos para entender mejor las excepciones: Cuidado En el caso de las funciones cclicas y de larga duracin es necesario coordinar su llamada en ambos aparatos de programacin. Grupo Funciones de corta duracin Funciones de larga duracin Funciones cclicas Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 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". lnterfaces v funciones del a~arato de ~roaramacin Funciones que La siguiente tabla muestra las funciones que no pueden ser ejecutadas no pueden ser paralelamente. ejecutadas paralelamente Tabla 11-3 Funciones que no se ejecutan paralelamente en dos PGs En caso de no respetar lo indicado, el segundo aparato de programacin dar un aviso de error, por ej.: "Funcin AS bloqueada ". En el primer PG se ejecuta la funcin: "Forzado" "Control de procesamiento" una funcin "Status" una funcin "Status" una funcin "Status" "Status" en mdulos no procesados o de larga duracin Se visualiza el mismo aviso o bien "exceso de tiempo en intercambio de datos conAG" cuando la CPU 928B est procesando funciones del otro aparato de programacin que impiden el acceso del aparato durante la supervisin del tiempo. En este caso no se aceptar la entrada efectuada y habr que repetirla una vez hayan acabado las funciones del otro aparato de programacin. Esta funcin no es vlida en el segundo PG: toda funcin toda funcin "Forzado" "Control de elaboracin" "Borrado total" toda funcin 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 a la vez, mdulos en ambos aparatos de programacin 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 "Status" en un mdulo no arrancado o "Status" en STOP, la otra interfaz quedar bloqueada para todas las funciones. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces y funciones del aparato de programacin 11.5.3 Ejecucin en determinados modos operativos Funcionamiento En caso de estar operando con aparatos de programacin en ambas interfaces a la paralelo con vez, ambos aparatos de programacin intentarn ejecutar las funciones uno funciones de independientemente del otro. Mientras enven sus peticiones de forma alternada a corta duracin la CPU stas sern ejecutadas en el orden en que sean recibidas. Sin embargo puede ocurrir que la CPU 928B reciba dos peticiones simultneas, o bien que reciba una peticin del segundo aparato de programacin 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 peticiones 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: Usuari o del PG 1 CPU 9288 Usuari o del PG 2 Ent rada en PG 1 por tecl ado 7 r Ent rada en PG 2 por tecl ado Procesar ent rada 1 en PG 1 Procesar ent rada 2 en PG 2 Transferi r ~ e t i c i n 1 a l a CPU k ! El PG 2 debe esperar aqu a Procesar pet i ci n 1 en l a CPU que la CPU haya terminado de procesar la peticin 1. Transferi r resul tado 1 al PG 1 Transferi r pet i ci n 2 a l a CPU Procesar dat os resul tado 1 Procesar pet i ci n 2 en l a CPU Vi sual i zar resul tado 1 en PG 1 Transferi r resul tado 2 al PG 2 1 Procesar resul tado 2 en PG 2 b Vi sual i zar resul tado 2 en PG 2 Fig. 11-5 Ejecucin en caso de peticiones simultneas El esquema muestra que es posible operar en ambos PGs de forma independiente sin que haya interferencias. Por lo tanto, puede ocurrir que ambos aparatos de programacin estn procesando simultneamente el mismo mdulo, o tambin que un aparato de programacin borre el mdulo que est procesando el otro. Por consiguiente, siempre se deber tener en cuenta en qu medida puede ser alterado el comportamiento del otro aparato de programacin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lnterfaces v funciones del a~arato de ~roaramacin Funcionamiento Las funciones de larga duracin "Forzado" y "Control de elaboracin" no pueden paralelo con interrumpir ninguna otra funcin y tampoco pueden ser interrumpidas por otra funciones de funcin. Por lo tanto, tampoco pueden ser ejecutadas de forma paralela, es decir, larga duracin que son tratadas en forma de bloque como una peticin estndar. Funcionamiento Las funciones cclicas pueden ser ejecutadas paralelamente a funcio- paralelo con nes cclicas o de corta duracin. El ejemplo siguiente muestra el orden de funciones ejecucin estndar de la funcin "Status variables". cclicas Usuar i o del PG 1 CPU 928B Usuar i o del PG 2 El PG 1 comuni ca a l a CPU l as var i abl es que deben ser vi sual i zadas. El PG 1 sol i ci t a l os datos actual es. El PG 1 sol i ci t a l os datos actual es. PG 2 ef ect a l a peti ci n. El PG 2 debe esperar a que l a CPU est l i bre. El PG 1 sol i ci t a l os datos actual es. 11 Se pr ocesa l a pet i ci n del PG 2. El PG 1 debe esperar a que l a CPU est l i br e. / Ha f i nal i zado l a pet i ci n del PG 2 El PG 1 sol i ci t a 4 l os datos actual es. 7 Fig. 11-6 Tipica ejecucin paralela de una funcin cclica y una funcin de corta duracin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lntertaces v funciones del a~arato de ~roaramacin A fin de posibilitar que un segundo aparato de programacin pueda en-viar su peticin a la CPU, se interrumpe la funcin "Status" entre dos peticiones y se reanuda despus de haberse intercalado la peticin. Puesto que la funcin interrumpida necesita del rendimiento del sistema de la CPU, es necesario repartirlo entre las dos funciones, por ej. en el caso de la funcin "Status variables", los datos a visualizar se actualizan a menor velocidad. La figura 11-7 ilustra el caso que ocurre cuando en ambos aparatos de programacin se ejecutan funciones cclicas; ambos aparatos de programacin se reparten el acceso a la CPU. Usuari o d e l PG 1 CPU 9288 Usuari o d e l PG 2 El PG 1 comuni ca a l a CPU l as var i abl es que deben ser vi sual i zadas. 4 El PG 1 sol i ci t a l os dat os act ual es. 1 El PG 1 sol i ci t a l os dat os act ual es. PG 2 ef ect a l a la pet i ci n. El PG 2 debe esper ar a que l a CPU est l i br e. El PG 1 sol i ci t a l os dat os act ual es. Se pr ocesa l a 1Qet i ci n del PG 2. El PG 1 debe esper ar a que l a CPU est l i br e. Ha f i nal i zado l a I Qet i ci n del PG 2. [C PG 2 ent r ega l a 2 a pet i ci n El PG 1 sol i ci t a l os dat os act ual es. -f ' l Se pr ocesa l a Z a pet i ci n del PG 2. El PG 1 debe esper ar a que l a CPU est l i br e 7 Ha f i nal i zado l a 2 a pet i ci n del PG 2. t Fig. 11-7 Ejecucin paralela de dos funciones cclicas I n s t r u c c i o n e s de p r o g r a ma c i n CPU 9 2 8 B - 3 U B 2 1 C 7 9 0 0 0 - G8 5 7 8 - C 8 7 0 - 0 1 lnterfaces v funciones del a~arato de ~roaramacin Particularidad en Si la funcin que provoca la interrupcin bloquea a la CPU 928B ("Status" en un caso de ejecutar mdulo que no es ejecutado), la funcin interrumpida tambin quedar funciones cclicas bloqueada hasta que finalice la funcin causante de la interrupcin. en ambos aparatos de programacin En caso de utilizar ambos aparatos de programacin a la vez, la ejecucin ser la siguiente: Us uar i o del PG 1 CPU 928B Us u a r i o d e l PG 2 El PG 1 comuni ca a l a CPU l as var i abl es que 7 deben ser vi sual i zadas. 1 4 El PG 1 sol i ci t a l os dat os act ual es (el PG i ndi ca: ' ' se ej ecut a st at us' l ). 3 El PG 1 sol i ci t a l os dat os act ual es ? El PG 2 ent r eaa l a aet i ci n 1 ( por ej . ' ' statu; PB 9") I El PG 2 debe esper ar a que l a CPU est l i br e. 1 El PG 1 sol i ci t a Se pr ocesa l a pet i ci n del PG 2 l os dat os act ual es. l (El PG i ndi ca: ' se ej ecut a st at us' ) El PG 1 debe esper ar a que l a CPU est l i br e (El PG i ndi ca: no se ej ecut a est a i nst r ucci n) . El PG 2 i nt er r umpe ' St at us ' , l a CPU pr ocesa l a pet i ci on de t r uncami ent o. 1 Ha f i nal i zado l a pet i ci n del PG 2 El PG 1 r eci be nuevos dat os. 7 Fig. 11-8 Ejecucin cuando una funcin bloquea la CPU 928B Indicaciones Si por una interfaz se emite "Status variables", "Forzado variables" generales (visualizacin de status) o "Status" y por la otra interfaz se ejecuta "Comprimir memoria", "Borrar mdulo" o "Transferir mdulo" los indicadores de status pueden resultar errneos. instrucciones de p r o g r a ma c i n CPU 928B-3UB21 C79000-G8578-C870-01 Anexo Resumen breve Este anexo contiene informaciones adicionales sobre algunas CPUs para autmatas programables S3-135U y S5-155U, tales como una comparativa de los tiempos de ejecucin respectivos. lndice del captulo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Captulo A. 1 A.2 A.3 A.4 A.5 Tema Comparacin de los tiempos de ejecucin de las CPUs 928-3UA21,928B-3UB21 y 948 Identificadores de error Operaciones STEP 5 no disponibles en la CPU 928B Identificaciones de los niveles de procesamiento Ejemplo de "evaluacin de la pila USTACK" Pgina A-2 A-5 A-13 A-14 A-15 Anexo A.l Comparacin de los tiempos de ejecucin de las CPUs 928-3UA21,928B-3U B21 y 948 Definicin de los conceptos Carga base La carga base es el tiempo de ejecucin del sistema sin contar los tiempos de actualizacin de la imagen de proceso, de transferencia de marcas de acoplamiento y de interrupciones debidas a alarmas o errores. Tiempo de reaccin El tiempo de reaccin es el tiempo que transcurre desde que se activa el nivel de procesamiento ALARMA DE PROCESO hasta que se elabora la primera operacin en el OB 2, suponiendo que el OB 2 pueda ser llamado inmediatamente despus de que se detecte la alarma de proceso. Si, por el contrario, hay que esperar al prximo lmite de instruccin o de mdulo, el tiempo de reaccin se prolongar en el tiempo de espera. Comparacin de los tiempos de ejecucin Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin 1 procesamiento CPU 928-3UA21 Tiempos de ejecucin tpicos para instrucciones de bits: CPU928B-3UB21 con M, E, A D Operando formal CPU 948 09 Ys 23 ys 23 ys Tiempos de ejecucin tpicos para instrucciones de palabras: 0,57 ys 3,4 ys 2,4 YS - Operaciones de carga L (byte) L MW @alabra) L MD @alabra doble) - Aritmtica de coma flotante - Aritmtica de coma fija 0,18 ys 0,7 y~ 0,91 ys 11 ys 11 ys 11 ys 11 ... 23 ys 25 ys Procesamiento cclico (modo monoprocesador) 0,81 ys 09 ys 1,6 YS 0,9 ... 10,4 ys 9,l ... 15,6 ys Carga base al llamar OB 1IFB O: Tiempo aadido en caso de actualizacin de la imagen de proceso, en funcin de la cantidad de bytes E/S (n) siendo O c n 5 128 0,18 ys OS ys 0,71 ys 0,55 ... 3,8 ys 3,3 ... 6,3 ys 1041106 ys E: 14 ps + n * 1,1 ps S: 5 ys + * 4,1 ys 651- ys 11564: 64 ys t n * 2,3 ps ns64: 92 ys t n * 2,3 ps Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin / procesamiento Tiempo aadido en caso de transferencia de marcas de acoplamiento, en funcin de la cantidad de marcas de acoplamiento (n) siendo O e n 5 256 Tiempo aadido en caso de procesar temponza- dores, en funcin de la longitud de los bloques de tiempo (ZBL) ZBL =O ZBLgO n = cantidad de temporizadores en ejecucin (escala de tiempo: 10 ms) CPU 928-3UA21 Procesamiento controlado por alarma CPU928B-3UB21 Prolongacin del tiempo de ciclo por anidamiento de un OB 2 vaco (sin operaciones STEP 5) en un lmite de mdulo Tiempo de reaccin CPU 948 E: 14 ys + n * 1, l ys S: 5 ys + n * 4,l ys cada 10 ms 10 ys 16 ys + ZBL * 0,2 ys (no hay diferencia entre los temporizadores en ejecucin y los temponzadores sin ejecutar) 11564: 64 ys + n * 2, l ps n s 6 4 : 92 ys + n * 2, l ps cada 10 ms 11,6 ys 16 ys + ZBL * 0,2 ys 300 ys 270 ys Procesamiento 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) Tiempos de resolucin para alarma temponzada controlada por reloj (OB 9) Tiempo de resolucin para alarma de retardo (0'3 6) 300 ys 270 ys 262 ys 175 ys controlado por 310 ys para el pnmer OB de alarma temponzada 170 ys por cada OB adicional que deba ejecutarse al mismo tiempo 10,20,50,100, 200,500 ms, 1, 2, 5 S - - tiempo 310 ys para el primer OB de alarma temponzada 170 ys por cada OB adicional que deba ejecutarse al mismo tiempo 10,20,50,100, 200,500 ms, 1, 2, 5 S cada minuto, cada hora, cada da, cada semana, cada mes, cada ao, una vez - 287 ys vanabler Grundtakt von 1 ... 255 ms; Angabe bezogen auf 10 ms: 10,20,50,100,200, 500ms; 1, 2, 5 S oder 10, 20, 40, 80, 160, 320,640 ms ; 1,28 S, 2,56 S cada minuto, cada hora, cada da, cada semana, cada mes, cada ao, una vez 1 ms Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Operacin / procesamiento CPU 928-3UA21 Supervisin del tiempo de ciclo CPU928B-3UB21 Ajuste por defecto regulable entre Disparable (tngger) CPU 948 150 ms 1 ... 13000 ms s Capacidades de memoria 150 ms 1 ... 13000 ms s Capacidad del cartucho de memoria de usuario (en Kb yte) Capacidad de la memona de mdulos de datos (DB-RAM, en Kbyte) 200 ms 1 ... 2550 ms s 64 46,6 aprox. Temponzadores y contadores, marcas 64 46,6 aprox. Cantidad de temporizadores y contadores Cantidad de marcas 640 1664 - 256 respectivamente 2048 marcas 256 respectivamente 2048 marcas t 8192 marcas S 256 respectivamente 2048 marcas t 32768 marcas S Anexo A.2 ldentificadores de error ldentificadores de error en los datos de sistema BS3 y BS4 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol BS 3 BS 4 Significado Estructura de las listas de direcciones de mdulos (evaluacin del DB O) 8001H 8002H 8003H 8004H 8005H yyyyH yyyyH yy yyH yyyyH yyyyH Longitud de mdulo errnea yyyy = direccin del mdulo cuya longitud es errnea Direccin final calculada del mdulo en la memoria es errnea yyyy = direccin del mdulo Identificacin de mdulo errnea yyyy = direccin del mdulo cuya identificacin es errnea Nmero del mdulo de organizacin demasiado elevado (vlido: OB 1 a OB 39) yyyy = direccin del mdulo cuyo nmero es errneo Nmero del mdulo de datos O (vlido: DB 1 a DB 255) yyyy = direccin del mdulo cuyo nmero es errneo Estructura 0410H 0411H 0412H 0413H 0414H 0415H 0419H 041AH 041BH 041CH de las yyyyH yyyyH yyyyH yyyyH yyyyH yyyyH yyyyH yyyyH yyyyH yyyyH listas de direcciones para la actualizacin de la imagen de proceso (evaluacin del DB 1) Identificacin no vlida: - Falta la identificacin de la cabeza o es errnea (correcta KC MASKO1) - Identificin no vlida (vlida KH DEOO, DAOO, CEOO, CAOO, BBOO) - Falta la identificacin final o es errnea (correcta KH EEEE) yyyy = identificacin no vlida "Entradas digitales", cantidad de direcciones no admisible (admisibles O ... 128) yyyy = cantidad de direcciones no admisible "Salidas digitales", cantidad de direcciones no admisible (admisibles O ... 128) yyyy = cantidad de direcciones no admisible "Entradas de marcas de acoplamiento", cantidad de direcciones no admisible (admisibles O ... 256) yyyy = cantidad de direcciones no admisible "Salidas de marcas de acoplamiento", cantidad de direcciones no admisible (admisibles O ... 256) yyyy = cantidad de direcciones no admisible Cantidad de temporizadores no admisible (admisibles 256) yyyy = cantidad de temporizadores no admisible Retardo en acuse de recibo de entradas digitales yyyy = direccin del byte de entrada no acusado Retardo en acuse de recibo de salidas digitales yyyy = direccin del byte de salida no acusado Retardo en acuse de recibo de una entrada de marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Retardo en acuse de recibo de una salida de marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Evaluacin del DB 2 0421H 0422H 0423H 0424H 0425H 0426H DByyH FByyH FByyH FByyH DByyH - Mdulo de datos no cargado yy = nmero del mdulo de datos no cargado Mdulo de funciones no cargado yy = nmero del mdulo de funciones no cargado Mdulo de datos no reconocido yy = nmero del mdulo de datos no reconocido Mdulo de funciones cargado con software de PG errneo yy = nmero del mdulo de funciones Longitud errnea del mdulo de datos de regulador yy = nmero del mdulo de datos La memoria del DB-RAM no es suficiente para desplazar el DB regulador del EPROM a la DB-RAM Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol BS 3 BS 4 Significado Evaluacin del DX O 043 1H 0432H 0434H 0435H yyyyH yyyyH yyyyH yyyyH Identificacin no vlida -Falta la identificacin de la cabeza o es errnea (correcta KC MASKXO) -Identificacin de bloque no vlida -Falta la identificacin final o es errnea (correcta KH EEEE) yyyy = identificacin no vlida Parmetro no vlido yyyy = parmetro no vlido Cantidad de temporizadores no admisible (admisibles 0...256) yyyy = cantidad de temporizadores errnea Tiempo de supervisin de ciclo no admisible (admisible l ms a 13000ms) yyyy = dimensin de tiempo errnea Evaluacin del DX 2 0451H 0452H 0453H 0454H 0455H 0456H 0457H 0458H 0459H 0045AH - yyyyH yyyyH xxOOH xxyyH xxyyH yyyyH xxOOH xxyyH xxOOH Longitud del DX 2 (sin cabeza) < 4 palabras no vlida Longitud del DX 2 (sin cabeza) demasiado corta para el tipo de acoplamiento yyyy = longitud del DX 2 Tipo de acoplamiento no admisible yyyy = tipo de acoplamiento Identificacin del lote de parmetros esttico no vlida (no igual a 44H, 58H) xx = identificacin de los datos Mdulo no admisible para lote de parmetros esttico xx = identificacin / yy = nmero de DB Lote de parmetros esttico no existe xx = identificacin / yy = nmero de DB Lote de parmetros esttico demasiado corto yyyy = nmero de la DW no existente Identific. de los datos para el lote de parmetros din. (no igual a 44H, 58H, OOH) xx = identificacin de los datos Mdulo no admisible para el lote de parmetros dinmico xx = identificacin / yy = nmero de DB Identificacion de los datos no admisible para el buzn de emisin y peticin (no igual a 44H, 58H, OOH) xx = identificacin de los datos Evaluacin del DX 2 (continuacin) 045BH 045CH 045DH 045EH 045FH 0460H 0461H xxyyH xxOOH xxyyH xxOOH xxyyH xxyyH yyyyH Mdulo no admisible para buzn de emisin y peticin xx = identificacin / yy = nmero de DB Identificaciones de datos no admisible para buzn de recepcin (no igual a 44H, 58H, OOH) xx = identificacin de los datos Mdulo no admisible para buzn de recepcin xx = identificacin / yy = nmero de DB Identificacin de datos no admisible para los bytes de coordinacin (no igual a 44H, 58H, 4DH) xx = identificacin Mdulo no admisible para los bytes de coordinacin xx = identificacin / yy = nmero de DB Mdulo para bytes de coordinacin no existe xx = identificacin / yy = nmero de DB Palabra de datos para bytes de coordinacin no existe yyyy = n Ve la DW no existente Anexo Identificaciones de error en AKKU 1 y AKKU 2 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol AKKU- 1-L AKKU- 2-L REG-FE (error de regulador) Significado 0801H 0802H 0803H 0804H 0805H 0806H 0880H OB llamado DByyH DByyH FByyH FByyH FByyH DByyH OOyyH WECK-FE (colisin de alarmas temporizadas) Error en tiempo de exploracin yy = nmero del correspondiente mdulo de datos regulador Mdulo de datos de regulador no cargado yy = nmero del mdulo de datos no cargado Mdulo de funciones de regulador no cargado yy = nmero del mdulo de funciones no cargado Mdulo de funciones de regulador no reconocido yy = nmero del mdulo de funciones no reconocido Mdulo de funciones de regulador cargado con software de PG errneo yy = nmero del mdulo de funciones Longitud errnea del mdulo de datos de regulador yy = nmero del mdulo de datos QVZ durante el procesamiento del regulador yy = nVel byte EIS que ha causado el QVZ 1001H OB 34 0016H 0014H 0012H OOlOH OOOEH OOOCH OOOAH 0008H 0006H BCF (error en cdigo de instruccin)/error de sustitucin Colisin en OB 10 ( 10 ms) Colisin en OB 11 ( 20 ms) Colisin en OB 12 ( 50 ms) Colisin en OB 13 (100 ms) Colisin en OB 14 (200 ms) Colisin en OB 15 (500 ms) Colisin en OB 16 ( 1 S) Colisin en OB 17 ( 2 S) Colisin en OB 18 ( 5 S) 1801H 1802H 1803H 1804H 1805H 1806H OB 33 - - - - - - BCF (error en cdigo de instruccin)/error en cdigo de operacin Error de sustitucin en la instruccin BBS Error de sustitucin en BDW, BMW Error de sustitucin en las instrucciones B= , BI= Error de sustitucin en las instrucciones L= , T= Error de sustitucin en las instrucciones U=, UN=, O=, ON=, ==, S= y RB= Error de sustitucin en las instrucciones RD=, LC=, FR=, SAR=, SE=, SI=, SSV= y SVZ= 1811H 1812H 1813H 1814H 1815H OB 27 - - - - - Cdigo de operacin de la instruccin no vlido Cdigo de operacin no vlido en una instruccin en la que el byte alto de la 1"alabra contiene el valor 68H Cdigo de operacin no vlido en una instruccin en la que el byte alto de la 1"alabra contiene el valor 78H Cdigo de operacin no vlido en una instruccin en la que el byte alto de la 1"alabra contiene el valor 70H Cdigo de operacin no vlido en una instruccin en la que el byte alto de la 1"alabra contiene el valor 60H OB 29 Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol AKKU- 1-L AKKU- 2-L BCF (error en cdigo de instruccin)/error de parmetro Significado 1821H 182BH 182CH 182DH 182EH 182FH 1830H 1831H 1832H 1833H 1834H 1835H 1836H 1837H 1838H 1839H 183AH 183BH 183CH OB llamado - - - - - - - - - - - - - - - - - - - LZF (error en tiempo de ejecucin)/mdulo no cargado Parmetro no vlido en: ADBO, 1, 2 SPA(B) OB O SPA(B) OB > 39: funcin especial no existe AXDXO, AXDXl yAXDX2 LMW/rMW/LPW/rPW/LQW/TQW/LDD/TDD/BMW:255 L EW/T EW/L AW/T AW 127 L MD / T MD 253,254,255 L ED/T EDIL AD/T AD 125, 126, 127 RLDIRRDISVDISLD 33 a 255 SLW/SRW/LIR/TIR 16 a 255 SES/SEF 32 a 255 U=/UN=/O=/ON=/S=/RB=/==/RD=IFR=/SI=/SE=/ SVZ=/SSV=/SAR=/L=/LC=/LW=/T= 0,127 a 255 B=/LD= 0,126 a 255 U S/O S/S S/= S/UN S/ON S/R S nmero de byte > 1023 U S/O S/S S/= S/UN S/ON S/R S nmero de bit > 7 L SY/T SY Parmetro > 1023 L SW/T SW Parmetro > 1022 L SD/T SD Parmetro >lo20 E DB/EX DX Parmetro O, 1 2 (DB o DX O, 1, 2 no pueden ser generados) 1AOlH 1A02H 1A03H 1A04H 1A05H 1A06H 1A07H OB 30 - - - - - - - LZF (error en tiempo de ejecucin)/error de carga o transferencia Mdulo de datos no cargado en A DB Mdulo de datos no cargado en AX DX Mdulo no cargado en SPA(B) FB, OB 1 a OB 39, PB, SB Mdulo no cargado en BA(B) EX Mdulo no cargado en OB 254 255 Mdulo no cargado en OB 182 Mdulo no cargado en OB 150, OB 151 <OB 153 1A11H 1A12H 1A13H 1A14H 1A15H 1A16H 1A17H 1A18H 1A19H OB 19 - - - - - - - - - Acceso con U/UN D, O/ON D, S/R D, = D a una palabra de datos no definida Error de transferencia con TDR en una palabra de datos no definida Error de transferencia con TDL en una palabra de datos no definida Error de transferencia con TDW en una palabra de datos no definida Error de transferencia con TDD en una palabra doble de datos no definida Error de carga con LDR de un byte no definido Error de carga con LDL de un byte no definido Error de carga con LDW de una palabra de datos no definida Error de carga con LDD de una palabra doble de datos no definida OB 32 Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol AKKU- 1-L 1A21H 1A22H 1A23H 1A25H 1A29H 1A2AH 1A2BH 1A2CH 1A3 1H 1A32H 1A33H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H AKKU- 2-L - - - - - - - - - - - OOOlH OlOOH OlOlH 0102H 0200H 0201H 0202H 0203H 0210H 0211H 0212H 0213H Significado LZF (error en tiempo de ejecucin)/otros errores en tiempo de ejecucin Indicador de error de ... /por ... : E DB, EX DX: El mdulo de datos ya existe E DB, EX DX: Cantidad no admisible de palabras de datos (< 1 > 4091) E DB, EX DX: Espacio de memoria insuficiente en RAM BI: Parmetro no admisible en AKKU 1 (< 1 > 125) Desbordamiento de la pila de parntesis tras 'U(', 'O(, ')' A DB, AX DX: Longitud de mdulo demasiado corta en la cabeza del mdulo de datos (longitud e 5 palabras) Mdulo de funciones cargado con software de PG errneo ACR: Nmero de pgina en AKKU-1-L no vlido (> 255) OB 254 u OB 255 (desplazar) u OB 250: El mdulo de datos destino ya se encuentra en la DB-RAM OB 254 u OB 255 (duplicar): El mdulo de datos destino ya se encuentra en la DB-RAM OB 254 u OB 255 u OB 250: Espacio de memoria insuficiente en DB-RAM OB 182: Descripcin del campo de datos no vlida OB 182: Tipo de zona de direcciones no vlido OB 182: NVel mdulo de datos no vlido OB 182: NVe la primera palabra de parmetro no vlido OB 182: Tipo del mdulo de datos fuente no vlido OB 182: NVel mdulo de datos fuente no vlido OB 182: NVe la lvalabra de datos a transfenr en la fuente no vlido OB 182: En la cabeza del mdulo se ha registrado un valor < 5 como longitud del mdulo de datos fuente OB 182: Tipo del mdulo de datos destino no vlido OB 182: NVel mdulo de datos destino no vlido OB 182: NVe la lvalabra de datos a transfenr en el destino no vlido OB 182: En la cabeza del mdulo se ha registrado un valor < 5 como longitud del mdulo de datos destino OB llamado OB 31 Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol AKKU- 1-L 1A34H 1A34H 1A34H 1A34H 1A35H 1A36H 1A3AH 1A3BH 1A41H 1A42H 1A43H 1A44H 1A45H 1A46H 1A47H 1A48H 1A49H 1A4AH 1A4BH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4DH 1A4DH 1A4DH AKKU- 2-L 0220H 0221H 0222H 0223H - - - - - - - - - - - - - - - OOOlH OlOOH OlOlH 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH OOOlH OlOOH OlOlH Significado LZF (error en tiempo de ejecucin)/otros errores en tiempo de ejecucin (continuacin): Indicador de error de ... /por ... : OB 182: Cantidad de palabras de datos a transferir no vlida (= O > 4091) OB 182: Mdulo de datos fuente demasiado corto OB 182: Mdulo de datos destino demasiado corto OB 182: Mdulo de datos fuente almacenado en el EPROM OB 250: Nmero del mdulo de transferencia no vlido OB 250: Longitud difiere en DB x y DB x t l oenDXxyDXx+l OB 221: Valor no admisible para el nuevo tiempo de ciclo (< 1 ms > 13 000 ms) OB 223: Modos de arranque difieren en las CPUs que intervienen en modo multiprocesador OB 240, OB 241 U OB 242: NVel registro de desplazamiento o del mdulo de datos no vlido (< 192 > 255) OB 241: Registro de desplazamiento no inicializado OB 240: Espacio de memoria insuficiente en DB-RAM OB 240: Palabra de datos DW O del mdulo de datos no contiene 'O' OB 240: Longitud del registro de desplazamiento en DW 1 no vlida (no est entre 2 y 256) OB 240: Posicin del indicador no vlida o cantidad de indicadores > 5 OB 120: Valor no admisible en AKK 1 o AKKU-2-L OB 122: Valor no admisible en AKK 1 o AKKU-2-L OB 110: Valor no admisible en AKK 1 o AKKU-2-L OB 121: Valor no admisible en AKK 1 o AKKU-2-L OB 123: Valor no admisible en AKK 1 OB 150: Nmero de funcin no vlido (= O > 2) OB 150: Tipo de zona de direcciones no vlido OB 150: N" de mdulo de datos no vlido OB 150: NVe la lvalabra de campo de datos no vlido OB 150: En la cabeza del mdulo se ha registrado como longitud del mdulo de datos un valor e 5 palabras OB 150: Ao indicado en campo de datos no vlido OB 150: Mes indicado en campo de datos no vlido OB 150: Da de mes indicado en campo de datos no vlido OB 150: Da de semana indicado en campo de datos no vlido OB 150: Hora indicada en campo de datos no vlida OB 150: Minutos indicados en campo de datos no vlidos OB 150: Segundos indicados en campo de datos no vlidos OB 150: Centsimas seg. indicadas en campo de datos no igual a O OB 150: Palabra de campo de datos 3bit O a 3 no es igual a O OB 150: Formato de la hora no corresponde al ajustado en OB 151 OB 151: Nmero de funcin no vlido (= O > 2) OB 151: Tipo de zona de direcciones no vlido OB 151: N" de mdulo de datos no vlido OB llamado OB 31 Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol AKKU- 1-L 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4EH 1A4FH 1A4FH 1A50H 1A51H 1A52H 1A53H 1A54H 1A55H 1A56H 1A57H AKKU- 2-L 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH OOOlH OOOlH 0002H - - - - - - - - Significado LZF (error en tiempo de ejecucin)/otros errores en tiempo de ejecucin (continuacin): Indicador de error de ... /por ... : OB 151: NVe la l val abra del campo de datos no vlido OB 151: En la cabeza del mdulo se ha registrado como longitud del mdulo de datos un valor e 5 palabras OB 151: Ao indicado en el campo de datos no vlido OB 151: Mes indicado en el campo de datos no vlido OB 151: Da de mes indicado en el campo de datos no vlido OB 151: Da de semana indicado en el campo de datos no vlido OB 151: Hora indicada en el campo de datos no vlida OB 151: Minutos indicados en el campo de datos no vlidos OB 151: Segundos indicados en el campo de datos no vlidos OB 151: Centsimas seg. indicadas en campo de datos no igual a O OB 151: Tipo de peticin en campo de datos no vlido ( > 7) OB 151: Formato de la hora no corresponde al ajustado en OB 150 OB 152: N" de funcin no vlido (no es igual a O, 1,2,3,8,15) OB 153: N" de funcin no vlido ( = O o < 0) OB 153: Tiempo de retardo no vlido LRW, TRW: La direccin de memoria calculada < BR + constante > no se encuentra en la zona "O.. EDFFH" (v. cap. 9) LRD, TRD: La direccin de memoria calculada < BR + constante > no se encuentra en la zona "O.. EDFEH" (v. cap. 9) TSG, LB GB, LW GW, TB GB, TW GW: La direccin lineal calculada < BR + constante > no se encuentra en la zona "O.. EFFFH" LB GW, LW GD, TB GW, TW GD: La direccin lineal calculada < BR + constante > no se encuentra en la zona "O.. EFFEH" LBGD,TBGD: La direccin lineal calculada < BR + constante > no se encuentra en la zona "O.. EFFCH" TSC, LB CB, LW CW, TB CB, TW CD: La direccin de pgina calculada < BR + constante > no se encuentra en la zona "F400H .. FBFFH" LB CW, LW CD, TB CW, TW CD: La direccin de pgina calculada < BR + constante > no se encuentra en la zona "F400H .. FFFEH" LBCD,TB CD: La direccin de pgina calculada < BR + constante > no se encuentra en la zona "F400H .. FBFCH" OB llamado OB 31 Anexo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol AKKU- 1-L 1A58H 1A59H AKKU- 2-L - - QVZ (retardo en acuse de recibo) Significado LZF (error en tiempo de ejecucin)/otros errores en tiempo de ejecucin (continuacin): Indicador de error de ... /por ... : TNW/TNB: El bloque fuente no est completo en una de las zonas siguientes: 0000 .. 7FFF Memoria de usuario (v. captulo 9) 8000 .. DD7F RAM de mdulos de datos DD80.. E3FF DB O E400 .. E7FF Marcas S E800 .. EDFF Datos de sistema (BA, BB, BS, BT, Z, T) EEOO.. EFFF Marcas, imagen de proceso FOOO.. FFFF Periferia TNW/TNB: El bloque destino no est completo en una de las zonas siguientes: 0000 .. 7FFF Memoria de usuario (v. captulo 9) 8000 .. DD7F RAM de mdulos de datos DD80.. E3FF DB O E400 .. E7FF Marcas S E800 .. EDFF Datos de sistema (BA, BB, BS, BT, & T) EEOO.. EFFF Marcas, imagen de proceso FOOO.. FFFF Periferia 1E23H 1E25H 1E26H 1E27H 1E28H OB llamado OB 31 yyyyH yyyyH yyyyH yyyyH yyyyH ADF (error de direccionamiento) Retardo en acuse de recibo (QVZ) en el programa de usuario al acceder a la periferia yyyy = direccin QVZ Retardo en acuse de recibo al emitir la imagen de proceso de las salidas digitales yyyy = direccin del byte de salida no acusado Retardo en acuse de recibo al actualizar la imagen de proceso de las entradas digitales yyyy = direccin del byte de entrada no acusado Retardo en acuse de recibo al actualizar las salidas de marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado Retardo en acuse de recibo al actualizar las entradas de marcas de acoplamiento yyyy = direccin del byte de marcas de acoplamiento no acusado 1E4OH OB 23 OB 24 yyyyH Error de direccionamiento (AF) en el programa de usuario yyyy = direccin AF OB 25 Anexo A.3 Operaciones STEP 5 no disponibles en la CPU 928B Las operaciones STEP 5 de la CPU 9461947 y CPU 948 indicadas a continuacin no son ejecutables en la CPU 928B: Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol Instruccin BAS BAF P E, A, M, Z, T, D, BA, BB, BS, BT PN E, A, M, Z, T, D, BA, BB, BS, BT SU E, A, M, Z, T, D, BA, BB, BS, BT RU E, A, M, Z, T, D, BA, BB, BS, BT LIM SIM UBE STW AFS AFF AAF AAS Funcin Bloquear salidas Habilitar salidas Comprobar si bit es '1' Comprobar si bit es 'O' Activar bit de forma incondicional Rearmar bit de forma incondicional Cargar mscara de interrupciones Activar mscara de interrupciones Fin del mdulo de interrupcin Instruccin de parada del procesamiento de alarmas temporizadas Bloquear interrupcin de error de direccionamiento Habilitar interrupcin de error de direccionamiento Habilitar procesamiento de alarma de peticin Bloquear procesamiento de alarma de peticin Anexo A.4 Identificaciones de los niveles de procesamiento Las identificaciones corresponden a las registradas en el campo NIVEL de la pila USTACK (hexadecimal). Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol Identificacin 0002H 0004H 0006H 0008H OOOAH OOOCH OOOEH OOlOH 0012H 0014H 0016H 0018H OOlAH OOlCH OOlEH 0020H 0022H 0024H 0026H 0028H 002AH 002CH 002EH 0030H 0032H 0034H 0036H 0038H 003AH 003CH 003EH 0040H 0042H 0044H 0046H Nivel Nuevo arranque Ciclo Alarma temporizada 5 s Alarma temporizada 2 s Alarma temporizada 1 s Alarma temporizada 500 ms Alarma temporizada 200 ms Alarma temporizada 100 ms Alarma temporizada 50 ms Alarma temporizada 20 ms Alarma temporizada 10 ms Peticin de tiempo No ocupada Regulacin No ocupada Alarma de retardo No ocupada Alarma de proceso No ocupada Nuevo arranque manual con memoria Nuevo arranque automtico con memoria Aborto Error de interfaz Colisin de alarmas temporizadas Error de regulador Error de ciclo No ocupada Error en cdigo de instruccin Error en tiempo de ejecucin Error de direccionamiento Retardo en acuse de recibo No ocupada No ocupada Rearranque manual Rearranque automtico Anexo A.5 Ejemplo de "evaluacin de la pila USTACK" Este ejemplo (muy simplificado) ilustra cmo proceder a la hora de evaluar el USTACK. Lase a este respecto el captulo 5.3 "Bits de control y pila de interrupciones"! Punto de partida La CPU ha abortado el procesamiento cclico del programa y ha pasado al estado STOP. Anlisis de errores Para averiguar la causa del error, activar la funcin on line del aparato de programacin "Salida/USTACKU . En el PG se visualizan primero los bits de control: >>STP<< STP-6 FE-STP X >>ANL<< ANL-6 NEUSTA X >>RUN<< RUN-6 EINPROZ X 32KWRAM I6KWRAM 8KWRAM X URGELOE URL-IA STP-VER BARBEND PG-STP STP-SCH STP-BEF MP-STP X M W A A W A ANL-2 NEUZU MWA-ZUL X X BARB OB1 GEL FBOGEL OBPROZA OBWECKA X EPROM KM-AUS KM-EIN DIG-EIN DIG-AUS X X ANL-ABB UA-PG UA-SYS UA-PRFE UA-SCH l DXO-FE FE-22 MOF-FE RAM-FE DBO-FE DBI -FE DB2-FE KOR-FE l l N A U P E U B A U STUE-FE Z Y K Q V Z A D F WECK-FE I B C F FE-6 FE-5 FE-4 FE-3 L Z F REG-FE X DOPP-FE En los bits de control se indica el estado operativo actual de la CPU (>>STP<<). Tambin estn marcadas ciertas caractersticas de la CPU (OB 1 cargado, modo monoprocesador, 16KW de memoria de usuario etc.). En la lnea superior de la pantalla est marcado con una cruz STP-BEF como causa del estado STOP. Se supone que en el programa de usuario STEP 5 no se ha programado ninguna instruccin STP. Por consiguiente, la causa del STOP slo puede haber sido una instruccin de parada por parte del programa de sistema, debida a un OB de error no cargado. En la lnea inferior est marcada la identificacin LZF. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol Anexo Al producirse un error en tiempo de ejecucin el programa de sistema posiblemente ha detectado que el correspondiente mdulo de organizacin de error no est programado. Puesto que existen distintos errores en tiempo de ejecucin y el usuario no sabe de cul se trata en este caso, las informaciones de los bits de control no son suficientes. Por lo tanto hay que visualizar la pila de interrupciones USTACK: PROFUND. 01 BEF-REG: 0000 SAZ: 0000 DB-ADR: 0000 BA-ADR: O000 BST-STP: 0001 SAZ-NR.: 226 DB-NR.: -NR.: REL-SAZ: 0006 DBL-REG.: O000 NIVEL: 003A UAMK: 0120 UALW: O000 AKKUI: 0000 OA01 AKKU2: 0000 0000 AKKU3: 0000 0000 AKKU4: 0000 0000 - INFO RESULTADO: ANZI ANZO OVFL OVFLS ODER ERAB STATUS VKE CAUSA DE ERROR: NAU PEU BAU MPSTP ZYK QVZ ADF STP BCF S-6 LZF REG-FE X STUEB STUEU WECK DOPP La pila USTACK de profundidad 01 representa el nivel de procesamiento que estaba activado antes de que la CPU pasara al estado STOP. La identificacin 003A (detrs de NIVEL) indica que se trata de la pila USTACK del nivel de procesamiento ERRORES EN TIEMPO DE EJECUCION. En el AKKU 1 est depositada la identificacin de error 00001A01, lo que significa que se ha producido un error en tiempo de ejecucin debido a un mdulo no cargado al ejecutar la instruccin 'A DB'. Puesto que el correspondiente OB 19 de error no existe en el programa de usuario, el programa de sistema ha abortado el procesamiento del programa (STP). En la palabra de la mscara de indicadores de interrupcin UAMK tambin estn indicadas las causas de la interrupcin: la identificacin 0120 corresponde a la configuracin binaria "0000 O001 O010 0000". Los bits 25 (LZF) y 28 (STP) estn activados. Ahora queda por averiguar en qu mdulo y por medio de qu instruccin ha tenido lugar el error en tiempo de ejecucin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol Anexo Pulsando nuevamente la tecla de validacin se visualiza en pantalla la PILA DE INTERRUPCION de profundidad 02: Pl l A DE INTERRUPCION PROFUND. 02 BEF-REG: 2006 SAZ: 0037 DB-ADR: 0000 BA-ADR: O000 BST-STP: 0001 OB-NR.: 1 DB-NR.: -NR.: REL-SAZ: 0004 DBL-REG.: O000 NIVEL: 0004 UAMK: 0020 UALW: O000 AKKUI: O001 1001 AKKU2: 0000 0101 AKKU3: 0000 0000 AKKU4: 0000 0000 - INFO RESULTADO: ANZI ANZO OVFL OVFLS ODER ERAB l l STATUS VKE l 1 CAUSA DE ERROR: NAU PEU BAU MPSTP ZYK QVZ l ADF STP BCF S-6 LZF REG-FE X l \ STUEB STUEU WECK DOPP ) La identificacin 0004 (detrs de nivel) indica que se trata de la pila de interrupcin del nivel de procesamiento CICLO, el cual ha sido interrumpido. El contador de direcciones STEP (SAZ) indica la direccin 0037H. La instruccin que ha causado el error est depositada en esta direccin absoluta en el programa de usuario. El cdigo indicado es 2006 (BEF-REG). Consultando la lista "Listado del cdigo mquina" de la lista de operaciones puede descifrarse el cdigo como operacin STEP 5 'ADB 6'. La interrupcin ha tenido lugar en el mdulo de organizacin OB 1. En el OB 1 se encuentra la instruccin que ha causado el error en la direccin relativa 0004 (REL-SAZ). Esta instruccin caus un error en tiempo de ejecucin como se ha podido comprobar anteriormente (vase UAMK, bit 25 y CAUSA DE ERROR). Hacer visualizar ahora en el aparato de programacin la instruccin errnea con la funcin on line "Salida/Mdulo/RASTREO". Indicar el mdulo correspondiente (OB 1) y la direccin relativa de la instruccin. Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol Anexo SALIDA APARATO: AG MODULO: OB1 BUSQUEDA : 4H SAZ-REL Despus del rastreo el aparato de programacin muestra en pantalla la instruccin "A DB 6" que ha causado la interrupcin debido a que falta un mdulo de datos con el nmero 6 en la memoria de usuario. SEGMENTO 1 0000 0004 :A DB 6 instruccin que causa el error 0005 : 0006 : 0007 : 0008 :BE Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870,Ol Bibliografa 111 s5-135u/155u CPU 922lCPU 928lCPU 928B/CPU 948 Lista de operaciones N q e ref.: 6ES5 997-3UA41 121 s5-135u/155u Manual del sistema N q e ref.: 6ES5 998-OSH41 131 STEP 5 Manual N q e ref.: C79000-G8578-C140 141 GRAPH5 Manual N q e ref.: C79000-G8576-C161 (en ingls) 151 Mdulos de funciones estndar Mdulos de comunicacin CPU 922, CPU 928, CPU 928B Autmata programable S5-135U, S5-155U 161 SINEC CP 143 with COM 143 Manual N q e ref.: 6GK1970-1AB43-OABO (en ingls) 171 Hans Berger: Automating with the SIMATIC S5-135U (Automatizacin con SIMATIC S5-135U) SIEMENS AG ISBN 3-8009-1561-8 N q e ref.: A19100-L531-F505-x-7600 (en ingls) Instrucciones de programacin CPU 928B-3UB21-3UB21 C79000-G8578-C870-01 Biblioara fa 181 Programmable Controllers Basic Concepts (autmatas programables - conceptos generales) SIEMENS AG N q e ref.: A19100-L531-F914-X-7600 (en ingls) 191 Catlogo ST 59: Aparatos de programacin SIMATIC S5 1101 Catlogo ST 54.1: Autmatas programables S5-135U, S5-155U y S5-155H 1111 Catlogo ST 57: Standard Function Blocks and Driver Software for Programmable Controllers of the U-Range (Mdulos de funciones estndar y programas drivers para autmatas programables SIMATIC S5 de la serie U) 1121 SCL Manual N q e ref.: C79000-G8576-C162 (en ingls) 1131 R64 Compact Closed-Loop Control (Estructura de reguladores R64) 1141 S5-135U Comunicacin CPU 928B Manual N q e ref.: 6ES5 998-OCN41 Asimismo pueden consultarse otras obras estndar en castellanno referentes al tema de la automatizacin. Instrucciones de programacin CPU 928B-3UB21-3UB21 C79000-G8578-C870-01 Lista de abreviaturas (El significado de las abreviaturas correspondientes a la PILA DE INTERRUPCIONES (USTACK) se explica en el 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 o ANZW AWL BASP BCD BR BSTACK CP CPU DB DBA DBL DX EG EPROM ERAB FB FUP EX 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") Palabra indicadora Lista de instrucciones Bloqueo de salidas (seal a 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 de slo lectura programable, borrable con ultravioleta) Primera consulta (indicador bit) Mdulo de funciones Esquema de funciones Mdulo de funciones ampliado Interface Modul (mdulo de interfaces) Tarjeta de E/S inteligente Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 Lista de abreviaturas KOP KOR LED NAU PA PAA PAE PAFE PARE PB PEU PG QVZ RAM SAZ SB SPU STA STS STUEB STUEU SUF TRAF USTACK VKE ZG ZYK Esquema de contactos Tarjeta coordinadora light-emitting diode (diodo luminoso) Fallo de la tensin de red Mdulo de organizacin O (indicador bit) Overflow (desbordamiento) memorizado (indicador palabra) Overflow (desbordamiento) (indicador palabra) Imagen de proceso Imagen de proceso de las salidas Imagen de proceso de las entradas Byte de error de parametrizacin Error de paridad Mdulo de programa Fallo de la tensin de red en el 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 Status (estado) (indicador bit) Instruccin de parada (stop) Desbordamiento de la pila de mdulos BSTACK Desbordamiento de la pila de interrupciones USTACK Error de sustitucin Error de transferencia o carga Pila de interrupciones Resultado de combinacin (=lgico) Aparato central Error de ciclo Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lndice alfabtico Accesos a la memoria a travs del registro BR 9-24 generalidades 9-2 Acoplamiento PG-AG a travs de interfaz serie 11-16 Acumuladores 3-13,6-1,6-9 ADF (error de direccionamiento) 5-22,5-45 ALARMA DE PROCESO 4-6,4-8,4-25,4-36 ALARMA DE REGULADOR 4-6,4-8, 4-25,4-35 interrupciones 4-35 ALARMA DE RETARDO 4-8,4-25,4-28 interrupciones 4-29 particularidades 4-29 ALARMA TEMPORIZADA 4-6,4-8,4-25 Alarma temporizada controlada por reloj 4-28 - 4-29 interrupciones 4-30 particularidades 4-31 Alarmas bloquear 6-11 retardar 6-16 Alarmas de proceso activadas por flancos 4-38 bloquear 3-66,4-38 habilitar 3-66,4-38 interrupciones 4-36 procesamiento 4-36 Alarmas temporizadas 4-31 con escalas de tiempo fijas 4-25 controladas por reloj 4-28 interrupciones 4-32 puntos de interrupcin 4-32 ALRMA DE RETARDO 4-6 Ampliacin de signo 6-82 Anidamiento de niveles de procesamiento 4-7 ARRANQUE 4-2 ejecutar 4-16 errores en el arranque 5-25,5-32 generalidades 3-10,4-15 interrupciones 4-22 modos de arranque 6-84 BCF (error en cdigo de instruccin) error de parmetro 5-22,5-33,5-35 error de sustitucin 5-22,5-33 - 5-34 error en cdigo de operacin 5-22,5-33,5-35 Bits de control 5-3,5-7 - 5-8 BORRADO TOTAL 4-14 BSTACK (pila de mdulos) 5-3 evaluar 5-6 leer 6-47 salida 5-5 Campo de validez de un mdulo de datos abierto 2-38 Campos de aplicacin de la CPU 928B 1-2 CICLO 4-25 interfaz con el usuario OB 1 4-27 nivel 4-6, 4-8,4-26 procesamiento cclico 3-2,3-10 puntos de interrupcin 4-27 Cdigo de operacin 2-5 Combinaciones 3-47 binarias 3-17 digitales 3-48 COMPRIMIR MEMORIA 2-13 Comunicacin en multiprocesamiento almacenamiento intermedio de datos 10-16 ejecucin 10-13 ejemplos de aplicacin 10-50 emitir datos 10-38 identificacin de emisorlreceptor 10-15 inicializar 10-30 lista de asignaciones 10-34 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lndice - 1 lndice alfabtico modos de operacin 10-33 recibir datos 10-45 G unidad de transferencia 10-13 Conjunto de operaciones 2-2 GRAPH5 Contadores Z 1-11 Corregir mdulos 2-13 H Datos del sistema 8-13 DBA (direccin inicial del mdulo de datos) 9-9 DBL (longitud del mdulo de datos) 9-12 Decrementar 3-60 Definicin de la "9"ista" 4-19 Direccionamiento 1-12 Elemento operando 2-5 Elemento operante 2-5 ERAE3 (primera consulta) Ver Indicadores de resultado Estadstica de ciclo 6-35 ESTADO DE ESPERA 11-4 Estados operativos 4-2, 11-4 Estructura de la zona de memoria 8-1 - 8-2,8-4 Estructura de reguladores R64 4-35 Evitar errores 5-2 Exponente Ver Nmero de coma flotante FE-3 (error de comunicacin) 5-22,5-53 Fecha 6-23 Funcin cclica 11-24 Funcionamiento de la CPU 1-3 Funcionamiento paralelo de interfaces serie del PG funciones cclicas 11-19, 11-22 funciones de corta duracin 11-19, 11-21 funciones de larga duracin 11-19, 11-22 Funciones de PG generalidades 11-2 Funciones especiales error en el procesamiento 6-5 generalidades 6-3 interfaces 6-4 FUP (esquema de funciones) 2-2 Herramientas de programacin Hora del sistema Identificaciones de error Imagen de proceso actualizar de entradas (PAE) de salidas (PAA) generalidades Incrementar Indicador LED indicadores de resultado VerANZlyANZ2 Indicadores de resultados ERAE3 ANZlyANZO 3-15,3-56 generalidades 3-14 OR ( 0) 3-15 OS 3-15 OV 3-15 STA 3-15,3-18 VKE 2-5,3-15,3-18 Informaciones sobre errores 5-3 Interfaces con el usuario para alarma de reguladores 4-35 para alarma de retardo 4-28 para alarma temporizada controlada por reloj 4-30 para alarmas de proceso 4-36 para alarmas temporizadas 4-31 para el arranque 4-19 para procesamiento cclico 4-27 Interfaz con el programa de sistema 1-8,2-16 con el programa de usuario 1-6 segunda interfaz serie 5-29 LED BASP LED RUN LED STOP lndice - 2 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lndice alfabtico Lenguaje de programacin GRAPH 5 1-16 SCL 1-16 STEP 5 1-16 Lenguaje de programacin SCL 1-16 Lenguaje de programacin STEP 5 2-2 LFZ (error en tiempo de ejecucin) 5-37,5-39 Lista de asignaciones 2-5,2-22 Mantisa Ver Nmero en coma flotante Marcas de acoplamiento ajuste/manipulacin de los puentes 10-4 generalidades 3-12,lO-4 intercambio de datos a travs de las marcas 10-4 transferir en bloque 6-85 transferir marcas de acoplamiento 10-7 Marcas de trabajo 10-50 Marcas M 1-10,lO-22 Marcas S 1-10 Mscara de PG para generar el DB 1 10-10 Memoria de usuario 1-8 organizacin 8-7 Memoria global acceso 9-28 generalidades 9-2 Memoria local acceso 9-27 generalidades 9-2 Modificar preajuste 1-6 Modo multiprocesador acceso a pginas 6-72 asignacin de periferia 10-8 intercambio de datos entre CPUs y CPS 10-6 mecanismos de comunicacin 10-3 modos de arranque 6-84 Mdulo anidamiento 3-3 antecabeza de mdulo 2-11,2-33 cabeza de mdulo 2-11,2-22,8-8 cuerpo de mdulo 2-11, 2-22,2-34 generalidades 2-4 handling 6-52 identificacin de mdulo 2-34 lista de direcciones 3-6,8-9 llamadas a mdulo 2-14,3-6 nmero de mdulo 2-10, 2-24,2-34 operandos formales (parmetros del mdulo) 2-25 tipo de mdulo 2-24 tipos de mdulo 2-10,2-24 Mdulo de datos actual 1-12 Mdulo de datos DB O 2-39,3-6,5-26 Mdulo de datos DB 1 2-39,5-26 crear 10-9 Mdulo de datos DB 2 2-39,5-28 Mdulo de datos DX O 2-40,7-2 Mdulo de datos DX 1 2-40 Mdulo de datos DX 2 2-40,5-29 Mdulo de funciones FB O 2-32 Mdulo de PG 11-17 Mdulos de comunicacin 6-89 Mdulos de datos generalidades 1-11 Mdulos de datos (DBJDX) abrir 1-12,2-36 acceso a mdulos de datos 6-52 comprobar 6-56 crear 3-31 estructura 2-33 generalidades 2-11,2-33 programar 2-35 Mdulos de funciones (FBPX) estructura 2-22 generalidades 2-10,2-21 llamar y parametrizar 2-23,2-26 mdulos de funciones estndar 2-21, 2-31,6-89 programar 2-23 Mdulos de organizacin (OBs) generalidades 2-10,2-14 OBs de funciones especiales 2-19,6-3 para el control del arranque 2-17 para el tratamiento de errores 2-18 para interfaces con el usuario 2-16 Mdulos de pasos (SB) 2-10,2-14 Mdulos de programa (PB) 2-10,2-14 NAU4-16 - 4-17 Niveles bsicos 4-6,4-8 Niveles de error 4-6,4-8 Niveles de procesamiento del programa generalidades 6-11,6-16 nmero de nivel 6-87 NUEVO ARRANQUE 4-6,4-22 NUEVO ARRANQUE AUTOMATICO Ver NUEVO ARRANQUE NUEVO ARRANQUE MANUAL Ver NUEVO ARRANQUE Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lndice - 3 lndice alfabtico Nmero de biblioteca 2-34 Nmero de coma a la izquierda 6-107,6-112 Nmeros binarios 2-6 Nmeros decimales 2-6 Nmeros duales 2-6 Nmeros en cdigo BCD 2-9 Nmeros en coma fija 2-7 Nmeros en coma flotante 2-7 OBs de comunicacin 10-21 parmetros 10-22 tiempos de ejecucin 10-29 Operacin cero 3-31 Operacin de estructuracin de imagen 3-31 Operacin de parada (stop) 3-31 Operaciones aritmticas 3-29 Operaciones bsicas 2-2,3-17 Operaciones complementarias 2-2,3-47 Operaciones de clculo 3-52 Operaciones de carga 3-19,3-51 Operaciones de comparacin 3-30 Operaciones de conversin 3-58 Operaciones de desplazamiento 3-56 Operaciones de memorizacin 3-18,3-48 Operaciones de organizacin 3-54 Operaciones de procesamiento 3-61 Operaciones de salto 3-54 Operaciones de sistema 2-2, 3-54,9-2 Operaciones de tiempo y contaje 3-24,3-49 Operaciones de transferencia 3-19 Operaciones STEP 5 3-13 Operandos actuales de mdulos de funciones 2-23,2-27 Operandos formales de mdulos de funciones 2-23,3-48 OR ( 0) Ver Indicadores de resultados Organizacin de la memoria 9-2 OS (Overflow memorizado) Ver Indicadores de resultados Pginas acceso a pginas 6-71,9-31 generalidades 6-71 Palabra de datos 1-11, 2-33 - 2-34,2-37 Palabra de indicadores de interrupcin 8-16 Palabras de datos de sistema ocupacin de los bits 8-16 Palabras de datos de sistema BS 3 y BS 4 5-4,5-26 Parametrizar DX O 1-6,4-27, 7-2 Parmetros 2-5 Periferia distribucin de la zona de direcciones 8-1,8-4 - 8-5 tarjetas 1-9 zona P 1-9 zona Q 1-9 PETICION DE TIEMPO 4-6,4-8,4-25, 4-30,6-28 Preajuste del comportamiento de sistema 1-6 Prioridad 1-4, 4-8 Priorizacin 4-39 Procedimiento en la programacin 1-13 Procesadores de comunicacin (CPs) 6-89,lO-6 Procesamiento cclico del programa 1-3, 1-14, 4-26 Procesamiento controlado por alarma 1-4 Procesamiento controlado por tiempo 1-4 alarma de retardo 4-28 alarma temporizada controlada por reloj 4-28 alarmas temporizadas 4-28 con escalas de tiempo fijas (alarma 4-25 con escalas de tiempo fijas (alarmas 4-31 generalidades 4-28 Profundidad de anidamiento 3-6 Programa 4-38 organizacin del programa 3-3 programa de sistema 1-5 Programa de sistema 1-5 Programa de usuario 1-5, 1-7 almacenamiento 1-8 funciones 1-8 Programacin estructurada 2-4 Pseudolmites de instrucciones 6-6 Punto de control del sistema 11-3 Punto de control del usuario 11-3 QVZ (retardo en acuse de recibo) 5-22,5-46 RAM de mdulos de datos (DB-RAM)3-8,6-90 RAM de sistema 8-4 Reacciones ante alarmas 3-11 lndice - 4 Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lndice alfabtico ante errores 2-18,3-11 ante OBs (de error) no cargados 5-23 REARRANQUE 4-6,4-22 REARRANQUE AUTOMATICO Ver REARRANQUE REARRANQUE MANUAL Ver REARRANQUE REG-FE (error de regulador) 5-22,5-50 Registro BR 9-24 Registro de desplazamiento 6-90 Regulacin 6-99 Regulador procesamiento de alarmas de regulador 4-35 Regulador PID 6-99 Representacin numrica 2-6 RUN errores en RUN 5-32 generalidades 4-2,4-24 UALW UAMK USTACK (pila de interrupciones) indicadores informacin de error informaciones en la USTACK informaciones en USTACK salida Valor de contaje Valor de tiempo VKE (resultado de combinacin) Ver Indicadores de resultado Semforos 3-67 Seal BASP 4-21,4-24 Seal de alarma de proceso activada por nivel 4-37 STA (estado) Ver Indicadores de resultado STOP 4-2,4-23 Sucesos de interrupcin 3-12 Supervisin del tiempo de ciclo 3-11 Sustitucin de operandos 3-62 Temporizadores T 1-11 Tiempo de ciclo 3-11,6-35 Tiempo de reaccin 4-38,4-40 Tiempo de retardo 4-25 Tiempo de supervisin de ciclo 6-83 - 6-84 TRAF (errores de cargaltransferencia de mdulos de datos) 5-22,5-38 Transferencia en bloques de memoria 9-16 Tratamiento de errores mediante mdulos de organizacin 5-22 WECK-FE (colisin de alarmas temporizadas) Zona BSIBT ocupacin de la zona BS Zona de marcas M Zona P Ver Periferia Zona Q Ver Periferia Zonalmemoria de pginas clula ocupada Zonas de operandos ZYK (exceso del tiempo de ciclo) ZYK-FE (exceso de tiempo de ciclo) Instrucciones de programacin CPU 928B-3UB21 C79000-G8578-C870-01 lndice - 5