-1-
ndice
1. ndice
1 ndice 2
2 Estudio Situacin Actual en la Industria. 5
2.1 Introduccin 5
2.2. Evolucin de la automatizacin industrial. 5
2.2.1. Estructuras generales de los sistemas de control industriales. 7
2.2.2. Control Centralizado. 8
2.2.3. Control Centralizado Multicapa. 8
2.2.3.1. Prestaciones. 9
2.2.3.2. Requisitos. 9
2.2.3.3. Mdulos de un SCADA. 10
2.2.4. Control Distribuido. 10
2.3. Caractersticas especficas de las redes locales Industriales. 12
2.3.1. Caractersticas. 12
2.3.1.1. Entorno de funcionamiento hostil. 12
2.3.1.2. Restricciones Temporales. 12
2.3.1.3. Arquitecturas Adecuadas. 12
2.3.2. Jerarqua entre los niveles de comunicacin. 12
2.3.2.1. Red de Factora. 17
2.3.2.2. Red de Planta. 17
2.3.2.3. Red de Clula. 17
2.3.2.4. Bus de Campo (field bus). 18
2.4. Ejemplos de estudio. 22
2.4.1. Redes Map y Top. 22
2.4.1.1. Caractersticas de las redes MAP destacables. 24
2.4.2. Redes MINIMAP. 24
2.4.3. Ethernet Industrial. 26
2.4.4. PROFIBUS. 29
2.4.4.1. Estructura. 30
2.4.4.2.. Configuracin fsica de Bus. 31
2.4.4.3. Versiones Compatibles. 32
2.4.4.4.. Estructura de la red. 35
2.4.4.5. Tecnologa de transmisin. 37
2.4.5.. AS-I AKTUATOR SENSOR INTERFACE. 39
2.4.6.. INTERBUS. 41
2.4.7. CAN: CONTROLLER AREA NETWORKING. 44
2.4.8.. Comparacin de los casos estudiados. 47
3. Estudio y desarrollo de un control distribuido para una planta. 48
3.1. Introduccin. 48
3.2.. Estacin de trabajo. 50
3.2.1. Software. 50
3.2.2. Funcionamiento. 51
3.2.2.1. Pantalla Inicio. 51
2
ndice
3
ndice
4
Estudio Situacin Actual en la Industria.
2.1. Introduccin.
El desarrollo del control distribuido en la industria va paralelo al de las comunicaciones.
Cada vez es ms necesario disponer de dispositivos inteligentes para realizar el control o la
supervisin remota, tanto de procesos de fabricacin, como de almacenamiento o
distribucin.
Los sistemas o redes de comunicacin empleados en entornos industriales se encuentran
sometidos a una problemtica especfica que condiciona enormemente su diseo y los
diferencia de las redes de datos o redes de oficina. El desarrollo de los microprocesadores,
microcontroladores y los controladores lgicos programables (PLCs) dio lugar a la
aparicin del control distribuido. En este tipo de esquema, un PLC o un microprocesador
controla una o ms variables del sistema realizando un control directo de las mismas. Estos
equipos de control local se comunican con otros elementos de su nivel y con el nivel
superior de supervisin.
Los primeros PLCs se usaron para controlar procesos secuenciales (cadenas de montaje,
transporte, etc.). El problema que presentaba era que su memoria era cableada, por lo que
la reutilizacin es posible pero costosa. Se empezaron implementar memorias con
semiconductores eliminando las memorias cableadas mayor flexibilidad por la facilidad de
programacin. Pero por entonces todava la tecnologa de los microprocesadores no era
-5-
Estudio Situacin Actual en la Industria.
En los aos "90 cuando los sistemas de control basado en PC hicieron su aparicin en la
escena de la automatizacin industrial, los partidarios de estos sistemas ms poderosos y
abiertos afirmaban que dichos sistemas podran llegar a suplantar a los controladores
lgicos programables (PLC's) y hasta los sistemas de control distribuidos (DCS's) en
numerosas aplicaciones. El PC tena mucho que ofrecer, pero no suplantara las
plataformas ya probadas de control industrial, no por lo menos en la forma de un PC de
escritorio. El PC era la mejor opcin a la hora de integrar funcionalidad avanzada, como
puede ser conectividad de base de datos, integracin, control analgico y simulacin
basados en Web y comunicacin de datos con terceros. El problema con el control basado
en PC ha sido siempre este. Los PC's que corren en sistemas operativos estndares con
hardware comn resultan demasiado frgiles y temperamentales como para brindar un
control industrial confiable.
El resultado de todas estas innovaciones fue la aparicin de controladores hbridos que
permiten manejo de variables analgicas y digitales, en conjunto con caractersticas como
procesador de punto flotante para clculos personales, servidor Web interactivo embebido
que facilita las tareas de control y monitoreo, flash compacto removible para la recoleccin
y registro de datos, puertos seriales mltiples y conexionado mediante buses de campo para
la comunicacin con terceros.
6
Estudio Situacin Actual en la Industria.
En la misma pueden verse dos reas bien definidas: Una la parte operativa y otra la parte
de control. En la parte operativa tenemos los dispositivos de hardware y software que
brindan la informacin necesaria para llevar a cabo las operaciones de planta necesarias,
con una interfaz amigable y entendible para el operador.
En la parte de control encontramos a los dispositivos de control (PLC's, DCP'S y PCs
industriales) que permiten llevar a cabo las acciones de control en conjunto con los
actuadores. Entre todos estos dispositivos hay comunicacin vertical (desde la parte de
control hacia la operativa y viceversa) y comunicaciones horizontales (entre distintos
dispositivos de control).
Las dos arquitecturas ms conocidas de control industrial, aunque cabe aclarar que no son
las nicas y muchas soluciones de automatizaciones son una mezcla de estas que se adapta
a las necesidades especficas de cada situacin.
7
Estudio Situacin Actual en la Industria.
8
Estudio Situacin Actual en la Industria.
2.2.3.1. Prestaciones:
Un paquete SCADA debe estar en disposicin de ofrecer las siguientes prestaciones:
Posibilidad de crear paneles de alarmas, que exigen la presencia del operador para
reconocer una parada o situacin de alarma, con registro de incidencias.
Generacin de histricos de seal de planta, que pueden ser volcados para su
proceso sobre una hoja de clculo.
Ejecucin de programas, que modifican la ley de control, o incluso anular o
modificar las tareas asociadas al autmata, bajo ciertas condiciones.
Posibilidad de programacin numrica, que permite realizar clculos aritmticos de
elevada resolucin sobre la CPU del ordenador.
Con ellas, se pueden desarrollar aplicaciones para ordenadores (tipo PC, por ejemplo), con
captura de datos, anlisis de seales, presentaciones en pantalla, envi de resultados a disco
e impresora, etc.
Adems, todas estas acciones se llevan a cabo mediante un paquete de funciones que
incluye zonas de programacin en un lenguaje de uso general (como C, Pascal, o Basic), lo
cual confiere una potencia muy elevada y una gran versatilidad. Algunos SCADA ofrecen
libreras de funciones para lenguajes de uso general que permiten personalizar de manera
muy amplia la aplicacin que desee realizarse con dicho SCADA.
2.2.3.2. Requisitos:
Un SCADA debe cumplir varios objetivos para que su instalacin sea perfectamente
aprovechada:
Deben ser sistemas de arquitectura abierta, capaces de crecer o adaptarse segn
las necesidades cambiantes de la empresa.
9
Estudio Situacin Actual en la Industria.
Existencia de varias unidades de control que llevan a cabo las tareas. En caso de avera o
sobrecarga de trabajo, ser posible transferir todo o parte de las tareas a otras unidades.
10
Estudio Situacin Actual en la Industria.
La idea de poder hacer bypass a las unidades con problemas permite evitar los bloqueos
necesarios del sistema, (paradas de planta) pero por otra parte exige que los diferentes
controladores tengan una asignacin dinmica de las tareas y por tanto se les va a exigir
gran capacidad de acceso a la comunicacin y de tratamiento de la informacin.
La desventaja de esto es la disminucin de la velocidad de comunicacin debido a los
retardos, posibles desbordamientos en el procesamiento de datos en cada nivel y falta de
flujo de informacin directa entre controladores. Pero esto est siendo solucionado por la
aparicin de nuevas tecnologa de comunicacin de datos cada vez ms potentes
Aqu vemos que tambin tenemos una unidad de control y supervisin (SCADA) que
cumple con las caractersticas antes mencionadas para el control centralizado multicapa.
A continuacin se muestra una tabla comparativa sobre los aspectos principales de las dos
arquitecturas antes mencionadas.
TIPO DE CENTRALIZADA DISTRIBUIDA
ARQUITECTURA
RLGt." LATO RIO:
SUPERVISORIO: Lazos
de control cerrados por el Lazos de control cerrados
TIPO DE CONTROL automticamente por el
operador. Adicional mente:
PREDOMINANTE sistema. Adicionalmente:
control secuencia] y
regulatorio. control secuencia, batch,
algoritmos avanzados, etc.
TIPOS DE VARIABLES DESACOPLADAS ACOPLADAS
Arcas geogrficamente
REA DE ACCIN Arca de la planta.
distribuidas.
UNIDADES DE
ADQUISICIN DE Controladores de lazo, PLC's,
Remotas, PLC's.
DATOS DCS's
Y CONTROL
Radio, satlite, lneas
MEDIOS DE telefnicas, conexin Redes de rea local, conexin
COMUNICACIN directa. directa.
I.AN. WAN.
BASE DE DATOS CENTRALIZADA DISTRIBUIDA
A partir de lo expuesto hasta aqu se puede observar que la comunicacin entre
controladores es un aspecto fundamental para el funcionamiento de un sistema de control
distribuido. A continuacin se detallaran las caractersticas que deben tener estas redes de
controladores para operar en el ambiente de planta.
11
Estudio Situacin Actual en la Industria.
2.3.1. Caractersticas:
En general, las redes de datos estn orientadas al transporte de grandes paquetes de datos,
que aparecen de forma espordica (baja carga), y con un gran ancho de banda para permitir
el envo rpido de una gran cantidad de datos. En contraste, las redes de control se
enfrentan a un trfico formado por un gran nmero de pequeos paquetes.
En principio, las redes de datos convencionales podran emplearse para su uso como redes
de control, sin embargo, es evidente que no resultan adecuadas para las necesidades de este
tipo de aplicaciones. Por ejemplo, es sabido que la red Ethernet tiene una gran eficiencia,
hasta el 90-95% de la capacidad del canal cuando los mensajes son largos y
suficientemente espaciados. Sin embargo, la cantidad de informacin que una red Ethernet
es capaz de transportar cae bruscamente cuando se utiliza por encima del 35% de la
capacidad del canal, si el tamao de los mensajes es pequeo, como puede verse en la
figura 6. En las redes de control es habitual encontrar este tipo de carga, porque el trfico
de la red depende directamente de eventos estemos que estn siendo controlados (o
monitorizados) por los diferentes nodos que la componen. A menudo, varios nodos
necesitan enviar informacin simultneamente en funcin de uno o ms eventos estemos.
Este hecho, junto con el gran nmero de nodos que suelen estar presentes, implica la
existencia de frecuentes periodos en los que muchas estaciones envan pequeos paquetes
de informacin.
Ilustracin 6 Comparacin de la Red Ethernet ante variaciones del tamao de los paquetes.
Por todas estas razones, es necesario disear una arquitectura de red acorde a las
caractersticas particulares de este tipo de trfico. En el diseo se debern tener en cuenta
aspectos como los tipos de protocolos utilizados, la interoperabilidad, la topologa y la
facilidad de administracin. Deben usarse protocolos abiertos, disponibles por toda la
13
Estudio Situacin Actual en la Industria.
comunidad de fabricantes y usuarios. Este aspecto es bsico para conseguir que equipos de
diferentes fabricantes puedan trabajar en conjunto en una misma red. Tambin juega un
papel fundamental determinar el tipo de informacin que viajar por la red. En las redes de
oficina, esta informacin consiste bsicamente en datos de usuario y en algunas ocasiones
informacin para la administracin y el mantenimiento de la propia red.
En una red de control, esta eleccin es menos clara ya que el correcto funcionamiento de la
red es vital.
Pueden distinguirse dos tipos de redes segn la informacin que transporten: redes basadas
en comandos y redes basadas en estado. En las redes basadas en comandos, la informacin
consiste en una orden con la que un nodo controla el funcionamiento de otro. El principal
problema radica en que si se dispone de un amplio conjunto de tipos de nodos, habr un
aumento exponencial del nmero de posibles comandos y de la sobrecarga que supone su
procesamiento.
En las redes orientadas a estado las cosas son ms sencillas. En este caso, la funcionalidad
de un nodo no depende de ningn otro. Cada nodo enviar mensajes en los que indicar a
los dems el estado en que se encuentra. Los nodos que reciban estos mensajes
modificarn su estado en funcin de la nueva informacin. Existen implementaciones que
combinan ambos mtodos.
14
Estudio Situacin Actual en la Industria.
Por lo que se refiere al tipo de topologa que deben adoptar las redes de control, cabe
destacar que cualquiera de las topologas clsicas de las redes de datos es vlida. Cada una
de ellas con sus propias ventajas y limitaciones. Cualquiera puede satisfacer las
necesidades de cableado, prestaciones y coste de algn tipo de aplicacin. La eleccin est
determinada fundamentalmente por el control de acceso al medio y el tipo de medio que se
emplea. El conjunto formado por el medio, el control de acceso y la topologa, afecta
prcticamente a cualquier otro aspecto de la red de control: coste, facilidad de instalacin.
Habilidad, prestaciones, facilidad de mantenimiento y expansin.
La seleccin de la topologa suele hacerse basndose en los requisitos especficos de cada
sistema en cuanto a coste de instalacin y tolerancia a fallos. Muchas redes de control
permiten el uso de distintas topologas.
El control de acceso al medio es vital. Elegida una topologa, hay que definir como
acceder cada nodo a la red. El objetivo es reducir las colisiones (idealmente eliminarlas)
entre los paquetes de datos y reducir el tiempo que tarda un nodo en ganar el acceso al
medio y comenzar a transmitir el paquete. En otras palabras, maximizar la eficiencia de la
red y reducir el retardo de acceso al medio. Este ltimo parmetro es el factor principal a la
hora de determinar si una red sirve para aplicaciones en tiempo real o no.
El direccionamiento de los nodos es otro de los aspectos claves. En una red de control, la
informacin puede ser originada y/o recibida por cualquier nodo. La forma en que las
direcciones los paquetes de informacin afectarn de forma importante a la eficiencia y la
viabilidad global de la red. Se pueden distinguir tres tipos de direccionamiento:
a. Unicast: El paquete es enviado a un nico nodo destino.
b. Multicast: El paquete es enviado a un grupo de nodos simultneamente.
c. Broadcast: El paquete es enviado a todos los nodos de la red simultneamente.
El direccionamiento broadcast presenta la ventaja de su sencillez. Es adecuado para redes
basadas en informacin de estado. Cada nodo informa a todos los dems de cul es estado
actual. El principal inconveniente es que los nodos pueden tener que procesar paquetes que
no les afecten directamente. Los esquemas de direccionamiento unicast y multicast son
ms eficientes, y facilitan operaciones como el acuse de recibo y el reenvi, caractersticas
que aumentan la Habilidad del sistema. En redes de control, es muy habitual encontrar
esquemas de direccionamiento del tipo maestro-esclavo. Este tipo de esquemas permite
plasmar ciertos aspectos jerrquicos del control de forma sencilla- a la vez que simplifica
el funcionamiento de la red y por tanto abarata los costes de la interfaz fsica.
La eleccin del medio fsico afecta a aspectos tales como la velocidad de transmisin,
distancia entre nodos y fiabilidad. En muchas redes de control se recurre a una mezcla de
distintos medios fsicos para cumplir con los requisitos de diferentes secciones al menor
coste posible. Se incorporarn los routers, puentes o repetidores necesarios para asegurar el
objetivo de una comunicacin extremo a extremo transparente, al menor coste posible, y
sin que la integracin conlleve una disminucin de las prestaciones.
El control en tiempo real demanda de las redes de control buenos tiempos de respuesta
(baja latencia). Por ejemplo, el retardo entre la deteccin de un objeto en una lnea de
montaje de alta velocidad y el arranque de una mquina de pintado puede ser del orden de
decenas de milisegundos. En general, las redes de datos no necesitan una respuesta en
15
Estudio Situacin Actual en la Industria.
tiempo real cuando envan grandes conjuntos de datos a travs de la red. El control de
acceso al medio y el nmero de capas implementadas en la arquitectura de red resultan
determinantes a la hora de fijar la velocidad de respuesta de la red. La implementacin de
las siete capas del modelo OSI implica una mayor potencia de proceso por la sobrecarga
que conlleva con respecto a un sistema ms sencillo que por ejemplo slo implementase las
dos primeras capas. En ocasiones, los beneficios que aportan las capas adicionales
compensan la sobrecarga adicional (que implica un mayor costo), sobre todo a medida que
aumenta la funcionalidad demandada de la red y mejora la tecnologa disponible. Cuando
la velocidad es el factor esencial, como ocurre con muchos buses de campo, el modelo
puede aligerarse ya que en la mayor parte de este tipo de aplicaciones las capas de red,
transporte, sesin y presentacin no son necesarias, como muestra el esquema de la
ilustracin 8.
16
Estudio Situacin Actual en la Industria.
17
Estudio Situacin Actual en la Industria.
II. Categoras:
Redes de autmatas (generalmente dependen del fabricante): por ejemplo Jnct.
Jbus, Modbus, Uni-Telway.
Redes locales heterogneas: LAC-1, LAC-2.
Redes normalizadas: Mini-MAP que resulta de una simplificacin de MAP para
poder utilizar en entornos de tiempo real, en donde, el nivel de aplicacin acceda
directamente al nivel de enlace del modelo OSI y PROWAY (Process Data Highway)
que consiste en una topologa en bus y mecanismo de acceso por paso de testigo,
cuyos aspectos funcionales estn orientados a su aplicacin en control de procesos.
Redes de propsito general: Ethernet.
Los controladores actuales disponen de dispositivos configurables de manera que
puedan comunicarse en alguna o varias de las categoras antes mencionadas.
Tambin existen dispositivos que permiten pasar de un protocolo a otro sin
problemas, son como los Gateway de las redes de computadoras convencionales. (En
la seccin 5 se abarcaran ejemplos concretos de estas redes).
2.3.2.4. Bus de Campo (field bus):
Un bus de campo es un trmino genrico que describe un conjunto de redes de
comunicacin para uso industrial, cuyo objetivo es sustituir las conexiones punto a punto
entre los elementos de campo y el equipo de control a travs del tradicional bucle de
corriente de 4-20mA. Tpicamente son redes digitales, bidireccionales, multipunto,
montadas sobre un bus serie, que conectan dispositivos de campo como PLCs,
transductores, actuadores y sensores. Cada dispositivo de campo incorpora cierta capacidad
de proceso, que lo convierte en un dispositivo inteligente, manteniendo siempre un costo
18
Estudio Situacin Actual en la Industria.
bajo. Cada uno de estos elementos ser capaz de ejecutar funciones simples de
autodiagnstico, control o mantenimiento, as como de comunicarse bidireccionalmente a
travs del bus.
El objetivo es reemplazar los sistemas de control centralizados por redes para control
distribuido con las que mejorar la calidad del producto, reducir costes y mejorar la
eficiencia. Para ello se basa en que la informacin que envan y/o reciben los dispositivos
de campo es digital, lo que resulta mucho ms preciso que si se recurre a mtodos
analgicos. Adems, cada dispositivo de campo es un dispositivo inteligente y puede llevar
a cabo funciones propias de control, mantenimiento y diagnstico. De esta forma, cada
nodo de la red puede informar en caso de fallo del dispositivo asociado, y en general sobre
cualquier anomala asociada al dispositivo. Esta monitorizacin permite aumentar la
eficiencia del sistema y reducir la cantidad de horas de mantenimiento necesarias.
La principal ventaja que ofrecen los buses de campo, y la que los hace ms atractivos a los
usuarios finales, es la reduccin de costes. El ahorro proviene fundamentalmente de tres
fuentes: ahorro en coste de instalacin, ahorro en el coste de mantenimiento y ahorros
derivados de la mejora del funcionamiento del sistema. Una de las principales
caractersticas de los buses de campo es una significativa reduccin en el cableado
necesario para el control de una instalacin. Cada clula de proceso slo requiere un cable
para la conexin de los diversos nodos. Se estima que puede ofrecer una reduccin de 5 a 1
en los costes de cableado. En comparacin con otros tipos de redes, dispone de
herramientas de administracin del bus que permiten la reduccin del nmero de horas
necesarias para la instalacin y puesta en marcha. El hecho de que los buses de campo sean
ms sencillos que otras redes de uso industrial como por ejemplo MAP, hace que las
necesidades de mantenimiento de la red sean menores, de modo que la confiabilidad del
sistema a largo plazo aumenta. Adems, los buses de campo permiten a los operadores
monitorizar todos los dispositivos que integran el sistema e interpretar fcilmente las
interacciones entre ellos. De esta forma, la deteccin de las fuentes de problemas en la
planta y su correccin resulta mucho ms sencilla, reduciendo los costes de mantenimiento
y el tiempo de parada de la planta. Los buses de campo ofrecen mayor flexibilidad al
usuario en el diseo del sistema. Algunos algoritmos y procedimientos de control que con
sistemas de comunicacin tradicionales deban incluirse en los propios algoritmos de
control, radican ahora en los propios dispositivos de campo, simplificando el sistema de
control y sus posibles ampliaciones. Tambin hay que tener en cuenta que las prestaciones
del sistema mejoran con el uso de la tecnologa de los buses de campo debido a la
simplificacin en la forma de obtener informacin de la planta desde los distintos sensores.
Las mediciones de los distintos elementos de la red estn disponibles para todos los dems
dispositivos. La simplificacin en la obtencin de datos permitir el diseo de sistemas de
control ms eficientes. Con la tecnologa de los buses de campo, se permite la
comunicacin bidireccional entre los dispositivos de campo y los sistemas de control, pero
tambin entre los propios dispositivos de campo. Otra ventaja de los buses de campo es
que slo incluyen 4 capas (Fsica. Enlace. Aplicacin y Usuario), y un conjunto de
servicios de administracin. El usuario no tiene que preocuparse de las capas de enlace o
de aplicacin. Slo necesita saber cual es funcionalidad. Al usuario slo se le exige tener
un conocimiento mnimo de los servicios de administracin de la red, ya que parte de la
19
Estudio Situacin Actual en la Industria.
informacin generada por dichos servicios puede ser necesaria para la reparacin de
averas en el sistema. De hecho, prcticamente, el usuario slo debe preocuparse de la capa
fsica y la capa de usuario.
I. Comunicacin en el Bus:
Los mtodos utilizados en los buses de campo para actualizar los datos de proceso o
entrada/salida son:
a. Strohe:
Peticin de informacin por parte del maestro (dispositivo de control) y envo desde
los dispositivos esclavos (sensores - actuadores). Este mtodo es muy eficiente para
sensores.
b. Polling:
El maestro enva informacin de salida al dispositivo y ste le responde con la
informacin de entradas.
c. Cambio de estado:
El dispositivo no transmite informacin hasta que se modifica el estado de las
variables. Muy eficiente en sistemas discretos.
d. Cclico:
El dispositivo enva la informacin a la red en un intervalo de tiempo prefijado.
Adems el bus de campo debe incorporar los servicios de comunicacin necesarios
para los procesos de configuracin, programacin y test del bus.
20
Estudio Situacin Actual en la Industria.
Profibus
FIP
Fieldbus Foundation
21
Estudio Situacin Actual en la Industria.
y superior fueran totalmente compatibles. Las torres de protocolos de las redes MAP y
TOP siguen capa a capa el modelo OSI. La principal diferencia entre ambas redes est en
el medio fsico y en el control de acceso al medio. Mientras las redes MAP slo
contemplan el uso de paso de testigo en bus de acuerdo con el estndar IEEE 802.4, paso
de testigo en bus (Token Bus), la red TOP permite tanto el uso de Ethernet (o IEEE 802.3),
como de paso de testigo en anillo, Token Ring (IEEE 802.5). El resto de protocolos son
coincidentes. Para la capa de enlace, ambas redes se basan en el protocolo 802.2 (LLC) de
control lgico de enlace, operando en el modo sin conexin como un servicio ofrecido a la
capa de red. La capa de red utiliza el protocolo ISO 8473, que es muy parecido al
protocolo IP. La razn de esta eleccin es porque con el conocimiento que se tena sobre la
interconexin de redes en ARPA (el origen de Internet), se demostr que el planteamiento
data grama es ms flexible y robusto cuando se conectan redes heterogneas mltiples, que
es un aspecto importante para las redes MAP y TOP. La capa de transporte se basa en el
protocolo ISO 8073. Se supone que la capa de red no es del todo fiable y gestiona el
control de error y de flujo. De esta forma MAP y TOP han podido conectarse a casi
cualquier tipo de red sin importar las deficiencias de stas. El precio que se paga es la
necesidad de tener una capa de transporte complicada para ocuparse del servicio no fiable
de la red. Las capas de sesin y presentacin utilizan los protocolos ISO 8327 e ISO 8823
respectivamente. Las normas OSI tambin se utilizan en la capa de aplicacin,
particularmente el protocolo de transferencia de archivos y el de terminal virtual.
Acceso a variables
Manejo de eventos
Control de ejecucin de los programas
Comunicacin con el operario
Paso de ficheros
Manejo de recursos comunes
Acceso al estado de aparatos remotos
Carga de programas
Grabacin histrica de eventos
23
Estudio Situacin Actual en la Industria.
En una red MAP, en teora, todos los nodos llevan implantadas las 7 capas del modelo de
referencia OSI.
El grado de complejidad que esto supone y el tiempo necesario para el intercambio de
unidades de protocolo de cada capa, ha provocado la aparicin de una opcin ms sencilla,
que ser estudiada en la seccin 5.2.
MAP no cubre el nivel de bus de campo (estacin y proceso), lo considera un nivel inferior
que se integra en la red mediante dispositivos inteligentes (PLCs, PCs,...).Estos
dispositivos dispondrn de una conexin de enlace con MAP directamente o a travs de
otro dispositivo. El MAP es un protocolo pensado para redes de tipo WAN incluye los
niveles de red, transporte, sesin y presentacin. Esto le permite el fraccionamiento de
paquetes y el encaminamiento de los mismos a travs de redes pblicas o privadas. Lo que
resulta excesivamente costoso y complejo para pequeas y medianas aplicaciones, sobre
todo para la interconexin de pequeos controladores a nivel industrial.
Basada en un bus con transmisin de banda ancha multicanal, que permite interconectar
los sistemas de control de planta con las aplicaciones de gestin, oficina, CAD.
Ordenadores de planta, canales de datos, voz, imgenes- ya sean estos locales o remotos.
Tambin se modificaron las capas fsica y de enlace. En la capa fsica se prescinde del
sistema de transmisin en banda ancha sobre cable coaxial y se pasa a una transmisin en
banda portadora, tambin sobre coaxial, que abarata enormemente el sistema de cableado y
sobre todo el interfaz de red que precisa cada dispositivo. Esto permite que pueda ser
24
Estudio Situacin Actual en la Industria.
empleado con elementos de control en tiempo real de bajo coste. En la capa de enlace, en
el LLC (control lgico de enlace) se sustituye la norma IEEE 802.2 de tipo 1 por la IEEE
802.2 de tipo 3. Esta ltima proporciona los servicios de Envi de datos con acuse de
recibo y de Peticin de datos con respuesta. Esto obliga a una interoperabilidad entre el
LLC y el MAC (mecanismo de deteccin y correccin de colisiones), teniendo este ltimo
que incorporar la opcin de prioridad de respuesta inmediata. Es decir, la estacin que
transmite cede (junto con el mensaje que enva) el testigo a la receptora para que esta acuse
recibo o responda a la peticin de datos de forma inmediata. Esto lgicamente permite
minimizar los tiempos de respuesta con el fin de ofrecer un buen servicio en tiempo real.
La capa de aplicacin incorpora los mismos servicios MMS que MAP, lo que permite que
esta capa se pueda comunicar con una homologa en una red MAP a travs de una pasarela
que incorpore las capas que le faltan a MINI-MAP.
La falta de la capa de red impide que haya comunicacin extremo a extremo entre nodos
que se encuentran en segmentos separados por encaminadores (routers). Esto no plantea
ningn inconveniente puesto que elementos que han de trabajar en tiempo real deben
conectarse al mismo bus, para evitar las demoras que introduciran los elementos
intermedios.
Por otro lado, las funciones de la desaparecida capa de transporte son asumidas por el LLC
tipo 3 y el mapeado de las funciones entre el LLC y el MMS. Topologa y estructura
lgica MINIMAP dispone de una topologa de bus con un mximo de 64 nodos, pero
desde el punto de vista lgico funciona como un anillo. La codificacin se realiza por
modulacin de frecuencia en banda base y la transmisin de tipo sncrono. Cada estacin
tiene asignada una direccin nica e independiente de su situacin fsica, formada por un
nmero de red (0 a 127) ms un nmero de estacin (0 a 62). El nmero de red 0 es para
arquitecturas
mono segmento y de I a 127 para multisegmento (varias MINIMAP integradas en una red
MAP).
Al inicializar la red, el testigo se le asigna a la direccin de la estacin ms alta y el paso
de testigo se realiza por orden decreciente de direcciones. Cuando un nodo recibe testigo
transmite y pasa el testigo, si no tiene mensajes que transmitir pasa el testigo. El tiempo de
posesin del testigo limitado a 800s.
I. Protocolo:
25
Estudio Situacin Actual en la Industria.
Partes Constitutivas:
Prembulo 2 bytes: 55 hex. secuencia de 0 y I que se utiliza para la sincronizacin
y permite localizar el primer BIT til.
Inicio trama: carcter especial que depende de la codificacin empleada
Tipo de Trama 1 byte: MAC (Control de acceso al medio) y LLC (control lgico
de enlace)
Direcciones destino/origen MAC: 6 bytes indican tipo de mensaje (punto a punto
o difundido), los nodos de destino u origen, el nmero de red y el tipo de servicio
(palabras comunes, memoria compartida,.)
Datos/Control LLC: Contiene la cdigos de registros o reas de memoria de
origen y destino, as como el cdigo de control LLC, que son ya propios de los
equipos de origen y destino del mensaje.
CRC: 4 bytes para control de errores
Fin de trama: al menos un BIT de error y un BIT que marca si es el final de
mensaje o se ha interrumpido por lmite de tiempo en la posesin del testigo.
Como el acceso a la red es por paso de testigo y este se ejecuta por orden de mayor
direccin a menor, en caso de prdida de testigo o arranque de la red una estacin no
conoce la direccin de la estacin que le precede o le sigue. Para esto existen
procedimientos de inicializacin y reinicializacin los que permiten crear una tabla con
esta informacin en cada estacin.
Los procedimientos de inicializacin y reinicializacin se ejecutarn en los siguientes
casos:
26
Estudio Situacin Actual en la Industria.
tendencia tecnolgica actual, sino que, adems, se posibilita obtener acceso a datos en el
nivel de los dispositivos de control mediante Internet.
TCP/IP es el protozoo de nivel de transporte y red de Internet y suele estar vinculado con
las instalaciones Ethernet y el mundo de los negocios. TCP/IP proporciona una serie de
servicios que puede utilizar cualquier pareja de dispositivos para compartir datos. Dado
que la tecnologa Ethernet y los conjuntos de protocolos estndar como TCP/IP han sido
proporcionados para uso pblico, se han producido en forma masiva y pueden conseguirse
fcilmente medios fsicos y herramientas de software estandarizadas, con lo que puede
tenerse las ventajas de una tecnologa conocida y una gran facilidad de acceso.
El UDP/IP protocolo de data grama de usuario) tambin se utiliza junto con la red
Ethernet. Este protocolo proporciona un transporte de datos rpido y eficiente,
caractersticas necesarias para el intercambio de informacin en tiempo real.
Para que Ethernet industrial tenga xito se ha agregado el protocolo CIP al conjunto
TCP/UDP/1P con el fin de proporcionar un nivel de aplicaciones comn.
Con la introduccin de la tecnologa de conmutacin de Ethernet (switch) y la transmisin
de datos fuIl-Duplex, se minimizan las colisiones de dalos y el rendimiento en la red
aumenta drsticamente.
Por lo general, una red Ethernet utiliza una topologa estrella activa en la que los grupos
de dispositivos estn conectados punto a punto con un conmutador. La ventaja de una
topologa tipo estrella radica en la compatibilidad con los productos de 10 y 100 Mbps
Puede combinar dispositivos de 10 y 100 Mbps Y el conmutador Ethernet negociar la
velocidad. Asimismo, la topologa estrella le ofrece conexiones fciles de cablear o de
depurar, o en las que resulta fcil delectar fallos o llevar a cabo tareas de mantenimiento.
Ethernet Industrial permite cubrir grandes distancias, la sea a nivel de una LAN: con
tecnologa de Switching hasta 200 Km. O bien extendindose a una WAN, en todo el
mundo, mediante protocolo TCP/IP.
La ilustracin 12 muestra un resumen de las caractersticas tcnicas de Ethernet Industrial.
27
Estudio Situacin Actual en la Industria.
Los dos protocolos ms usados son ISO, segn normas ISO 8073, y este est optimizado
para la transferencia de variables para servicios y observacin en tiempo real. Bajo este
protocolo resulta difcil de realizar encaminamiento (routing) a travs de distintas redes por
este motivo se utiliza solo en el mbito de LAN's.
El otro protocolo utilizado ese muy conocido TCP/IP , optimizado para la transferencia de
grandes cantidades de datos, y este caso si es ms fcil y econmico el ruteo entre distintas
redes, se utilizan en redes LAN estructuradas y en WAN. Esto permite el uso de
tecnolgicas de informacin IT, como SNMP (protocolo de administracin de redes), http
(protocolo de transferencia hipertexto), servicios WEB, etc.
Ethernet Industrial ha sido diseada para gestionar grandes cantidades de datos de
transmisin de mensajes, hasta 1500 bytes por paquete. Permite la gestin de grandes
volmenes de datos en modo previsible. Gracias a la gran aceptacin de la tecnologa
Ethernet en los ltimos aos, el costo por nodo de dispositivos Ethernet est disminuyendo
rpidamente.
28
Estudio Situacin Actual en la Industria.
2.4.4. PROFIBUS:
acceso al bus (el testigo). Los maestros tambin se denominan estaciones activas en el
protocolo Profibus. Como segundo tipo estn los dispositivos esclavos, que son
dispositivos perifricos. Los esclavos son normalmente dispositivos de E/S, vlvulas,
actuadores y transmisores de seal. No tienen el control de acceso al bus y slo pueden
recibir mensajes o enviar mensajes al maestro cuando son autorizados para ello. Los
esclavos tambin son denominados estaciones pasivas, por lo que slo necesitan una parte
del protocolo del bus.
PROFIBUS es un bus de campo normalizado internacional que fue estandarizado bajo la
norma EN 50 170. Esto asegura una proteccin ptima tanto a los clientes como a los
vendedores y asegura la independencia de estos ltimos. Hoy en da, todos los fabricantes
lderes de tecnologa de automatizacin ofrecen interfaces PROFIBUS para sus
dispositivos.
2.4.4.1. Estructura
La tecnologa de transmisin ms usada es la RS 485, conocida habitualmente como H2.
Su rea de aplicacin comprende aquellas aplicaciones donde prima su
simplicidad, la velocidad de transmisin y lo barato de la instalacin. Se usa un par
diferencial con cable trenzado, previsto para comunicacin semi-duplex, aunque
tambin puede implementarse con fibra ptica y enlaces con estaciones remotas va
mdem o va radio. La velocidad de transmisin vara entre 9.6Kbits/s y 12Mbits/s,
dependiendo del medio fsico, como se indica en la siguiente tabla:
Al conectar varias estaciones, hay que comprobar que el cable de las lneas de datos no sea
trenzado. El uso de lneas apantalladas es absolutamente esencial para el logro de una alta
inmunidad del sistema en ambientes con emisiones altas de
electromagnetismo (como en la fabricacin de automviles). El apantallamiento se usa
para mejorar la compatibilidad electromagntica (CEM).
30
Estudio Situacin Actual en la Industria.
I. PROFIBUS PA:
Es un protocolo derivado PA, derivado de Process Automation, es un subconjunto de este
estndar, orientado a las comunicaciones de instrumentos de proceso. Es decir, equipos que
transmiten seales anlogas como presin, temperatura, y otros. Est diseada
especialmente para la automatizacin de procesos. Permite la conexin de sensores y
actuadores en una lnea de bus comn, incluso en zonas intrnsecamente seguras. Profibus
PA permite disponer de comunicacin de datos y potencia en un mismo bus utilizando una
tecnologa de dos hilos segn el estndar internacional IEC 1158-2.
Diseado para automatizacin de procesos.
Permite la conexin de sensores y actuadores a una lnea de bus comn incluso en
reas especialmente protegidas.
Permite la comunicacin de datos y energa en el bus mediante el uso de 2
tecnologas (norma IEC 1158-2).
32
Estudio Situacin Actual en la Industria.
33
Estudio Situacin Actual en la Industria.
Puede decirse sin lugar a dudas que PROFIBUS ha conseguido definir toda una red de
comunicacin industrial, desde el nivel fsico hasta el de aplicacin, superando
ampliamente los lmites de un bus de campo, integrando al mximo las tcnicas de
comunicacin previamente definidas y consolidadas En la actualidad la estructura es tal
que los grupos de los 20 pases ms industrializados ofrecen un soporte en su idioma para
el resto del mundo. Todos los grupos de usuarios se unen bajo la Organizacin PROFIBUS
International (Pl), que con ms de 750 miembros es la organizacin de buses de campo
ms grande del mundo.
34
Estudio Situacin Actual en la Industria.
I. Elementos de Bus.
El elemento esencial del bus es el nodo. PROFIBUS prev la existencia de dos tipos de
nodos:
Activos: son nodos que pueden actuar como maestro del bus, tomando
enteramente el control del bus.
Pasivos: son nodos que nicamente pueden actuar como esclavos y, por tanto, no
tienen capacidad para controlar el bus. Estos nodos pueden dialogar con los nodos
activos mediante un simple mecanismo de pregunta-respuesta, pero no pueden
dialogar directamente entre s. Aparte de estos dos tipos de nodos, existen otros
dos bloques esenciales en la arquitectura del bus:
Expansiones E/S: este tipo de bloques constituyen la interfaz con las seales de
proceso y pueden estar integrados tanto en un nodo activo como en un nodo
pasivo.
Repetidores: los repetidores ejecutan el papel de simples transceptores
bidireccionables para regenerar la seal.
II. Topologa.
La topologa puede ser simplemente en forma de bus lineal o en forma de rbol, en el que
los repetidores constituyen el nudo de partida de una expansin del bus (ilustracin 20).
Este caso, la estructura en rbol es puramente una impresin de dibujo, ya que el
PROFIBUS admite una estructura lgica de maestro flotante y una estacin activa,
ejerciendo el papel de maestro, que puede estar fsicamente conectada a lo que se pudiera
considerar una expansin del bus. Por tanto, incluso en caso de ramificaciones debe
considerarse como un bus nico. El nmero mximo de nodos conectables a cada tramo
del bus, sin necesidad de repetidores es de 32.
35
Estudio Situacin Actual en la Industria.
Naturalmente esta estructura admite la posibilidad de que exista un solo nodo activo en el
bus, con lo que se convertira en un bus con una estructura del tipo maestro-esclavo. Cabe
sealar que cuando una estacin activa posee el testigo, considera a todas las dems como
36
Estudio Situacin Actual en la Industria.
37
Estudio Situacin Actual en la Industria.
38
Estudio Situacin Actual en la Industria.
39
Estudio Situacin Actual en la Industria.
Cada esclavo dispone de hasta 4 entradas/salidas, lo que hace que la red pueda controlar
hasta 124 E>'S digitales. La comunicacin sigue un esquema maestro -esclavo, en la cual
el maestro interroga a las estaciones envindoles mensajes (llamados telegramas) de 14 bits
y el esclavo responde con un mensaje de 7 bits. La duracin de cada ciclo pregunta-
respuesta es de 150 us. En cada ciclo de comunicacin se deben consultar todos los
esclavos, aadiendo dos ciclos extras para operaciones de administracin del bus
(deteccin de fallos). El resultado es un tiempo de ciclo mximo de 5ms. Como muestra la
Ilustracin 27.
40
Estudio Situacin Actual en la Industria.
2.4.6. INTERBUS.
INTERBUS es un bus de campo para la interconexin de sensores y actuadores. Las partes
claves de INTERBUS han sido estandarizadas en Alemania por la DKE (Deutsche
Elektrotechnische Kommission para DIN y VDE).
INTERBUS se basa en un esquema maestro-esclavo. El maestro del bus acta
simultneamente como interfaz con los niveles superiores de la jerarqua de
comunicaciones.
La topologa es de anillo, es decir, todos los dispositivos estn conectados formando un
camino cerrado. El anillo principal es el que parte del maestro, aunque pueden formarse
otros anillos para adaptarse a la estructura particular de cada sistema. Este tipo de
conexiones se lleva a cabo mediante unos equipos denominados mdulos terminadores de
bus.
Un rasgo distintivo de INTERBUS es que las lneas de envo y recepcin de datos estn
contenidas dentro de un mismo cable que une todos los dispositivos. De esta forma, el
sistema tiene el aspecto fsico de un bus o un rbol. Tpicamente, la capa fsica se basa en
el estndar RS-485. Debido a la estructura de anillo y a que es necesario transportar la
masa de las seales lgicas, INTERBUS requiere un cable de cinco hilos para interconectar
dos estaciones. Con velocidades de transmisin de 500 Kbits, pueden alcanzarse distancias
de hasta 400 m entre dispositivos. Cada dispositivo incorpora una funcin de repetidor que
permite extender el sistema hasta una longitud total de 13 Km. Para facilitar el
funcionamiento de INTERBUS, el nmero mximo de estaciones est limitado a 512.
La estructura punto a punto de INTERBUS y su divisin en anillo principal y sub-anillos
es ideal para la incorporacin de distintos medios de transmisin en distintas zonas de la
41
Estudio Situacin Actual en la Industria.
planta si esto fuese necesario. La estructura de anillo ofrece dos ventajas. La primera es
que permite el envo y recepcin simultnea de datos (full dplex).
datos, por una parte los datos correspondientes a procesos cclicos, y por otra parte datos
que aparecen asincrnicamente. La capa de enlace es determinista, es decir, garantiza un
tiempo mximo para el transporte de datos entre dispositivos. El control de acceso al
medio se encuadra dentro de los mecanismos TDMA (Time Divisin Mltiple Access),
eliminando as la posibilidad de colisiones. Cada dispositivo tiene reservado un slot de
tiempo adecuado para su funcin dentro del sistema. El tiempo de ciclo es la suma de los
tiempos asignados a cada dispositivo. Pueden definirse slots adicionales para la
transmisin de bloques de datos en modo conexin. De esta forma pueden enviarse grandes
bloques de datos a travs de INTERBUS, sin alterar el tiempo de ciclo para los datos de
proceso. Otra ventaja importante que incorpora este tipo de control de acceso al medio, es
que Iodos los elementos insertan sus datos en el bus simultneamente, lo que garantiza que
las mediciones en las que se basan los bucles de control, fueron realizadas
simultneamente.
Este mecanismo tambin reduce la sobrecarga con informacin correspondiente al
protocolo, con lo que la eficiencia que se alcanza es alta.
La trama se forma por concatenacin de los datos de cada estacin. De forma fsica se
realiza mediante un registro. Cada dispositivo se une al anillo mediante un registro cuya
longitud depende de la cantidad de informacin que debe transmitir. Los datos
provenientes de las distintas estaciones van llegando al master en funcin de su posicin
dentro del anillo. Cada ciclo de transmisin comienza con una secuencia de datos que
contiene la palabra de loopback seguida de los datos de salida de los distintos dispositivos,
en la lnea de salida. Durante el envo de dalos, el flujo de retomo entra el maestro como
flujo de entrada. Tras el envo de la trama completa, se enva un CRC de 32 bits. Debido a
la estructura de conexiones punto a punto, el clculo siempre se hace entre cada dos nodos,
por lo que no es necesario dar una vuelta completa al anillo. Por ltimo se enva una
palabra de control para indicar el estado de cada dispositivo (deteccin de errores de
transmisin, etc.). Si no hubo errores comienza un nuevo ciclo, como se ve en el esquema
de la figura 18.
Adems de los ciclos de datos, tambin hay ciclos de identificacin. Este ciclo permite la
administracin del bus. Cada dispositivo tiene un cdigo de identificacin que indica el
tipo de dispositivo de que se trata, y el tamao de su bloque de datos. La configuracin del
bus se lleva a cabo por una secuencia de ciclos de identificacin en los que el maestro
comienza a leer en orden, la identificacin de los dispositivos conectados. En funcin de
estas lecturas se configura la trama que circulara en el ciclo de datos. Desde el punto de
vista fsico INTERBUS funciona segn un procedimiento asncrono de arranque y parada.
Se enva una cabecera que contiene informacin adicional como por ejemplo los
delimitadores de trama, cdigo de funcin y tipo de mensaje, junto con ocho bits de datos
adicionales. Los momentos de inactividad se ocupan con mensajes de estado. No contienen
datos de la capa de enlace y slo sirven para garantizar una actividad permanente en el
medio de transmisin. Si dicha actividad se interrumpe durante ms de 20 ms., se
interpreta por todos los dispositivos como una cada del sistema. En respuesta a esta
situacin, los dispositivos se desconectan de la red y van a un punto seguro definido con
antelacin.
43
Estudio Situacin Actual en la Industria.
44
Estudio Situacin Actual en la Industria.
RTR vale 0, indica que se trata de una trama de datos, mientras que si vale 1 indica que se
trata de una peticin de datos. En ese caso, el campo de datos indicar los bytes que
formarn la respuesta.
El campo de control est formado por 6 bits. Los bits rl y r0 estn reservados para futuras
ampliaciones del protocolo. Los cuatro bits que forman el DLC indican el nmero de bytes
que forman la trama de datos y que van a continuacin.
El campo de datos contiene de cero a ocho bytes. El bit ms significativo de cada byte es
el primero que se transmite. A continuacin hay un campo de CRC, que contiene un
cdigo de redundancia cclica de 15 bits y un bit delimitador que siempre vale 1. El campo
de acuse de recibo consiste en dos bits. El primer bit se enva a I y es puesto a cero por las
estaciones que reciben correctamente el mensaje. El segundo es un bit delimitado que vale
I. El delimitador de final de trama consiste en 7 bits a 1. Tras cada trama hay un periodo de
tres bits (deben estar a 1), destinado a dar un tiempo mnimo a las estaciones a prepararse
para la recepcin o envo de otro mensaje.
Las tramas de tipo B se diferencian en el campo de arbitraje. En este caso hay un primer
grupo de 11 bits similar al de las tramas de tipo A, y que acta como valor base del
identificador. La segunda parte de los identificadores (18 bits) es la extensin del
identificador.
Para distinguir ambos formatos, la trama tipo B incorpora dos bits que separan los dos
trozos del identificador. El primero es el bit SRR (Substitute Remote Request). Se enva
siempre a 1 para dar prioridad a las tramas de datos estndar de tipo A con el mismo
identificador base. El bit IDE que sigue al bit SRR se enva siempre a 1, y permite
distinguir tramas tipo A y tipo B.
45
Estudio Situacin Actual en la Industria.
Una caracterstica fundamental de CAN es que cuanto menor sea el identificador del
mensaje mayor es su prioridad Si dos nodos intentan transmitir simultneamente, el
primero que enve un cero cuando el otro intente enviar un I obtendr el acceso al medio,
ya que el valor cero es dominante frente al valor I. Como cada estacin es capaz de
monitorizar el medio fsico, podr detectar si su trama ha sido sobrescrita por otra de
mayor prioridad (que permanece inalterada). La estacin que no ha podido enviar el
mensaje, reintentar el envo en cuanto detecte un periodo de inactividad, como puede
verse en la figura 21. Las ventajas de este mecanismo de acceso son la minimizacin del
retardo en el acceso al no tener que esperar por el tumo como sucede en un sistema de paso
de testigo, y la mejora de la eficiencia al evitar las colisiones destructivas. Los mensajes
son enviados por orden de prioridad.
Un bus CAN puede tener un mximo de 32 nodos. El nmero de mensajes por segundo
vara entre 2000 y 5000 en un bus de 250 Kbps, segn el nmero de bytes por mensaje.
Aunque se ha dicho que CAN se basa en un medio fsico de par trenzado, tambin existen
interfaces para la conexin mediante fibra ptica. El mtodo ms comn es el par trenzado,
de modo que las seales se envan mediante una diferencia de tensin entre los dos hilos.
Los hilos reciben los nombres de CAN_H y CAN_L, y en estado inactivo la diferencia de
tensin entre ambos es de 2.5 V. Un 'I' se enva colocando CAN_H a ms tensin que
CAN_L, mientras que un cero se enva colocando CAN_L a ms tensin que CAN_H. El
uso de tensiones diferenciales permite el uso de CAN incluso si una de las lneas est
daada, o en ambientes muy ruidosos.
46
Estudio Situacin Actual en la Industria.
47
Estudio y desarrollo de un control distribuido para una planta.
3.1. Introduccin:
Para hacer la demostracin del funcionamiento del control de un lazo industrial, se ha
diseado un sistema de automatizacin industrial, o control distribuido. Para ello se ha
creado una situacin ficticia en una planta qumica, con un proceso indeterminado.
Llegados a este punto es muy importante remarcar, para evitar confusiones e
interpretaciones errneas no deseadas, que el proceso diseado y que se presenta a
continuacin es totalmente aleatorio. No se ha copiado, ni plagiado en totalidad o parte
ningn proceso industrial real, ya que se vulnerara la posible confidencialidad de stos.
Todos los elementos que se representan tanto en entornos grficos, como en la propia
memoria, son totalmente inventados y sin una coherencia real, a nivel de diseo
industrial. El Proceso no muestra productos reales, las presiones, caudales,
intensidades, etc. no han sido calculados para un proceso concreto. Tanto los reactores,
intercambiadores, bombas, etc., no tienen porqu funcionar, ya que no han sido
calculados ni probados para este fin. Todo ello es tan solo un entorno grfico necesario
para el planteamiento y posterior explicacin del lazo de control aqu expuesto. Tras
todo esto solo queda decir, que cualquier semejanza, parecido o similitud a un proceso
real es una total coincidencia, hecho propio de la aleatoriedad y la casualidad.
Se ha elegido para la demostracin un proceso qumico industrial. Dicho proceso consta de
algunos elementos tpicos de las plantas qumicas, como pueden ser reactores,
intercambiadores de calor, bombas, depsitos, as como elementos de medida estndares,
medidores de presin de intensidad, de caudal, etc.
Como explicbamos anteriormente, los valores que se mostrarn e incluso podremos
modificar, no sern reales, e incluso podra darse la posibilidad de que fueran valores
incoherentes. Pero en nuestro caso la implicacin o coherencia de estos valores no tiene
una relevancia de peso, ya que la parte que nos pertoca, no es la reaccin, espesor de
estructuras, kv de vlvulas, dimetro de tuberas, ni todo el conjunto de clculos y diseos
de procesos industriales. Nuestro fin y nico destino es el de control, as como de
proporcionar las herramientas y mecanismos necesarios para que el sistema sea seguro,
controlable, ajustable a las necesidades de cada momento y de un fcil manejo e intuitivo.
Estas herramientas estn divididas en cinco partes muy diferenciadas y fcilmente
identificables. Pero antes de empezar con la descripcin de cada una de ellas, debemos
aclara un aspecto importante de esta parte prctica. El sistema se ha desarrollado usando
como pilar central de comunicaciones el puerto paralelo de los PCs. Este sistema
ciertamente ya no es muy utilizado en la actualidad, casi en desuso. Se ha tomado esta
determinacin ya que poner en prctica un bus tal como el Profibus o similar, requiere de
una dificultad un tanto mayor as como de una inversin en tiempo y capital muy superior.
He credo que para hacer patente el funcionamiento del sistema, era ms que suficiente
generar una arquitectura similar obviando este detalle, pero realizando el sistema lo ms
parecido a lo existente en la actualidad. Como decamos anteriormente, la simulacin
consta de 5 partes, de las cuales solo daremos una pincelada, ya que ms adelante sern
- 48 -
Estudio y desarrollo de un control distribuido para una planta.
ventiladores, vlvulas, etc. En nuestro caso simularemos esto con tres ventiladores, y un
circuito electrnico que mediante tres displays simular el % de apertura de una vlvula
reguladora ubicada remotamente en campo.
manipular el caudal que deseamos circule en cada momento. En algunos casos podremos
ponerlo en funcin automtico, de manera que basndose en unos datos preprogramados
ella se auto regular sola.
Hemos incluido un depsito cuya finalidad desde el punto industrial quiz no sea muy
coherente, pero con ello demostramos un pequeo ciclo de funcionamiento automatizado,
basado en unos parmetros prefijados. Este depsito se va llenando hasta llegar a un nivel
mximo, cuando lo alcanza, automticamente se pone en marcha una bomba que lo vaca
hasta un nivel mnimo determinado. Tras esto se repite el ciclo nuevamente.
Existen algunos elementos ms, los cuales ya expondremos de forma ms amplia.
3.2.2. Funcionamiento.
51
Estudio y desarrollo de un control distribuido para una planta.
Una vez hemos elegido el tipo de teclado, podemos decidir si queremos o no ver lo que
escribimos, ya que es muy probable que no nos interese que las personas presentes sepan
cual es el cdigo. Para ello disponemos de un botn que permite codificar los caracteres en
asteriscos.
En la parte superior de la pantalla inicio, encontramos un pequeo men con dos opciones.
La primera sirve para cambiar el password de acceso, hacerlo peridicamente es algo
recomendable, y la segunda para cerrar el programa, algo que podemos hacer igualmente
52
Estudio y desarrollo de un control distribuido para una planta.
desde el botn Cerrar. Una vez introducido el password podemos clicar el botn
Acceder o pulsar Return en el teclado. Si el password es incorrecto recibiremos un
mensaje:
53
Estudio y desarrollo de un control distribuido para una planta.
La funciones a las que nos da acceso son: activar la simulacin, desactivarla y salir del
programa.
En el siguiente sub-men llamado Funciones encontramos dos opciones ms. La primera
nos permite visualizar una pantalla hibrida. La llamamos as por un simple motivo.
Anteriormente explicamos que existan dos tipos de pantallas: las que eran funcionales y
las que funcionan en un segundo plano. Pues sta cumple en parte las dos opciones, ya que
54
Estudio y desarrollo de un control distribuido para una planta.
se encarga de traducir las rdenes que le enviaremos mediante un clic de ratn sobre un
elemento, convirtindolas en cdigos BCD que viajarn a travs del
puerto paralelo al exterior. Pero tambin podemos acceder a ella y verificar el estado de los
puertos de salida del PC para comprobar que no existan errores en los mismos.
55
Estudio y desarrollo de un control distribuido para una planta.
desplegable tenemos dos secciones: la seccin del recuadro superior, y la del recuadro
inferior. La superior est compuesta por 11 indicadores luminosos.
Estos indicadores pueden adoptar tres colores. Cuando estn en verde quiere decir que el
dispositivo est activado y funcionando correctamente. Cuando estn en negro el
dispositivo est parado de forma correcta. Sin embargo si se encuentra en negro y a su
derecha aparece un indicador morado, quiere decir que el dispositivo se ha parado por un
fallo. Este fallo nos informa de una avera en un dispositivo final. El cul estar indicado
por una seal acstica y un mensaje de texto que informar de forma escueta de que se
trata., Adems el dispositivo supuestamente averiado se pondr en rojo.
En el recuadro inferior encontramos otro indicador, el cual tan solo nos informa del estado
del PLC. Si est en verde quiere decir que el PLC est activo y funcionando y si por el
contrario est en negro nos informa de que no lo est.
Ms abajo encontramos un botn con el nombre de Rearme. Este botn como su nombre
indica, slo sirve para desenclavar el dispositivo de seguridad, que impide que un
dispositivo no se pueda arrancar sin verificar que ha sido reparado. Cuando un dispositivo
falle, enviar una seal desde el PLC la cual nos para el dispositivo y muestra el indicador
56
Estudio y desarrollo de un control distribuido para una planta.
morado que hemos comentado anteriormente, adems de poner dicho elemento en rojo.
Para poder poner nuevamente en funcionamiento este elemento, se debe dar la orden desde
el PLC de que est activo nuevamente. Una vez el indicador morado ha desaparecido,
pulsando rearme, el dispositivo retorna a la posicin de paro correcto, permitiendo
arrancarlo nuevamente.
Una vez terminado de explicar el funcionamiento del men haremos hincapi en la
pantalla de Entradas y Salidas que habamos presentado hace un momento.
Esta pantalla, como bien explicamos en su momento, tiene la funcin principal de traducir
las rdenes, de marcha y paro, en cdigos BCD. En este modo de funcionamiento, el
operador no tiene capacidad de manipulacin de la informacin, pero sin embargo puede
acceder a sta. Este acceso se limita simplemente a un uso informativo o de verificacin,
ya que podemos ver el estado en todo momento de las entradas del puerto para
cerciorarnos si estamos recibiendo correctamente la informacin, o tambin para ver si
existe algn fallo en el bus de comunicacin. Otra opcin es el forzado de las salidas con lo
que creamos cdigos BCD de forma manual, que permite hacer verificaciones de
funcionamiento.
Continuando por la parte superior izquierda de la pantalla de Reaccin, nos topamos con
dos botones que si bien son diferentes tiene un roll comn. Anteriormente nos referimos a
la seguridad, diciendo que hay parmetros que tan solo debera poder manipular personal
con un cierto nivel de acceso.
Precisamente estos botones tienen esa finalidad exacta. El botn de la izquierda nos
permite autentificarnos verificando el nivel de acceso que tenemos en el sistema. Como se
trata de una simple simulacin, slo hemos creado dos niveles de acceso: el de Operador
que es el que existe por definicin y el de Administrador.
57
Estudio y desarrollo de un control distribuido para una planta.
58
Estudio y desarrollo de un control distribuido para una planta.
El siguiente botn que explicaremos, tiene una forma un tanto peculiar. Como
hemos comentado ya en diversas ocasiones, en el momento en que se genera un error, se
lanza una alarma tanto acstica como visual.
En la ilustracin 44 podemos ver las dos formas que toma el mismo botn. Cuando est
activo, la zona roja exterior parpadea para indicarnos que una alarma ha sido lanzada. La
nica manera de dar conocimiento al sistema de que nos damos por enterados para que
pare de sonar la sirena, es pulsando el contacto. Pero no nos confundamos, esto no
soluciona el fallo, si el fallo persiste tras ser pulsado, a los pocos segundos la alarma se
reactivar.
El cuadro de texto que sigue a continuacin es el encargado de indicar el tag, que
nos informa de qu tipo de alarma estamos hablando para poder tener una idea y saber
donde hay que actuar. Se puede comportar de dos maneras: cuando no existe ninguna
alarma activa nos muestra el tiempo que hace que se est ejecutando el programa
59
Estudio y desarrollo de un control distribuido para una planta.
y cuando se activa alguna alarma, nos muestra el tag de sta y al mismo tiempo parpadea
entre rojo y negro.
Concluyendo con los botones que encabezan esta pantalla, llegamos al que es
probablemente el ms importante de todos, el contacto que pone en funcionamiento todo el
sistema. Sin activarlo, la comunicacin entre los distintos elementos que conforman este
proyecto no es posible. Cuando activamos este interruptor lo primero que vemos es que el
indicador luminoso de la derecha cambia de estado de Parado a Activo.
60
Estudio y desarrollo de un control distribuido para una planta.
Los indicadores de valores medidos, que son los recuadros negros que podemos ver
repartidos a lo largo y ancho de toda la pantalla, tienen la utilizad de informarnos en cada
momento del valor que se est midiendo. Cada uno de ellos est tarado a un mximo y a u
mnimo. Estos valores limtrofes tienen la capacidad de lanzar alarmas en cuanto detecten
que el valor promedio ha llegado o superado este umbral. Si esto sucede, automticamente
61
Estudio y desarrollo de un control distribuido para una planta.
se pondrn en color rojo, indicndonos que algo no est bien. Por lo que el operario podr
actuar de alguna para corregir esta incidencia.
Para modificarlos iremos a esta sub-pantalla de apoyo. Llegaremos a ella pulsando con el
botn izquierdo del ratn sobre el recuadro de medida que queramos modificar o
simplemente visualizar. Al hacerlo aparecer este cuadro. Al ser un elemento de seguridad
necesita de un nivel de acceso superior al de Operario para entrar a modificar los datos.
Es por ello que en la parte superior derecha existe un botn, que es exactamente el mismo
que hay en la parte superior izquierda de la pantalla reaccin.
Al pulsarlo ocurrir exactamente lo mismo que antes, nos parecer el recuadro para
identificarnos. Al hacerlo ya podremos modificar los valores inferior y superior.
Para modificar los valores una vez estemos correctamente identificados, pulsamos
directamente con el botn izquierdo del ratn sobre el recuadro donde est el valor a
corregir. Automticamente nos aparecer el cuadro de teclado en pantalla que ya hemos
visto y a su vez a la derecha del cuadro que nos indica el valor que vamos a prefijar,
aparecer un botn cuya finalidad es verificar el valor que colocaremos.
62
Estudio y desarrollo de un control distribuido para una planta.
Esto nos evitar que podamos equivocarnos y colocar un valor mximo inferior al mnimo
o un mnimo superior al mximo.. Cuando tengamos los valores deseados introducidos
pulsaremos el botn Salir. Los lmites nuevos ya son operativos, pero para que el
programa sea ms liviano y funcione ms gil, estos valores quedan en memoria. Esto
quiere decir que si ahora tenemos un fallo de energa, al arrancar nuevamente el programa
tendramos que modificarlos de nuevo. La operacin que hace al cargar las bases de datos
al principio en la pantalla de Inicio, tiene su homlogo cuando cerramos el programa, ya
que nos preguntar antes de cerrarlo si queremos guardar las modificaciones. En caso
afirmativo, reescribir todas las bases de datos con los nuevos valores.
Continuando a travs de esta pantalla para seguir un orden ms o menos coherente,
nos desplazaremos de izquierda a derecha y de arriba abajo.
Lo primero que tenemos que explicar es que no todos los indicadores son iguales. Los hay
de medida y de valor prefijado. El recuadro IT7 superior es un indicador prefijado. En ste
colocamos la temperatura promedio que queramos que tenga el reactor, de forma que el
sistema dirigir la reaccin para que recoja ese parmetro. Podremos modificarlo tan solo
pulsando encima del mismo recuadro, para que nos salga el teclado en pantalla. Le
indicamos el valor deseado y aceptamos. Actuaremos de forma coherente, ya que no
podemos decirle al sistema que baje o suba en la reaccin una cantidad absurda de grados,
ya que esto desestabilizara la reaccin. Por esta razn existe una limitacin en cuanto a los
grados que se pueden subir y bajar a la vez.
Nosotros no podemos actuar sobre la velocidad de giro de stas ni sobre ningn otro
parmetro que no sea su marcha o paro.
Una vez pulsemos sobre el motor del agitador nos saldr una ventana como la de la
ilustracin 55, donde nos preguntar si estamos seguros de que queremos conectar el
dispositivo. Pulsando No, se cerrar la ventana y nada habr sucedido. Si de lo contrario
pulsando en Si, automticamente veremos como el motor toma el color verde. Los
indicadores de intensidad del agitador empiezan a marca un valor y el reactor alcanza un
nivel haciendo que todos sus indicadores de temperatura, presin y nivel empiecen a
oscilar. Ningn otro elemento del reactor puede ponerse en marcha sin que el agitador est
en funcionamiento. Esto es un enclavamiento de seguridad, ya que no podemos vaciar el
contenido del reactor si este no se ha homogenizado correctamente. Para ello primero se ha
de hacer un estudio a nivel de calidad o seguridad, para ver qu tipo de sub-reaccin se ha
podido generar al fallar este dispositivo. Este motor ser uno de los tres elementos finales
que servirn como ejemplo real de funcionamiento del proyecto. Es decir, que cuando lo
conectemos o paremos, realmente se pondr en marcha un elemento fsico; en nuestro caso
un ventilador. Cuando generemos un error desde el PLC, algo que ya explicaremos cuando
tratemos el software del PLC, este motor se detendr y se pondr de color rojo, haciendo
necesario el botn de rearme que explicamos anteriormente en la pestaa desplegable.
A continuacin encontramos una bomba que realiza una recirculacin y a su vez
puede ejecutar un vaciado de emergencia del reactor mediante una vlvula de 3 vas. Esta
bomba puede darnos informacin de funcionamiento con tres parmetros: intensidad,
revoluciones y presin. Igual que en el caso del agitador, cuando pulsamos para poner en
marcha la bomba, nos aparece un cuadro que nos pregunta si estamos seguros de realiza la
accin. Si afirmamos, pero no cumplimos la condicin que antes explicbamos de que el
agitador est en marcha, obtendremos el siguiente cartel informativo.
64
Estudio y desarrollo de un control distribuido para una planta.
Sin embargo a modo representativo, en esta bomba hemos introducido otro tipo de
enclavamiento muy comn en estos sistemas. Es un tipo de enclavamiento diseado para
que el elemento se auto proteja de acciones dainas. Muchos de los motores que se instalan
en la industria estn acoplados a elementos reductores o a una infinidad de mecanismos los
cuales son sensibles a cambios bruscos de velocidad. Es por ello que a ste lo hemos
protegido para que en el caso de que lo paremos o se detenga por cualquier motivo, hasta
que la intensidad no baje de un valor, no permite ponerlo nuevamente en marcha. Todo
ello a su vez est directamente relacionado con las revoluciones a las que gira. Si
intentamos tal accin el sistema nos contestara con el siguiente mensaje.
Ilustracin 57: Mensaje informativo que protege a la bomba contra cambios bruscos de velocidad.
En cuanto la intensidad baje del valor preestablecido nos permitir ponerlo en marcha. Para
aumentar el realismo, ya que lo comn en este tipo de dispositivos es que estn acoplados a
variadores de frecuencia, por lo que el arranque es progresivo, se ha hecho que los valores
medidos de intensidad, revoluciones y presin aumenten su valor paulatinamente, hasta
llegar al rendimiento de trabajo correcto, con lo que se estabilizan con las pequeas
fluctuaciones tpicas del proceso normal.
En la parte inferior derecha del reactor, tenemos una bomba que se encarga de
extraer el producto acabado del reactor en condiciones normales de funcionamiento. La
tarea que realiza es prcticamente idntica a la de la otra bomba. Slo existe unas pequeas
diferencias. La puesta en marcha no cambia. Al igual que en el caso anterior depende de
que el agitador del reactor se encuentre en marcha para ejecutar la orden de arranque, con
el mismo mensaje de error si se incumple este requisito. Sin embargo la prohibicin de re
arrancar dependiendo de la intensidad, no est activa. Pero hemos incluido otra restriccin.
Cuando observamos el diagrama, tras la bomba que estamos tratando existe una vlvula
automtica. Sera una incoherencia que nos permitiera poner en marcha dicha bomba sin
previamente abrir esta vlvula, ya que el trabajo que realizara esta bomba podra llevar a
65
Estudio y desarrollo de un control distribuido para una planta.
una avera. Entonces es lgico que este acto se tenga que realiza previamente, por lo que si
no lo hacemos nos generar un mensaje de error.
Ilustracin 58: Mensaje de error que informa de que la vlvula de salida esta cerrada.
66
Estudio y desarrollo de un control distribuido para una planta.
67
Estudio y desarrollo de un control distribuido para una planta.
Est dividida en dos partes: el recuadro de la izquierda, dedicado al ajuste de las grficas, y
el recuadro de la derecha que nos permite una mnima manipulacin de las funciones.
En el recuadro de la izquierda encontramos tres barras de ajuste (POS), la primera se
encarga del ajuste vertical de la variable. El valor de este ajuste se ve representado en todo
momento en un cuadro informativo a la derecha de dicha barra.
La segunda barra que incluye este apartado, tiene la funcin de jugar con la amplitud de la
grfica, para poder exagerar los quiebros que esta hace, con el fin de poder observar mejor
estos cambios.
Por ltimo tenemos la barra de Span, que realiza una multiplicacin sobre la primera, de
modo que cada aumento de sta supone el doble de rango en la primera.
Por ltimo nos encontramos con dos botones, el primero tal y como su nombre indica
(PAUSA | |), detiene la grfica y la reanuda al pulsarlo de nuevo. El segundo hace un auto
ajuste de posicionamiento vertical, cuando alguna variable se sale del dominio de la
ventana. Para ello acta sobre la barra de ajuste vertical y sobre el span que de forma
automtica ajusta la variable en el centro de la pantalla, pudiendo despus colocarla donde
deseemos. Si empleamos este modo, cuando el sistema haya ajustado el canal deseado, nos
mostrar un mensaje informndonos de este hecho.
Ya hemos explicado cmo se ajustan las variables, pero no como se selecciona la que
deseamos. Para ello entra en juego el recuadro de la derecha. En este recuadro podemos
identificar varios canales. Cada canal est referenciado a una variable, que para
identificarlos de forma ms clara, se ha dotado a cada uno de un color diferente. Para
activar o desactivar el canal, se pulsa sobre el botn que tiene el propio nombre. Con ello
lo activamos o desactivamos, pero aun no lo seleccionamos para un previo ajuste. Al
activar el canal aparecer a la derecha del mismo un crculo azul que nos indica esto,
adems de que empezar a dibujarse la funcin. Para seleccionar un canal cuando lo
queramos ajustar, clicaremos con el ratn en el cuadro de color donde pone el tag.
Automticamente un recuadro rojo aparecer, envolvindolo, de esta manera queda
seleccionado este canal.
Lo siguiente que encontramos avanzando hacia la derecha es una vlvula
reguladora. La vlvula funciona de forma diferente a los dispositivos explicados hasta el
momento. Para su activacin no tenemos ningn enclavamiento, ya que es autosuficiente.
Pero como su funcin es regular la refrigeracin del intercambiador, si no ponemos en
marcha las bombas de agua, que son con las que ha de intercambiar temperatura, no tiene
mucho sentido actuarla. Cuando hacemos click sobre la vlvula nos aparece una nueva
ventana.
68
Estudio y desarrollo de un control distribuido para una planta.
69
Estudio y desarrollo de un control distribuido para una planta.
La mayora al ponerlos en marcha inducen a que los cuadros de medidas que dependen de
ellos tanto sean por el propio dispositivo, como si es por la lnea que lo precede, empiecen
a reflejar valores.
El ltimo dispositivo de funcionamiento diferente a los dems es la vlvula
reguladora VA2. Esta vlvula funciona prcticamente igual que la reguladora de agua que
hemos explicado anteriormente, con algunas diferencias.
Visualmente podemos ver que son muy parecidas, pero existen algunas diferencias
importantes de funcionamiento. Veamos la ilustracin 62. Podemos observar que en la
parte superior izquierda existe un pequeo men llamado Ajuste. Para explicar este
70
Estudio y desarrollo de un control distribuido para una planta.
comando, debemos aclarar un aspecto sobre esta vlvula. Al final del proyecto veremos
que se controlan cuatro dispositivos reales, tres de los cuales son unos ventiladores que
simulan ser motores del proceso y el cuarto elemento es una vlvula reguladora, que est
fsicamente ejemplificada mediante los tres displays de 7 segmentos de un circuito
contadora. Adems este ltimo est tambin reflejado en el software del PLC mediante tres
displays digitales, pero implementados por software. Existe la posibilidad de que el valor
que tenemos en el PLC y el que tenemos en esta reguladora no coincidan, esto es muy
posible cuando ponemos en marcha el sistema. Con este botn sincronizamos a cero los
dos elementos tanto de la estacin de trabajo como el del PLC.
Las dos barras de progreso tienen la misma finalidad que en el caso anterior, la nica
diferencia es que anteriormente medan temperatura en la primera de ellas y ahora miden
caudal. La segunda sigue refirindose a la apertura de 0 a 100.
Los dos marcadores siguen la misma lnea, el primero nos indica el caudal en m3 y el
segundo la apertura en %.
Una de las mayores diferencias reside en el control. Slo podemos aumentar o disminuir la
apertura de 1 en 1%, y no existe el control automtico.
Otra de las mayores diferencias es que esta reguladora posee grfica de tendencias, con lo
que podemos medir en todo momento el caudal y la apertura que necesitamos.
3.3.1. Introduccin.
Un puerto paralelo es una interfaz entre una computadora y un perifrico, cuya principal
caracterstica es que los bits de datos viajan juntos, enviando un paquete de byte a la vez.
Es decir, se implementa un cable o una va fsica para cada bit de datos formando un bus.
Mediante el puerto paralelo podemos controlar tambin perifricos como focos, motores
entre otros dispositivos, adecuados para automatizacin.
El puerto paralelo ms conocido es el puerto de impresora (que cumplen la norma IEEE
1284, tambin denominados tipo Centronics) que destaca por su sencillez y que transmite
98 bits.
El puerto paralelo de las computadoras, de acuerdo a la norma Centronics, est compuesto
por un bus de comunicacin bidireccional de 8 bits de datos, adems de un conjunto de
lneas de protocolo. Las lneas de comunicacin cuentan con un retenedor que mantiene el
ltimo valor que les fue escrito hasta que se escribe un nuevo dato, las caractersticas
elctricas son:
72
Estudio y desarrollo de un control distribuido para una planta.
15 32 4 S3 /FEC E ERROR
16 31 14 C2 /INI S INICIALIZAR
17 36 16 /C3 /DSL S SELECT
18 HLH
36 PLH
Resto de MASA
lneas a masa.
Tabla 2: asignacin de los contactos en los tres tipos de conectores.
Si deseamos utilizar el puerto paralelo para otros usos distintos de la conexin a una
impresora sabemos que disponemos de las siguientes seales genricas en funcin del tipo
de puerto.
El puerto paralelo en los PCs se presenta siempre como un conector DB-25 hembra al que
se suele conectar un cable CENTRONIC de la impresora por el extremo DB-25 macho.
Los nombres y funciones de las seales se relacionan con la conexin de una impresora
paralelo, pero desde el punto de vista ms general, podemos ver el puerto paralelo como un
conjunto de E/S digitales a las que nombraremos segn el tipo de registro. De este modo,
las salidas son las lneas D0-D7 del registro de datos y las lneas /C0, /C1, C2 y /C3 del
registro de control. Las entradas son S3, S4, S5, S6 y /S7.
Las seales de / indican lgica negativa: si el bit /S7 est a uno en la lnea 11 hay cero
voltios.
La norma IEE 1284 define 3 tipos de conectores:
Tipo A: Se corresponde con el clsico conector DB25 macho que se suele conectar
al ordenador, posee 25 conectores.
Tipo B: Se corresponde con el conector CENTRONIC que se suele conectar a la
impresora, posee 36 conectores.
Tipo C: Es un conector relativamente nuevo que se puede ver en algunos
dispositivos perifricos, posee 36 conectores.
73
Estudio y desarrollo de un control distribuido para una planta.
Cada uno de los puertos instalados dispone de 3 direcciones de E/S para el acceso a 3
registros de 8 bits cada uno. La direccin base de cada uno de estos puertos se puede
obtener en el rea de la BIOS.
74
Estudio y desarrollo de un control distribuido para una planta.
75
Estudio y desarrollo de un control distribuido para una planta.
datos) informa al PC de que se ha recibido un nuevo dato ponindose a nivel bajo. Sin
embargo, puesto que /ACK se corresponde con el bit S6 y ste no tiene inversin hardware
cuando en la lnea existan cero voltios en S6 habr un 0 lgico.
Para evitar confusiones, se utilizan nicamente las nomenclaturas de las lneas a partir del
bit que ocupan. Las que trabajan en lgica negativa son: /S7, /C0, /C1 y /C3. Como
resumen se muestra a continuacin el mapa de entradas / salidas para el puerto paralelo.
El bit C$ se utiliza para activar las interrupciones en la interfaz, normalmente las rutinas de
la ROM-BIOS que manejan el puerto no utilizan interrupciones para comunicarse con la
impresora ya que se trata de un dispositivo de salida; sin embargo, se puede conseguir que
el puerto lance una interrupcin (IRQ5 o IRQ7 tpicamente) cuando se produce una
transicin en el bit S6 (/ACK) correspondiente a la lnea 10 del conector DB25.
3.4.2. Descripcin.
Como ya hemos explicado anteriormente, el puerto paralelo del PC, est compuesto por un
conector DB25 hembra, estas 25 patillas estn dispuestas en tres grupos. Salidas de control,
salidas de datos y entradas.
78
Estudio y desarrollo de un control distribuido para una planta.
proceso desde esta interface decide actuar sobre un elemento, ya sea vlvula, motor, o
simplemente modificando una consigna de temperatura, etc. Cuando ste realiza tal accin
se produce una cascada de bits que fluye desde el puerto paralelo de dicha estacin de
trabajo en direccin a la red de comunicacin. Puesto que todos los elementos de dicho
sistema no utilizan el mismo idioma, hay que traducirlo para que se puedan entender. Esta
es la funcin principal del circuito en cuestin, por el cual recibe este nombre. Los bits
entran por uno de los puertos DB25, ste es bidireccional, por lo que puede transmitir datos
en ambos sentidos. Pero de momento trataremos solo la afluencia de bits de entrada. Igual
que este puerto, el dispositivo cuenta con tres puertos ms de idnticas caractersticas, pero
finalidades muy diferentes.
Una vez han atravesado el portal de acceso, la orden del operario en forma de bits, entra en
un circuito electrnico el cual se encargar de dirigirlos adecuadamente y con un orden
correcto. El sistema tiene dos carriles de opuestas direcciones, el carril actual direccin
PLC tiene una peculiaridad respecto al de regreso. Este puede albergar datos de entrada de
dos fuentes diferentes: ET y de la Estacin Remota (ET). Es por ello que para separar los
unos de los otros se ha decidido usar una puerta lgica suma (OR) 74LS32, que evita el
trafico inadecuado de bits en sentido peligroso.
Al mismo tiempo har funciones de driver, para impedir que el puerto paralelo pueda
sufrir por un consumo elevado de corriente al alimentar algn dispositivo.
Ahora tendremos que actuar de alguna manera sobre un dispositivo que nos pueda llevar
fsicamente a cero las entradas del puerto paralelo del PLC. Como es lgico nos hemos
decantado por un transistor, ya que son de fcil manejo y muy sencillo funcionamiento. De
toda la amplia gama de transistores del mercado se ha elegido el BD137. Podemos pensar
que para el uso que le daremos es un transistor de mucha potencia, y estar
sobredimensionado quizs en demasa. Esta afirmacin es cierta en su totalidad. Pero la
razn es que para la implementacin de otros circuitos del proyecto s que se necesita algo
ms de potencia. Por lo que para unificar criterios usando el mismo en todos los circuitos,
decid su empleo.
80
Estudio y desarrollo de un control distribuido para una planta.
Cmo logramos con un transistor poner las entradas del PLC fsicamente a un nivel lgico
cero?
En la patilla 2 del transistor o colector conectamos una lnea de potencial fijo cero, ms
comnmente conocido como a masa. En la patilla 1 o emisor conectamos la entrada que
deseamos que cambie su potencial a nuestra voluntad, y finalmente la patilla 3 o base, se le
excita con la seal de salida de la puerta suma. Cuando esta ltima nos proporciona un 1, el
transistor se pone en conduccin ya que superamos el umbral EB de 0.6 voltios, por lo que
la resistencia CE se encuentra en su valor mnimo producindose un cierre del circuito,
haciendo de esta manera que la entrada seleccionada encuentre al otro lado del transistor
un derivacin a masa, por lo que cambia su potencial. Este cambio de potencial se traduce
en un cambio de estado que el PLC es capaz de detectar y actuar en consecuencia.
Sin embargo esto tiene un pequeo inconveniente: el transistor invierte la seal que recibe,
es decir, cuando recibe un 1 en la base, el transistor conduce y pone a cero la entrada. Este
pequeo conflicto es un concepto a tener en cuenta a la hora de la implementacin con
software, del programa, ya que si lo obviamos tendremos serios problemas de
comunicacin.
Una vez recorrido un carril, nos encontramos en el PLC. Realicemos el camino inverso,
pero por el sendero opuesto. Lo primero que observamos desde esta perspectiva, es que
tambin tenemos una peculiaridad diferente al ya recorrido. Esta caracterstica
diferenciadora es que usamos dos tipos diferentes de salidas, cosa que en la ET no. Esto se
debe a que en los procesos industriales reales la ET no tiene capacidad de ejecucin y el
PLC si. En nuestro caso no podra ser diferente, ya que de lo contrario nos alejaramos de
la realidad. De ah que tengamos dos tipos diferentes de salidas: unas se encargan de
activar y desactivar los dispositivos fsicos tales como motores, bombas, actuadores,
niveles, etc. y la otra sirve para informar a la ET que la peticin se ha realizado con o sin
xito. Es decir es tan solo un camino de informacin, no de ejecucin.
Sigamos con los bits que el operario haba lanzado a nuestra red de control industrial. El
PLC ha recibido la informacin y decide en consecuencia. l sabe lo que ha de hacer con
81
Estudio y desarrollo de un control distribuido para una planta.
esos datos, ya que posee una base de datos donde buscar y traducir la informacin, de tal
forma que opere la informacin adecuadamente. Una vez traducido, decide porque lnea ha
de mandarlos, si es una orden de ejecucin usar un camino, que son las salidas de control
del puerto paralelo y si es solo informacin utilizara las salidas de datos.
Supongamos que lo que deseaba el operador era poner en funcionamiento un dispositivo.
Esto llevara al PLC a tomar la decisin de usar las salidas de control para poder ejecutar la
orden. En cuanto el cdigo sale del puerto del PLC, entra por el 2 puerto de entrada salida
del circuito interface. Este puerto es un conector DB25 idntico al primero. Atravesado el
mismo llegamos nuevamente a la placa de circuito impreso, a ella accedern los datos
mediante un driver 74LS07. El driver es una puerta lgica muy simple, ya que su salida
tiene siempre el mismo valor que a su entrada. Su funcin es la de alimentar a los
dispositivos conectados en sus salidas, de tal manera que el elemento que da la seal, no
cargue con el peso del consumo del dispositivo final. De esta manera se protege el puerto
paralelo del ordenador de cualquier sobrecarga. Tiene una peculiaridad, necesita una
resistencia de pull-up. Una resistencia de pull-up es una resistencia de polarizacin
positiva. Es decir las salidas han de estar alimentadas a cinco voltios a travs de una
resistencia de polarizacin, de lo contrario no funciona.
82
Estudio y desarrollo de un control distribuido para una planta.
3.5.1. Introduccin.
La Estacin Remota es el elemento del sistema de control distribuido encargado de
controlar localmente las instalaciones y procesos que se le asignan, en los proyectos de
automatizacin y control.
Es la parte que controla localmente y de la forma ms autnoma posible la seccin del
proceso que se le encomienda. Consta de dos partes:
Controlador de procesos y comunicaciones.
Electrnica de adquisicin y telemando (entradas / salidas).
83
Estudio y desarrollo de un control distribuido para una planta.
3.5.2. Descripcin.
El circuito en cuestin, recoger 8 rdenes codificadas de forma BCD. Este nmero se ha
decidido, no por limitaciones de sistema ni por protocolos, ms bien por la creencia de que
con la simulacin de cuatro elementos finales era suficiente para exponer el
funcionamiento del lazo de control y hacer comprensible su funcionamiento.
Situmonos en el contexto expuesto en el circuito Interface. Esto nos lleva a ubicarnos en
el puerto de entrada salida 3 del dispositivo. Cuando el PLC ha determinado que la
respuesta que ha de tomar es del tipo ejecutiva, no informativa, dijimos que utilizaba para
tal fin las salidas de control que posee. Estas salidas constan de 4 lneas, donde podemos
codificar hasta 16 cdigos BCD. De estos 16 tan slo necesitamos 8, tres activarn los tres
ventiladores, otros tres los desactivarn y el resto se usan para incrementar o decrementar
el contador del circuito nmero 3.
Siguiendo con la orden que ejecut el operador en la ET, nos encontramos un cdigo BCD
de 4 bits que viaja en direccin a la ER. Una vez llegue al puerto de entrada de la ER, el
cual es un DB25 como todos los que conforman el sistema, nos encontramos con el primer
problema de diseo que hemos tenido que salvar para conseguir un funcionamiento
adecuado. Ha consistido en localizar un dispositivo que nos traduzca el BCD y decida
sobre que elemento se acta si entrar en la complejidad de un sistema con
84
Estudio y desarrollo de un control distribuido para una planta.
Este chip tiene un comportamiento peculiar, ya que las 10 lneas de salida se encuentran
permanentemente a nivel alto hasta que una es seleccionada, la cual cambia su estado a
bajo. Es decir funciona con lgica negada. El comportamiento del chip es ideal, si no
tenemos en cuenta que la conexin de las salidas del puerto paralelo se har de modo
secuencial. Esto quiere decir, que al poner las lneas de salida del puerto paralelo al nivel
lgico correcto, no todas lo harn a la vez, hay un tiempo de lapso. Este tiempo de lapsus
puede generar diferentes combinaciones BCD, al tiempo que se intenta generar la deseada,
con los posibles errores que todo ello conlleva. Para solucionar esto se ha empleado un
quinta lnea, a la que llamaremos lnea de activacin. Esta lnea da permiso para que los
datos accedan al 74LS42, de tal manera que lo hagan todos al unsono.
Para ello necesitan algo ms que una simple lnea. Necesitan un dispositivo donde actuar y
que haga su vez de puerta que tan solo se pueda abrir cuando la lnea de acceso de paso.
Este elemento es una puerta AND. Podemos ver la disposicin adoptada a tal efecto en la
ilustracin 72 y como slo es posible pasar los datos de las 4 lneas de entrada a la salida,
conectando la lnea de activacin. As garantizamos que todos los bits son entregados a la
vez, por lo que el decodificador slo podr interpretar la orden adecuada.
Ahora el decodificador ya tiene su orden correcta y pone la salida correspondiente a cero
durante un margen de tiempo reducido. Necesitamos que un dispositivo sea capaz de leer
85
Estudio y desarrollo de un control distribuido para una planta.
este cambio de flanco y a su vez memorizar el estado, para que no desaparezca tan pronto
como el decodificador cambie el mismo.
La solucin a este trabajo lo hace perfectamente un flip-flop J/K. Trabajando directamente
en sus entradas de set y reset obtenemos los resultados deseados. Para nuestra simulacin
hemos escogido el integrado 74LS74.
Para ello se excita la base de un transistor mediante la salida Q del flip-flop. Ello har que
cuando se encuentre a nivel alto, el transistor entre en saturacin y cuando est a nivel bajo
en corte. Esto unido a un rel conectar y desconectara los ventiladores que actuarn como
elementos finales.
86
Estudio y desarrollo de un control distribuido para una planta.
3.6.1. Introduccin.
Este circuito ser junto a los ventiladores que hacen la funcin de dispositivos finales del
proceso industrial, una vlvula virtual, ya que representar el controlador o iniciador que
llevan estos elementos para ajustar la apertura de la misma en %.
Constar de tres displays digitales de 7 segmentos, los cuales contarn de 0 a 100. Cada
pulsacin de apertura o cerrado que el operador realice en la estacin de trabajo, se
traducir en un incremento o decremento numrico visible mediante estos displays. Como
para llevar esto a cabo tan solo disponamos de dos lneas hemos tenido que hacer un
montaje un tanto particular que pasaremos a presentar de forma mucho ms amplia
seguidamente.
3.6.2. Descripcin.
Como comentbamos en el apartado anterior, este dispositivo simula la apertura de una
vlvula reguladora en %. Para hacer esto disponamos tan solo de dos lneas, una con la
87
Estudio y desarrollo de un control distribuido para una planta.
finalidad de incrementar y otra de decrementar. Para poder disponer de estas dos lneas,
hemos aprovechado el decodificador del circuito anterior. Como esta funcionalidad no
tena un peso importante en el circuito ER no lo hemos expuesto, algo que haremos a
continuacin.
Del mismo modo que en la ER dependiendo del cdigo BCD activaba o desactivaba los
elementos finales de este lazo de control. Existen dos cdigos binarios asignados
exclusivamente para las operaciones de incrementar y decrementar el contador.
Cuando el decodificador recibe cualquiera de estas dos seales, activa la lnea de salida
correspondiente, con la nica diferencia de que en este caso no existe flip-flop a la salida,
ya que ahora lo que nos interesa son valores pulsantes, no estacionarios, puesto que el
circuito lo que cuenta son pulsos, o cambios de flanco. Las dos lneas que nacen a la salida
del decodificador son directamente las entradas que utilizar para su cuenteo el circuito
contador.
Supongamos que tenemos el circuito en reposo, por lo que deberan verse tres ceros, uno
en cada uno de los display de 7 segmentos. En esta posicin inicial pulsamos el botn de
incrementar un 1% la apertura de la reguladora. Tras recibir el decodificador la debida
orden da un el flanco descendente en la lnea de salida correspondiente, esta llega al
circuito Contador. Este circuito consta de tres partes. La primera est compuesta por tres
circuitos integrados 74LS192, que son sendos contadores. Estos chips poseen entradas de
incremento (up) y de decremento (down) lo que nos permite el conteo en los dos sentidos.
Poseen tambin las salidas de acarreo (carry) y (borrow) muy importante a la hora de
ordenar el paso de un display a otro. Cada contador es capaz de contar desde 0 hasta 9,
cuando alcanza a los valores extremos 0 y 9 utiliza las salidas de carry o borrow para
incrementar o decrementar el siguiente contador. Es decir cuando pasamos de un 9 a un 10
como un display de 7 segmentos slo es capaz de representar hasta 9, para lograr el 10,
cuando contabiliza los 9 pulsos al llegar al dcimo, automticamente se pone a cero y da
un pulso de acarreo a la entrada up del siguiente contador. Anlogamente cuando bajamos
de un 10 a un 9 el contador da una seal de borrow haciendo que el contador que marca el
uno decremento y posicionando al contador que marca un 0 en un 9. Una vez ha hecho el
conteo, este C.I. nos da esta informacin codificada en BCD a travs de sus 4 salidas. Pero
88
Estudio y desarrollo de un control distribuido para una planta.
Como su nombre indica este chip tiene la nica funcin de traducir la informacin BCD
que reciben sus cuatro entradas en siete salidas capaces de gobernar los 7 diodos led que
componen el display.
Existen dos tipos de displays los de nodo comn y los de ctodo comn, la diferencia es
bien sencilla. Un display no es ms que 7 leds juntos dentro de un mismo encapsulado.
Para ahorrar tamao no es necesario colocar las 14 patillas necesarias para todos los leds,
ya que sera absurdo. Para ello se utiliza como comn o todos los positivos, que sera
nodo comn, o se utilizan todos los negativos, ctodo comn. Nosotros nos hemos
decantado por la de nodo comn. El funcionamiento en principio es el mismo, no
presentauna complejidad mayor, pero hemos decidido as por disponibilidad de material.
89
Estudio y desarrollo de un control distribuido para una planta.
3.7. PLC
3.7.2. Introduccin.
Igual que en el caso de la estacin remota, el PLC que hemos usado para implementar este
proyecto ha sido un PC, pero en este caso porttil. Este hecho hace que el proyecto sea ms
transportable, ya que si implementramos todo con dos PCs de sobremesa sera difcil y
costoso el transporte. Tambin es cierto que encontrar un porttil que incorporara un DB25
no ha sido tarea fcil, ya que si bien en los de sobre mesa aun es corriente en las placas
base modernas, en los porttiles por sus requerimientos de tamao y austeridad, hace aos
que fue eliminado. Para ello nos hemos decantado, por falta de opciones, de un porttil
algo longevo pero funcional. El dispositivo en s, funciona bajo Windows 98, ya que por
capacidad de disco duro y memoria no es capaz de albergar un sistema de mayor potencia.
Pero ello no conlleva mayor problema ya que el lenguaje en Visual 6.0 funciona de igual
manera y los requerimientos de potencia que son necesarios para el funcionamiento de la
simulacin, los cubre con creces.
De forma similar para este PC se ha desarrollado un software, tambin implementado en
Visual Basic 6.0, Este software es completamente diferente al de la Estacin de Trabajo.
Esta requera de un diseo grfico importante para su manipulacin, algo que en un PLC
no es necesario. Hace aos que en la industria han empezado a aparecer PLCs con
pantallas que soportan un pequeo entorno grfico. Podra decirse que estos autmatas
estn en un sub-segmento entre estos dos dispositivos, pero siguen haciendo ms la funcin
de PLC, ya que estn lejos de poderse incorporar como elemento hbrido funcional.
Nosotros lo hemos equipado con una pequea interface grfica, a modo demostrativo, para
poder ejemplificar mejor el funcionamiento del sistema, pero podra obviarse en
prcticamente su totalidad y el global funcionara de igual forma. En nuestro caso el PLC
estar compuesto del propio ordenador porttil ms un cable CENTRONIC .
3.7.3. Software.
El software que se ha diseado para este sistema se puede dividir en dos pantallas, cada
una de las cuales tiene una funcin especfica, pero que para funcionar necesitan del
trabajo combinado de ambas.
Pantalla principal
Pantalla de datos.
91
Estudio y desarrollo de un control distribuido para una planta.
92
Estudio y desarrollo de un control distribuido para una planta.
Al desplegar el sub-men Datos se despliega una nica opcin que es la de ver datos.
sta opcin lo que hace es activar la segunda venta que conforma este software, que
explicaremos en profundidad ms adelante.
Hasta aqu llega el men, ahora tan solo nos queda explicar una seri de botones que hay
distribuidos por la pantalla.
Como sus nombres indican estos botones tienen la funcin de arrancar y parar el programa
que corre por el PLC. Estos botones son para interrumpir la comunicacin
momentneamente por algn motivo, ya que el PLC se pone en marcha automticamente al
conectar el sistema desde la Estacin de Trabajo.
En el momento en que el programa se carga, automticamente lee una serie de bancos de
datos que tiene almacenados y los carga en memoria. Estas bases de datos son traducciones
que utilizar el sistema para interpretar en cada momento que es cada cdigo que recibe.
El sistema, aunque est cargado el programa, no tiene capacidad de leer las entradas si no
se pulsa el botn de ON o se le da la orden desde la Estacin de Trabajo. Una vez
ponemos en marcha el sistema, va leyendo ininterrumpidamente la entrada del puerto
paralelo, cada vez que le llega una informacin, la memoriza, se queda una copia en
memoria y otra copia corre todo el programa. La primera es memorizada, porque como ya
explicamos en el apartado en que exponamos el funcionamiento del puerto paralelo,
cuando se genera un cdigo en el puerto, ste se mantiene en este estado hasta que se
manda otro. Para evitar que est leyendo durante mucho tiempo el mismo cdigo, haciendo
trabajar intilmente a todo el software con la misma informacin, se almacena la primera
vez que lo lee, y la segunda y sucesivas lecturas compara lo que lee con lo que tiene
almacenado, si es lo mismo, no lo deja pasar, de lo contrario tiene va libre para circular
por el software.
El cdigo que pasa este filtro, es comparado con la base de datos de entradas, y queda
identificado, en el caso de que se tratara de una de las combinaciones no asignadas
quedara descartada. Una vez la informacin es identificada se manda a la siguiente
ventana donde se tratar para su posterior salida.
93
Estudio y desarrollo de un control distribuido para una planta.
Hemos podido ver que la manipulacin en esta ventana es muy limitada, apenas podemos
hacer nada, ya que no es necesario.
Visualmente podemos ver que esta ventana es algo ms completa, pero como
comentbamos anteriormente, es todo ilustrativo, para hacer ms comprensible el sistema,
y tambin nos sirve como ayuda la informacin que nos da esta pantalla.
No existen botones que nos permitan manipular informacin, sucede como en la ventana
anterior, porque el hecho de que sea ms completa, no implica que sea mucho mas
manipulable, aunque es cierto que se pueden realizar ms operaciones y que tiene una
opcin, que luego explicaremos, que si es capaz de ejecutar acciones importantes, pero es
solo una excepcin.
Para seguir con la lnea marcada hasta ahora, empezaremos introducindonos en el
programa, por el men superior, que como en el caso anterior es muy bsico y sencillo. En
el caso de la opcin Men vemos que como en el caso anterior solo nos permite cerrar
esta ventana, no tiene ningn uso ms.
94
Estudio y desarrollo de un control distribuido para una planta.
Antes de continuar, haremos un inciso necesario para poder explicar debidamente como
funciona este apartado. Si nos fijamos bien en la ilustracin 88, podemos ver que se ha
dividido la ventana en 4 recuadros numerados del 1 al 4. Esto en la ventana original
lgicamente no se ve, slo se ha hecho sobre la imagen de la misma para facilitar la
explicacin. Hay que decir que cuando cargamos la pantalla correspondiente a dicha
ilustracin, los recuadros 1 y 2 no son visibles. Para que lo sean hay que accionar sendos
comandos que ahora explicaremos. Pero por el contrario los recuadros 3 y 4 estn activos y
visibles siempre.
Una vez dicho esto podemos proseguir con el sub-men que habamos preintroducido.
Cuando seleccionamos la primera opcin Mostrar Registros IO, aparecer en pantalla el
recuadro 1.
Esta pantalla es muy til para comprobar a que tag equivale un cdigo binario. Quizs
faltara explicar un punto que no ha quedado del todo claro anteriormente. Las bases de
datos estn compuestas por 5 registros. Tres de los cuales son los bits de entradas, los bits
de salidas y los bits de ejecucin, as como dos registro de tags de entrada y tags de salida.
Los bits de entrada estn directamente relacionados con los tags de entrada. Esto se ha
95
Estudio y desarrollo de un control distribuido para una planta.
hecho para comprobar en todo momento que el cdigo correcto activa la opcin deseada.
As al enviar un cdigo desde la estacin de trabajo ha de coincidir con su tag de entrada.
Una vez tenemos el cdigo relacionado con su tag de entrada, se le asigna un cdigo de
salida y un tag de salida. El ltimo registro es nicamente para los dispositivos reales que
se pondrn en marcha a travs de los circuitos electrnicos. Si pulsamos en la parte
superior el botn de in, nos saldr a la izquierda los bits de entrada y los tags que le
corresponde a cada cdigo. De igual manera si pulsamos out ocurrir lo mismo con la
salida. Pero si lo que queremos es comprobar un cdigo o un tag nicamente
seleccionamos de los recuadros superiores el tag, o el cdigo que queramos, este al ser
seleccionado se colocar en la casilla inferior que le pertoque y automticamente en el otro
recuadro aparecer su informacin homloga. No tiene un efecto sobre el sistema, pero es
una gran herramienta que nos sirve para verificar si algn cdigo no esta siendo
interpretado adecuadamente.
La segunda opcin de este sub-men, Registro de entradas, completa la pantalla anterior,
si recordamos la ilustracin 88, veremos que corresponde al cuadro marcado con un 2.
Cada vez que uno de estos dispositivos se activa desde la estacin de trabajo, el indicador
luminoso de la izquierda se pone en verde, cuando se desactiva se pone en negro. El
indicador de la derecha permanece apagado, slo se ilumina si ocurre algn error en
cualquiera de los dispositivos, en este caso se iluminar de rojo. A la vez este error se
transmitir a la Estacin de trabajo, donde el elemento en cuestin se detendr y se
apostar en rojo. Este error como es generado desde el PLC solo se puede corregir si este
detecta que est solventado, para ello utilizaremos los controles que se encuentran
remarcados en rojo dentro del recuadro con el nombre de Generar fallo. Este recuadro
contiene los nicos mandos capaces de introducir modificaciones. Estos botones han sido
ideados nicamente para generar fallos en el sistema ejemplificando las posibles averas
que se puedan dar.
Si pulsamos el desplegable, vemos que en l se encuentran todos los dispositivos que hay
implementados en el proyecto exceptuando la vlvula de refrigeracin. Cuando queramos
generar un error slo tenemos que desplegar la lista, seleccionar el dispositivo y pulsar el
botn de aceptar. Automticamente el indicador rojo del dispositivo seleccionado se
97
Estudio y desarrollo de un control distribuido para una planta.
iluminara, apagndose el verde, siempre y cuando ste estuviera en marcha. Esto dar la
orden de paro a la estacin de trabajo del propio elemento, colocndolo en rojo. Cuando el
elemento ha quedado reparado, lo seleccionaremos nuevamente en el desplegable y cuando
pulsemos el botn de reset dicho componente restaurara el Led de avera apagndose ste.
Aqu es donde entra en juego el botn que tenamos en el cuadro desplegable de la pantalla
principal de la Estacin de Trabajo. Ahora que la avera ha sido restaurada en el PLC, para
que el operado pueda disponer de la unidad, ha de pulsar este botn que resetea la avera en
la Estacin de Trabajo.
Por ltimo tenemos el recuadro nmero 4, este recuadro es nicamente informativo,
solo da informacin til para el observador.
En primer caso lo que ms llama la atencin es el gran display digital. ste marcar en
todo momento los incrementos y decrementos que desde la Estacin de Trabajo le ordene
el operador. A su vez la barra de progreso ir avanzando o retrocediendo del mismo modo.
En el lado derecho tenemos cuatro recuadros informativos, los cuales nos dan lectura de
cdigo de entrada y su tag, as como el cdigo correspondiente de salida y su tag.
98
Conclusiones y Lneas futuras
- 99 -
Conclusiones y Lneas futuras.
INT hDev;
INT hTime;
STRING sText;
IF hTraceOn THEN
IF (StrLeft(sPrompt, StrLength(sMask)) = sMask) THEN
TraceMsg(sPrompt);
hTime = TimeCurrent();
sText = TimeToStr(hTime, 2)+" "+TimeToStr(hTime, 1)+"
"+sPrompt;
SemWait(hDebugSem, 10);
FileWriteLn(hDebugFile, sText);
SemSignal(hDebugSem);
END
END
END
- 100 -
Bibliografa y Software empleado.
5. Bibliografa.
" I he Measurement and Automation" calalog 2004 National Instrumentis
Revista "Instrumentacin y Control Automtico" n 122
"EtberNet/IP" Rockwell automation Noviembre 2000
"NetLnx" Rockwell automation Noviembre 2002
"Latinoamericana Advance" Siemens 2004
"Sistemas De Control "Carmen D'Sousa www.monografias.com
"Tecnologas y actividades de estandarizacin para la interconexin de Industrial
Networks" Alcatel para Fundacin AUNA
"Comunicaciones Industriales" Autores: V.Sempere, J. Silvestre, J.A. Martnez
Editorial: SPUPV (SPUPV-2002.213) Ao:2002
Departamento de Ingeniera de Sistemas y Automtica Universidad de Vigo
Universidad Miguel Hernndez Dpto. Ingeniera.
http://en.wikipedia.org/wiki/Citect
http://es.wikipedia.org/wiki/Profibus_PA
http://formacion.plcmadrid.es/descargas/docs/omron/ProfibusOmron.pdf
Electrnica digital moderna. Teora y Prctica . J.M.Angulo. Editorial Paraninfo.
http://www.datasheetcatalog.net/es/datasheets_pdf/7/4/L/S/74LS74.shtml
http://es.rs-online.com/web/
http://www.alldatasheet.com/datasheet-pdf/pdf/27999/TI/74LS266.html
Visual Basic Curso de programacin Fco. Javier Ceballos Editorial ra-ma.
- 101 -
Links datasheets
6. Link Datasheets.
http://www.datasheetcatalog.org/datasheets/50/375549_DS.pdf
(74LS266)
http://www.datasheetcatalog.org/datasheets/70/375318_DS.pdf
(74LS04)
http://www.datasheetcatalog.org/datasheets/70/375337_DS.pdf
(74LS08)
http://www.datasheetcatalog.org/datasheets/70/375334_DS.pdf
(74LS07)
http://www.datasheetcatalog.org/datasheets/70/375703_DS.pdf
(74LS74)
http://www.datasheetcatalog.org/datasheets/70/375646_DS.pdf
(74LS47)
http://www.datasheetcatalog.org/datasheet/motorola/SN74LS148D.p
df (74LS147)
http://www.datasheetcatalog.org/datasheets/105/361053_DS.pdf
(74LS192)
http://www.datasheetcatalog.org/datasheet/fairchild/BD137.pdf
(BD137).
- 102 -
ndice de Anexos
ANEXOS
- 103 -
Anexos1 Rutinas Programadas
If act = 7 Then
Else
ProgressBar1.Visible = True
Dim EXL As Excel.Application
Set EXL = New Excel.Application
Dim w As Excel.Workbook
Set w = EXL.Workbooks.Open(App.Path + "\MAXMIN.xls")
Dim s As Excel.Worksheet
Set s = w.Sheets("Hoja1")
For i = 2 To 23
ProgressBar1.Value = i
s.Range("C" & i).Value = MAX(i)
s.Range("D" & i).Value = MIN(i)
Next
Set s = Nothing
w.Save
w.Close
Set w = Nothing
Set EXL = Nothing
End If
Timer1.Enabled = True
End Sub
105
Anexos1 Rutinas Programadas
Form2.Visible = True
NUM = 1
Form2.Frame2.Enabled = True
End Sub
Private Sub ACCESO1_KeyPress(KeyAscii As Integer) 'Realiza la misma
funcin que el botn acceder pero pulsando el botn Return del
teclado.
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
Call Botonacceso_Click
End If
End Sub
106
Anexos1 Rutinas Programadas
Frame2.Enabled = False
Unload Form2
End Sub
107
Anexos1 Rutinas Programadas
End Select
Call Command42_Click
Frame2.Enabled = False
Unload Form2
End Sub
108
Anexos1 Rutinas Programadas
109
Anexos1 Rutinas Programadas
110
Anexos1 Rutinas Programadas
End Sub
111
Anexos1 Rutinas Programadas
A = 1
Call error
Exit Sub
End If
If Text2 = "" Then
A = 2
Call error
Exit Sub
End If
If Text1 = Text2 Then
Else
A = 3
Call error
Exit Sub
End If
psw = Text2.Text
'ENCRIPT = Encriptado(psw)
direccion = App.Path & "\password.txt"
Open direccion For Output As #1
Print #1, psw
Close #1
Form1.Acceso1.SetFocus
Unload NPASSWORD
End Sub
113
Anexos1 Rutinas Programadas
KeyAscii = 0
Call Command1_Click
End If
End Sub
7.1.4. Cdigo Vlvula Amoniaco.
Option Explicit
Dim MAX As Integer
Else
Timer3.Enabled = True
End If
End Sub
115
Anexos1 Rutinas Programadas
Else
Picture3.Visible = False
Picture2.Visible = True
End If
End Sub
Load PPrincipal
PPrincipal.Visible = True
Unload Form1
Else
MsgBox "PASSWORD INCORRECTO!", vbCritical, "ERROR!"
Acceso1 = ""
Acceso1.SetFocus
Exit Sub
End If
GoTo C
B:
MsgBox "Error acceso Password!", vbCritical, "ERROR!"
C:
End Sub
117
Anexos1 Rutinas Programadas
End
End If
End Sub
118
Anexos1 Rutinas Programadas
PPrincipal.Text18 = Form2.text1
Case 6
MAXMIN.Text2 = Form2.text1
End Select
Call Command42_Click
Frame2.Enabled = False
Unload Form2
End Sub
120
Anexos1 Rutinas Programadas
mem(i) = "G"
End Sub
121
Anexos1 Rutinas Programadas
mem(i) = "O"
End Sub
122
Anexos1 Rutinas Programadas
mem(i) = "W"
End Sub
End Sub
123
Anexos1 Rutinas Programadas
End Sub
125
Anexos1 Rutinas Programadas
126
Anexos1 Rutinas Programadas
127
Anexos1 Rutinas Programadas
128
Anexos1 Rutinas Programadas
F = 0
Else
Picture1.ScaleMode = 3
If CANAL1 = True Then
Picture1.ForeColor = &HFF00&
Picture1.Line (Start_Pos, B)-(End_Pos, A)
VAL1 = Aleatorio(CLng(4), CLng(12))
Text11 = C1B
End If
If CANAL2 = True Then
Picture1.ForeColor = &HFF&
Picture1.Line (Start_Pos, D)-(End_Pos, C)
val2 = Aleatorio(CLng(10), CLng(17))
Text12 = C1A
End If
If CANAL3 = True Then
Picture1.ForeColor = &HFFFF&
Picture1.Line (Start_Pos, F)-(End_Pos, E)
val3 = Aleatorio(CLng(1), CLng(10))
Text13 = C1C
End If
B = A
D = C
F = E
Start_Pos = End_Pos
End_Pos = End_Pos + 2.5
End If
End Sub
129
Anexos1 Rutinas Programadas
Shape1.Visible = False
Shape2.Visible = True
Shape3.Visible = False
HScroll1.Value = 0
FlatScrollBar1.Value = 1
Label1.Caption = "CANAL2"
End Sub
130
Anexos1 Rutinas Programadas
ProgressBar1.Value = 0
End If
End If
If Shape2.Visible = True Then
On Error GoTo D
ProgressBar1.MAX = Text12 + 300
ProgressBar1.Value = Text4
D:
If HScroll1.Value - Text12 < 201 Then
If HScroll1.Value = HScroll1.MAX Then
If FlatScrollBar1.Value = FlatScrollBar1.MAX Then
Timer3.Enabled = False
MsgBox "Span fuera de rango", vbExclamation,
"Atencin!"
Else
FlatScrollBar1.Value = FlatScrollBar1.Value + 1
End If
Else
HScroll1.Value = HScroll1.Value + 1
End If
ElseIf HScroll1.Value - Text12 > 201 Then
If HScroll1.Value = HScroll1.MIN Then
If FlatScrollBar1.Value = FlatScrollBar1.MIN Then
Timer3.Enabled = False
MsgBox "Span fuera de rango", vbExclamation,
"Atencin!"
Else
FlatScrollBar1.Value = FlatScrollBar1.Value - 1
HScroll1.Value = HScroll1.MAX
End If
Else
On Error GoTo ZZ
HScroll1.Value = HScroll1.Value + 1
ZZ:
End If
End If
131
Anexos1 Rutinas Programadas
Else
FlatScrollBar1.Value = FlatScrollBar1.Value + 1
End If
Else
HScroll1.Value = HScroll1.Value + 1
End If
ElseIf HScroll1.Value - Text13 > 201 Then
If HScroll1.Value = HScroll1.MIN Then
If FlatScrollBar1.Value = FlatScrollBar1.MIN Then
Timer3.Enabled = False
MsgBox "Span fuera de rango", vbExclamation,
"Atencin!"
Else
FlatScrollBar1.Value = FlatScrollBar1.Value - 1
HScroll1.Value = HScroll1.MAX
End If
Else
HScroll1.Value = HScroll1.Value + 1
End If
End If
If HScroll1.Value - Text13 = 201 Then
Timer3.Enabled = False
MsgBox "CANAL3 Ajustado", vbInformation, "Atencin!"
ProgressBar1.Value = 0
End If
End If
End Sub
132
Anexos1 Rutinas Programadas
133
Anexos1 Rutinas Programadas
End If
End Sub
134
Anexos1 Rutinas Programadas
bRetVal = GetPortBit(&H378, 1)
Select Case bRetVal
Case Is = False
' pone el bit 1 q corresponde al pin 4 a nivel 1
SetPortBit &H378, 1
Text1.Text = Val(Text1.Text) + 2
led1(1).Visible = True
led0(1).Visible = False
Case Is = True
' pone el bit 1 q corresponde al pin 4 a nivel 0
NotPortBit &H378, 1
Text1.Text = Val(Text1.Text) - 2
led1(1).Visible = False
led0(1).Visible = True
End Select
End Sub
135
Anexos1 Rutinas Programadas
136
Anexos1 Rutinas Programadas
led0(6).Visible = True
End Select
End Sub
137
Anexos1 Rutinas Programadas
Le6 = "1"
LedE1(5).Visible = True
LedE0(5).Visible = False
Else
Le6 = "0"
LedE1(5).Visible = False
LedE0(5).Visible = True
End If
If GetPortBit(&H378, 6) = True Then
Le7 = "1"
LedE1(6).Visible = True
LedE0(6).Visible = False
Else
Le7 = "0"
LedE1(6).Visible = False
LedE0(6).Visible = True
End If
If GetPortBit(&H378, 7) = True Then
Le8 = "1"
LedE1(7).Visible = True
LedE0(7).Visible = False
Else
Le8 = "0"
LedE1(7).Visible = False
LedE0(7).Visible = True
End If
End If
End Sub
138
Anexos1 Rutinas Programadas
If Label5(2).Caption = 1 Then
Label2 = Label2 + 2
Else
Label2 = Label2
End If
If Label5(3).Caption = 1 Then
Label2 = Label2 + 4
Else
Label2 = Label2
End If
If Label5(4).Caption = 1 Then
Label2 = Label2 + 8
Else
Label2 = Label2
End If
If Label5(5).Caption = 1 Then
Label2 = Label2 + 16
Else
Label2 = Label2
End If
End Sub
139
Anexos1 Rutinas Programadas
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 3 ' BOMBA CIRCUITO REACTOR MARCHA
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 4 ' BOMBA CIRCUITO REACTOR PARO
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 5 'REGULADORA INCREMENTO
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
140
Anexos1 Rutinas Programadas
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 6 'REGULADORA DECREMENTO
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 7 'BOMBA VACIADO MARCHA
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 8 'BOMBA VACIADO PARO
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
141
Anexos1 Rutinas Programadas
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 9 'BOMBA REFRIGERACION1 MARCHA
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 10 'BOMBA REFRIGERACION1 PARO
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 11 'BOMBA REFRIGERACION2 MARCHA
If GetPortBit(&H378, 0) = False Then
142
Anexos1 Rutinas Programadas
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 12 'bomba refrigeracion 2 parada
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 13 'valvula salida abierta
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
143
Anexos1 Rutinas Programadas
'*******************************************************************
*****
Case 14 'valvula salida cerrada
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 15 'comprobacion plc marcha
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 16 'vlvula fro cerrada
'*******************************************************************
*****
Case 17 ' motor 1 agua marcha
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
144
Anexos1 Rutinas Programadas
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 18 'motor 1 agua paro
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 19 ' motor 2 agua marcha
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 23 'VLVULA AIREACION ABIERTA
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
145
Anexos1 Rutinas Programadas
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 24 'VALVULA AIREACION CERRADA
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 25 ' motor 2 agua paro
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 26 'MARCHA SOPLANTE
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
146
Anexos1 Rutinas Programadas
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
Case 27
If GetPortBit(&H378, 0) = False Then
SetPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = False Then
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
Timer4.Enabled = True
'*******************************************************************
*****
End Select
End Sub
Private Sub Timer4_Timer()
If GetPortBit(&H378, 0) = True Then
NotPortBit &H378, 0
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then
NotPortBit &H378, 4
End If
ENTSAL = 0
Timer4.Enabled = False
Unload INOUT
147
Anexos1 Rutinas Programadas
End Sub
148
Anexos1 Rutinas Programadas
149
Anexos1 Rutinas Programadas
NUM = 6
ButtonMac3.Visible = True
End Sub
150
Anexos1 Rutinas Programadas
PPrincipal.Shape21.Visible = False
PPrincipal.Shape22.Visible = False
PPrincipal.Shape25.Visible = False
PPrincipal.Shape26.Visible = False
PPrincipal.Shape27.Visible = False
PPrincipal.Shape28.Visible = False
PPrincipal.Shape29.Visible = False
PPrincipal.Shape30.Visible = False
PPrincipal.Shape31.Visible = False
PPrincipal.Shape32.Visible = False
PPrincipal.Shape33.Visible = False
PPrincipal.Shape35.Visible = False
PPrincipal.Label2.Visible = False
PPrincipal.Label3.Visible = False
PPrincipal.Label4.Visible = False
PPrincipal.Label5.Visible = False
PPrincipal.Label6.Visible = False
PPrincipal.Label7.Visible = False
PPrincipal.Label8.Visible = False
PPrincipal.Label11.Visible = False
PPrincipal.Label12.Visible = False
PPrincipal.Label13.Visible = False
PPrincipal.Label15.Visible = False
PPrincipal.Label16.Visible = False
PPrincipal.Label17.Visible = False
PPrincipal.Label18.Visible = False
PPrincipal.Label19.Visible = False
PPrincipal.Label20.Visible = False
PPrincipal.Label21.Visible = False
PPrincipal.Label22.Visible = False
PPrincipal.Label23.Visible = False
PPrincipal.Label24.Visible = False
PPrincipal.Label25.Visible = False
PPrincipal.Label26.Visible = False
PPrincipal.Label27.Visible = False
PPrincipal.Label28.Visible = False
PPrincipal.Label29.Visible = False
PPrincipal.Label30.Visible = False
PPrincipal.Label31.Visible = False
PPrincipal.Label32.Visible = False
PPrincipal.Label33.Visible = False
PPrincipal.Label34.Visible = False
PPrincipal.Label35.Visible = False
PPrincipal.Label37.Visible = False
Select Case MARCO
Case 1
PPrincipal.Shape14.Visible = True
PPrincipal.Label22.Visible = True
Case 2
PPrincipal.Shape28.Visible = True
PPrincipal.Label21.Visible = True
Case 3
PPrincipal.Shape28.Visible = True
PPrincipal.Label21.Visible = True
153
Anexos1 Rutinas Programadas
Case 4
PPrincipal.Shape13.Visible = True
PPrincipal.Label20.Visible = True
Case 5
PPrincipal.Shape12.Visible = True
PPrincipal.Label19.Visible = True
Case 6
PPrincipal.Shape27.Visible = True
PPrincipal.Label18.Visible = True
Case 7
PPrincipal.Shape27.Visible = True
PPrincipal.Label18.Visible = True
Case 8
PPrincipal.Shape26.Visible = True
PPrincipal.Label17.Visible = True
Case 9
PPrincipal.Shape26.Visible = True
PPrincipal.Label17.Visible = True
Case 10
PPrincipal.Shape11.Visible = True
PPrincipal.Label16.Visible = True
Case 11
PPrincipal.Shape10.Visible = True
PPrincipal.Label15.Visible = True
Case 12
PPrincipal.Shape9.Visible = True
PPrincipal.Label13.Visible = True
Case 13
PPrincipal.Shape25.Visible = True
PPrincipal.Label12.Visible = True
Case 14
PPrincipal.Shape22.Visible = True
PPrincipal.Label11.Visible = True
Case 15
PPrincipal.Shape8.Visible = True
PPrincipal.Label5.Visible = True
Case 16
PPrincipal.Shape6.Visible = True
PPrincipal.Label7.Visible = True
Case 17
PPrincipal.Shape1.Visible = True
PPrincipal.Label3.Visible = True
Case 18
PPrincipal.Shape2.Visible = True
PPrincipal.Label2.Visible = True
Case 19
PPrincipal.Shape3.Visible = True
PPrincipal.Label4.Visible = True
Case 20
PPrincipal.Shape4.Visible = True
PPrincipal.Label8.Visible = True
Case 21
PPrincipal.Shape7.Visible = True
PPrincipal.Label6.Visible = True
154
Anexos1 Rutinas Programadas
Case 22
PPrincipal.Shape29.Visible = True
PPrincipal.Label23.Visible = True
Case 23
PPrincipal.Shape30.Visible = True
PPrincipal.Label24.Visible = True
Case 24
PPrincipal.Shape15.Visible = True
PPrincipal.Label25.Visible = True
Case 25
PPrincipal.Shape18.Visible = True
PPrincipal.Label26.Visible = True
Case 26
PPrincipal.Shape31.Visible = True
PPrincipal.Label27.Visible = True
Case 27
PPrincipal.Shape32.Visible = True
PPrincipal.Label28.Visible = True
Case 28
PPrincipal.Shape19.Visible = True
PPrincipal.Label29.Visible = True
Case 29
PPrincipal.Shape20.Visible = True
PPrincipal.Label30.Visible = True
Case 30
PPrincipal.Shape17.Visible = True
PPrincipal.Label31.Visible = True
Case 31
PPrincipal.Shape21.Visible = True
PPrincipal.Label32.Visible = True
Case 32
PPrincipal.Shape16.Visible = True
PPrincipal.Label34.Visible = True
PPrincipal.Label33.Visible = True
Case 33
PPrincipal.Shape33.Visible = True
PPrincipal.Label35.Visible = True
Case 34
Case 35
PPrincipal.Shape35.Visible = True
PPrincipal.Label37.Visible = True
End Select
Timer1.Enabled = False
Unload PPRINAPOYO
End Sub
156
Anexos1 Rutinas Programadas
157
Anexos1 Rutinas Programadas
End Sub
158
Anexos1 Rutinas Programadas
Call EntradasLeidas
End If
End Sub
159
Anexos1 Rutinas Programadas
Picture4.Visible = False
Picture13.Visible = False
Picture12.Visible = True
Timer2.Enabled = False
ENTSAL = 2
Load INOUT
End If
End Sub
160
Anexos1 Rutinas Programadas
161
Anexos1 Rutinas Programadas
End If
Volumen &HAD, 0, 1, 0
ACTB = MsgBox(" MARCHA BOMBA?" & Chr(13), 324, "ATENCION")
Volumen &HAD, 0, 1, 0
If ACTB = 7 Then
Else
If LED3(3).Visible = True Then
MsgBox "Imposible poner en marcha, Fallo en bomba",
vbCritical, "Atencin!"
Exit Sub
End If
Picture17.Visible = False
Picture16.Visible = True
Timer10.Enabled = True
Text12.BackColor = &H80000008
Text13.BackColor = &H80000008
Text14.BackColor = &H80000008
i2 = 0
ENTSAL = 7
Load INOUT
End If
End Sub
162
Anexos1 Rutinas Programadas
Picture19.Visible = False
Picture18.Visible = True
End If
SNIFERIN.Enabled = True
End If
End Sub
163
Anexos1 Rutinas Programadas
Else
Picture25.Visible = True
Picture24.Visible = False
ENTSAL = 12
Load INOUT
End If
End Sub
164
Anexos1 Rutinas Programadas
Picture30.Visible = False
Picture29.Visible = True
ENTSAL = 24
Load INOUT
End If
End Sub
165
Anexos1 Rutinas Programadas
166
Anexos1 Rutinas Programadas
AMONIAC.Show
End Sub
167
Anexos1 Rutinas Programadas
End If
End Sub
168
Anexos1 Rutinas Programadas
Else
N0 = 1
s = 1
End If
If GetPortBit(&H379, 4) = True Then
N1 = 0
Else
N1 = 1
s = s + 2
End If
If GetPortBit(&H379, 5) = True Then
N2 = 0
Else
N2 = 1
s = s + 4
End If
If GetPortBit(&H379, 6) = True Then
N3 = 0
Else
N3 = 1
s = s + 8
End If
If GetPortBit(&H379, 7) = True Then
N4 = 1
s = s + 16
Else
N4 = 0
End If
FORZAR = N4 & N3 & N2 & N1 & N0
If s = 0 Then
GoTo FIN
Else
fallodisp = s
s = 0
End If
Call EntradasLeidas
FORZAR = ""
s = 0
FIN:
End Sub
Private Sub EntradasLeidas()
Select Case fallodisp
Case 1 'PARO AGITADOR REACOR
If MSGALRM = 6 Then
Else
MSGALRM = 6
Call ALARMAS
End If
Timer2.Enabled = False
Picture12.Visible = True
Picture13.Visible = False
ENTSAL = 2
Load INOUT
Case 2 ' Bomba vaciado parada
169
Anexos1 Rutinas Programadas
If MSGALRM = 9 Then
Else
MSGALRM = 9
Call ALARMAS
End If
Picture16.Visible = False
Picture17.Visible = True
ENTSAL = 8
Load INOUT
Timer10.Enabled = False
If Text13 < 10 Then
Else
Timer10.Enabled = True
End If
Case 3 ' PARO BOMBA CIRCUITO REACTOR
If MSGALRM = 8 Then
Else
MSGALRM = 8
Call ALARMAS
End If
Picture14.Visible = True
Picture15.Visible = False
ENTSAL = 4
Load INOUT
Timer11.Enabled = False
On Error GoTo A2
If Text11 < 10 Then 'Esta condicin es para que en caso de que
coincida que hay un fallo con la bomba casi parada, no ponga el
timer en marcha el cual subira la intensidad de la bomba de forma
irreal
Else
Timer11.Enabled = True
End If
A2:
Case 4 'PARO BOMBA REFRIGERACION 1
If MSGALRM = 10 Then
Else
MSGALRM = 10
Call ALARMAS
End If
ENTSAL = 10
Load INOUT
Picture22.Visible = True
Picture23.Visible = False
Case 5 ' PARO BOMBA REFRIGERACIN 2
If MSGALRM = 11 Then
Else
MSGALRM = 11
End If
Call ALARMAS
ENTSAL = 12
Load INOUT
Picture25.Visible = True
Picture24.Visible = False
170
Anexos1 Rutinas Programadas
Case 13
If MSGALRM = 7 Then
Else
MSGALRM = 7
Picture18.Visible = False
Picture19.Visible = True
Call ALARMAS
End If
Case 29 ' plc DESACTIVADO
Picture10(12).Visible = False
Picture42(11).Visible = True
MsgBox "PLC desactivado", vbExclamation, "Atencin!"
Label69 = "PLC OFF"
Call Picture36_Click
Case 30 ' plc ACTIVADO
Picture10(12).Visible = True
Picture42(11).Visible = False
Picture45.Visible = False
Label69 = "PLC ON"
End Select
End Sub
171
Anexos1 Rutinas Programadas
172
Anexos1 Rutinas Programadas
173
Anexos1 Rutinas Programadas
MARCO = 2
End Sub
174
Anexos1 Rutinas Programadas
175
Anexos1 Rutinas Programadas
176
Anexos1 Rutinas Programadas
Load PPRINAPOYO
MARCO = 16
End Sub
177
Anexos1 Rutinas Programadas
178
Anexos1 Rutinas Programadas
I5 = I5 - 2
If Text13 < 0 Then
Else
Text13 = (I3 - 7) '& " RPM"
End If
If Text14 < 0 Then
Else
Text14 = (I4 - 1) '& " Kg/cm2)"
End If
If Text12 < 0 Then
Else
Text12 = (I5 - 2) '& " A"
End If
End If
End If
If i2 > 30 Then
Timer10.Enabled = False
If Picture16.Visible = True Then
Timer8.Enabled = True
Else
Text13 = "0 RPM"
End If
End If
End Sub
179
Anexos1 Rutinas Programadas
Text27 = I3
Text10 = I4
Text11 = I5
End If
Else
If i2 < 2 Then
I3 = I3 - 7
I4 = I4 - 1
I5 = I5 - 2
Else
I3 = I3 - 4
I4 = I4 - 1
I5 = I5 - 2
If Text27 < 0 Then
Else
Text27 = I3
End If
If Text10 < 0 Then
Else
Text10 = I4
End If
If Text11 < 0 Then
Else
Text11 = I5
End If
End If
End If
If i2 > 30 Then
Timer11.Enabled = False
If Picture15.Visible = True Then
Timer9.Enabled = True
End If
End If
End Sub
180
Anexos1 Rutinas Programadas
Timer14.Enabled = True
End Sub
181
Anexos1 Rutinas Programadas
End If
Timer18.Interval = 100
If Text16 < 1350 Then
Text16 = Text16 + 5.3
Else
CAU = Aleatorio(CLng(1327), CLng(1350))
Text16 = CAU
Timer18.Interval = 1000
End If
End Sub
182
Anexos1 Rutinas Programadas
183
Anexos1 Rutinas Programadas
End If
If MSGALRM = 16 Then 'temperatura inferior reactor baja
Else
If Text6 < MIN(4) Then
MSGALRM = 16
Call ALARMAS
Text6.BackColor = &HFF&
End If
End If
If MSGALRM = 17 Then 'temperatura inferior reactor alta
Else
If Text8 > MAX(5) Then
MSGALRM = 17
Call ALARMAS
Text6.BackColor = &HFF&
End If
End If
If MSGALRM = 18 Then 'temperatura inferior reactor baja
Else
If Text8 < MIN(5) Then
MSGALRM = 18
Call ALARMAS
Text6.BackColor = &HFF&
End If
End If
If MSGALRM = 19 Then 'temperatura inferior reactor alta
Else
If Text7 > MAX(6) Then
MSGALRM = 19
Call ALARMAS
Text7.BackColor = &HFF&
End If
End If
If MSGALRM = 20 Then 'temperatura inferior reactor alta
Else
If Text7 < MIN(6) Then
MSGALRM = 20
Call ALARMAS
Text7.BackColor = &HFF&
End If
End If
B:
End Sub
184
Anexos1 Rutinas Programadas
End Sub
Private Sub TEXT11_CLICK()
mxmn = 10
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT8_click()
mxmn = 5
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT5_click()
mxmn = 3
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT6_click()
mxmn = 4
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT7_click()
mxmn = 6
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT9_click()
mxmn = 7
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT10_click()
mxmn = 8
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT13_CLICK()
mxmn = 13
Load MAXMIN
MAXMIN.Visible = True
End Sub
Private Sub TEXT14_CLICK()
mxmn = 14
Load MAXMIN
MAXMIN.Visible = True
End Sub
185
Anexos1 Rutinas Programadas
End Sub
186
Anexos1 Rutinas Programadas
End If
End Sub
187
Anexos1 Rutinas Programadas
MAXMIN.Visible = True
End Sub
Private Sub TEXT16_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then
KeyAscii = 0
Else
KeyAscii = 0
End If
End Sub
188
Anexos1 Rutinas Programadas
Load MAXMIN
MAXMIN.Visible = True
End Sub
189
Anexos1 Rutinas Programadas
190
Anexos1 Rutinas Programadas
191
Anexos1 Rutinas Programadas
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 21
Text1 = "IT5 Temperatura circuito reactor alta "
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 22
Text1 = "IT5 Temperatura circuito reactor baja "
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 23
Text1 = "IP3 Presin circuito reactor alta "
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 24
Text1 = "IP3 Presin circuito reactor baja "
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 25
Text1 = "II3 Intensidad bomba circuito reactor alta"
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 26
Text1 = "II3 Intensidad bomba circuito reactor baja"
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 27
Text1 = "IR2 Revoluciones bomba circuito reactor altas"
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 28
Text1 = "IR2 Revoluciones bomba circuito reactor bajas"
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 29
Text1 = "IR1 Revoluciones bomba vaciado reactor altas"
Timer3.Enabled = True
Call REGISTRO_ALARMAS
Case 30
Text1 = "IR1 Revoluciones bomba vaciado reactor bajas"
Timer3.Enabled = True
Call REGISTRO_ALARMAS
End Select
End Sub
192
Anexos1 Rutinas Programadas
Picture39.Visible = True
Picture35.Visible = False
End If
End Sub
193
Anexos1 Rutinas Programadas
PPrincipal.Width = 15405 + i
If PPrincipal.Width = 17145 Then
Timer22.Enabled = False
End If
Next
ElseIf PPrincipal.Width = 17145 Then
For i = 0 To 1740
PPrincipal.Width = 17145 - i
If PPrincipal.Width = 15405 Then
Timer22.Enabled = False
End If
Next
End If
End Sub
194
Anexos1 Rutinas Programadas
Picture10(7).Visible = True
Picture42(6).Visible = False
Case 14
Picture10(7).Visible = False
Picture42(6).Visible = True
Case 17
Picture10(8).Visible = True
Picture42(7).Visible = False
Case 18
Picture10(8).Visible = False
Picture42(7).Visible = True
Case 19
Picture10(9).Visible = True
Picture42(8).Visible = False
Case 23
Picture10(10).Visible = True
Picture42(9).Visible = False
Case 24
Picture10(10).Visible = False
Picture42(9).Visible = True
Case 25
Picture10(9).Visible = False
Picture42(8).Visible = True
Case 26
Picture10(11).Visible = True
Picture42(10).Visible = False
Case 27
Picture10(11).Visible = False
Picture42(10).Visible = True
End Select
Select Case fallodisp
Case 1 ' AGITADOR REACTOR
For i = 0 To 10
LED3(i).Visible = False
Next
LED3(0).Visible = True
Case 2 'BOMBA VACIADO REACTOR
LED3(3).Visible = True
Picture44(3).Visible = True
Case 3 ' BOMBA CIRCUITO REACTOR
LED3(1).Visible = True
Picture44(1).Visible = True
Case 4 ' bomba refrigeracin 1
LED3(4).Visible = True
Picture44(4).Visible = True
Case 5 ' bomba refrigeracin 2
LED3(5).Visible = True
Picture44(5).Visible = True
Case 30
Case 31
For i = 0 To 10
LED3(i).Visible = False
Next
End Select
195
Anexos1 Rutinas Programadas
End Sub
196
Anexos1 Rutinas Programadas
End Sub
197
Anexos1 Rutinas Programadas
198
Anexos1 Rutinas Programadas
199
Anexos1 Rutinas Programadas
If CL = False Then
HScroll1.Value = HScroll1.Value + 1
End If
ENTSAL = 5
Load INOUT
End If
If Text3 < 1 Then
Else
ProgressBar1.Value = Text3
End If
End Sub
201
Anexos1 Rutinas Programadas
End If
If GetPortBit(&H378, 1) = True Then
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then
SetPortBit &H378, 4
End If
APERTURA.Value = 0
Text3 = 0
ProgressBar1.Value = 0
HScroll1.Value = 0
End Sub
202
Anexos1 Rutinas Programadas
Else
KeyAscii = 0
End If
End Sub
204
Anexos1 Rutinas Programadas
For i = 1 To 32
If MATRIZBITS(i) = "" Then
MATRIZBITS(i) = DATOSBITS
GoTo B1
End If
Next
B1:
Loop
BB1:
Close #1
'*******************************************************************
*******************************************
' LECTURA DATOS MATRIZ BITS SALIDAS
direccion = App.Path & "\bitssalidas.txt" 'PATH DONDE SE ENCUNTRA EL
ARCHIVO DE REGISTRO
Open direccion For Input As #1
Do While Not EOF(1) 'EOF: End Of File (Final del archivo)
Input #1, DATOSBITSSALIDAS
If DATOSBITSSALIDAS = "" Then
GoTo BB2
End If
For i = 1 To 32
If MATRIZBITSSALIDAS(i) = "" Then
MATRIZBITSSALIDAS(i) = DATOSBITSSALIDAS
GoTo B2
End If
Next
B2:
Loop
BB2:
Close #1
'*******************************************************************
*******************************************
' LECTURA DATOS MATRIZ TAGS SALIDAS
direccion = App.Path & "\TAGSALIDAS.txt" 'PATH DONDE SE ENCUNTRA EL
ARCHIVO DE REGISTRO
Open direccion For Input As #1
Do While Not EOF(1) 'EOF: End Of File (Final del archivo)
Input #1, DATOSTAGSSALIDAS
If DATOSTAGSSALIDAS = "" Then
GoTo BB3
End If
For i = 1 To 32
If MATRIZTAGSSALIDAS(i) = "" Then
MATRIZTAGSSALIDAS(i) = DATOSTAGSSALIDAS
GoTo B3
End If
Next
B3:
Loop
BB3:
Close #1
'*******************************************************************
********************************************
205
Anexos1 Rutinas Programadas
206
Anexos1 Rutinas Programadas
207
Anexos1 Rutinas Programadas
End If
s = s - 1
s = s * 10
Else
AA = AA & 1
If GetPortBit(&H37A, 2) = True Then
NotPortBit &H37A, 2
End If
s = s * 10
End If
If s > 0.9 Then
AA = AA & 1
If GetPortBit(&H37A, 1) = True Then
NotPortBit &H37A, 1
End If
s = s - 1
s = s * 10
Else
Text2 = Text2 & 0
AA = AA & 0
If GetPortBit(&H37A, 1) = False Then
SetPortBit &H37A, 1
End If
s = s * 10
End If
If s > 0.9 Then
Text2 = Text2 & 0
AA = AA & 0
If GetPortBit(&H37A, 0) = True Then
NotPortBit &H37A, 0
End If
s = s - 1
s = s * 10
Else
AA = AA & 1
If GetPortBit(&H37A, 0) = False Then
SetPortBit &H37A, 0
End If
s = s * 10
End If
End If
If CountExit = 2 Then
If GetPortBit(&H378, 6) = False Then
SetPortBit &H378, 6
End If
End If
If CountExit = 3 Then
CountExit = 0
NotPortBit &H378, 6
SALIDA.Enabled = False
End If
End Sub
208
Anexos1 Rutinas Programadas
End
End Sub
DatosIO.Text5 = forzar2
Dim d1, d2 As Integer 'variable que se queda con la posicin del
dato encontrado en la matriz
For i = 1 To 32
If forzar2 = MATRIZBITS(i) Then
d1 = i
GoTo B2
Else
If i = 32 Then
ALARM = 2
Call Alarma
End If
End If
Next
B2:
DatosIO.Text1 = MATRIZTAGS(d1)
contenedor = MATRIZTAGS(d1)
For i = 1 To 32
If contenedor = MATRIZTAGSSALIDAS(i) Then
d2 = i
GoTo B3
End If
Next
B3:
DatosIO.Text6 = MATRIZBITSSALIDAS(d2)
contenedor2 = MATRIZBITSSALIDAS(d2) 'con estos datos trabajaremos
para asignar las salidas
s = contenedor2 / 10000
If s > 0.9 Then
ALARM = 1
Call Alarma
DatosIO.Text6 = "SIN SALIDA"
DatosIO.Text2 = "SIN SALIDA"
209
Anexos1 Rutinas Programadas
Else
DatosIO.Text6 = MATRIZBITSSALIDAS(d2)
DatosIO.Text2 = MATRIZTAGSSALIDAS(i)
s = s * 10
s2 = 4
For i = 0 To 3
s2 = s2 - 1
If s > 0.9 Then
Text2 = Text2 & 1
AA = AA & 1
If GetPortBit(&H37A, s2) = False Then
SetPortBit &H37A, s2
End If
s = s - 1
s = s * 10
Else
Text2 = Text2 & 0
AA = AA & 0
If GetPortBit(&H37A, s2) = True Then
NotPortBit &H37A, s2
End If
s = s * 10
End If
Next
End If
FG = "1110"
If AA = FG Then
DatosIO.REPARTIDOR.Enabled = True
End If
FG = "1101"
If AA = FG Then
DatosIO.REPARTIDOR.Enabled = True
End If
AA = ""
End Sub
210
Anexos1 Rutinas Programadas
DatosIO.LED4.Visible = False
Else
LED6.Visible = True
DatosIO.LED4.Visible = True
End If
End Sub
211
Anexos1 Rutinas Programadas
DatosIO.Text5 = forzar
DatosIO.LECTOR.Enabled = True
End If
End If
Text7 = forzar
b:
forzar = ""
End Sub
212
Anexos1 Rutinas Programadas
213
Anexos1 Rutinas Programadas
contenedor2 = MATRIZBITS(i)
DatosIO.Text6 = MATRIZBITSSALIDAS(i)
DatosIO.Text5 = MATRIZBITS(i)
DatosIO.Text2 = MATRIZTAGSSALIDAS(i)
DatosIO.Text1 = MATRIZTAGS(i)
Text5 = contenedor2 & " " & contenedor
If contenedor = "00000" Then
GoTo FIN
End If
If contenedor = "10001" Then
Call controlsalidas
GoTo FIN
ElseIf contenedor = "10010" Then
Call controlsalidas
GoTo FIN
ElseIf contenedor = "10011" Then
Call controlsalidas
GoTo FIN
End If
s = contenedor / 10000
If s > 0.9 Then
ALARM = 1
Call Alarma
DatosIO.Text6 = "SIN SALIDA"
DatosIO.Text2 = "SIN SALIDA"
Else
DatosIO.Text6 = MATRIZBITSSALIDAS(i)
DatosIO.Text2 = MATRIZTAGSSALIDAS(i)
s = s * 10
s2 = 4
SALIDA.Enabled = True
End If
GoTo veri
Else
End If
Next
FIN:
veri:
End Sub
214
Anexos1 Rutinas Programadas
PUESTAACERO.Enabled = True
End Sub
216
Anexos1 Rutinas Programadas
I2 = 2
ElseIf Combo1.Text = "Bomba Vaciado Reactor" Then
I2 = 3
If LED2(3).Visible = True Then
If GetPortBit(&H378, 1) = True Then '0
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = False Then '1
SetPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = True Then '0
NotPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then '0
NotPortBit &H378, 4
End If
If GetPortBit(&H378, 5) = True Then '0
NotPortBit &H378, 5
End If
PUESTAACERO.Enabled = True
End If
ElseIf Combo1.Text = "Bomba Refrigeracin Reactor 1" Then
I2 = 4
If LED2(4).Visible = True Then
If GetPortBit(&H378, 1) = True Then '0
NotPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then '0
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then '1
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then '0
NotPortBit &H378, 4
End If
If GetPortBit(&H378, 5) = True Then '0
NotPortBit &H378, 5
End If
PUESTAACERO.Enabled = True
End If
ElseIf Combo1.Text = "Bomba Refrigeracin Reactor 2" Then
I2 = 5
If LED2(5).Visible = True Then
If GetPortBit(&H378, 1) = False Then '1
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then '0
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then '1
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = True Then '0
217
Anexos1 Rutinas Programadas
NotPortBit &H378, 4
End If
If GetPortBit(&H378, 5) = True Then '0
NotPortBit &H378, 5
End If
PUESTAACERO.Enabled = True
End If
ElseIf Combo1.Text = "Vlvula Salida Reactor" Then
I2 = 6
If LED2(6).Visible = True Then
If GetPortBit(&H378, 1) = False Then '1
SetPortBit &H378, 1
End If
If GetPortBit(&H378, 2) = True Then '0
NotPortBit &H378, 2
End If
If GetPortBit(&H378, 3) = False Then '1
SetPortBit &H378, 3
End If
If GetPortBit(&H378, 4) = False Then '1
SetPortBit &H378, 4
End If
If GetPortBit(&H378, 5) = True Then '0
NotPortBit &H378, 5
End If
PUESTAACERO.Enabled = True
End If
ElseIf Combo1.Text = "Bomba Agua 1" Then
I2 = 7
ElseIf Combo1.Text = "Bomba Agua 2" Then
I2 = 8
ElseIf Combo1.Text = "Vlvula Aireacin" Then
I2 = 9
ElseIf Combo1.Text = "Soplante" Then
I2 = 10
End If
End If
For i = 0 To 10
If I2 = i Then
LED3(i).Visible = True
LED4(i).Visible = False
GoTo H
End If
LED3(i).Visible = False
LED4(i).Visible = True
H:
Next
End Sub
218
Anexos1 Rutinas Programadas
Else
LED1(2).Visible = False
LED2(2).Visible = True
End If
ComponentesActivos.Enabled = False
End Sub
219
Anexos1 Rutinas Programadas
LED2(5).Visible = True
LED1(5).Visible = False
ElseIf Entradas = "01100" Then
LED2(5).Visible = False
LED1(5).Visible = True
ElseIf Entradas = "01101" Then
LED2(6).Visible = True
LED1(6).Visible = False
ElseIf Entradas = "01110" Then
LED2(6).Visible = False
LED1(6).Visible = True
ElseIf Entradas = "01111" Then
Form2.ON = True
ElseIf Entradas = "10001" Then
LED2(7).Visible = True
LED1(7).Visible = False
ElseIf Entradas = "10010" Then
LED2(7).Visible = False
LED1(7).Visible = True
ElseIf Entradas = "10011" Then
LED2(8).Visible = True
LED1(8).Visible = False
ElseIf Entradas = "11001" Then
LED2(8).Visible = False
LED1(8).Visible = True
ElseIf Entradas = "10111" Then
LED2(9).Visible = True
LED1(9).Visible = False
ElseIf Entradas = "11000" Then
LED2(9).Visible = False
LED1(9).Visible = True
ElseIf Entradas = "11010" Then
LED2(10).Visible = True
LED1(10).Visible = False
ElseIf Entradas = "11011" Then
LED2(10).Visible = False
LED1(10).Visible = True
ElseIf Entradas = "11100" Then
If Text4 > 50 Then
SD2 = 100
Else
SD2 = 0
End If
End If
LECTOR.Enabled = False
End Sub
220
Anexos1 Rutinas Programadas
221
Anexos1 Rutinas Programadas
222
Anexos1 Rutinas Programadas
KeyAscii = 0
Else
KeyAscii = 0
End If
End Sub
223
Anexos1 Rutinas Programadas
SD1 = 9
Else
SevenSegment2.DisplayNumber = SD1
End If
Text4 = SD2
ProgressBar2.Value = SD2
End Sub
Private Sub Timer2_Timer()
If IO = True Then
If busc = False Then
buscar = VISUALBITS.SelText
Text8 = buscar
For i = 1 To 32
If buscar = MATRIZBITS(i) Then
Text7 = MATRIZTAGS(i)
GoTo B1
End If
Next
B1:
Else
buscar2 = VISUALTAGS.SelText
Text7 = buscar2
For i = 1 To 32
If buscar2 = MATRIZTAGS(i) Then
Text8 = MATRIZBITS(i)
GoTo B2
End If
Next
B2:
End If
Else
If busc = False Then
buscar = VISUALBITS.SelText
Text8 = buscar
For i = 1 To 32
If buscar = MATRIZBITSSALIDAS(i) Then
Text7 = MATRIZTAGSSALIDAS(i)
GoTo B3
End If
Next
B3:
Else
buscar2 = VISUALTAGS.SelText
Text7 = buscar2
For i = 1 To 32
If buscar2 = MATRIZTAGSSALIDAS(i) Then
Text8 = MATRIZBITSSALIDAS(i)
GoTo B4
End If
Next
B4:
End If
End If
Timer2.Enabled = False
224
Anexos1 Rutinas Programadas
End Sub
Private Sub Timer4_Timer()
If GetPortBit(&H379, 3) = False Then
MsgBox "Entrada S3 correcta"
End If
End Sub
Private Sub VISUALBITS_click()
Timer2.Enabled = True
busc = False
End Sub
Private Sub VISUALTAGS_click()
Timer2.Enabled = True
busc = True
End Sub
Private Sub sumardisplay()
Dim x, y, z As Integer
If SD2 = 100 Then
Exit Sub
End If
SD2 = SD2 + 1
If SD2 > 0 Then
If SD2 < 100 Then
Text4 = SD2
Picture3(0).Visible = True
z = SD2 Mod 10
For i = 0 To 9
If i = z Then
Picture1(i).Visible = True
Else
Picture1(i).Visible = False
End If
Next
y = (SD2 / 10) - z / 10
Text9 = y
For i = 0 To 9
If i = Text9 Then
Picture2(i).Visible = True
Else
Picture2(i).Visible = False
If i = y Then
Picture2(y).Visible = True
End If
End If
Next
ElseIf SD2 > 99 Then
For i = 1 To 9
Picture1(i).Visible = False
Picture2(i).Visible = False
Next
Picture3(1).Visible = True
Picture3(0).Visible = False
Picture1(0).Visible = True
Picture2(0).Visible = True
Text4 = 100
225
Anexos1 Rutinas Programadas
SD2 = 100
End If
Else
Picture3(0).Visible = True
Picture1(0).Visible = True
Picture2(0).Visible = True
Text4 = SD2
End If
ProgressBar2.Value = SD2
Label18 = " Abriendo vlvula %"
End Sub
Private Sub restardisplay()
Dim x, y, z As Integer
If SD2 = 0 Then
Exit Sub
End If
If SD2 > 0 Then
SD2 = SD2 - 1
If SD2 < 100 Then
Text4 = SD2
Picture3(0).Visible = True
z = SD2 Mod 10
For i = 0 To 9
If i = z Then
Picture1(i).Visible = True
Else
Picture1(i).Visible = False
End If
Next
y = (SD2 / 10) - z / 10
Text9 = y
For i = 0 To 9
If i = Text9 Then
Picture2(i).Visible = True
Else
Picture2(i).Visible = False
If i = y Then
Picture2(y).Visible = True
End If
End If
Next
Else
For i = 1 To 9
Picture1(i).Visible = False
Picture2(i).Visible = False
Next
Picture3(1).Visible = True
Picture3(0).Visible = False
Picture1(0).Visible = True
Picture2(0).Visible = True
End If
Else
For i = 1 To 9
Picture1(i).Visible = False
226
Anexos1 Rutinas Programadas
Picture2(i).Visible = False
Next
Picture3(0).Visible = True
Picture3(1).Visible = False
Picture1(0).Visible = True
Picture2(0).Visible = True
Text4 = SD2
End If
ProgressBar2.Value = SD2
Label18 = " Cerrando vlvula %"
End Sub
Private Sub TEXT3_DblClick()
Text3 = ""
EndSub
227
Anexo 2: Planos
8. Anexo2: Planos
8.1. Planos Circuito Interface.
8.1.1. Esquema Elctrico.
- 228 -
Anexo 2: Planos
- 229 -
Anexo 2: Planos
- 230 -
Anexo 2: Planos
- 231 -
Anexo 2: Planos
- 232 -
Anexo 2: Planos
- 233 -
Anexo 2: Planos
- 234 -
Anexo 2: Planos
- 235 -
Links Datasheets.
- 236 -