manual de usuario del plm2 - dctrl.fi-b.unam.mxdctrl.fi-b.unam.mx/~salva/muplm2v1.pdf · cuenta con...
Post on 11-Aug-2018
228 Views
Preview:
TRANSCRIPT
MANUAL DE USUARIO DEL PLM2 ( Versión: Noviembre de 2006 )
CONTROLADOR LÓGICO PROGRAMABLE PARA AUXILIO
DIDÁCTICO
Desarrollado en la Facultad de Ingeniería bajo el proyecto PAPIME PE101205 Con el patrocinio de la Dirección General de Asuntos del Personal Académico ( DGAPA )
U. N. A. M.
M. I. Antonio Salvá Calleja Responsable académico Ing. Victor Manuel Sánchez Esquivel Participante académico Ing. María Leonor Salcedo Ubilla Participante académica Ing: José Luis Ramírez Gutierrez Participante académico
ÍNDICE CAPÍTULO 1 1. ASPECTOS BASICOS DEL PLM2 2
1.1 Módulos Lógicos 2 1.2 Notación para las variables binarias 3 1.3 Programación del PLM2 3 1.4 Características básicas del lenguaje SIIL1 3 1.5 Secuencia de ejecución de un programa en SIIL1 4 1.6 Formato de un programa fuente en SIIL1 5 1.7 Ambiente integrado para desarrollo 6 1.8 Aspectos de los componentes de hardware del PLM2 8 1.9 Ambiente de edición y operación del compilador de de SIIL1 (CS) del SD_PLM2
12
1.10 Función del botón “e-ram” 12 1.11 Función del botón “compilar” 12 1.12 Opciones del menú “Archivo” del AEO 13 1.13 Opciones del menú “Editar” del AEO 13 Opciones del menú “Buscar” del AEO 13 Manejo del la opción “Buscar” 14 Manejo de la opción “Cambiar” 15 1.14 Ejemplo ilustrativo: Arrancador de un motor trifásico 16 Referencias al capítulo 1 19
CAPÍTULO 2 2 DIAGRAMAS DE COMPONENTES DE HARDWARE DEL PLM2 20
2.1 Esquemático de tarjeta FACIL_11C ( h 1 de 3 ) 21 2.2 Esquemático de tarjeta FACIL_11C ( h 2 de 3 ) 22 2.3 Esquemático de tarjeta FACIL_11C ( h 3 de 3 ) 23 2.4 Esquemático de tarjeta E/S_BIN_PLM2 ( h 1 de 3 ) 24 2.5 Esquemático de tarjeta E/S_BIN_PLM2 ( h 2 de 3 ) 25 2.6 Esquemático de tarjeta E/S_BIN_PLM2 ( h 3 de 3 ) 26 2.7 Esquemático de tarjeta ESAN_FP_PLM2 ( adecuador de entrada analógica 0 )
27
2.8 Esquemático de tarjeta ESAN_FP_PLM2 ( adecuador de entrada analógica 1 )
28
2.9 Esquemático de tarjeta ESAN_FP_PLM2 ( convertidor D/A ) 29 2.10 Esquemático de tarjeta ESAN_FP_PLM2 (fuente de poder del PLM2 ) 30
CAPÍTULO 3 3-MÓDULOS REALIZABLES POR EL PLM2 31 3.1 MÓDULOS LÓGICOS (ML) 32 3.1.1 Descripción del ML de seguimiento lógico 32 3.1.2 Descripción del ML de inversión lógica 33 3.1.3 Descripción de los ML que realizan compuertas de dos entradas 34 3.1.4 Descripción de los ML que realizan compuertas de tres entradas 36 3-1.5 Descripción de los ML que realizan compuertas de cuatro entradas 38 3.1.6 Descripción de los ML que realizan flip-flops r-s asíncronos 40
3.1.7 Descripción del ML que realiza un contador de eveentos· 43 3.1.8 Descripción del ML secuenciador de estados NbxNE 46 3.1.9 Descripción del ML temporizador monodisparo del primer tipo 52
i
3.1.10 Descripción del ML Temporizador Monodisparo del segundo tipo 56 3.1.11 Descripción del ML que realiza temporizadores con retardo
a la activación (on-delay) o con retardo a la desactivación (off-delay)
59 3.1.12 Descripción del ML que realiza temporizadores astables 62 3.1.13 Descripción del ML que realiza temporizadores con
capacidad para generar n pulsos a intervalos de tiempo especificados por el usuario
66 3.1.14 Descripción del ML que realiza temporizadores con
capacidad de generación de pulsos en instantes de acuerdo al estado del reloj de tiempo real (RTR)
70 3-2.-MÓDULOS AUXILIARES (MA) 74
3.2.1 Descripción del MA con capacidad para generar texto estático y/o dinámico en la UD del PLM2
74
3.2.2 Descripción del MA con capacidad para generar mensajes de alarma en la UD del PLM2
78
3.2.3 Descripción del módulo observador del estado de contadores de eventos
81
3.2.4 Descripción del módulo manejador del reloj de tiempo real (RTR)
82
3.2.5 Descripción del MA “DESP”, que copia a la UD el contenido de su buffer asociado
84
3.2.6 Descripción del MA ”MANDESP”, que permite observar para verificación, el texto asociado con módulos de tipo mensajero
84
APÉNDICE A LISTA DE ERRORES DE SINTAXIS PARA EL LENGUAJE SIIL1
86
APÉNDICE B COMPONENTES DE LAS TARJETAS ELECTRÓNICAS DEL PLM2
91
ii
CAPÍTULO 1 ASPECTOS BASICOS DEL PLM2
1
1. ASPECTOS BASICOS DEL PLM2 Los Controladores Lógicos Programables, PLC por sus siglas en inglés, son dispositivos de uso muy extendido en la automatización de procesos en la Industria, fundamentalmente efectúan esto mediante la realización virtual de funciones de Control Lógico tales como: Compuertas Lógicas, Temporizadores, Contadores de Eventos y Secuenciadores. Los PLC comerciales cuentan con software que facilita la configuración de los mismos para la realización de la automatización de un proceso determinado, esto mediante el concurso de las funciones de Control Lógico ligadas a sensores y actuadores binarios apropiados. En el Departamento de Ingeniería de Control de la División de Ingeniería Eléctrica de la Facultad de Ingeniería de la UNAM, se desarrolló un PLC prototipo que se denominó PROGRAMADOR LÓGICO MODULAR (PLM), el cual cuenta con su propio lenguaje de programación para el desarrollo de aplicaciones, este dispositivo inicial contó con 32 entradas y 16 salidas binarias y se construyeron dos prototipos, [1], [2]. El PLM2 es una evolución de estos prototipos previos, el cual cuenta con 16 entradas y 8 salidas binarias además de tener hardware para el manejo de dos entradas y una salida analógicas. El desarrollo del PLM2 se hizo bajo el proyecto PAPIME PE101205 patrocinado por la Dirección General de Asuntos del Personal Académico de la UNAM DGAPA. Además de las variables binarias de entrada (VBE) y de salida (VBS) el PLM2 puede manejar 168 variables binarias de interloc denominadas como intermediarias (VBI). Las variables aquí mencionadas están agrupadas en conjuntos de ocho de ellas. De acuerdo a las funciones fundamentales que un Controlador Lógico Programable (PLC) puede realizar [4],[1], [2]; el hardware que lo constituye es en lo general, una arquitectura basada en microcontrolador o microprocesador, con diversos puertos de entrada y salida con sendos adecuadores de nivel; sin embargo, lo que ha proyectado su gran penetración en el mercado ha sido entre otras cosas la existencia de un lenguaje de programación asociado, lo que permite al usuario final el programar a este tipo de dispositivos de una manera ágil y sencilla, no requiriéndose de su parte el dominar detalles acerca de microcontroladores o microprocesadores en relación al hardware y a la programación de los mismos. El núcleo central de hardware alrededor del cual se diseñó el PLM2 lo constituye una tarjeta para aprendizaje y desarrollo de aplicaciones denominada FACIL_11C [3], la cual fue diseñada por uno de los autores y esta basada en el bien conocido microcontrolador 68HC11F1 de MOTOROLA. Además de la tarjeta FACIL_11C el PLM2 cuenta con otras dos tarjetas electrónicas, que contienen el hardware de optoacoplamiento para las entradas, los relevadores de salida y la fuente de alimentación.A las funciones de Control Lógico básicas, se les denominó módulos lógicos (ML). Los módulos lógicos que puede realizar el PLM2 constituyen los bloques funcionales elementales para la realización de aplicaciones de control lógico con el mismo. Al desarrollar una aplicación con el PLM2, cada módulo lógico debe ser declarado por medio de uno o varios renglones de texto que expresan en alguna forma el tipo de módulo y características del mismo. Al conjunto de instrucciones mencionadas en el párrafo anterior se le denomina programa fuente en SIIL1, que es el lenguaje de programación propio del PLM. Empleando VisualBasic se desarrolló un ambiente integrado para prueba y depuración de aplicaciones con el PLM2, se le llamó SD_PLM2, y el mismo integra en un solo programa las facilidades de edición, generación de código objeto y carga para ejecución de éste en el procesador del PLM2. 1.1. Módulos Lógicos (ML) Los módulos lógicos (ML) que puede realizar el PLM pueden ser representados a nivel de “caja negra” como se muestra en la figura 1.1, donde se muestra un ML que presenta “n” entradas y “m” salidas; “m” y “n” varían de acuerdo con el tipo de función que un determinado ML realice; así por ejemplo, para una compuerta AND de tres entradas “m” y
2
“n” serían tres y uno respectivamente; en cambio, un secuenciador de estados con palabras de cuatro bits requerirá tres entradas y cinco salidas.
Figura 1.1. Representación genérica de un módulo lógico de “N” entradas y “M” salidas Los módulos lógicos propios del PLM son:
• Compuertas and, nand, or, nor, xor, y xor negada de dos, tres y cuatro entradas. • Inversores y seguidores lógicos. • Cinco tipos diferentes de temporizador. • Dos tipos de contadores de eventos. • Secuenciadores de estado de uno a ocho bits. • Flip-Flops asíncronos.
Para información más detallada acerca de estos puede verse el capítulo 3 de este manual. 1.2 Notación para las variables binarias Las variables binarias asociadas con el PLM2 se denotan con una letra (“e” para entrada, “s” para salida e “i” para intermediaria) seguida por dos números que designan al grupo y número de variable implicada. Así, “E10” denotaría a la variable binaria cero del grupo de entradas uno, “I37” designaría a la variable binaria siete del grupo tres de variables intermediarias y “S04” denotaría a la variable binaria cuatro del grupo de salidas dos. 1.3 Programación del PLM2Una determinada aplicación de automatización realizada con el PLM2, requerirá del concurso de diversos módulos lógicos interconectados, estando las entradas de algunos de ellos asociadas con los sensores binarios empleados, habiendo además módulos cuyas salidas estarían asociadas con los actuadores binarios utilizados. En [1] se describen diversos ejemplos de aplicación. 1.4 Características básicas del lenguaje SIIL1 Al desarrollar una aplicación con el PLM, cada módulo lógico debe ser declarado por medio de uno o varios renglones de texto que expresan en alguna forma el tipo de módulo y características del mismo, de esta forma al conjunto de módulos requeridos le corresponderá una serie de renglones contenidos en un archivo de texto, el cual es procesado por una PC mediante software que genera el código objeto que deberá ejecutar el procesador central del PLM2, que para el prototipo piloto es una tarjeta basada en el microcontrolador 68HC11F1 operando en modo expandido; además de las declaraciones asociadas con los módulos lógicos, se requiere de otras instrucciones que no están propiamente relacionadas con un determinado módulo, pero son necesarias para delimitaciones de ejecución del programa objeto en el procesador del dispositivo. Al conjunto de instrucciones mencionadas en el párrafo anterior se le denomina programa fuente en lenguaje SIIL1, asociado con la aplicación que se desea realice el PLM2. A excepción de los
3
módulos tales como los secuenciadores de estado que requieren datos adicionales que no cabrían en un renglón, la forma sintáctica de las declaraciones asociadas cabe en un renglón, ésta se ilustra a continuación: CODM#N E1,.. En,..S1,..Sm, D1,..Dq, CADBI; Donde:
• CODM es una cadena de caracteres que simboliza la función efectuada por el módulo. • N es el número asociado con el módulo, ya que todos los ML de un mismo tipo de una
aplicación, deben ser numerados. • E1 a En son las designaciones asociadas con las n variables de entrada. • S1 a Sm son las designaciones asociadas con las m salidas. • D1 a Dq son datos auxiliares que pudieran ser requeridos por algunos módulos. Estos
podrían ser entre otros: el tiempo asociado con la duración de un pulso generado por un temporizador, o bien, el número de estados que ha de presentar un secuenciador, etc. Hay módulos que no requieren de estas especificaciones, como las compuertas lógicas. Para los módulos que si requieren de estos datos, “q” es un número que está comprendido entre cero y tres.
• CADBI es una cadena formada por unos y ceros, que especifica diversas características de funcionamiento, como podrían ser: qué entradas a una compuerta van a tener negación implícita, a qué tipo de flanco responde una entrada de algún otro tipo de módulo, etc.
Cabe señalar que el primer caracter de la instrucción nunca deberá estar en la primera columna y que al final de la misma siempre ha de colocarse el caracter “;”. Todo texto a la derecha del caracter “;” no es tomado en cuenta por el software generador del código objeto, de esta manera el usuario podrá colocar comentarios en el programa fuente; si se desea tener un renglón completo como comentario, simplemente se coloca en la primera columna del mismo ya sea el carácter “;” o bien el carácter “*”. Para fines ilustrativos, a continuación se presenta la declaración en SIIL1 correspondiente a una compuerta AND de dos entradas que se desea sean las variables físicas E01 y E12; se requiere que las entradas no tengan preinversión y que la salida sea la variable intermediaria I02, además a esta compuerta se le asigna el número uno; la forma sintáctica asociada es: AND2#1 E01, E12, I02, 11; Para detalles acerca de las formas sintácticas para declarar cada uno de los módulos lógicos realizables con el PLM2 puede consultarse el capítulo 3 de este manual. 1.5 Secuencia de ejecución de un programa en SIIL1 Al correr un programa en SIIL1 en el procesador del PLM2, el código asociado con cada ML es ejecutado cíclicamente siguiendo la siguiente secuencia: 1.- Se copian en un buffer de entrada (BE) en RAM el estado que guardan los puertos asociados con las 16 entradas físicas VBE. 2.- Se ejecuta uno a uno el código asociado con cada uno de los ML que el usuario haya declarado en el programa fuente correspondiente, actualizándose un buffer de salida (BS). 3.- Se copia el estado del BS en el puerto físico asociados con las VBS. 4.- Se regresa al paso uno. Existen módulos que requieren que el periodo de repetición de la ejecución de su código asociado sea constante (10 ms), tal es el caso por ejemplo de los temporizadores, para hacer esto posible el código asociado es colocado en una rutina de servicio de interrupción que es invocada con una
4
periodicidad de 10 ms, empleándose para ello facilidades de temporización con que cuenta el microcontrolador que realiza el procesador del PLM2. En consecuencia, el código asociado con un programa en SIIL1 está dividido en dos partes, una de ellas es la que se ejecuta de acuerdo con los cuatro pasos descritos en el párrafo anterior, a esta parte se le llama subprograma principal (SPP), la otra parte está constituida por el código cuya ejecución es temporizada y se denomina subprograma temporizado (SPT). 1.6 Formato de un programa fuente en SIIL1 De acuerdo a lo explicado en la sección anterior, un programa fuente en SIIL1 deberá estar integrado por una serie de sentencias, varias de ellas serán declaraciones asociadas con los módulos lógicos que la aplicación requiera y otras serán simplemente delimitadores del código fuente de los subprogramas principal y temporizado. En general el formato de un programa fuente en SIIL1 deberá presentar la siguiente forma: INPROG; delimitador de inicio del SPP. Sentencias asociadas con declaraciones de módulos que deben estar en el SPP. FINPP; delimitador de fin de SPP. INMODI; delimitador de inicio de SPT. Sentencias asociadas con declaraciones de módulos que deben estar en el SPT. FINMODI; delimitador de fin de SPT. Para aclarar ideas, en la figura 1.2 se muestra un sistema lógico integrado por dos módulos: una compuerta and de dos entradas cuya salida es la señal de disparo de un temporizador monodisparo (one shot) que genera un pulso verificado en bajo de dos minutos de duración, esto al presentarse una transición de bajo a alto en su entrada de disparo, las entradas a la compuerta son las variables binarias de entrada E00 y E01; la salida binaria del PLM donde se desea se genere el pulso es S00; nótese el uso de la variable intermediaria I00 como enlace entre la salida de la compuerta y la entrada del temporizador, además del empleo de la entrada binaria E03 como señal de restablecimiento para el temporizador.
Figura 1.2 Sistema lógico realizado con el PLM2 Detalles acerca de la operación de los temporizadores del PLM y la sintaxis en SIIL1 asociada con las declaraciones de los mismos pueden consultarse en el capítulo 3 de esta guía. El programa fuente en SIIL1 asociado es el siguiente: INPROG;
5
AND2#1 E00, E01, I00, 11; FINPP; INMODI; TEMPOC#1 I00, E03, S00, 00:02:00.00, 100; FINMODI; 1.7 Ambiente integrado para desarrollo A la primera versión del compilador de SIIL1 se le denominó SGCO (Software Generador de Código Objeto), ésta corre majo MSDOS y genera un archivo binario con extensión BLM que contiene el código objeto ejecutable correspondiente. En el caso de que existan errores de sintaxis el archivo objeto no se produce y en su lugar se genera un archivo ascii que contiene un reporte de los errores de sintaxis encontrados. Para cargar y ejecutar en el PLM el programa objeto, en principio, se pueden usar facilidades contenidas en el software PUMMA_11 [5], el cual es un manejador de microcontroladores 68HC11; de esta forma, para probar una aplicación en el PLM2 se podrían efectuar los siguientes pasos: 1.- Generar, empleando un editor de texto, el archivo que contenga el programa fuente y guardarlo con la extensión sil. 2.- Obtener, mediante el empleo del SGCO, el archivo BLM que contiene el código objeto. 3.- Mediante el software PUMMA_11, cargar y ejecutar en el PLM el código objeto a probar. Cabe señalar que la tarjeta HC11 empleada para realizar el procesador del PLM2, contiene firmware interlocutor compatible con el Software PUMMA_11.
Figura 1.3. Conexionado para desarrollo con el PLM2 empleándole SD_PLM2 En base a la experiencia de obtenida en el desarrollo del software PUMMA_11 se hicieron adecuaciones en éste, obteniéndose el software al que se denominó como “Sistema para Desarrollo con el PLM2” (SD_PLM2), el cual incorpora al SGCO, y emplea las facilidades de comunicación con arquitecturas HC11 contenidas en PUMMA_11. En la figura 1.3 se muestra el esquema de trabajo con el SD_PLM2 que integra en un solo programa las facilidades de edición, generación de código objeto y carga y ejecución de éste en el procesador del PLM2; de esta forma, para probar en el PLM2 un programa en SIIL1, simplemente se abre o introduce el archivo sil que contenga el código fuente y se oprime el botón e-ram, véase la figura 1.4, donde se muestra la presencia en la ventana de edición del archivo el2k2f2.sil que estaría asociado con el ejemplo de sistema lógico realizable con el PLM mostrado en la figura 1.2.
6
Una vez que el usuario ha oprimido el botón e-ram, se procesa internamente el archivo sil presente, en el caso de no encontrarse errores de sintaxis se carga y ejecuta en RAM del procesador del PLM2 el código objeto correspondiente; en otro caso, se reporta al usuario el número de errores detectados y el detalle acerca de cada uno de ellos. Al oprimirse el botón compilar, únicamente se genera el archivo binario asociado con el código objeto, sin bajarse éste al PLM2; en el caso de detectarse errores los mismos son reportados al usuario como se explica en el párrafo anterior.
Figura 1.4. Ventana de edición del SD_PLM2 con el programa que realiza el sistema lógico de la figura 1.2 En la figura 1.5 se muestra la forma como el SD_PLM2 reporta errores de sintaxis en el programa presente en la ventana de edición del SD_PLM2.
Figura 1.5. Reporte de un error de sintaxis por parte del SD_PLM2
7
Cada posible error de sintaxis tiene asociado un número. En el apéndice A de este manual se puede ver la lista de errores por orden del número asociado, en cada caso se presenta una descripción textual de estos. 1.8 Aspectos de los componentes de hardware del PLM2 En las figuras 1.6 a 1.13 se muestran aspectos de las diversas tarjetas electrónicas que integran al PLM2 así como el montaje de éstas en el gabinete del dispositivo y vistas de éste.
Figura 1.6. Tarjeta FACIL_11C, empleada para realizar el procesador del PLM2
Figura 1.7. Tarjeta E/S_BIN_PLM2, contiene el hardware de interfaz de las entradas y salidas binarias y circuitos auxiliares de interfaz.
8
Figura 1.8. Tarjeta ESAN_FP_PLM2, contiene el hardware de las entradas y salida analógicas y la fuente de alimentación.
Figura 1.9. Ensamble de las tarjetas integrantes del PLM2 antes de colocar el cableado de acoplamientos entre ellas.
9
Figura 1.10. Vista frontal del gabinete del PLM2, se aprecian al centro las borneras asociadas con las 8 salidas binarias y el común de éstas, abajo a la derecha pueden verse los postes asociados con las entradas y salida analógicas.
Figura 1.11. Vista del ensamble de tarjetas colocado dentro del gabinete, se aprecia el cableado de acoplamiento básico entre éstas.
10
Figura 1.12 Vista posterior del gabinete cerrado, se aprecian las borneras asociadas con las 16 entradas binarias; el neutro de la fuente de sensores asociados con una aplicación puede conectarse en cualquiera de las borneras extremas.
Figura 1.13 Vista lateral del gabinete del PLM2, se aprecian el socket para conexión a la línea de 120 VCA, la terminal DB9 para conexión serial a PC donde se ejecute el software manejador ( SD_PLM2 ) y los receptáculos para el fusible de salidas ( extremo izquierdo ) y el general del aparato.
11
1.9 Ambiente de edición y operación del compilador de SILL1 (CS) del SD_PLM2 En la figura 1.14se muestra el aspecto que tiene el ambiente de edición y operación (AEO) del CS al iniciar una sesión de trabajo con SD_PLM2.
Figura 1.14 Aspecto del ambiente de edición y operación del CS al inicio de una sesión de trabajo con SD_PLM2 Los seis botones con las leyendas nvo, abr, gdr, ctr, cpr y pgr; están asociados respectivamente con funciones convencionales de WINDOWS para: iniciar un archivo nuevo, abrir un archivo, guardar el archivo presente en el AEO, cortar, copiar y pegar. Las funciones asociadas con los botones con las leyendas e-ram y compilar se describen a continuación: 1.10 Función del botón “e-ram” Al oprimirse este botón el programa presente en el AEO es compilado y en el caso de que no haya errores, SD_PLM2 procede a cargar y ejecutar en RAM del PLM2 el programa objeto asociado. 1.11 Función del botón “compilar” Al oprimirse este botón se compila el programa fuente presente en el AEO, en el caso de que no se encuentren errores, se genera un archivo binario con extensión BLM que contiene el código objeto correspondiente; si existen errores, estos se reportan al usuario. Cada error tiene un número asociado, véase el apéndice A de este manual.
12
1.12 Opciones del menú “Archivo” del AEO Las funciones asociadas con los botones e-ram y compilar; descritas anteriormente, pueden también invocarse desde el menú Archivo del AEO, además de otras propias de un ambiente de edición bajo WINDOWS cuyo uso es intuitivo para un usuario familiarizado con la interacción de aplicaciones en ambientes visuales. En la figura 1.15 se muestra el menú archivo del AEO, cuando se va a invocar la opción compilar para generar el archivos objeto BLM, la cual puede invocarse también oprimiendo el botón compilar.
Figura 1.15. Aspecto de la invocación de la función propia del botón “compilar” desde el menú archivo En la figura 1.15 puede apreciarse también cuales sería la opción en el menú archivo similar a la que corresponde al botón “e-ram”. 1.13 Opciones del menú “Editar” del AEO Este menú contiene las opciones para cortar, copiar y pegar texto, que pueden invocarse también respectivamente mediante los botones ctr, cpr y pgr presentes en el AEO. Opciones del menú “Buscar” del AEO En la figura 1.16 se muestra el despliegue de este menú, ahí se aprecia que las opciones se emplearían para buscar en el texto del archivo presente una cadena de caracteres especificada por el usuario o bien reemplazar ésta por otra también dada por el usuario.
Figura 1.16. Aspecto del despliegue del menú buscar del AEO
13
En la figura 1.17 se muestra el cuadro de dialogo presentado al usuario cuando se invoca la opción que busca una cadena de caracteres especificada por el usuario, para fines de ilustración la cadena especificada es “TEMPOC”.
Figura 1.17. Cuadro de dialogo asociado con la opción para buscar una cadena de caracteres Manejo de la opción “Buscar” En la figura 1.18 se aprecia como se reporta al usuario la primera aparición de la cadena especificada en el texto del archivo presente en el AEO.
Figura 1.18. Reporte al usuario acerca de la posición de la primera aparición en el texto de la cadena especificada en la opción Buscar
14
Al oprimirse la tecla F3 se mostrarán al usuario las subsecuentes apariciones de la cadena especificada, una vez que se han desplegado todas las apariciones de la cadena dada por el usuario el AEO reportará esto al mediante el siguiente mensaje:
Si la cadena a buscar no existe en el texto presente en el AEO, éste presentará al usuario el siguiente mensaje:
Manejo de la opción “Cambiar” En la figura 1.19 se muestra el cuadro de dialogo presentado al usuario cuando éste invoca la opción Cambiar, la cual se emplearía para sustituir una cadena dada por el usuario por otra también especificada por éste. Para fines ilustrativos la primera cadena se definió como “TEMPOC” y la segunda como “TEMPOA”.
Figura 1.19. Dialogo presentado al usuario al invocarse la opción cambiar Si el usuario oprime el botón cambiar todo, todas la ocurrencias de la primera cadena serán sustituidas por la segunda, al concluir el proceso el AEO presentará al usuario el siguiente mensaje:
Si la cadena a buscar no existe en el texto, el AEO indicará esto con el siguiente mensaje:
15
Si el usuario oprimiera el botón cambiar del dialogo presentado en la figura 1.19, cada vez que se encuentre la primera cadena se le pedirá confirmación para llevar a cabo el reemplazo presentándole la interfaz gráfica mostrada en la figura 1.20; apreciándose ahí la aparición de tres botones en el AEO con las denominaciones: si, no y cancelar debajo de la pregunta ¿Cambiar la cadena mostrada?. Si el usuario oprime el botón “si” la ocurrencia de la cadena buscada será reemplazada por la previamente especificada para este fin y se pasará a buscar la próxima ocurrencia; en el caso de que el usuario oprima el botón “no”, no se haría el reemplazo y se pasaría a buscar la próxima ocurrencia; si el usuario oprime el botón “cancelar”, se aborta el proceso de reemplazo de cadenas quedando únicamente hechos los cambios que previamente se pudieran haber dado al oprimir el usuario el botón “si” para ocurrencias anteriores. Al terminar el proceso el AEO indicará al usuario que no se encuentran más coincidencias, en el caso de que la cadena a buscar para reemplazo no exista, se le indicará esto al usuario con un mensaje con el texto “no se encontraron coincidencias”.
Figura 1.20. Aspecto del AEO al oprimirse el botón cambiar en el dialogo mostrado en la figura 1.19. 1.14 Ejemplo ilustrativo: Arrancador de un motor trifásico Para aclarar ideas se expone aquí un ejemplo de aplicación, que consiste en realizar con el PLM2 la lógica requerida por un arrancador de voltaje reducido basado en
16
autotransformador con transición de circuito abierto, para un motor de inducción trifásico [6]; en la industria existen arrancadores de este tipo implantados con lógica alambrada [7]. En la figura 1.21 se ilustra el esquema del conexionado al motor de los elementos actuadores de potencia (contactores), se supone que la secuencia de arranque requiere que los contactores 1A y 2A se cierren al oprimirse el botón de arranque “A” y permanezcan así por tres segundos para abrirse una vez que ha transcurrido este tiempo; después de esto debe haber un tiempo de espera de medio segundo para cerrar el contactor M (marcha); como es usual en este tipo de sistemas se cuenta con un sensor de sobrecarga (OL) que abre sus contactos asociados al detectarse esta condición, además de que se debe contar con un botón de paro (P) de modo que al oprimirse el mismo, el motor sea desconectado del suministro trifásico que lo alimenta. Se supone que el tap seleccionado para los autotransformadores es el adecuado para lograr el par de arranque requerido por la carga mecánica que mueve el motor.
Figura 1.21. Conexionado de arrancador de voltaje reducido basado en autotransformador cuya secuencia de arranque se ha de implantar con el PLM2. Una forma de realizar la secuencia de arranque con módulos lógicos realizables por el PLM2 se ilustra en la figura 1.22, apreciándome en la misma el empleo de cinco módulos los cuales son: una compuerta AND de dos entradas, un Flip-Flop RS con prioridad al RESET, un temporizador monodisparo (one-shot) con salida verificada en alto y duración de tres segundos con disparo por flanco de subida, un temporizador con retardo de activación (ON DELAY) con retardo de 3.5 segundos y un seguidor lógico. En la misma figura se muestran las variables booleanas empleadas y con que elementos físicos están relacionadas, en la figura 1.23 se ilustra el conexionado al PLM2 de los sensores y actuadores requeridos en esta aplicación.
17
Figura 1.22. Implantación de la secuencia de arranque requerida, empleando módulos realizables por el PLM2. Para un mismo tipo de módulo el lenguaje SIIL1 permite especificar entre otras cosas, los niveles de verificación de las entradas y salidas que el mismo pudiera contener; de esta manera, los niveles de verificación para las entradas “S” y “R” del Flip- Flop se especificaron como alto y bajo respectivamente, que es lo adecuado para este caso, el nivel de verificación de las entradas de RESET para los dos temporizadores se definió como alto, el nivel de verificación para las salidas de los mismos se definió como alto, nótese el empleo de la VBI I01 como señal de RESET para ambos temporizadores. Cabe señalar aquí que siempre que se inicia la ejecución de un programa en el PLM2, los buffers asociados con las variables booleanas son inicializados con ceros, de esta manera, una VBI que no sea empleada como salida por algún módulo tendrá siempre un nivel de cero lógico
Figura 1.23. Conexionado al PLM2 de sensores y actuadores asociados con el arrancador aquí mostrado.
18
A continuación se muestra el programa fuente en SIIL1 requerido:
INPROG; Inicio de subprograma principal.
Declaración de la compuerta AND.
ado.
Flop empleado.
* AND2#1 E00, E02, I02, 11; * Declaración del seguidor emple SEG#1 S01, S02; * Declaración del Flip- FFARS#1 E01, I02, I00, 1000; FINPP; Declaración de fin de subprograma principal.
MODI; Inicio de subprograma temporizado.
Declaración de temporizador monodisparo. 01;
ivación.
FINMODI; Declaración de fin de subprograma temporizado.
eferencias para el capítulo 1 LÓGICO MODULAR”, México D. F., Tesis de maestría,
IDÁCTICO”,
CIL_11C, contenidos en el
Applications, Merril,
Salvá, “PUMMA_11, SOFTWARE EN AMBIENTE WINDOWS, PARA DESARROLLO
Control of Electric Machines,
odel 6,
IN
* TEMPOC#1 I00, I01, S01, 00:00:03.00, 1* Declaración del temporizador con retardo a la act TEMPOD#2 I00, I01, S00, 00:00:03.50, 10; R[1] A. Salvá, “PROGRAMADORDivisión de Estudios de Posgrado, Facultad de Ingeniería, UNAM, febrero de 1999. [2] L. M. Salcedo, “CONSTRUCCIÓN FÍSICA DE UN PLC PARA AUXILIO DTesis de Licenciatura, Facultad de Ingeniería, UNAM, Marzo de 2005. [3] A. Salvá, Archivos pdf con especificaciones de las tarjetas de tipo FAarchivo espf11c.zip disponible en la página http://dctrl.fi-b.unam.mx/salva. [4] J. Webb, PROGRAMMABLE LOGIC CONTROLLERS, Principles and1992. [5] A. CON EL MICROCONTROLADOR 68HC11”, Chihuahua, Chih, Memoria de ELECTRO 2000, octubre de 2000. [6] I. L. Kosow, Prentice - Hall, pág. 54 - 59, 1973. [7] SQUARE D, Motor Control Centers M Pág. 131-134, 1997.
19
CAPÍTULO 2 DIAGRAMAS DE COMPONENTES DE
HARDWARE DEL PLM2
20
Esquemático de tarjeta FACIL_11C ( h 1 de 3 )
21
Esquemático de tarjeta FACIL_11C ( h 2 de 3 )
22
Esquemático de tarjeta FACIL_11C ( h 3 de 3 )
23
Vcc
1 5
2 6 4
Patillas del optoacoplador 4N26
1 Ánodo2 Cátodo3 NC4 Emisor5 Colector6 Base
NC
D1,…,D16 = 1N4001
R17,R18,R19,…,R32= 4.7KΩ1/4W
R1,R2,R3,…,R16= 2.2KΩ1/2W
CI1,…,CI16 = 4N26
i=0,1,2,3j=0…,7
Eij
Tierra de laFuente de 5V
Neutro deFuente deSensores
A EB 0 De
Tarjeta FACIL_11C
R32
+5V
R16
CI 16
E10Sensor
D16
R31
+5V
R15
CI15
E11Sensor
D15
R30
+5V
R14
CI14
E12Sensor
D14
R29
+5V
R13
CI 13
E13Sensor
D13
R28
+5V
R12
CI 12
E14Sensor
D12
R27
+5V
R11
CI11
E15Sensor
D11
R26
+5V
R10
CI10
E16Sensor
D10
EB1 EB2 EB3 EB4 EB5E17
R25
+5V
R9
CI9
D9
EB6 EB7
ENTRADAS OPTOACOPLADAS LIGADAS CON EL PUERTO EA DE LA TARJETA FACIL_11C
i=0,1,2,3j=0…,7
Eij
Tierra de laFuente de 5V
Neutro deFuente deSensores
A EA0 De
Tarjeta FACIL_11C
R24
+5V
R8
CI8
E00
Sensor
D8
R23
+5V
R7
CI7
E01
Sensor
D7
R22
+5V
R6
CI6
E02
Sensor
D6
R21
+5V
R5
CI5
E03
Sensor
D5
R20
+5V
R4
CI4
E04
Sensor
D4
R19
+5V
R3
CI3
E05
Sensor
D3
R18
+5V
R2
CI2
E06
Sensor
D2
EA1 EA2 EA3 EA4 EA5E07
R17
+5V
R1
CI1
D1
EA6 EA7
ENTRADAS OPTOACOPLADAS LIGADAS CON EL PUERTO EB DE LA TARJETA FACIL_11C
Esquemático de tarjeta E/S_BIN_PLM2 ( h 1 de 3 )
24
D17
12 Vcd
CI17 Bobinadel
Relevador
SA0
D18
12 Vcd
CI17 Bobinadel
Relevador
SA1
D19
12 Vcd
CI18 Bobinadel
Relevador
SA2
D20
12 Vcd
CI18 Bobinadel
Relevador
SA3
D21
12 Vcd
CI18 Bobinadel
Relevador
SA4
D22
12 Vcd
CI18 Bobinadel
Relevador
SA5
D23
12 Vcd
CI18 Bobinadel
Relevador
SA6
D24
12 Vcd
CI18 Bobinadel
Relevador
SA7
REL1 REL2 REL3 REL4
REL5 REL6 REL7 REL8
PUERTO DE SALIDAS BINARIAS DEL PLM2
COMUN(Vivo fuente
de actuadores )
S00 S01 S02 S03
S04 S05 S06 S07
1A 1Y1 2
Y=A
2A 2Y3 4
5 63A 3Y
4A 4Y9 8
5A 5Y11 10
6A 6Y13 12
SA5
SA3
SA2
1
2
3
4
5
6
7 8
10
9
11
12
13
14
GND
VCC1A
1Y
2A
2Y
3A
3Y
6A
6Y
5A
5Y
4A
4Y
SN74
16B
UFFE
R O
PEN-
CO
LLEC
TOR
SA0
SA0
SA7
CI17
1
2
3
4
5
6
7 8
10
9
11
12
13
14
GND
VCC1A
1Y
2A
2Y
3A
3Y
6A
6Y
5A
5Y
4A
4Y
SN74
16B
UFFE
R O
PEN-
CO
LLEC
TOR
SA4
SA7
CI18
DISTRIBUCIÓN DE PINES DE LOS CIRCUITOS INTEGRADOS SN7416 EMPLEADOS EN EL PUERTO DE SALIDAS DE LA TARJETA E/S_BIN_ PLM2
REL1 a REL 8 = Relevadores 1 polo 1 tiro, a 3A 12V
D17,…,D24 = 1N4001
CI17 Y CI18 = SN7416
REL2
REL1
REL8
REL6
REL4
REL7
REL5
REL3
Fusible1 A
Esquemático de tarjeta E/S_BIN_PLM2 ( h 2 de 3 )
25
DM
74H
C12
5
1
2
3
4
5
6
7 8
10
9
11
12
13
14
GND
VCCC1
A1
Y1
C2
A2
Y2
C4
A4
Y4
C3
A3
Y3
y3a
y3a
y3a
D0
Ja
JbD1 BAXD
D2
BUFF
ER 3
ES
TAD
OS
OUT
PUT
S
ENAB
LE
DM74
LS13
8
1
2
3
4
5
6
7
8
10
9
11
12
13
14
15
16
GND
VCC
y0a
y1a
y2a
y3a
y4a
y5a
y6a
y7a
G1
G2a
G2b
A
B
C
SEL
EC
DEC
OD
IFIC
ADO
R
MM
5827
4
1
2
3
4
5
6
7
8
10
9
11
12
13
14
15
16
DB3
CS
RD
WR
DB2
DB1
DB0
VSS
VCC
AD3
AD2
AD1
AD0
INT
XTAL OUT
XTAL IN
REL
OJ
DE
TIE
MP
O R
EAL
DAT
OS
(FAC
IL_1
1)
DATO
S(F
ACI
L_11
) NC
DISTRIBUCIÓN DE PINES DE LOS CIRCUITOS 74HC125, 74HC138 Y MM58274;EMPLEADOS EN LA TARJETA E/S_BIN_PLM2
R33 = R34 = R35 = 4.7 KΩ 1/4W
PUERTO AUXILIAR A, SUBPAGINADOR DE PUERTOS Y RELOJ DE TIEMPO REAL ARMADOS EN LA TARJETA E/S_ BIN_PLM2
D7
D2
D0 3
FACIL_11C
8 R33
D1
D0
+5V
y3a
R34
R35
Ja
Jb
BAXD
PUERTO AUXILIAR A(PAUXA , DIR 1B00)
CI21
SUBPAGINADORDE
PUERTOS74HC138
y0a(1B80 - 1B8F)
y1a(1B90 - 1B9F)
y2a(1BA0 - 1BAF)
y3a(1BB0 - 1BBF)
y4a(1BC0 - 1BCF)
y5a(1BD0 - 1BDF)
y6a(1BE0 - 1BEF)y7a(1BF0 - 1BFF)G1
G2a
G2b
A
B
C
A4
A5
A6
FACIL_11C
+5V
(FACIL_11C)y7
CI19
A0
A3
FACIL_11C
4
22pF
22pF
XTAL32.768KHz
CSy4a
FACIL_11WRRD
DATOS(FACIL_11C)
8
RELOJ DE
TIEMPOREAL(RTR)
D0 D7
VCCMM58274
VCC (FACIL_11C)
CI20
C7
C6
C6 =C7 = 18 “ó” 22 pfY1 = 32.768 KHz
Bateriade respaldo
del reloj
C8
D26
D25
D25 = D26 = 1N4001C8 = 10 µf 25V
Esquemático de tarjeta E/S_BIN_PLM2 ( h 3 de 3 )
26
J3
+-
+-
RO1
POT10K
R02
4.7k
R03 R04
2.2k 270RO6
10kR07
2.2K
R08R09
1k
C1A 0.1µF
0.1µFC2A
+15V
-15V
+5V
D02AD1N914
D01AD1N914
+15V
3
1
2 4
5
6
7
11
1( )x t
T
CON_7
0E
POT2K
CI_1
CON_3
249
EC0
DZ21
J4
R21
CON_6
T
TL084
TIPO DE ENTRADA CONECTOR DE ENTRADA PUENTE A COLOCAR Voltaje ( +/- 10 Volts ) CON_7 J4
Lazo de corriente ( 4 a 20 mA ) CON_6 J3
Esquemático de tarjeta ESAN_FP_PLM2 ( adecuador de entrada analógica 0 )
27
J1
+-
+-
R11
POT10K
R12
4.7k
R13 R14
2.2k 270R16
10kR77
2.2K
R18R19
1k
C1A 0.1µF
0.1µFC2A
+15V
-15V
+5V
D02AD1N914
D01AD1N914
+15V
12
14
13 4
10
9
8
11
T
CON_5
1E
POT2K
CI_1
CON_3
249
EC1
DZ20
J2
R20
CON_4
T
2)(x t
TL084
TIPO DE ENTRADA CONECTOR DE ENTRADA PUENTE A COLOCAR Voltaje ( +/- 10 Volts ) CON_5 J2
Lazo de corriente ( 4 a 20 mA ) CON_4 J1
Esquemático de tarjeta ESAN_FP_PLM2 ( adecuador de entrada analógica 1 )
28
+-B1
B2B3B4B5B6B7B8
COMPENSA CIÓN
C33A
0.1µF
C34A
0.01µF
0.1µF
C35A
+5V
4.7kR32
R31
POT2k
4.7kR33
-15V+15V
R30
POT10k
56789
101112
13
14
15
16
3
OUTI
1
2
4
CONTROL DE UMBRAL
+5V
SB7SB6SB5SB4SB3SB2SB1SB0
CI_2
CI_3
R352.2k
POT 5kR34
POT5k 4.7k
R36
R37
( )REFV
−
( )REFV
+
V +LCV
V −
OUTI
S_CDAT
CON_8
DAC0800
TL084
Esquemático de tarjeta ESAN_FP_PLM2 ( convertidor D/A )
29
Especificaciones del transformador de la fuente de alimentación
DEVANADO CONECTOR ASOCIADO VOLTAJEPrimario Línea de 127 VCA 127 VCA
Secundario 1 CON_9 7.7 VCA (1 A ) Secundario 2 CON_10 32.8 VCA con tap central ( 500 mA )
Esquemático de tarjeta ESAN_FP_PLM2 (fuente de poder del PLM2 )
30
CAPÍTULO 3 MÓDULOS REALIZABLES POR EL PLM2
31
CAPÍTULO 3 3.·MÓDULOS REALIZABLES POR EL PLM2
En este capítulo se describe la sintaxis requerida para declarar cada uno de los
módulos que puede realizar el PLM2, esto en un programa fuente en SIIL1.
3.1 MÓDULOS LÓGICOS (ML)
3.1.1 Descripción del ML de seguimiento lógico
Este ML simplemente pone en la VB declarada como salida el nivel lógico que exista en la
VB declarada como entrada al mismo, en la figura 3.4 se ilustra en forma genérica este ML,
debiendo el mismo ser declarado en el subprograma principal, siendo la sintaxis para declararlo la
siguiente:
SEG#N XEIEJE,XSISJS;
Donde:
N denota el número de seguidor, esto definido por el usuario.
XE podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada al seguidor sea una VBE, VBS o VBI.
IE denota el número de grupo que corresponda a la VB declarada como entrada al seguidor.
JE denota el número de bit dentro del grupo Ie, asociado a la variable de entrada al
seguidor.
XS podrá ser la letra “s” o “i” mayúscula o minúscula dependiendo esto de que la variable
de salida al seguidor sea una VBS o VBI.
IS denota el número de grupo que corresponda a la VB declarada como salida del seguidor.
JS denota el número de bit dentro del grupo IS, asociado a la variable de salida del
seguidor.
32
Figura 3.4 Representación genérica del seguidor lógico realizado por el PLM2
A continuación se muestra un ejemplo sobre como declarar un módulo seguidor
lógico, en un programa fuente en SIIL1.
Ejemplo 3.1
Se desea realizar con el PLM2 un seguidor lógico al que se le asigne el número 4,
requiriéndose que la entrada y salida al mismo sean respectivamente las VB E03 e I24; la
declaración sintáctica sería:
SEG#4 E03, I24
3.1.2 Descripción del ML de inversión lógica
Este ML simplemente pone en la VB declarada como salida el nivel lógico opuesto
al que exista en la VB declarada como entrada al mismo, en la figura 3.5 se ilustra en forma
genérica este ML, debiendo el mismo ser declarado en el subprograma principal, siendo la
sintaxis para declararlo la siguiente:
NOT#N XEIEJE,XSISJS
Donde:
N denota el número de inversor, esto definido por el usuario.
XE podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada al inversor sea una VBE, VBS o VBI.
IE denota el número de grupo que corresponda a la VB declarada como entrada al inversor.
JE denota el número de bit dentro del grupo IE, asociado a la variable de entrada al
inversor.
XS podrá ser la letra “s” o “i” mayúscula o minúscula dependiendo esto de que la variable
de salida al inversor sea una VBS o VBI.
IS denota el número de grupo que corresponda a la VB declarada como salida del inversor.
JS denota el número de bit dentro del grupo IS, asociado a la variable de salida del inversor.
33
Figura 3.5 Representación genérica del inversor lógico realizado por el PLM2
A continuación se muestra un ejemplo sobre como declarar un módulo de inversión
lógica, en un programa fuente en SIIL1.
Ejemplo 3.2
Se desea realizar con el PLM2 un inversor lógico, al que se le asigne el número 7,
requiriéndose que la entrada y la salida al mismo sean respectivamente las VB E12 e I67, la
declaración sintáctica sería:
NOT#7 E12, I67
3.1.3 Descripción de los ML que realizan compuertas de dos entradas
El PLM2 puede realizar seis tipos de compuertas lógicas de dos entradas y estas son
de tipo: AND, OR, NAND, NOR, OR EXCLUSIVA y OR EXCLUSIVA NEGADA,
teniéndose además la capacidad de preinversión en las entradas que el usuario desee. En la
Figura 3.6 se ilustra en forma genérica este ML, debiendo el mismo ser declarado en el
subprograma temporizado, siendo la sintaxis para declararlo la siguiente:
COMP#N X0I0J0, X1I1J1, XSISJS, AB
Donde:
COMP es una cadena que puede ser AND2, OR2, NAND2, NOR2, EOR2 o EORN2, esto
de acuerdo al tipo de compuerta que se desee realizar.
N denota el número de compuerta, esto definido por el usuario, para cada uno de los seis
tipos de compuertas posibles se ha de llevar una numeración independiente.
X0 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E0 a la compuerta sea una VBE, VBS o VBI.
I0 denota el número de grupo que corresponda a la VB declarada como entrada E0 a la
compuerta.
J0 denota el número de bit dentro del grupo I0, asociado a la variable de entrada E0.
34
X1 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E1 a la compuerta sea una VBE, VBS o VBI.
I1 denota el número de grupo que corresponda a la VB declarada como entrada E1 a la
compuerta.
J1 denota el número de bit dentro del grupo I1, asociado a la variable de entrada E1.
XS podrá ser la letra “s” o “i” mayúscula o minúscula dependiendo esto de que la variable
de salida “S” de la compuerta sea una VBS o VBI.
IS denota el número de grupo que corresponda a la VB declarada como salida de la
compuerta.
JS denota el número de bit dentro del grupo IS, asociado a la variable de salida de la
compuerta.
A es un dígito binario, que habrá de ser cero, si se desea que la entrada “E1” tenga
preinversión, en otro caso el dígito “A” deberá ser uno.
B es un dígito binario, que habrá de ser cero, si se desea que la entrada “E0” tenga
preinversión, en otro caso el dígito “B” deberá ser uno.
Figura 3.6 Representación genérica de una compuerta de dos entradas realizada por el
PLM2
A continuación se muestra un ejemplo sobre como declarar un módulo que realiza
una compuerta de dos entradas, en un programa fuente en SIIL1.
Ejemplo 3.3
Se desea realizar con el PLM2 una compuerta AND de dos entradas, para la cual se
desea que las entradas E0 y E1 y la salida S sean respectivamente las VB E01, I24, y S13,
requiriéndose que la entrada E0 tenga preinversión y que el número de asignación sea 4,
véase la figura 3.7; en este caso, se deberá usar la siguiente sintaxis:
AND2#4 E01, I24, S13, 10;
35
Figura 3.7.- Ejemplo de compuerta AND de dos entradas con preinversión en la entrada E1, la declaración sintáctica correspondiente es: AND2#4 E01, I24, S13, 10 3.1.4 Descripción de los ML que realizan compuertas de tres entradas
El PLM2 puede realizar seis tipos de compuertas lógicas de tres entradas y estas son
de tipo: AND, OR, NAND, NOR, OR EXCLUSIVA y OR EXCLUSIVA NEGADA,
teniéndose además la capacidad de preinversión en las entradas que el usuario desee. En la
figura 3.9 se ilustra en forma genérica este ML, debiendo el mismo ser declarado en el
subprograma principal, siendo la sintaxis para declararlo la siguiente:
COMP#N X0I0J0, X1I1J1, X2I2J2, XSISJS, ABC
Donde:
COMP es una cadena que puede ser AND3, OR3, NAND3, NOR3, EOR3 o EORN3, esto
de acuerdo al tipo de compuerta que se desee realizar.
N denota el número de compuerta, esto definido por el usuario, para cada uno de los seis
tipos de compuertas posibles se ha de llevar una numeración independiente.
X0 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E0 a la compuerta sea una VBE, VBS o VBI.
I0 denota el número de grupo que corresponda a la VB declarada como entrada E0 a la
compuerta.
J0 denota el número de bit dentro del grupo I0, asociado a la variable de entrada E0.
X1 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E1 a la compuerta sea una VBE, VBS o VBI.
I1 denota el número de grupo que corresponda a la VB declarada como entrada E1 a la
compuerta.
J1 denota el número de bit dentro del grupo I1, asociado a la variable de entrada E1.
36
X2 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E2 a la compuerta sea una VBE, VBS o VBI.
I2 denota el número de grupo que corresponda a la VB declarada como entrada E2 a la
compuerta.
J2 denota el número de bit dentro del grupo I2, asociado a la variable de entrada E2.
XS podrá ser la letra “s” o “i” mayúscula o minúscula dependiendo esto de que la variable
de salida “S” de la compuerta sea una VBS o VBI.
IS denota el número de grupo que corresponda a la VB declarada como salida de la
compuerta.
JS denota el número de bit dentro del grupo IS, asociado a la variable de salida de la
compuerta.
A es un dígito binario, que habrá de ser cero, si se desea que la entrada “E2” tenga
preinversión, en otro caso el dígito “A” deberá ser uno.
B es un dígito binario, que habrá de ser cero, si se desea que la entrada “E1” tenga
preinversión, en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser cero, si se desea que la entrada “E0” tenga
preinversión, en otro caso el dígito “C” deberá ser uno.
Figura 3.9 Representación genérica de una compuerta de tres entradas realizada por el
PLM2
A continuación se muestra un ejemplo sobre como declarar una compuerta de tres
entradas, en un programa fuente en SIIL1.
Ejemplo 3.4
Supóngase que se necesita realizar con el PLM2 una compuerta NOR de tres
entradas, para la cual se desea que las entradas E0, E1 y E2 y la salida S sean
37
respectivamente las VB E14, I03, E17 y S17, requiriéndose que la entrada E1 tenga
preinversión y que el número de asignación sea 7, véase la figura 3.10; en este caso, se
deberá usar la siguiente sintaxis:
NOR3#7 E14, I03, E17, S17, 101;
Figura 3.10.- Ejemplo de compuerta NOR de tres entradas con preinversión en la entrada E1, la declaración sintáctica correspondiente es:NOR3#7 E14, I03, E17, S17, 101
3.1.5 Descripción de los ML que realizan compuertas de cuatro entradas El PLM2 puede realizar seis tipos de compuertas lógicas de cuatro entradas y estas
son de tipo: AND, OR, NAND, NOR, OR EXCLUSIVA y OR EXCLUSIVA NEGADA,
teniéndose además la capacidad de preinversión en las entradas que el usuario desee. En la
figura 3.12 se ilustra en forma genérica este ML, debiendo el mismo ser declarado en el
subprograma principal, siendo la sintaxis para declararlo la siguiente:
COMP#N X0I0J0, X1I1J1, X2I2J2, X3I3J3, XSISJS, ABCD
Donde:
COMP es una cadena que puede ser AND4, OR4, NAND4, NOR4, EOR4 o EORN4, esto
de acuerdo al tipo de compuerta que se desee realizar.
N denota el número de compuerta, esto definido por el usuario, para cada uno de los seis
tipos de compuertas posibles se ha de llevar una numeración independiente.
X0 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E0 a la compuerta sea una VBE, VBS o VBI.
I0 denota el número de grupo que corresponda a la VB declarada como entrada E0 a la
compuerta.
J0 denota el número de bit dentro del grupo I0, asociado a la variable de entrada E0.
38
X1 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E1 a la compuerta sea una VBE, VBS o VBI.
I1 denota el número de grupo que corresponda a la VB declarada como entrada E1 a la
compuerta.
J1 denota el número de bit dentro del grupo I1, asociado a la variable de entrada E1.
X2 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E2 a la compuerta sea una VBE, VBS o VBI.
I2 denota el número de grupo que corresponda a la VB declarada como entrada E2 a la
compuerta.
J2 denota el número de bit dentro del grupo I2, asociado a la variable de entrada E2.
X3 podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada E3 a la compuerta sea una VBE, VBS o VBI.
I3 denota el número de grupo que corresponda a la VB declarada como entrada E3 a la
compuerta.
J3 denota el número de bit dentro del grupo I3, asociado a la variable de entrada E3.
XS podrá ser la letra “s” o “i” mayúscula o minúscula dependiendo esto de que la variable
de salida “S” de la compuerta sea una VBS o VBI.
IS denota el número de grupo que corresponda a la VB declarada como salida de la
compuerta.
JS denota el número de bit dentro del grupo IS, asociado a la variable de salida de la
compuerta.
A es un dígito binario, que habrá de ser cero, si se desea que la entrada “E3” tenga
preinversión, en otro caso el dígito “A” deberá ser uno.
B es un dígito binario, que habrá de ser cero, si se desea que la entrada “E2” tenga
preinversión, en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser cero, si se desea que la entrada “E1” tenga
preinversión, en otro caso el dígito “C” deberá ser uno.
D es un dígito binario, que habrá de ser cero, si se desea que la entrada “E0” tenga
preinversión, en otro caso el dígito “D” deberá ser uno.
39
Figura 3.12 Representación genérica de una compuerta de cuatro entradas realizada por el PLM2
A continuación se muestra un ejemplo sobre como declarar un módulo que realice
una compuerta de cuatro entradas, en un programa fuente en SIIL1.
Ejemplo 3.5
Supóngase que se necesita realizar con el PLM2 una compuerta NAND de cuatro
entradas, para la cual se desea que las entradas E0, E1, E2 y E3 y la salida S sean
respectivamente las VB E12, E14, I16, E06 y S03, requiriéndose que las entradas E1 y E0
tengan preinversión y que el número de asignación sea 8, véase la figura 3.13; en este caso,
se deberá usar la siguiente sintaxis:
NAND4#8 E12, E14, I16, E06, S03, 1100;
Figura 3.13.- Ejemplo de compuerta NAND de cuatro entradas con preinversión en las entradas E0 y E1, la declaración sintáctica correspondiente es: NAND4#8 E12, E14, I16, E06, S03, 1100 3.1.6 Descripción de los ML que realizan flip-flops r-s asíncronos
El PLM2 puede realizar módulos tipo latch, que en la nomenclatura del mismo se
denominan como Flip-Flops asíncronos R-S (FFARS), teniéndose para este ML, la
capacidad de predefinir el nivel de verificación de las entradas “S” y “R”, además de poder
40
predefinir también el nivel que ha de tener la salida cuando ambas entradas se verifican y el
valor que se desea que tome la misma al iniciar el programa en SIIL1 que ejecuta el PLM2
en un momento dado; en la figura 3.15 se ilustra en forma genérica este ML, debiendo el
mismo ser declarado en el subprograma principal, siendo la sintaxis para declararlo la
siguiente:
FFARS#N XSISJS, XRIR1JR, XQIQJQ, ABCD;
Donde:
N denota el número de Flip-Flop, esto definido por el usuario.
XS podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada EST (S) al Flip-Flop sea una VBE, VBS o VBI.
IS denota el número de grupo que corresponda a la VB declarada como entrada “S” al Flip-
Flop.
JS denota el número de bit dentro del grupo IS, asociado a la variable de entrada “S”.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada RESET (R) al Flip-Flop una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al Flip-
Flop.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XQ podrá ser la letra “s” o “i” mayúscula o minúscula dependiendo esto de que la variable
de salida “Q” del Flip-Flop sea una VBS o VBI.
IQ denota el número de grupo que corresponda a la VB declarada como salida del Flip-
Flop.
JQ denota el número de bit dentro del grupo IQ, asociado a la variable de salida del Flip-
Flop.
A es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
entrada “S” sea bajo, en otro caso el dígito “A” deberá ser uno.
B es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
entrada “R” sea bajo, en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser uno si se desea que la VB de entrada SET tenga
prioridad, en otro caso (prioridad para la VB de entrada RESET), “C” deberá ser cero. El
hecho de que la entrada SET tenga prioridad implica que si ambas entradas SET y RESET
41
se verifican simultáneamente la salida Q será uno lógico, por otro lado, prioridad para la
entrada RESET significa que al verificarse ambas entradas del Flip-Flop la salida Q será
puesta en cero lógico.
D es un dígito binario, que habrá de ser cero, si se desea que la salida Q se inicialice en cero
lógico, en otro caso el dígito “D” deberá ser uno.
Figura 3.15 Representación genérica del ML que realiza un Flip-Flop asíncrono R-S.
A continuación se muestra un ejemplo sobre como declarar un módulo que realice
un módulo de tipo latch, en un programa fuente en SIIL1.
Ejemplo 3.6
Supóngase que se necesita realizar con el PLM2 un módulo tipo latch, para el cual
se desea que la entrada S tenga prioridad, deseándose que las entradas S, R y la salida Q
sean respectivamente las VB E13, E14 y S06, requiriéndose que ambas entradas S y R
tengan verificación en bajo y que el estado inicial de la salida Q sea uno, deseándose
además que a este latch se le asigne el número 22, véase la figura 3.16; en este caso, se
deberá usar la siguiente sintaxis:
FFARS#22 E13, E14, S06, 0011;
Figura 3.16.- Ejemplo de módulo tipo latch (FFARS) realizado con el PLM2, se desea que la entrada S tenga prioridad, requiriéndose que el nivel de verificación de las dos entradas sea bajo y que el estado inicial de la salida sea uno lógico, la declaración sintáctica correspondiente es: FFARS#22 E13, E14, S06, 0011
42
3.1.7 Descripción del ML que realiza un contador de eventos
El PLM2 puede realizar módulos contadores de eventos ascendentes o
descendentes, siendo los valores de la cuenta comprendidos en un determinado intervalo,
pudiendo el usuario definir tanto la cuenta inicial (CUENTAI) como la final (CUENTAF),
este ML tiene tres entradas y una salida, véase la figura 3.19, las entradas son: entrada “D”
sensible a flancos que hacen que se modifique la cuenta, entrada de restablecimiento
(RESET) que al verificarse hace que la cuenta retorne a su valor inicial desverificándose la
salida (TF), y entrada de congelamiento que al verificarse hace que el contador conserve la
cuenta sin responder a los niveles lógicos presentes en las otras dos entradas; la salida de
este módulo (TF) se verifica cuando la cuenta ha llegado a su valor final.
Para este ML se tiene la capacidad de predefinir los limites del intervalo de cuenta,
el tipo de flanco que incrementa o decrementa la cuenta, el nivel de verificación de las
entradas de RESET y congelamiento, el nivel de verificación de la salida testigo de cuenta
final y el tipo de cuenta (ascendente o descendente) a efectuar.
Este módulo debe declarase en el subprograma temporizado, siendo la sintaxis para
declararlo la siguiente:
CONTA#N XDIDJD, XCICJC, XRIRJR, XFIFJF,CUENTAI, CUENTAF, ABCDE;
Donde:
N denota el número de contador de eventos, esto definido por el usuario.
XD podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada D al contador sea una VBE, VBS o VBI.
ID denota el número de grupo que corresponda a la VB declarada como entrada “D” al
contador.
JD denota el número de bit dentro del grupo ID, asociado a la variable de entrada “D”.
XC podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de congelamiento (C) al contador sea una VBE, VBS o VBI.
IC denota el número de grupo que corresponda a la VB declarada como entrada “C” al
contador.
JC denota el número de bit dentro del grupo IC, asociado a la variable de entrada “C”.
43
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada RESET (R) al contador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
contador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XF podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “TF” del contador sea una VBS o VBI.
IF denota el número de grupo que corresponda a la VB declarada como salida del contador.
JF denota el número de bit dentro del grupo IF, asociado a la variable de salida del
contador.
CUENTAI denota al valor de la cuenta inicial, debiendo el mismo estar comprendido entre
cero y 65535, debiendo este valor ser menor que el correspondiente a la cuenta final si el
contador es ascendente, en otro caso el valor declarado para la cuenta inicial deberá ser
mayor que la cuenta final.
CUENTAF denota el valor de la cuenta final, debiendo el mismo estar comprendido entre
cero y 65535.
A es un dígito binario, que habrá de ser cero, si se desea que se modifique la cuenta para
flancos de bajada en la entrada de disparo “D”, en otro caso el dígito “A” deberá ser uno.
B es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
entrada “C” sea bajo, en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser uno si se desea que el nivel de verificación de la
entrada “R” sea bajo, en otro caso, “C” deberá ser cero.
D es un dígito binario, que habrá de ser uno, si se desea que la cuenta sea ascendente, en
otro caso el dígito “D” deberá ser cero.
E es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
salida “TF” sea bajo, en otro caso el dígito “E” deberá ser uno.
44
Figura 3.19 Representación genérica de un módulo contador de eventos realizable en el PLM2
A continuación se muestra un ejemplo sobre como declarar un módulo que realice
un módulo de tipo contador de eventos, en un programa fuente en SIIL1.
Ejemplo 3.7
Supóngase que se necesita realizar con el PLM2 un módulo contador de eventos
ascendente, con intervalo de cuenta comprendido entre cero y siete y testificación de fin de
cuenta en nivel bajo, se requiere que los niveles de verificación de las entradas “R” y “C”
sean en alto y que la entrada de disparo “D” sea sensible a flancos de bajada, se desea que
las entradas D, C, R y la salida TF sean respectivamente las VB E17, I14, E12 y S01,
deseándose además que a este contador se le asigne el número 14, véase la figura 3.20; en
este caso, se deberá usar la siguiente sintaxis:
CONTA#14 E17, I14, E12, S01,0, 7, 01010;
Figura 3.20.- Ejemplo de módulo contador de eventos ascendente realizado con el PLM2, descrito en el ejemplo 3.4.
En la figura 3.21 se ilustran diagramas de tiempo asociados con el contador de
eventos aquí ejemplificado. Cabe señalar aquí, que para la correcta operación del contador
de eventos, se requiere que el intervalo de tiempo entre dos flancos consecutivos sea mayor
de 10 ms.
45
Figura 3.21.- Diagramas de tiempo asociados con el temporizador mostrado en la figura
3.20 3.1.8 Descripción del ML secuenciador de estados de nbxne
El PLM2 puede realizar módulos secuenciadores de estados, el número de bits de la
palabra de estado puede ir de uno a ocho, tanto el número de estados como los diferentes
valores que presenten los mismos son programables por el usuario, la sucesión de estados
deseada debe ser declarada por el usuario, en renglones del programa fuente subsecuentes
al que contiene la declaración sintáctica correspondiente; de esta manera, la declaración de
un secuenciador de estados ocupara mas de un renglón en el programa fuente en SIIL1; las
declaraciones de los valores deseados para los estados pueden hacerse en formato binario o
hexadecimal. El software de traducción limita a 1000 el número de estados asociados con
un secuenciador, esto aún cuando en la mayoría de las aplicaciones prácticas este tope sería
sensiblemente menor.
Un secuenciador presentará tres entradas y NB+1 salidas, donde NB es el número
de bits en la palabra de estado; la primera entrada es sensible a flancos y se denomina como
46
“D”, al detectarse un flanco en ella se coloca en las salidas asociadas el siguiente estado de
la lista que el usuario haya declarado, si el estado colocado es el último de la lista se
verifica una salida denominada como “TF” (testigo de fin de carrera); la segunda entrada,
se denomina “C” (entrada de congelamiento) y al verificarse, hace que el secuenciador
permanezca en el estado presente sin responder a las otras dos entradas; la tercera entrada
se denomina “R” (RESET) y al verificarse, hace que el secuenciador presente el estado
inicial y desverifique la salida “TF”, la primera vez que se ejecuta el código se invoca el
accionamiento de RESET; en la figura 3.23 se muestra la representación genérica de un
módulo secuenciador de estados.
Figura 3.23.- Representación genérica de un módulo secuenciador de estados de NB bits realizable en el PLM2
Para este ML se tiene la capacidad de predefinir el número de bits de la palabra de
estado, el número de estados que se han de secuenciar, el tipo de flanco que hace que se
presente el siguiente estado, el nivel de verificación de las entradas de RESET y
congelamiento, el nivel de verificación de la salida testigo de colocación de estado final;
una vez que se coloca el estado final el secuenciador no responde a los flancos, para
reiniciar el ciclo hay que verificar la entrada de RESET.
La declaración de un modulo secuenciador ocupará varios renglones en el programa
fuente en SIIL1, en el primero de ellos se especificarán los siguientes parámetros: número
de bits de la palabra de estado, número de secuenciador, VB seleccionada como entrada de
disparo, VB seleccionada como entrada de congelamiento, VB seleccionada como entrada
de RESET, VB seleccionada como salida testigo de fin de carrera, las VB seleccionadas
como salidas para que las mismas presenten los valores booleanos que correspondan a la
palabra de estado, el número de estados que manejará el secuenciador, el tipo de flanco al
que responderá la entrada de disparo, el nivel de verificación de la entrada de
47
congelamiento, el nivel de verificación de la entrada de RESET y el nivel de verificación de
la salida testigo de fin de carrera.
En los renglones subsecuentes al primero, se deben definir cada uno de los valores
sucesivos deseados para la palabra de estado, pudiéndose hacer esto ya sea en formato
hexadecimal o binario, el usuario podrá declarar uno o más valores de estados en cada
renglón, cada renglón de especificación de valores de estados deberá tener un caracter “#”
en la primera columna, para especificar el último renglón de datos el mismo habrá de
iniciarse con dos caracteres “#” seguidos, colocándose el primero de ellos en la primera
columna.
Este módulo debe declararse en el subprograma temporizado, la sintaxis genérica
para declararlo es:
SECNB#N XDIDJD, XCICJC, XRIRJR, XFIFJF, EVBPE, NE, ABCD;
# [EF1][ESTADO1], [EF2][ESTADO2], [EF3][ESTADO3], ....[EFq][ESTADOq];
# [EFp][ESTADOp], .................................................. ....[EFr][ESTADOr];
.
.
.
## [EFu][ESTADOu],......................................................[EFne][ESTADOne];
A continuación se explica el significado de las literales que aparecen en el primer
renglón de la declaración genérica de un módulo secuenciador.
NB denota el número de bits de la palabra de estado, debiendo el mismo estar comprendido
entre uno y ocho, esto definido por el usuario.
N denota el número de secuenciador, esto definido por el usuario.
XD podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada D al secuenciador sea una VBE, VBS o VBI.
ID denota el número de grupo que corresponda a la VB declarada como entrada “D” al
secuenciador.
JD denota el número de bit dentro del grupo ID, asociado a la variable de entrada “D”.
XC podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de congelamiento (C) al secuenciador sea una VBE, VBS o VBI.
48
IC denota el número de grupo que corresponda a la VB declarada como entrada “C” al
secuenciador.
JC denota el número de bit dentro del grupo IC, asociado a la variable de entrada “C”.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada RESET (R) al secuenciador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
secuenciador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XF podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “TF” del secuenciador sea una VBS o VBI.
IF denota el número de grupo que corresponda a la VB declarada como salida del
secuenciador.
JF denota el número de bit dentro del grupo IF, asociado a la variable de salida del
secuenciador.
EVBPE es un vector de NB elementos separados por comas, que especifica que variables
booleanas se desea que sean cada uno de los bits de la palabra de estado, por lo tanto,
EVBPE presentará la siguiente forma:
XPIPJP,.......XLILJL,......X0I0J0
con P=NB-1 y:
XL (L=0, 1,.....NB-1), podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto
de que el bit L de la palabra de estado del secuenciador sea una VBS o VBI.
IL (L=0, 1,......NB-1), denota el número de grupo que corresponda a la VB declarada como
bit L de la palabra de estado del secuenciador.
JL (L=0, 1,......NB-1), denota el número de bit dentro del grupo IL, asociado a con el bit L
de la palabra de estado.
NE denota el número de estados que se desea presente el secuenciador y el mismo deberá
ser mayor o igual que dos.
A es un dígito binario, que habrá de ser cero, si se desea que se coloque el estado siguiente
para flancos de bajada en la entrada de disparo “D”, en otro caso el dígito “A” deberá ser
uno.
49
B es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
entrada “C” sea bajo, en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser uno si se desea que el nivel de verificación de la
entrada “R” sea bajo, en otro caso, “C” deberá ser cero.
D es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
salida testigo de fin de carrera (TF) sea bajo, en otro caso el dígito “D” deberá ser uno.
En lo que toca a los renglones donde se declaran los valores que se desea tomen los
estados que presentará el secuenciador, a continuación se explica el significado de los
términos genéricos que los mismos contienen:
EFi (i=1, 2,.....NE), deberá ser la letra “B” si se desea que la especificación del estado “i”
sea en formato binario, en caso de que se desee que la misma sea en formato hexadecimal
EFi deberá ser la letra H; si el usuario escoge el formato binario deberá escribir la palabra
de estado correspondiente limitándose al número de bits de la misma, por otro lado si el
formato escogido fue el hexadecimal, el usuario deberá escribir un byte, en caso de que la
longitud de la palabra de estado sea menor a ocho bits el valor binario de los bits no usados
será irrelevante (don’t care).
La literal “q”, denota el número correspondiente al último estado declarado en el primer
renglón de especificación de valores de estados.
La literal “p”, denota el número correspondiente al primer estado declarado en el segundo
renglón de especificación de valores de estados.
La literal “r”, denota el número correspondiente al último estado declarado en el segundo
renglón de especificación de valores de estados.
La literal “u”, denota el número correspondiente al primer estado declarado en el último
renglón de especificación de valores de estados.
Las literales “ne”, denotan el número correspondiente al último estado de la secuencia
deseada.
ESTADOi (i=1, 2,.......NE), denota el valor deseado para el estado i de la secuencia que se
desea presente el secuenciador.
Nótese que el número de renglones a emplear, para especificar la secuencia de
estados deseada, es variable y se deja al usuario libertad para acomodar en el programa
50
fuente esta información, ya que se podrá especificar desde un solo estado en cada renglón
hasta los que puedan contenerse en el ancho de la pantalla.
A continuación se muestra un ejemplo sobre como declarar un módulo secuenciador
de estados, en un programa fuente en SIIL1.
Ejemplo 3.8
Supóngase que se necesita realizar con el PLM2 un módulo secuenciador de estados
de tres bits por doce estados, al cual se le asignará el número nueve; se desea que las
entradas de disparo, congelamiento y RESET sean respectivamente las VB E02, I00, y E00,
para la salida testigo de fin de carrera ha de usarse la VB S17, las salidas asociadas con los
tres bits de la palabra de estado en orden decreciente de significancia, deberán ser las VB
I34, S03 y S01; se requiere que la entrada de disparo responda a flancos de bajada, las
entradas de congelamiento y RESET y la salida TF sean verificadas en bajo; la lista de
estados a secuenciar se muestra a continuación en formato binario:
Estado 01 000 Estado 02 010 Estado 03 110 Estado 04 111 Estado 05 001 Estado 06 010 Estado 07 111 Estado 08 000 Estado 09 001 Estado 10 010 Estado 11 110 Estado 12 111
Para fines ilustrativos, se usará el formato binario para declarar los primeros cinco
estados de la lista, empleándose el formato hexadecimal para los demás, colocándose ceros
en las posiciones de bit irrelevantes, una posible forma para declarar este secuenciador es la
siguiente:
SEC3#9 E02, I00, E00, S17, I34, S03, S01, 12, 0010; # B000, B010, B110, B111; # B001, H02, H07, H00, H01, H02; ## H06, H07;
En la figura 3.24 se ilustra la representación en forma de bloque para el
secuenciador de este ejemplo.
51
Figura 3.24.- Módulo lógico que realiza el secuenciador de estados de 3x12 del ejemplo 3.8
3.1.9 Descripción del ML temporizador monodisparo del primer tipo De acuerdo con la señalización de entrada correspondiente, el PLM2 puede realizar
dos tipos de temporizadores de tipo monodisparo, aquí se describe lo concerniente al
temporizador mono disparo de tipo uno, mostrándose respectivamente en las figuras 3.27 y
mismo.
3.28 la representación como bloque de este ML y el diagrama de tiempos asociado con el
Figura 3.27 Representación genérica de un temporizador monodisparo de tipo uno.
El intervalo de tiempo correspondiente lo especifica el usuario en la declaración
sintáctica correspondiente, pudiendo el mismo estar comprendido entre 10ms y 47 horas
con 22 minutos y 36.2 segundos, como se aprecia en la figura 3.28 tanto el disparo como el
52
Figura 3.28 Diagrama de tiempos asociado con un temporizador monodisparo de tipo uno.
restablecimiento (RESET), pueden ser por flanco de subida o bajada, teniéndose además
otra entrada denominada como H ( habilitación ). En la figura 3.28 se aprecia que este
temporizador tiene capacidad de redisparo.
Mediante la entrada H se habilita el funcionamiento del temporizador, en caso de
que la misma se verifique este ML responde a las otras dos entradas normalmente, si H no
se verifica no habrá respuesta a las entradas, si tal verificación ocurre durante el intervalo
de verificación de la salida se suspende la cuenta de tiempo asociada, permaneciendo
verificada la salida.
La entrada R responde a flancos, que al detectarse desverifican la salida y
restablecen a cero el contador de tiempo asociado.
Este módulo debe declararse en el subprograma temporizado, la sintaxis correspondiente es:
TEMPOA#N XDIDJD, XRIRJR, XHIHJH, XTITJT, HH:MM:SS.CS,ABCD; Donde: N denota el número de temporizador, esto definido por el usuario.
XD podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada D al temporizador sea una VBE, VBS o VBI.
53
ID denota el número de grupo que corresponda a la VB declarada como entrada “D” al
temporizador.
JD denota el número de bit dentro del grupo ID, asociado a la variable de entrada “D”.
XH podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de congelamiento (H) al temporizador sea una VBE, VBS o VBI.
IH denota el número de grupo que corresponda a la VB declarada como entrada “H” al
temporizador.
JH denota el número de bit dentro del grupo IH, asociado a la variable de entrada “H”.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada RESET (R) al temporizador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
temporizador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XT podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “T” del temporizador sea una VBS o VBI.
IT denota el número de grupo que corresponda a la VB declarada como salida del
temporizador.
JT denota el número de bit dentro del grupo IT, asociado a la variable de salida del
temporizador.
HH denota un par de dígitos que especifican el número de horas en el tiempo Tm, siendo 47
el valor máximo aceptado.
MM denota un par de dígitos que especifican el número de minutos en Tm.
SS denota un par de dígitos que especifican los segundos en Tm.
CS denota un par de dígitos que especifican las centésimas de segundo en Tm.
A es un dígito binario, que habrá de ser cero, si se desea que el temporizador se dispare
para flancos de bajada en la entrada de disparo “D”, en otro caso el dígito “A” deberá ser
uno.
B es un dígito binario, que habrá de ser cero, si se desea que el temporizador se restablezca
para flancos de bajada en la entrada de restablecimiento “R”, en otro caso el dígito “B”
deberá ser uno.
54
C es un dígito binario, que habrá de ser uno si se desea que el nivel de verificación de la
entrada “H” sea alto, en otro caso, “C” deberá ser cero.
D es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
salida (T) sea bajo, en otro caso el dígito “D” deberá ser uno.
A continuación se muestra un ejemplo sobre como declarar un módulo temporizador
monodisparo de tipo uno, en un programa fuente en SIIL1.
Ejemplo 3.9
Supóngase que se desea realizar con el PLM2 un temporizador monodisparo de tipo
uno, de manera que las entradas de disparo, restablecimiento y habilitación sean
respectivamente las entradas físicas E00, E01 y E02, requiriéndose que la salida T sea la
VBS S02, es necesario que el pulso de salida sea verificado en bajo y tenga una duración de
dos minutos con treinta segundos, tanto el disparo como el restablecimiento deben ser por
flanco de bajada y la señal de habilitación (H) debe ser verificada en alto; la declaración
sintáctica correspondiente podría ser, suponiendo que se le asigna a este temporizador el
número uno:
TEMPOA#1 E00, E01, E02, S02, 00:02:30.00, 0010;
En la figura 3.29 se muestra una representación como bloque del temporizador de
este ejemplo.
Figura 3.29 Representación como bloque del temporizador monodisparo de tipo uno del ejemplo 3.9
55
3.1.10 Descripción del ML temporizador monodisparo del segundo tipo De acuerdo con la señalización de entrada correspondiente, el PLM2 puede realizar
dos tipos de temporizadores de tipo monodisparo, aquí se describe lo concerniente al
temporizador mono disparo de tipo dos, mostrándose respectivamente en las figuras 3.31 y
3.32 la representación como bloque de este ML y el diagrama de tiempos asociado con el
mismo.
Figura 3.31 Representación genérica de un temporizador monodisparo de tipo dos.
Figura 3.32 Diagrama de tiempos asociado con un temporizador monodisparo de tipo dos, (RESET verificado en alto).
El intervalo de tiempo correspondiente lo especifica el usuario en la declaración
sintáctica correspondiente, pudiendo el mismo estar comprendido entre 10ms y 47 horas
con 22 minutos y 36.2 segundos, como se aprecia en la figura 3.32 el disparo puede ser por
flanco de subida o bajada, teniéndose además otra entrada denominada “R” ( RESET), que
al verificarse coloca a este módulo en su condición de espera de disparo, con su salida no
56
verificada. Al igual que el temporizador monodisparo de tipo uno, este temporizador tiene
capacidad de redisparo.
La entrada R responde al nivel, y al verificarse se desverifica la salida y se
restablece a cero el contador de tiempo asociado.
Este módulo debe declararse en el subprograma temporizado, la sintaxis correspondiente es:
TEMPOC#N XDIDJD, XRIRJR, XTITJT, HH:MM:SS.CS,ABC; Donde: N denota el número de temporizador, esto definido por el usuario.
XD podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada D al temporizador sea una VBE, VBS o VBI.
ID denota el número de grupo que corresponda a la VB declarada como entrada “D” al
temporizador.
JD denota el número de bit dentro del grupo ID, asociado a la variable de entrada “D”.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de restablecimiento (R) al temporizador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
temporizador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XT podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “T” del temporizador sea una VBS o VBI.
IT denota el número de grupo que corresponda a la VB declarada como salida del
temporizador.
JT denota el número de bit dentro del grupo IT, asociado a la variable de salida del
temporizador.
HH denota un par de dígitos que especifican el número de horas en el tiempo Tm, siendo 47
el valor máximo aceptado.
MM denota un par de dígitos que especifican el número de minutos en Tm.
SS denota un par de dígitos que especifican los segundos en Tm.
CS denota un par de dígitos que especifican las centésimas de segundo en Tm.
57
A es un dígito binario, que habrá de ser cero, si se desea que el temporizador se dispare
para flancos de bajada en la entrada de disparo “D”, en otro caso el dígito “A” deberá ser
uno.
B es un dígito binario, que habrá de ser cero, si se desea que el temporizador sea
restablecido por nivel alto, en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
salida (T) sea bajo, en otro caso el dígito “C” deberá ser uno.
A continuación se muestra un ejemplo sobre como declarar un módulo temporizador
monodisparo de tipo dos, en un programa fuente en SIIL1.
Ejemplo 3.10
Supóngase que se desea realizar con el PLM2 un temporizador monodisparo de tipo
dos, de manera que las entradas de disparo y restablecimiento sean respectivamente las
entradas físicas E00 y E03, requiriéndose que la salida T sea la VBS S03, es necesario que
el pulso de salida sea verificado en bajo y tenga una duración de treinta segundos, el
disparo debe ser por flanco de bajada y el restablecimiento debe ser por nivel bajo; la
declaración sintáctica correspondiente podría ser, suponiendo que se le asigna a este
temporizador el número dos:
TEMPOC#2 E00, E03, S03, 00:00:30.00, 010;
En la figura 3.33 se muestra una representación como bloque del temporizador de
este ejemplo.
Figura 3.33 Representación como bloque del temporizador monodisparo del ejemplo 3.10
58
3.1.11 Descripción del ML que realiza temporizadores con retardo a la activación (on-delay) o con retardo a la desactivación (off-delay) El PLM2 puede realizar temporizadores con retardo a la activación (RA) o a la
desactivación (RD), esto se logra a partir de un solo ML. En las figuras 3.35 y 3.36 se
muestran respectivamente la representación como bloque de este módulo y los diagramas
de tiempo asociados.
Figura 3.35 Representación genérica de un temporizador que puede operar con retardo a la
activación o desactivación.
Figura 3.36 Diagrama de tiempos asociado con un temporizador con capacidad de retardo a la activación (a) o a la desactivación (b). Al verificarse la entrada de restablecimiento (R) la salida pasa a su nivel no verificado (cero para on-delay, uno para off-delay) inicializándose el contador descendente asociado.
El intervalo de tiempo correspondiente lo especifica el usuario en la declaración
sintáctica correspondiente, pudiendo el mismo estar comprendido entre 10ms y 47 horas
59
con 22 minutos y 36.2 segundos; la entrada R responde al nivel, y al verificarse se
desverifica la salida y se inicializa el contador asociado.
Este módulo debe declararse en el subprograma temporizado, la sintaxis correspondiente es:
TEMPOD#N XDIDJD, XRIRJR, XTITJT, HH:MM:SS.CS,AB; Donde: N denota el número de temporizador, esto definido por el usuario.
XD podrá ser la letra “e”, “s” o “i” mayúscula o minúscula dependiendo esto de que la
variable de entrada D al temporizador sea una VBE, VBS o VBI.
ID denota el número de grupo que corresponda a la VB declarada como entrada “D” al
temporizador.
JD denota el número de bit dentro del grupo ID, asociado a la variable de entrada “D”.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de restablecimiento (R) al temporizador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
temporizador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XT podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “T” del temporizador sea una VBS o VBI.
IT denota el número de grupo que corresponda a la VB declarada como salida del
temporizador.
JT denota el número de bit dentro del grupo IT, asociado a la variable de salida del
temporizador.
HH denota un par de dígitos que especifican el número de horas en el tiempo Tm, siendo 47
el valor máximo aceptado.
MM denota un par de dígitos que especifican el número de minutos en Tm.
SS denota un par de dígitos que especifican los segundos en Tm.
CS denota un par de dígitos que especifican las centésimas de segundo en Tm.
A es un dígito binario, que habrá de ser cero, si se desea que el temporizador presente
retardo a la desactivación (off-delay), en otro caso (A=1), el temporizador presentará
retardo a la activación (on-delay).
60
B es un dígito binario, que habrá de ser cero, si se desea que el temporizador sea
restablecido por nivel alto, en otro caso el dígito “B” deberá ser uno.
El siguiente ejemplo ilustra como declarar temporizadores con retardo a la
activación y a la desactivación, en un programa fuente en SIIL1.
Ejemplo 3.11
Supóngase que se desea realizar con el PLM2 dos temporizadores, uno con retardo a
la activación y el otro con retardo a la desactivación. Para el primero se requiere que el
retardo a la activación sea de 7 segundos, siendo necesario que la entrada “R” sea
verificada en bajo asignándosele el número 3, las entradas de disparo y restablecimiento
han de ser las VB E02 y E03, la salida debe ser la VB S04.
Para el segundo temporizador de este ejemplo, se requiere que presente un retardo a
la desactivación de 10 segundos, con restablecimiento en nivel bajo, asignándosele el
número 4, las entradas de disparo y restablecimiento han de ser las VB E04 y E05, la salida
debe ser la VB S05.
Una declaración para estos temporizadores podría ser la siguiente:
TEMPOD#3 E02, E03, S04, 00:00:07.00, 11;
TEMPOD#4 E04, E05, S05, 00:00:10.00, 01;
En la figura 3.37 se muestran las representaciones como bloques de los
temporizadores de este ejemplo y sus diagramas de tiempo asociados.
61
Figura 3.37 Diagramas de tiempo y representaciones como bloques, de los dos temporizadores del ejemplo 3.11 3.1.12 Descripción del ML que realiza temporizadores astables El PLM2 puede realizar temporizadores astables que generan señales cuadradas con
ciclo de trabajo que puede ser fijado por el usuario, en las figuras 3.39 y 3.40 se muestran
respectivamente la representación como bloque de este módulo y los diagramas de tiempo
asociados, el nivel de arranque puede ser uno o cero, esto definido por el usuario.
Figura 3.39 Representación genérica de un temporizador astable realizable en el PLM2.
62
Figura 3.40 Diagramas de tiempos asociados con un temporizador astable con arranque en uno (a) y con arranque en cero (b).
Los tiempos Tc y Tm pueden estar comprendidos entre 10ms y 47 horas con 22
minutos y 36.2 segundos, debiendo siempre el tiempo Tc ser menor que el tiempo Tm; la
entrada R responde al nivel, y al verificarse se coloca en la salida el nivel de arranque y se
inicializa el contador asociado.
Este módulo debe declararse en el subprograma temporizado, la sintaxis correspondiente es:
TEMPOE#N XRIRJR, XTITJT, HHm:MMm:SSm.CSm, HHc:MMc:SSc.CSc, AB; Donde: N denota el número de temporizador, esto definido por el usuario.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de restablecimiento (R) al temporizador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
temporizador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XT podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “T” del temporizador sea una VBS o VBI.
IT denota el número de grupo que corresponda a la VB declarada como salida del
temporizador.
63
JT denota el número de bit dentro del grupo IT, asociado a la variable de salida del
temporizador.
HHm denota un par de dígitos que especifican el número de horas en el tiempo Tm, siendo
47 el valor máximo aceptado.
MMm denota un par de dígitos que especifican el número de minutos en Tm.
SSm denota un par de dígitos que especifican los segundos en Tm.
CSm denota un par de dígitos que especifican las centésimas de segundo en Tm.
HHc denota un par de dígitos que especifican el número de horas en el tiempo Tc, siendo
47 el valor máximo aceptado.
MMc denota un par de dígitos que especifican el número de minutos en Tc.
SSc denota un par de dígitos que especifican los segundos en Tc.
CSc denota un par de dígitos que especifican las centésimas de segundo en Tc.
A es un dígito binario, que habrá de ser cero, si se desea que el temporizador se restablezca
por nivel alto, en otro caso (A=1), el temporizador se restablecerá por nivel bajo.
B es un dígito binario, que habrá de ser cero, si se desea que el temporizador arranque en
cero, en otro caso el dígito “B” deberá ser uno.
El siguiente ejemplo ilustra como declarar temporizadores astables con arranque en
uno y en cero, en un programa fuente en SIIL1.
Ejemplo 3.12
Supóngase que se desea realizar con el PLM2 dos temporizadores astables, uno con
arranque en uno y el otro con arranque en cero. Para el primero se requiere que los tiempos
Tm y Tc sean respectivamente dos segundos y 250 ms, el nivel de restablecimiento ha de
ser bajo y la VB asociada debe ser E06, la salida debe ser la VB S06, asignándosele a este
temporizador el número cinco.
Para el segundo temporizador de este ejemplo, se requiere que los tiempos Tm y tc
sean respectivamente un segundo y 300 ms, el nivel de restablecimiento ha de ser bajo
siendo E07 la VB asociada, la salida debe ser la vb S07, asignándosele a este temporizador
el número seis.
Una declaración para estos temporizadores podría ser la siguiente:
TEMPOE#5 E06, S06, 00:00:02.00, 00:00:00.25, 11;
64
TEMPOE#6 E07, S07, 00:00:01.00, 00:00:00.30, 10;
En la figura 3.41 se muestran las representaciones como bloques de los
temporizadores de este ejemplo y sus diagramas de tiempo asociados.
dos Figura 3.41 Diagramas de tiempo y representaciones como bloques, de los
temporizadores del ejemplo 3.12
65
3.1.13 Descripción del ML que realiza temporizadores con capacidad para generar n pulsos a intervalos de tiempo especificados por el usuario El PLM2 puede realizar temporizadores denominados de tipo multipulso que
generan N pulsos de anchura fija, a intervalos de tiempo especificíficos, tanto el número N
como los intervalos de tiempo implicados son definidos por el usuario, una vez que ha
transcurrido el flanco que lleva a la verificación del último pulso la salida permanece en ese
nivel, verificándose otra salida del módulo denominada “testigo de fin de carrera”, este
módulo cuenta con dos entradas, una es para restablecimiento y la otra es una entrada
denominada “entrada de congelamiento”, al verificarse esta última el estado de la salida de
pulsos permanece invariable, en las figuras 3.43 y 3.44 se muestran respectivamente la
representación como bloque de este módulo y los diagramas de tiempo asociados, el nivel
de verificación de los pulsos es definido por el usuario.
Figura 3.43 Representación genérica de un temporizador multipulso realizable en el PLM2.
Figura 3.44 Diagramas de tiempos asociados con un temporizador multipulso, para esta ilustración el nivel de verificación de las dos entradas del módulo es bajo, el nivel de verificación, tanto de los pulsos como del testigo de fin de carrera es alto y el número de pulsos es tres. Los tiempos Tc y Tmi (i = 1, 2, 3, .....N), pueden estar comprendidos entre 10ms y
47 horas con 22 minutos y 36.2 segundos, debiendo siempre el tiempo Tc ser menor que
66
todos los tiempos Tmi; la entrada R responde al nivel, y al verificarse se coloca en la salida
el nivel de arranque y se inicializa el contador asociado, dado que para este módulo el
usuario debe declarar los N intervalos de tiempo implicados, la declaración de este módulo
involucra varios renglones en un programa fuente en SIIL1.
Este módulo debe declararse en el subprograma temporizado, la sintaxis correspondiente es:
TEMPOG#N XRIRJR, XCICJC, XTITJT, XFIFJF, NP, HH:MM:SS.CS, ABCDE; # Renglón de datos uno; # Renglón de datos dos; . . . . ## último renglón de datos; Donde: N denota el número de temporizador, esto definido por el usuario.
NP denota el número de pulsos a generar.
XR podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de restablecimiento (R) al temporizador sea una VBE, VBS o VBI.
IR denota el número de grupo que corresponda a la VB declarada como entrada “R” al
temporizador.
JR denota el número de bit dentro del grupo IR, asociado a la variable de entrada “R”.
XC podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de congelamiento (C) al temporizador sea una VBE, VBS o VBI.
IC denota el número de grupo que corresponda a la VB declarada como entrada “C” al
temporizador.
JC denota el número de bit dentro del grupo IC, asociado a la variable de entrada “C”.
XT podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “T” del temporizador sea una VBS o VBI.
IT denota el número de grupo que corresponda a la VB declarada como salida del
temporizador.
JT denota el número de bit dentro del grupo IT, asociado a la variable de salida del
temporizador.
67
XF podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “TF” del temporizador sea una VBS o VBI.
IF denota el número de grupo que corresponda a la VB declarada como salida testigo de fin
de carrera del temporizador.
JF denota el número de bit dentro del grupo IF, asociado a la variable de salida del
temporizador.
HH denota un par de dígitos que especifican el número de horas en el tiempo Tc, siendo 47
el valor máximo aceptado.
MM denota un par de dígitos que especifican el número de minutos en Tc.
SS denota un par de dígitos que especifican los segundos en Tc.
CS denota un par de dígitos que especifican las centésimas de segundo en Tc.
A es un dígito binario, que habrá de ser cero, si se desea que el temporizador se restablezca
por nivel alto, en otro caso (A=1), el temporizador se restablecerá por nivel bajo.
B es un dígito binario, que habrá de ser cero, si se desea que el arranque del tren de pulsos
generado sea en bajo (pulsos verificados en alto), en otro caso el dígito “B” deberá ser uno.
C es un dígito binario, que habrá de ser cero, si se desea que el nivel de verificación de la
entrada de congelamiento sea bajo, en otro caso el dígito “C” deberá ser uno.
D es un dígito binario, que habrá de ser cero si se desea que la salida testigo de fin de
carrera sea verificada en bajo, en otro caso el dígito “D” deberá ser uno.
E es un dígito binario, que habrá de ser cero si se desea deshabilitar la entrada de
congelamiento, en otro caso (operación normal), el dígito “E” deberá ser uno; es importante
señalar aquí que aún cuando la entrada de congelamiento sea deshabilitada, en la posición
que corresponda a esta entrada en la declaración del módulo, deberá colocarse la
especificación de una VB, de no hacerse esto el programa traductor de SIIL1 a código
ejecutable por la CC del PLM2, indicará un error de sintaxis.
En los renglones de datos habrán de colocarse, separados por comas, las
especificaciones de tiempo que correspondan a cada uno de los Tmi (i = 1, 2, 3, ......,N)
implicados, al hacer esto el usuario es libre de colocar en cada renglón el número de
especificaciones de tiempo (Tmi) que le acomode, cada renglón de datos, excepto el último,
deberá iniciar con el caracter “#” en la primera columna seguido por un espacio, el último
68
renglón de datos deberá iniciar con dos caracteres “#” en la primera y segunda columna
seguidos por un espacio, todos los renglones de datos deberán finalizar con el caracter “;”.
Cabe señalar aquí, que en caso de que alguna especificación de tiempo Tmi tenga
pares de ceros a la izquierda el usuario podrá, si lo desea, prescindir de ellos en la cadena
correspondiente, así, un intervalo Tmi de siete segundos, podrá especificarse como
00:00:07.00 ó 00:07.00 ó 07.00.
El siguiente ejemplo ilustra como declarar temporizadores multidisparo en SIIL1.
Ejemplo 3.13
Supóngase que se desea realizar con el PLM2 un temporizador multidisparo que
genere seis pulsos, es necesario que el arranque sea en cero (pulsos verificados en alto), se
requiere que el tiempo Tc sea dos segundos, el nivel de restablecimiento ha de ser bajo y la
VB asociada debe ser E06, la entrada de congelamiento “C” habrá de ser la VB E07 con un
nivel de verificación en bajo, la salida de pulsos “T” deberá ser la VB S06 y la salida “TF”
habrá de ser la VB S07 con verificación en alto, asignándosele a este temporizador el
número siete.
Los seis intervalos de tiempo (Tmi) implicados deberán presentarse en el orden que
se indican a continuación: treinta segundos, un minuto con treinta segundos, veinte
segundos, cinco segundos con 250 ms, dos minutos y un minuto con dos segundos.
La declaración de este temporizador multidisparo podría ser:
TEMPOG#7 E06, E07, S06, S07, 6, 00:00:02.00, 10011;
# 30.00, 01:30.00, 20.00, 05.25;
## 02:00.00, 01:02.00;
En la figura 3.45 se muestra la representación como bloque del temporizador de este
ejemplo y su diagramas de tiempo asociado.
69
Figura 3.45 Diagrama de tiempo y representación como bloque, del temporizador multidisparo del ejemplo 3.13. 3.1.14 Descripción del ML que realiza temporizadores con capacidad de generación de pulsos en instantes de acuerdo al estado del reloj de tiempo real (RTR) El PLM2 puede realizar temporizadores denominados de tipo GPRTR, con
capacidad para generar pulsos en instantes preestablecidos de acuerdo con el RTR, la
duración de los mismos es aproximadamente de 100 ms, de acuerdo con la forma en que se
especifiquen los instantes en que se desea se produzcan los pulsos los temporizadores
GPRTR pueden ser de seis clases a saber:
1.- Temporizador GPRTR de clase uno, en este caso se específican los instantes de disparo
con un par de dígitos, que indican los segundos en los que se desea que aparezcan los
pulsos; por ejemplo, 43 sería una especificación de disparo para el segundo cuarenta y tres
de cada minuto.
2.- Temporizador GPRTR de clase dos, en este caso se específican los instantes de disparo
con dos pares de dígitos, que indican los minutos y segundos en los que se desea que
aparezcan los pulsos; por ejemplo, 37:15 sería una especificación de disparo para el minuto
treinta y siete con quince segundos de cada hora.
70
3.- Temporizador GPRTR de clase tres, en este caso se específican los instantes de disparo
con tres pares de dígitos, que indican en que hora, minuto y segundo se desea que
aparezcan los pulsos; por ejemplo, 13:23:10 sería una especificación de disparo para las
trece horas con veintitrés minutos y diez segundos.
4.- Temporizador GPRTR de clase cuatro, en este caso se específican los instantes de
disparo con un par de caracteres que indican un día de la semana seguidos por tres pares de
dígitos, de esta forma cada especificación indica en que hora minuto y segundo y día de la
semana se desea que aparezcan los pulsos; por ejemplo, VI/00:12:08 sería una
especificación de disparo para las cero horas con doce minutos y ocho segundos de un día
viernes.
El par de caracteres empleados para denotar a cada uno de los días de la semana es:
“LU” para el lunes, “MA” para el martes, “MI” para el miércoles, “JU” para el jueves, “VI”
para el viernes, “SA” para el sábado y “DO” para el domingo.
5.- Temporizador GPRTR de clase cinco, en este caso se específican los instantes de
disparo con cinco pares de dígitos, que indican en que número de día, mes, hora, minuto y
segundo se desea que aparezcan los pulsos; por ejemplo, 08/05/12:30:02 sería una
especificación de disparo para las doce horas con treinta minutos y dos segundos de un día
ocho de mayo.
6.- Temporizador GPRTR de clase seis, en este caso se específican los instantes de disparo
con seis pares de dígitos, que indican en que día de mes, mes, año, hora, minuto y segundo
se desea que aparezcan los pulsos; por ejemplo, 03/31/02/15:12:13 sería una especificación
de disparo para las quince horas con doce minutos y trece segundos del treinta y uno de
marzo del año dos mil dos.
Los caracteres delimitadores “/” y “:” pueden ser remplazados por cualquier otro, ya
que el software de traducción no los toma en cuenta para fines de la obtención de la
representación binaria asociada con cada una de las especificaciones de disparo,
correspondientes a un temporizador de tipo GPRTR.
Este temporizador es deshabilitado siempre que el usuario tenga oprimido el botón
auxiliar “A” (BAXA), el cual es empleado para habilitar el poder poner a tiempo el RTR
mediante los botones auxiliares BAXB y BAXC, presentes en el BCLD del PLM2, para
71
más información acerca de como colocar a tiempo el RTR puede consultarse en este trabajo
el módulo que lo maneja que es denominado como RTRX.
En la figura 3.48 se muestra la representación genérica de un temporizador de tipo
GPRTR.
Figura 3.48 Representación genérica de un temporizador de tipo GPRTR realizable en el PLM2.
Este módulo debe declararse en el subprograma principal, la sintaxis correspondiente es:
TEMPOB#N XTITJT, CLASE, NT, A; # Renglón de datos uno; # Renglón de datos dos; . . . ## último renglón de datos; Donde: N denota el número de temporizador, esto definido por el usuario; cabe señalar aquí el
hecho de que la numeración para módulos GPRTR es independiente de la correspondiente a
la correspondiente con los otros cinco temporizadores que puede realizar el PLM2.
CLASE es un dígito que denota la clase de temporizador GPRTR que se desea realizar.
NT denota el número de pulsos a generar, el cual es limitado a cincuenta por módulo.
XT podrá ser la letra “s” o “i” mayúscula o minúscula, dependiendo esto de que la variable
de salida “T” del temporizador sea una VBS o VBI.
IT denota el número de grupo que corresponda a la VB declarada como salida del
temporizador.
JT denota el número de bit dentro del grupo IT, asociado a la variable de salida del
temporizador.
72
A es un dígito binario, que habrá de ser cero, si se desea que los pulsos de salida sean
verificados en bajo, en otro caso (pulsos de salida verificados en alto ) “A” deberá ser uno.
En los renglones de datos habrán de colocarse, separados por comas, las
especificaciones de disparo deseadas, al hacer esto el usuario es libre de colocar en cada
renglón el número de especificaciones de disparo que le acomode, cada renglón de datos,
excepto el último, deberá iniciar con el caracter “#” en la primera columna seguido por un
espacio, el último renglón de datos deberá iniciar con dos caracteres “#” en la primera y
segunda columna seguidos por un espacio, todos los renglones de datos deberán finalizar
con el caracter “;”.
El siguiente ejemplo ilustra como declarar temporizadores GPRTR en SIIL1.
Ejemplo 3.14
Supóngase que se desea realizar con el PLM2 un temporizador de tipo GPRTR que
genere cinco pulsos verificados en alto, los primeros dos habrán de presentarse los días
lunes a las ocho de la mañana en punto y a las once horas con cinco minutos, los otros tres
se deberán presentar los días miércoles jueves y sábado a las cinco de la tarde; la salida “T”
deberá ser la VBS S12, asignándosele el número nueve; el temporizador GPRTR
obviamente sería de clase cuatro.
La declaración de este temporizador GPRTR podría ser:
TEMPOB#9 S12, 4, 5, 1;
# LU/08:00:00, LU/11:05:00, MI/17:00:00;
## JU/17:00:00, SA/17:00:00;
73
En la figura 3.49 se muestra la representación como bloque del temporizador de este
ejemplo.
Figura 3.49 Diagrama de tiempo y representación como bloque, del temporizador GPRTR del ejemplo 3.14. 3.2 MÓDULOS AUXILIARES (MA) Existen módulos para el PLM2 denominados como auxiliares, que sirven para
manejar facilidades que no son propiamente funciones lógicas, para varios de ellos la
declaración correspondiente no requiere de operandos, algunos de estos módulos se deberán
colocar en el subprograma principal y otros en el temporizado.
3.2.1 Descripción del MA con capacidad para generar texto estático y/o dinámico en la ud del PLM2 El PLM2 puede realizar módulos denominados de tipo MENSAJERO, con
capacidad para generar texto, predefinido por el usuario, dicho texto podría ser el alusivo a
una condición de alarma, o bien cualquier otro tipo de mensaje que el usuario deseara
desplegar, en la figura 3.52 se muestra la pantalla de la UD, ahí se aprecia que la misma
puede desplegar dos renglones de dieciséis caracteres cada uno; la posición de cada caracter
se especifica por un par de números que denotan en que renglón y columna se encuentra el
mismo.
Al texto a desplegar se le denomina mensaje, teniendo este módulo la capacidad
para desplegar mensajes fijos y/o mensajes móviles, este último será visible en una ventana
delimitada por dos columnas, cuyo número es definido por el usuario y se desplazará
entrando por la columna que define el extremo derecho de la ventana, saliendo por el
extremo izquierdo de la misma; el usuario puede especificar en la declaración
correspondiente, en cual renglón de la UD se desplegarán cada uno de los dos tipos de
mensaje aquí mencionados, el tamaño en caracteres del mensaje móvil es definido por el
74
usuario, a cada uno de los mensajeros involucrados en una determinada aplicación se le ha
de asignar un número, el cual es limitado a 32 por el software de traducción.
Dado el reducido tamaño de la pantalla de la UD, este módulo está diseñado de
modo que en una aplicación que involucre más de un mensajero, sólo esté activo uno a la
vez, por defecto el mensajero que es activo al iniciar la ejecución de un programa en el
PLM2, es el número cero, existen dos módulos con capacidad para cambiar el número de
mensajero activo y estos son el módulo MANDESP y el módulo ALARMA, los cuales
serán explicados más adelante.
Figura 3.52 Pantalla física de la Unidad Desplegadora (UD) del PLM2.
El módulo mensajero es deshabilitado siempre que el usuario tenga oprimido el
botón auxiliar “A” (BAXA), el cual es empleado para habilitar el poder poner a tiempo el
RTR mediante los botones auxiliares BAXB y BAXC, presentes en el BCLD del PLM2,
para más información acerca de como colocar a tiempo el RTR puede consultarse en este
trabajo el módulo que lo maneja que es denominado como RTRX.
Este módulo debe declararse como parte del subprograma temporizado, la sintaxis
para declararlo es la siguiente:
MENSAJERO#N “MENSAJE FIJO”, CI, TV, P, ABCD; # Renglón de datos uno # Renglón de datos dos . . . . ## último renglón de datos Donde: N denota el número de mensajero, esto definido por el usuario, el valor máximo permitido
es 32.
75
MENSAJE FIJO es una cadena de un máximo de dieciséis caracteres, que es colocada a
partir de la columna uno del renglón que el usuario especifique, nótese el empleo de
comillas para delimitar el texto del mensaje fijo, si el usuario deseara que no haya mensaje
fijo, denotaría esto con dos comillas seguidas.
CI denota el número de columna, que delimita el extremo izquierdo de la ventana donde se
desplegará el mensaje móvil.
TV representa el tamaño en columnas del mensaje móvil.
P es un número comprendido entre 1 y 255, que representa el intervalo en centésimas de
segundo entre dos posiciones subsecuentes del mensaje móvil.
A es un dígito binario, que habrá de ser uno, si se desea que el mensaje fijo se despliegue
en el renglón uno, en otro caso “A” deberá ser cero.
B es un dígito binario, que deberá ser uno, si se desea que el mensaje móvil se despliegue
en el renglón uno, en otro caso “B” deberá ser cero.
C es un dígito binario, que deberá ser cero, si se desea que el mensajero opere sólo si el
mismo es el módulo desplegador activo, si “C” es uno, el mensajero opera
independientemente del hecho de que el mismo sea el módulo desplegador activo, desde
luego que el usuario sería responsable de que en el último caso no se produjera una colisión
entre dos mensajeros, que intentarán escribir texto en una misma zona de la pantalla de la
UD.
D es un dígito binario, que deberá ser cero, si se desea que únicamente se despliegue el
mensaje fijo, si “D” se pone en uno la operación será normal, desplegándose tanto el
mensaje fijo como el móvil.
En los renglones de datos habrá de colocarse el texto del mensaje móvil, al hacer
esto el usuario es libre de colocar en cada renglón el número de caracteres que le acomode,
cada renglón de datos, excepto el último, deberá iniciar con el caracter “#” en la primera
columna seguido por un espacio, el último renglón de datos deberá iniciar con dos
caracteres “#” en la primera y segunda columna seguidos por un espacio, a diferencia de los
otros módulos que involucran declaraciones de datos, al final de cada renglón de datos no
deberá colocarse el caracter “;”.
En caso de que un renglón de datos terminara con una palabra completa, deberá
colocarse el caracter “|” como último caracter del mismo, de no hacerse esto, en el mensaje
76
móvil aparecerán, sin espaciamiento entre ellas, la última palabra del renglón en cuestión y
la primera del renglón subsecuente, por cada caracter “|” colocado al final de un renglón de
datos aparecerá, en el mensaje móvil, un espacio entre el último caracter de un renglón de
datos y el primero del siguiente, los caracteres espacio que queden en alguna posición
intermedia, en los renglones que declaran el contenido del texto móvil, se colocan de
manera normal.
El siguiente ejemplo ilustra como declarar módulos mensajeros en SIIL1.
Ejemplo 3.15
Supóngase que como parte de una aplicación del PLM2 se desea realizar un módulo
de tipo mensajero, el cual deberá activarse al iniciar la ejecución en el PLM2 del programa
escrito para el caso, debiendo ser el texto fijo el siguiente: “PROG1”, el texto móvil debe
ser: “Se inició exitosamente la ejecución de PROG1 en el PLM2, mientras aparezca este
mensaje, no se ha generado ninguna condición de alarma”.
Tanto el texto fijo como el móvil deberán aparecer en el renglón uno, la ventana
para el mensaje móvil deberá estar comprendida entre las columnas 7 y 16 (TV = 10),
siendo 25 centésimas de segundo el intervalo deseado entre posiciones subsecuentes del
mensaje móvil; debiendo el mensajero operar sólo cuando el número que se le asigne
coincida con el del módulo desplegador activo (C = 0).
Dado que se requiere que el mensajero inicie su operación al ejecutarse el programa
de la aplicación, se le deberá asignar el número cero; por lo tanto, la declaración de este
mensajero podría ser:
MENSAJERO#0 “PROG1”, 7, 10, 25, 1101;
# Se inició exitosamente la ejecución de PROG1|
# en el PLM2, mientras aparezca este mensaje, no se ha generado ninguna condición de|
## alarma
En la figura 3.53 se muestra el aspecto que tendría la pantalla de la UD, 150
centésimas de segundo después de iniciarse la ejecución del programa que contenga el
mensajero del ejemplo 3.15.
77
Figura 3.53 Pantalla de la UD, 150 centésimas de segundo después de iniciarse la ejecución del programa que contenga el mensajero del ejemplo 3.15. 3.2.2 Descripción del MA con capacidad para generar mensajes de alarma en la UD del PLM2 El PLM2 puede realizar módulos denominados de tipo ALARMA, con capacidad
para generar mensajes en la UD, este módulo cuenta con una sola entrada, que al
verificarse, hace que el texto asociado con un determinado módulo mensajero sea
desplegado en la UD. En la figura 3.56 se muestra la representación como bloque de este
tipo de módulo.
Cada módulo de alarma tendrá asociado el número de módulo mensajero, que
contiene el texto alusivo al la misma, el orden de colocación de la declaración
correspondiente en el programa fuente será el orden de prioridad del mensaje de alarma
asociado; de esta manera, el primer módulo de alarma colocado tendrá máxima prioridad,
mientras que el último tendrá la prioridad mínima, esto quiere decir que si se verifica más
de una entrada de alarma en sendos módulos de este tipo, se desplegará en la UD
únicamente el mensaje asociado con el módulo de mayor prioridad, cuando la entrada de
alarma asociada con este último módulo se desverifica se despliega el mensaje asociado
con el módulo de alarma de mayor prioridad cuya entrada permanezca verificada.
Cuando no están verificadas las entradas asociadas, con cada uno de los módulos de
alarma declarados en un programa en SIIL1, el texto que se despliega es el correspondiente
con el módulo mensajero número cero; así, el texto que indique que no se ha dado ninguna
condición de alarma, habrá de ser el asociado con un módulo mensajero, al que se deberá
asignar el número cero; de este modo, al diseñar un sistema de mensajes de alarma
apoyándose en los módulos mensajeros y de alarma, siempre deberá existir un módulo
mensajero con el número cero.
78
Figura 3.56 Representación como bloque, del módulo activador de mensajes de alarma.
Este módulo debe declararse como parte del subprograma principal, la sintaxis para
declararlo es la siguiente:
ALARMA#NMG XAJAIA, A; Donde: NMG denota el número de módulo de tipo alarma, que debe coincidir con el número de
módulo mensajero asociado con el mensaje a desplegar, cuando se verifique la variable
definida como entrada al módulo de alarma.
XA podrá ser la letra “e”, “s” o “i” mayúscula o minúscula, dependiendo esto de que la
variable de entrada de activación de mensaje de alarma (A), sea una VBE, VBS o VBI.
IA denota el número de grupo que corresponda a la VB declarada como entrada “A”.
JA denota el número de bit dentro del grupo IA, asociado a la variable de entrada “A”.
A es un dígito binario, que habrá de ser uno, si se desea que el nivel de verificación de la
entrada sea alto, en otro caso “A” deberá ser cero.
El siguiente ejemplo ilustra como programar un sistema de mensajes de alarma en
SIIL1, empleando para ello a módulos mensajeros y de alarma.
Ejemplo 3.16
Supóngase que como parte de una aplicación del PLM2, se desea realizar un sistema
de mensajes de alarma con tres mensajes testigo, todos ellos móviles sin mensaje fijo y
desplegados en el primer renglón de la UD a partir de la columna uno, con un tamaño de
ventana de 10 caracteres, de modo que el mensaje de mayor prioridad tenga el siguiente
texto: “El motor del compresor principal se ha detenido, si no se reinicia su operación,
79
habrá que parar la planta por 24 horas”; el texto del siguiente mensaje en orden de prioridad
deberá ser: “La temperatura del interior de la autoclave 4 no es la adecuada, checar el
controlador asociado.”; finalmente, el texto del mensaje de mínima prioridad ha de ser: “La
pintura en el dosificador A, se ha agotado; por lo tanto, el suministro de pintura se ha
conmutado al dosificador B.”; se requiere que el mensaje la condición de no alarma sea:
“Operación normal, no se ha dado ninguna condición de alarma”, debiendo el mismo ser
móvil, desplegado al igual que los mensajes de alarma, en el renglón uno a partir de la
columna uno con un tamaño de ventana de 10 caracteres; se desea que el intervalo entre
posiciones subsecuentes de los mensajes sea de 30 centésimas de segundo.
Las VB que testificarían las condiciones de alarma serían en orden de prioridad las
siguientes: E23, E12, e I12, siendo las dos primeras verificadas en alto y la última en bajo,
a los módulos mensajeros se les deberá asignar, de acuerdo al orden de prioridad los
números 3, 5, y 7.
Este ejemplo implica a varios módulos, cuatro mensajeros y tres activadores de
mensajes de alarma, de acuerdo a lo explicado en párrafos anteriores los módulos
activadores de alarma de este ejemplo se deben colocar en el subprograma principal
mientras que los módulos mensajeros deben ser parte del subprograma temporizado a
continuación se muestra una posible forma de hacer las declaraciones correspondientes:
Declaraciones de los módulos de tipo de alarma, (deben estar en el subprograma principal).
ALARMA#3 E23, 1; Prioridad 1
ALARMA#5 E12, 1; Prioridad 2
ALARMA#7 I12, 0; Prioridad 3
Declaraciones de los módulos mensajeros, (deben estar en el subprograma temporizado).
MENSAJERO#5 “”, 1, 10, 30, 1001; Mensaje asociado con la señal de alarma E12.
# La temperatura del interior de la autoclave 4 no es la adecuada, |
## checar el controlador asociado.
MENSAJERO#3 “”, 1, 10, 30, 1001; Mensaje asociado con la señal de alarma E23.
# El motor del compresor principal se ha detenido, si no se reinicia su operación, |
## habrá que parar la planta por 24 horas
MENSAJERO#7 “”, 1, 10, 30, 1001; Mensaje asociado con la señal de alarma I12.
80
# La pintura en el dosificador A, se ha agotado; por lo tanto, el suministro de pintura |
## se ha conmutado al dosificador B.
MENSAJERO#0 “”, 1, 10, 30, 1001; Mensaje testigo de no condición de alarma.
# Operación normal, no se ha dado ninguna condición de alarma
Nótese que las declaraciones de los módulos mensajeros, pueden ser hechas no
necesariamente en el que corresponda, a la prioridad de los mensajes que portan.
Para apreciar como sería un programa completo en SIIL1, que contuviera un sistema
de mensajes de alarma, se puede ver el ejemplo 3.18 al final de este capítulo.
3.2.3 Descripción del módulo observador del estado de contadores de eventos El PLM2 puede realizar módulos que hacen que el estado de un determinado
contador de eventos sea desplegado en la UD, definiendo el usuario el número de contador,
el renglón y la columna donde se mostrará la cuenta, así como también el número de dígitos
a emplear; el software de traducción limita a ochenta el número de contadores de eventos
permisibles.
Este módulo debe declararse como parte del subprograma principal, la sintaxis para
declararlo es la siguiente:
OBSCE#N CI, ND, R; Donde: N denota el número de módulo observador de contador de eventos, que a su vez es igual al
que corresponda, con el contador cuyo estado se desea desplegar.
CI denota el número de columna en la UD, a partir de la cual se mostrará la cuenta.
ND especifica el número de dígitos significativos a emplear.
R es un número que habrá de ser uno si se desea que la cuenta sea desplegada en el renglón
superior de la UD, en otro caso R deberá ser dos.
El siguiente ejemplo ilustra como declarar un módulo observador de contador de
eventos.
Ejemplo 3.17
Supóngase que como parte de una aplicación del PLM2, se desea desplegar el
estado de un contador de eventos cuyo número de asignación es tres, requiriéndose que la
cuenta sea mostrada en el renglón inferior de la UD a partir de la quinta columna,
mostrándose sólo los tres dígitos menos significativos de la cuenta.
81
La declaración correspondiente es:
OBSCE#3 5, 3,2;
3.2.4 Descripción del módulo manejador del reloj de tiempo real (RTR)
Para habilitar el poder poner a tiempo el RTR del PLM2, existen dos tipos de
módulos auxiliares denominados como RTRA y RTRC; la diferencia entre ambos radica en
el hecho de que para el primero el estado del RTR (hora y fecha) es visible en la UD,
ocupando la fecha las columnas nueve a la dieciséis del primer renglón y la hora las mismas
columnas en el renglón dos, véase la figura 3.59; mientras que para el MA RTRC el estado
del RTR no es visible en la UD; ambos MA contienen código que permite el poder poner a
tiempo el RTR, empleando para ello únicamente los tres botones (BAXA, BAXB, y
BAXC), ligados al puerto auxiliar A del bloque de comando local y despliegue (BCLD) del
PLM2.
Figura 3.59 Aspecto que tendría el despliegue del estado del RTR en la UD, cuando la fecha y hora son los indicados, al ejecutarse en el PLM2 un programa que contenga la declaración del MA RTRA.
En la figura 3.60 se muestra la representación como bloque de los MA RTRA y
RTRC, estos módulos deben ser declarados en el subprograma temporizado y la sintaxis
asociada es:
RTRX; Donde: X será la letra A, si se desea que el estado del RTR sea visible en la UD, en otro caso X
deberá ser la letra C.
82
Figura 3.60 Representación como bloque de los módulos auxiliares RTRA y RTRC.
Estos módulos deben ser declarados una sola vez en un programa en SIIL1; de este
modo, al ejecutarse el mismo quedarán habilitadas las facilidades de despliegue y puesta a
tiempo del RTR; para poner a tiempo el RTR se deben llevar a cabo los siguientes pasos:
1.- Oprimir el botón PA (BAXA), esto hace que aparezca en la UD el estado del RTR al
instante de la opresión sin mostrarse avance en el tiempo, en todos los siguientes pasos
salvo el último, el botón PA deberá permanecer oprimido.
2.- Oprimir el botón “A” (BAXB), esto hace que aparezcan sucesivamente en la posición de
los caracteres que denotan el año, los siguientes pares de caracteres: SE, indicando que al
oprimir el botón “D” los dígitos indicadores de los segundos avanzan en forma natural; MI,
indicando que al oprimir el botón “D” los dígitos indicadores de los minutos avanzan en
forma natural; HO, indicando que al oprimir el botón “D” los dígitos indicadores de las
horas avanzan en forma natural; DS, indicando que al oprimir el botón “D” los caracteres
indicadores del día de la semana avanzan en forma natural; DM, indicando que al oprimir
el botón “D” los dígitos indicadores del día del mes avanzan en forma natural; ME,
indicando que al oprimir el botón “D” los dígitos indicadores del mes avanzan en forma
natural; repitiéndose lo anterior en forma cíclica mientras el botón “A” permanezca
oprimido.
Por defecto, el avance que queda habilitado al oprimirse el botón “PA” es el
correspondiente al par de dígitos que denota el año, no habiendo testificación de avance
como las indicadas en el párrafo anterior.
3.- Soltar el botón “A” cuando en las columnas quince y dieciséis del renglón uno de la
UD, aparezcan los caracteres que denotan al par de dígitos que se desea ajustar; por
ejemplo, si se desea ajustar los dígitos que indican “horas”, el botón A deberá soltarse
83
cuando en la esquina superior derecha de la UD aparezcan el par de letras “HO”, véase la
figura 3.61.
4.- Oprimir el botón “D” (BAXC), hasta que el par de dígitos seleccionado llegue al valor
deseado.
5.- Repetir los pasos dos, tres y cuatro, para cada par de dígitos indicadores del estado del
RTR que se desee ajustar.
6.- Soltar el botón “PA”, esto hace que la hora y fecha indicada por el usuario sea copiada
al RTR.
Figura 3.61 Aspecto de la pantalla de la UD, indicando que el par de dígitos indicadores de las “horas”, se incrementarán al oprimirse el botón “D”. Nota: Para el PLM2 se suprimieron los botones BAXA, BAXB y BAXC; por lo tanto, el reloj de tiempo real no podrá ponerse a tiempo estando en ejecución el programa en SIIL1 asociado con la aplicación, sino solamente fuera de ejecución empleando la facilidad que para tal caso existe en el SD_PLM2.
3.2.5 Descripción del MA “DESP”, que copia a la UD el contenido de su buffer asociado
Siempre que se empleen módulos que hagan uso de la UD, se deberá declarar en el
subprograma principal un MA denominado como DESP, esto habrá de hacerse una sola
vez. Este MA copia cíclicamente el contenido del buffer de la UD al desplegador físico, la
sintaxis para declarar a este módulo es la siguiente:
DESP;
3.2.6 Descripción del MA “MANDESP”, que permite observar para verificación, el texto asociado con módulos de tipo mensajero. El PLM2 cuenta con un MA que permite observar cíclicamente el texto asociado
con los módulos de tipo mensajero, que hayan sido declarados como parte del programa en
SIIL1, correspondiente a una determinada aplicación, para habilitar esto este módulo debe
declarase como parte del subprograma temporizado; así, al estarse ejecutando el programa
84
y oprimirse sucesivamente el botón BAXD del BCLD se mostrarán, uno a la vez, los
diferentes textos asociados con los módulos de tipo mensajero que se hubieren declarado,
especificando el usuario el número máximo de módulo mensajero implicado, los textos irán
apareciendo en orden ascendente, al oprimirse BAXD cuando se esté desplegando el
mensaje cuyo módulo asociado tiene el valor máximo definido, se regresa al despliegue del
mensaje correspondiente al módulo mensajero número cero, repitiéndose el ciclo siempre
que el usuario continúe oprimiendo el botón BAXD.
El propósito de este MA es proporcionar al usuario un medio para verificar la
operación de los diversos módulos de tipo mensajero, que el mismo este empleando en una
determinada aplicación, una vez hecho esto el usuario podrá, si lo desea, eliminar del
programa la declaración de este MA; la sintaxis para declarar a este módulo es:
MANDESP N;
Donde:
N representa el número máximo asociado con módulos de tipo mensajero que contenga el
programa.
85
APÉNDICE A
LISTA DE ERRORES DE SINTAXIS PARA EL LENGUAJE SIIL1
86
LISTA DE ERRORES DE SINTAXIS PARA EL LENGUAJE SIIL1 001 Caracter ";" no encontrado. 002 Instrucción de longitud mayor a 80 caracteres. 003 Operando inexistente en OPR$ (dos o más comas seguidas v.g. xxx,,xx,,) 004 Coma sobrante a la derecha de OPR$ (campo de operandos). 005 Coma sobrante a la izquierda de OPR$ (campo de
operandos). 006 Operando faltante (cadena de puros espacios). 007 Etiqueta de más de 20 caracteres. 008 Campo de instrucción (INSTRU$) inexistente. 009 Reservado. 010 Directiva y/o comando de inicialización faltantes. 011 Cadena sobrante a la derecha de una directiva EQU. 012 Directiva EQU con primer caracter no letra. 013 Signo igual no encontrado en directiva EQU. 014 Cadena a la derecha de un signo igual inexistente o
de puros espacios. 015 Comando de inicialización (COIN$) inválido. 016 Primer caracter de INSTRU$ no letra. 017 Instrucción inexistente. 018 Declaración FINPP colocada más de una vez. 019 Cadena binaria indicativa inválida. 020 Operando con caracter inicial no letra. 021 Especificación de bit en, grupo de entrada o
salida, inválida. 022 Especificación de grupo, en operando XIJ, inválida. 023 Letra en operando real diferente de E, S o I. 024 Carácter delimitador de número de dispositivo no
encontrado. 025 Especificación de número de dispositivo inválido. 026 Número de dispositivo previamente existente. 027 Cadena de operandos esperada inexistente OPR$="". 028 Operando que no cuadra con ninguna DIREQU$. 029 Salida S declarada anteriormente. 030 Salida I declarada anteriormente. 031 Entrada E declarada como salida. 032 Configuración inválida detectada al escribir
ESCBUFX.BLM . 033 Multideclaración de comando FINPP. 034 Instrucción inexistente. 035 Número de operandos incongruente con instrucción. 036 Entrada física declarada como salida.
87
037 Cadena binaria (MAIE) de longitud inválida. 038 Grupo de entrada inválido. 039 Grupo de salida inválido. 040 Grupo de VBI inválido. 041 Carácter # no encontrado. 042 Especificación de grupo vacía. 043 Dígito o dígitos inválido en cadena especificadora
de tiempo. 044 Cadena indicadora de tiempo (00 00 00.00) inválida. 045 Declaración INMODI antes de FINPP. 046 Multideclaración de INMODI. 047 Declaración FINMODI antes de INMODI. 048 Multideclaración de FINMODI. 049 Número de temporizador fuera de rango. 050 Cadena binaria indicativa inválida. 051 Fin de archivo antes de poder leer tabla de datos. 052 Cadena vacía en renglón de datos de tiempos TM's. 053 Especificación de tiempos inválida (cadena
correspondiente de longitud > 11) 054 Cadena especificadora de un TM inconsistente (de
longitud inadecuada). 055 Tiempo TM menor de tiempo TC. 056 Número de tiempos TM rebasa el valor NTM. 057 TC mayor o igual a TM en TEMPOE. 058 Renglón leído no corresponde con campo de datos
esperado (caracter # en primera columna no encontrado).
059 Número de estados en secuenciador mayor que NESMAX
(NESMAX=1000). 060 Número de estados en secuenciador declarado como
cero. 061 Declaración no binaria o hexadecimal en "dato
estado" asociado con secuenciador. 062 Caracteres Hex definitorios de estado de más de dos
dígitos. 063 Dígito no hexadecimal en declaración de estado de
secuenciador. 064 Número de dígitos en estado Hex diferente de 2. 065 Longitud de cadena binaria, en especificación de
estado, diferente de M en secuenciador SECMXN. 066 Número de estados declarados asociados con un
secuenciador es superior a el número de estados
88
especificado en declaración de secuenciador (SECMXN, número de estados en datos > N). 067 Número bits "M" en estado de secuenciador mayor que
ocho. 068 Máximo número de contadores de eventos rebasado. 069 Cuenta final o cuenta inicial fuera de rango
(>65535) en módulo contador de eventos. 070 CUENTAF<CUENTAI en módulo contador ascendente. 071 CUENTAF>CUENTAI en módulo contador descendente. 072 Multidefinición de instrucción DESP. 073 Máximo número de módulos desplegadores tipo
mensajero,rebasado. 074 Tamaño de ventana de despliegue mayor que 16, en
módulo desplegador tipo mensajero. 075 Tamaño de ventana fuera de rango en módulo
desplegador tipo mensajero. 076 Ventana de tamaño incompatible con el valor de CI, declarado en un módulo desplegador de tipo
mensajero. 077 Encabezado, en módulo desplegador de tipo
mensajero, de longitud mayor que 16. 078 Tiempo de permanencia de ventana fuera de rango en
módulo desplegador de tipo mensajero. 079 Dígito o dígitos inválidos en cadena especificadora
de un valor numérico. 080 Número de tiempos TM inferior al declarado en
TEMPOG o TEMPOB. 081 Número de estados leídos en campo de datos asociado
con un secuenciador es menor que el declarado en la correspondiente instrucción SECMXN. 082 Multideclaración de instrucción MANDESP. 083 Tope inválido para módulos desplegadores. 084 Multidefinición de RTR. 085 Número de temporizador tipo B fuera de rango. 086 Especificación no válida para clase, en contador
tipo B. 087 Especificación de clase fuera de rango en contador
tipo B. 088 Especificación de número de especificaciones de
disparo, no válida.
89
089 Número de especificaciones de disparo fuera de
rango. 090 Denotación inválida en especificación de disparo de
temporizador tipo B. 091 Longitud inválida de cadena especificadora de
tiempos de disparo asociado con temporizador tipo B. 092 Día de la semana inválido en especificación de
disparo asociado con temporizador tipo B. 093 Día del mes incongruente en especificación de
disparo de temporizador tipo B. 094 Número de especificaciones de disparo en
temporizador tipo B incongruente con lo declarado en la correspondiente instrucción. 095 Expresión para número de contador de eventos
inválida en módulo observador de contador de eventos. 096 Número de contador mayor que 80 en módulo
observador de contador de eventos. 097 Expresión no numérica para columna inicial "CI"en
módulo observador de contador de eventos. 098 Valor para columna inicial "CI" fuera de rango,en
módulo observador de contador de eventos. 099 Expresión no numérica para "ND" (número de dígitos)
en módulo observador de contador de eventos. 100 Número de dígitos "ND" fuera de rango en módulo
observador de contador de eventos. 101 Dígitos de contador de eventos,rebasan límites
físicos de la unidad de despliegue. 102 Expresión para número de renglón inválida en módulo
observador de contador de eventos. 103 Número de renglón fuera de rango,en módulo
observador de contador de eventos. 104 Especificación inválida de mensaje de alarma. 105 Número de mensaje de alarma asociado, mayor que
200.
90
APÉNDICE B
COMPONENTES DE LAS TARJETAS ELECTRÓNICAS DEL PLM2
91
COMPONENTES PARA LA TARJETA FACIL_11C
Por: Antonio Salvá Calleja
C1’S
1 68HC11F1 1 MAX232 1 MC34064P 2 74HC574 * 2 74HC573 * 1 7805 1 74HC138 * 1 74HC00 * 1 RAM 62256 Ó 6264 * 1 EPROM 27C256 Ó 27C64 **
RESISTENCIAS (TODAS ¼ W 5% A MENOS QUE SE ESPECIFIQUE OTRA TOLERANCIA)
2 TRIMPOT VERTICALES DE 20KΩ 1 10 MΩ 1 4.7KΩ 17 10KΩ
10 1.2KΩ 4 1KΩ 1 27KΩ 1 3.9KΩ 1 2.2KΩ 1 15 Ω
BASES
1 PLCC 68 PINES 2 DIP 16 PINES 1 DIP 14 PINES 4 DIP 20 PINES 2 DIP 28 PINES 1.....BASE DE ENTRADA DE ELIMINADOR DE BATERÍA PARA CIRCUITO IMPRESO.
1 CRISTAL DE 8MHZ 3 TRANSISTORES 2N2222A 2 ZENER DE 6.8V 1/2W Ó 1W 5 DIODOS 1N914 1 DIODO 1N4001
CAPACITORES
5 1 µf A 25V 2 18 pf ó 22 pf 2 0.1 µf (100 ηf) 3 0.01 µf (10 ηf) 1 10 µf A 25V 1 47 µf A 25V
OTROS
3 MOLEX DE DOS PINES (Postes, caja y pines) 1 MOLEX DE TRES PINES (Postes, caja y pines) 2 TIRAS DE POSTES SENCILLOS 3 TIRAS DE POSTES DOBLES 1 DISIPADOR PARA EL REGULADOR 7805 22 JUMPERS (100 milésimas de pulgada)
LEDS
8 LEDS DE COLOR NARANJA DIFUSOS (LEDS 2 a 9) 1 LED ROJO (LED10) 1 LED AMARILLO (LED 1)
OTROS
1 CONECTOR DB9 HEMBRA PARA CIRCUITO IMPRESO 1 CABLE RS232C DB9 MACHO a DB9 HEMBRA (una a uno)
1 BOTÓN NORMALMENTE ABIERTO (pushboton para circuito impreso)
92
1 DB9 HEMBRA *** 1 CONCHA DE PLASTICO
PARA EL DB9***
1 JUEGO DE TUERCA Y TORNILLO PARA ASEGURAR EL DISIPADOR AL 7805 3 TRAMOS DE CABLE (22) DE 1.5m DE COLORES DISTINTOS***
CIRCUITO IMPRESO FACIL_11B
19 POSTES INDIVIDUALES PARA LOS PUNTOS DE PRUEBA: Vp, VRH, T, Vpgm, Vcal, +5V, VE, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, IRQ, RxF11C, TxF11C y XIRQ
* COMPONENTE NO NECESARIO PARA OPERACIÓN EN BOOT-STRAP **COMPONENTE OPCIONAL PARA OPERAR UNA APLICACIÓN EN FORMA AUTÓNOMA Y MODO EXPANDIDO. *** COMPONENTE NECESARIO EN CASO DE QUE NO SE CUENTE CON EL CABLE RS-232C. NOTA: SE RECOMIENDA USAR SILICON EN LA UNIÓN DEL REGULADOR Y EL DISIPADOR.
MAPA DE LOCALIZACIÓN DE COMPONENTES DE TARJETA FACIL_11C
93
SUBMAPA 1 DE LOCALIZACIÓN DE COMPONENTES
SUBMAPA 2 DE LOCALIZACIÓN DE COMPONENTES
SUBMAPA 3 DE LOCALIZACIÓN DE COMPONENTES
94
SUBMAPA 4 DE LOCALIZACIÓN DE COMPONENTES
TABLA 1. LOCALIZACIÓN DE CIRCUITOS INTEGRADOS NÚMERO DE CI LOCALIZACIÓN SUBMAPA DE LOCALIZACIÓN
CI 1 68HC11F1 B1 1
CI 2 MC34064 B1 1 CI 3 MAX232 B2 3
CI 4 RAM 6264 ó 62256
C2 4
CI 5 EPROM 27C64 ó 27C256
C2 4
CI 6 74HC138 C1 2 CI 7 74HC00 D1 2
CI 8 7805 A2 3 CI 9 74HC574 A1 1
95
CI 10 74HC574 A1 1 CI 11 74HC573 A1 1
CI 12 74HC573 A1 1 TABLA 2. LOCALIZACIÓN DE CONECTORES
CONECTOR LOCALIZACIÓN SUBMAPA 1 (2x20) D2 4 2 (2x20) A1 1 3 ( 2x4 ) B1 1 4 (1x16) C1 2 5 ( 1x6 ) B2 3 6 ( 1x8 ) C2 4 7 ( 1x2 )
OLES O EQUIV. A2 3
8 ( 1x2 ) OLES O EQUIV.
D2 4
9 ( 1x3 ) OLES O EQUIV.
B2 3
10 ( 1x2 ) OLES O EQUIV.
D2 4
11 BASE DE ENTRADA DE ELIMINADOR DE
BATERÍA
D2 4
12 CONECTOR DB9 HEMBRA PARA
CIRCUITO IMPRESO
D2 4
TABLA 3. LOCALIZACIÓN DE CAPACITORES
CAPACITOR (valor) LOCALIZACIÓN SUBMAPA
C1 (1 µF 16V) B2 3 C2 (1 µF 16V) B2 3 C3 (1 µF 16V) B2 3 C4 (1 µF 16V) B2 3 C5 (18 a 22 pF) B1 1 C6 (18 a 22 pF) B1 1 C7 (10 µF 16V) B2 3 C8 ( 1 µF 16V) B1 1 C9 (0.1 µF ) B2 3 C10 (.01 µF ) C2 4 C11 (.01 µF ) C1 2
C12 (10 µF 16V) D1 2 C13 (0.1 µF ) A2 3
C14 (47 µF 16V) A2 3 C15 (.01 µF ) A1 1
96
TABLA 4. LOCALIZACIÓN DE POSTES DE PRUEBA
POSTE LOCALIZACIÓN SUBMAPA +5V C2 4
T C2 4 Vcal D1 2 VE A2 3 Vp A2 3
Vpgm D2 4 VRH B1 1
PB7, PB6, PB5, PB4, PB3 D1 2 PB2, PB1, PB0 D2 4
IRQ D2 4 XIRQ D2 4
TxF11C D2 4 RxF11C D2 4
TABLA 5. LOCALIZACIÓN DE RESISTENCIAS
RESISTENCIA ( valor ) LOCALIZACIÓN SUBMAPA R1 (10MΩ 5 %) B1 1 R2 (10 KΩ 5 %) B2 3 R3 (10 KΩ 5 %) B2 3 R4 (10 KΩ 5 %) B2 3 R5 (10 KΩ 5 %) B1 1 R6 (10 KΩ 5 %) B1 1 R8 (10 KΩ 5 %) B2 3 R9 (1.2 KΩ 5 %) B2 3 R10 (1 KΩ 5 %) B1 1
R11 (1.2 KΩ 5 %) D2 4 R12 (1.2 KΩ 5 %) D2 4 R13 (1.2 KΩ 5 %) D1 2 R14 (1.2 KΩ 5 %) D1 2 R15 (1.2 KΩ 5 %) D1 2 R16 (1.2 KΩ 5 %) D1 2 R17 (1.2 KΩ 5 %) D1 2 R18 (1.2 KΩ 5 %) D1 2 R19 (249 Ω 1 %) D2 4 R20 (4.7 KΩ 5 %) A2 3 R21 (1 KΩ 5 %) A2 3 R22 (1 KΩ 5 %) A2 3 R23 (1 KΩ 5 %) A2 3 R24 (27 KΩ 5 %) A2 3 R25 (3.9 KΩ 5 %) A2 3 R26 (2.2 KΩ 5 %) D2 4
97
R27 (15 Ω 5 %) B1 1 R28 (10 KΩ 5 %) B2 3 R29 (10 KΩ 5 %) B2 3 R30 (10 KΩ 5 %) B2 3 R31 (10 KΩ 5 %) B2 3 R32 (10 KΩ 5 %) C2 4 R33 (10 KΩ 5 %) C2 4 R34 (10 KΩ 5 %) C2 4 R35 (10 KΩ 5 %) C2 4 R36 (1.2 KΩ 5 %) C2 4 R37 (10KΩ 5 %) C2 4 R38 (10KΩ 5 %) C2 4 R39 (10KΩ 5 %) C2 4
POT1 (TRIMPOT DE 20 KΩ)
D1 4
POT2 (TRIMPOT DE 20 KΩ)
D1 4
TABLA 6. LOCALIZACIÓN DE PUENTES (JUMPERS) PUENTE (JUMPER) LOCALIZACIÓN SUBMAPA
J1 B2 3 J4 B1 1 J5 B1 1 J6 D2 4 J7 D2 4 J8 B1 1 J9 D2 4 J11 A2 3 J12 C2 4 J13 C2 4 J14 D2 4 J15 D2 4 J16 D2 4 J17 D2 4 J19 C2 4 J20 C2 4 J21 D1 2 J22 D1 2 J23 D1 2 J24 A2 3 J25 A2 3 J26 A2 3 J27 B2 3 J28 C1 2 J29 C1 2
98
J30 C2 4 J31 B2 3 J32 A2 3 J33 D2 4 J34 C2 4 J35 B2 3 J36 B1 1
Nota: No existen los puentes J2, J3, J10 y J18. TABLA 7. LOCALIZACIÓN DE LEDS
LED LOCALIZACIÓN SUBMAPA
1 (testigo pumma, amarillo) B2 3 2 (testigo PB7, naranja) D1 2 3 (testigo PB6, naranja) D1 2 4 (testigo PB5, naranja) D1 2 5 (testigo PB4, naranja) D1 2 6 (testigo PB3, naranja) D1 2 7 (testigo PB2, naranja) D2 4 8 (testigo PB1, naranja) D2 4 9 (testigo PB0, naranja) D2 4 10 (testigo +5V, rojo) C2 4
TABLA 8. LOCALIZACIÓN DE CRISTAL, BOTÓN DE RESET Y COMPONENTES SEMICONDUCTORES DISCRETOS
COMPONENTE LOCALIZACIÓN SUBMAPA
BOTÓN NORMALMENTE ABIERTO (pushboton)
B2 3
CRISTAL (8 MHz) B1 1 TRANSISTOR T1 (2N2222A) A2 3 TRANSISTOR T2 (2N2222A) A2 3 TRANSISTOR T3 (2N2222A) A2 3
VZ1 (zener 6.8 V ½ ó 1 W) A2 3 VZ2 (zener 6.8 V ½ ó 1 W) A2 3
D1 (diodo 1n914) A2 3 D2 (diodo 1n914) A2 3 D3 (diodo 1n914) A2 3 D4 (diodo 1n914) C2 4 D5 (diodo 1n914) C2 4
D6 (diodo 1n 4001) B2 3
99
COMPONENTES DE LA TARJETA E/S_BIN_PLM2 Por: Antonio Salvá Calleja y María Leonor Salcedo Ubilla
No PIEZAS COMPONENTE DESCRIPCIÓN
1 16 4N26 CI1 a CI16 Optoacoplador (salida transistor NPN)
2 26 1N4001 D1 a D26 Diodo de propósito general
3 27 4.7KΩ R1,R3,…,R31 R33 a R43 Resistores 4.7KΩ a ¼ W
4 16 2.2KΩ R2,R4,…,R32 Resistores 2.2KΩ a ½ W 5 16 6P CI1 a CI16 Base para CI tipo DIP 6
terminales 6 8 RELEVADOR REL1 a REL8 Relevador 1 polo 1 tiro 3A 12V
7 11 14P REL1 a REL8 CI17 a CI21
Base para CI tipo DIP 14 terminales
8 2 SN7416 CI17 y CI18 Buffer open-collector 9 1 DM74HC125 CI19 Buffer 3 estados 10 1 DM74HC138 CI20 Decodificador 11 1 MM58274 CI21 Reloj de tiempo real 12 1 32.768KHz En CI21 Cristal 32.768 Kilo hertz 13 2 22pf ó 18pf En CI21 Capacitor cerámico CC-18/500V 14 2 16P En CI20 y
CI21 Base para CI tipo DIP 16 terminales
15 5 0.1µf (100ηf) En CI17 a CI21
Capacitor cerámico CC-.1/500V, para des acoplo
16 3 Header - 2 Conectores 40P Tira con 36 terminales 2 líneas; para cable plano
17 4 MOLEX 100 Ja, Jb, BAXD y fusible
Molex de paso 100, 2 pines (caja, postes y pines)
18 1 MOLEX 100 Alimentación 5V, 12V y GND
Molex de paso 100, 3 pines (caja, postes y pines)
19 24 BORNERA EA, EB y SA Bornera para circuito impreso 2 terminales
20 1 Cable calibre 22 Alimentación 1m cable rojo calibre 22 21 1 Cable calibre 22 Alimentación 1m cable negro calibre 22 22 1 Cable calibre 22 Alimentación 1m cable verde calibre 22 23 1 Circuito impreso
E/S_BIN_PLM2e 24 1 Socket para batería CR2025 25 1 Capacitor 10 uF C8 Filtro de batería de respaldo del
reloj
100
COMPONENTES DE LA TARJETA ESAN_FP_PLM2
Por: Antonio Salvá Calleja y Victor Manuel Sánchez Esquivel RESISTORES 4.7 k @ ¼ de W (5) 2.2 k @ ¼ de W (5) 10 k @ ¼ de W (2) 1 k @ ¼ de W (2) 270 @ ¼ de W (2) 249 @ ¼ de W ± 1% (2) 470 @ ¼ de W (1)
CONDENSADORES 0.1 F (5) 0.01 F (2) 0.33 F (2) 4700 F @ 25 V Electrolítico (3) 10 F @ 25 V Electrolítico (3) 2.2 F @ 25 V Electrolítico (1)
POTENCIOMETROS (Trimpot vertical) 10 k (3) 2 k (3) 5 k (2)
CIRCUITOS INTEGRADOS Convertidor DAC08** (1) Amplificador Operacional TL084 (2) Regulador LM7805 (1) Regulador LM7815 (1) Regulador LM7915 (1)
DIODOS Zener de 5.1 V @ 1 W (2) 1N914 (4) 1N5402 (4) 1N4007 (4) LED (1)
BASES DIP de 14 pines (2) DIP de 16 pines (1)
Circuito impreso de la tarjeta ESAN_FP_PLM2 (1) Disipadores horizontales, tuerca y tornillo (3) Tira de postes dobles (1) Tramo de cable (22) de 1.5 m (1) Clavija (1) Jumper (3) Bornera de dos terminales (5)
Molex de dos pines* (caja, poste y pines) (5) Molex de tres pines* (caja, poste y pines) (2) Molex de cuatro pines (caja, poste y pines) (1) * Con los pines en escuadra (1)
101
RESISTORES 4.7 kΩ R01, R11, R32, R33, R36 2.2 kΩ R04, R07, R14, R17, R35 10 kΩ R06, R16 1 kΩ R08, R18 270 Ω R03, R13 249 Ω R20, R21 470 Ω R1 TRIMPOTS (POTENCIOMETROS) 10 kΩ R02, R12, R30 5 kΩ R34, R37 2 kΩ R09, R19, R31 CONDENSADORES 0.1 f C3, C1A, C2A, C33, C35A 0.01 f C9, C34A 0.33 f C2, C8 4700 f C1, C4, C7 10 f C6, C10, C11 2.2 f C5 DIODOS ZENER 5.1 V @ 1 W DZ21, DZ20 1N914 D01A, D02A, D11A, D12A 1N5402 D1, D2, D3, D4 1N4007 D6, D7, D8, D9 LED D5 CIRCUITOS INTEGRADOS TL084 CI_1, CI_2 DAC08** CI_3 LM7805 CI_4 LM7915 CI_5 LM7815 CI_6
102
top related