You are on page 1of 103

Sistema de automatizacin de bombas y vlvulas.

ITST

Miguel Arturo Mavil Torres

Circuitos hidrulicos y neumticos.

6to Semestre Ing. Mecatrnica.

PLANTEAMIENTO DEL PROBLEMA

En la industria muchas veces nos encontramos con actividades que son realizadas de manera repetitiva y que no necesitan hasta cierto punto un analisis mayor. Este tipo de situaciones ocurre en areas como la agricultura, en la cual se realizan aperturas y cierres de bolmbas y valvulas de irrigacin. Realizar esto puede resulta muy tedioso, ya que para abrir y cerrar las mencionadas, es necesario ir hasta las valvulas y bombas para activarlas manualmente en la mayoria de los casos, en lo cuales no se cuenta con un sistema automatizado.

ANTECEDENTES.

Como se mencion anteriormente, para poder realizar el riego de un cultivo era necesario hacer surcos en la zona para que el agua llegara a todo el planto desviando el agua de algun rio o arroyo cercano. El problema de esto es que no se podia controlar la cantidad de agua de manera eficiente. Posteriormente se realizaba dicha actividad con un sistema de tuberas conectadas a una fuente de alimentacion. El problema es que se sigue haciendo de forma manual la aperturay cierre de valvulas. Actualmente se cuenta con sistemas inteligentes los cuales son capaces de controlar el tiempo de riego de un ciltivo segn como se programe el sistema. El problema es su elevado costo y que los entornos de programacion suelen ser algo complicados para el usuario promedio.

JUSTIFICACIN.
La automatizacin de sistemas, como bien es sabido, ayuda a que los procesos sean reducidos tanto en tiempo como en esfuerzo y costos. Ya que si tenemos un sistema automatizado, podemos dejarlo trabajando por sus cuenta y que el personal que anteriormente se encargaba de dicha acividad pueda aprovechar el tiempo para realizar alguna otra actividad, lo cual nos ayuda a aprovechar los tiempo y mejorar los procesos.

MARCO TERICO
Un PLC ( Controlador Lgico Programable) es un dispositivo electrnico deestado slido que puede controlar un proceso o una mquina y que tienela capacidad de ser programado o reprogramado rpidamente segn lademanda de la aplicacin. Fue inventado para remplazar los circuitos secuencialesbasados en rels que eran necesarios para el control de las mquinas. El PLCfunciona monitoreando sus entradas, y dependiendo de su estado, activando ydesactivando sus salidas. El usuario introduce al PLC un programa, usualmente vaSoftware, lo que ocasiona que el PLC se comporte de la manera deseada. Los PLCs son usados en muchas aplicaciones: Maquinado de piezas,Embaladoras, Manipulacin de materiales, ensamblado automtico, y en generalcualquier tipo de aplicacin que requiera de controles elctricos puede usar ms bienun PLC. Por ejemplo asmase que cuando un switch se activa, deseamos tambinactivar una vlvula solenoide por un perodo de 5 segundos y luego apagarla sinimportar el tiempo que el switch estuvo activado. Esto se puede hacer con un simpletemporizador externo; pero, Qu tal si el proceso incluye 10 switch y 10selenoides?. Tambin, Qu si en el proceso es necesario contar cuantas vecescada switch se activo?. Obviamente se necesitaran una gran cantidad de contadoresexternos. Como se ve, mientras ms grande el proceso, mayor es la necesidad de unPLC, y por ejemplo en el caso descrito bastara con simplemente

programar el PLCpara que cuente sus entradas y mantenga activadas sus salidas por un cierto perodode tiempo. Para introducirnos en el mundo del PLC (programmable logic Controller) o controlador Lgico Programable, se puede comenzar tratando de entender que hace un PLC en lugar de entender que es: Bsicamente un PLC es el cerebro de un proceso industrial de produccin o fabricacin, reemplazando a los sistemas de control de rels y temporizadores cableados. Se puede pensar en un PLC como una computadora desarrollada para soportar las severas condiciones a las que puede ser sometida en un ambiente industrial, as sea en una planta cervecera slo por nombrar algunos ejemplos. Dicho de otra forma, el auto que usted conduce, el diario que usted lee, las bebidas que usted consume, son producidos valindose de la tecnologa de la automatizacin industrial, gracias a la invencin que realizara Schneider Electric casi cuarenta aos atrs: el PLC.

Principios bsicos
Un controlador lgico programable o PLC est compuesto por dos elementos bsicos: la CPU, (Central Processing Unit) o Unidad Central de Procesamiento y la interfase de Entradas y Salidas, como se indica en la figura1.

Figura 1

En la figura 2 se puede observar un esquema simplificado que representa las partes principales de una CPU: El procesador, la memoria y la fuente de alimentacin. Este conjunto de componentes le otorgan la inteligencia necesaria al controlador la CPU lee la informacin en las entradas provenientes de diferentes dispositivos de censados (pulsadores, finales de carrera, censores inductivos, medidores de presin, etc.), ejecuta el programa de almacenando en la memoria y enva los comandos a las salidas para los dispositivos de control (pilotos luminosos, contactores, vlvulas, solenoides, etc.)

Figura 2 El proceso de lectura de Entradas, ejecucin del programa y control de las Salidas se realiza en forma repetitiva y se conoce como SCAN o scannning. Finalmente la fuente de alimentacin suministra todas las tensiones necesarias para la correcta operacin de la CPU y el resto de los componentes. Entrando en el campo de la aplicacin, se puede analizar con el diagrama en bloques que se muestra ms adelante (Fig. 3).

Figura 3

En l se puede apreciar la vinculacin del PLC con todos los elementos de campo que intervienen en un proceso, sensores, actuadotes, pre-actuadores y dilogo hombre-mquina. Llevando el diagrama a un ejemplo prctico, se podra plantear la solucin para una aplicacin de bombeo a presin constante:(Fig. 4).

Figura 4 Se establece una presin de trabajo para el sistema que debe mantenerse constante. Para ello debe medirse la presin en algn punto de la instalacin. En funcin del valor medido, el PI-C debe determinar la velocidad de referencia para el variador de velocidad, que en consecuencia modificar la velocidad del motor, determinando que la bomba vare su caudal y presin. Tambin intervienen los elementos de dilogo hombre - mquina, en este caso se trata de un terminal grfico que permite ingresar el valor de presin deseada. El programa de aplicacin se realiza a partir de una terminal de mano o de un software apropiado para PC. El lenguaje empleado es sencillo y al alcance de todas las personas. Est basado en los esquemas elctricos funcionales de control como se muestra en la siguiente figura:

Este lenguaje es conocido como Diagrama Escalera (Ladder). Otro lenguaje que se puede utilizar para la programacin de PLCs, es el Diagrama de Flujo Secuencial o SFC (anteriormente denominado Grafcet), reconocido como el lenguaje grfico mejor adaptado a la expresin de la parte secuencial de la automatizacin de la produccin. El SFC representa la sucesin de las etapas en el ciclo de produccin. La evolucin de ciclo, Etapa por Etapa se controla por una "Transicin" ubicada entre cada etapa (ver figura). A cada una de las etapas le puede corresponder una o varias acciones. A cada transicin le corresponde una "receptividad", condicin que debe cumplirse para poder superar la transicin, lo que permite la evolucin de una etapa a la siguiente. En el ejemplo, para desarrollar as acciones vinculadas a la Etapa 1, previamente debe cumplirse la condicin correspondiente a la Transicin X. Las acciones de la Etapa 1 se mantienen hasta que se cumple la condicin correspondiente a la Transicin Y, momento a partir M cual se desactiva la Etapa 1 y se activa la etapa siguiente. Para asegurar la estandarizacin de los lenguajes de programacin de los PLCs, y asegurarle al usuario una nica forma de programar, sin importar la marca

comercial del PI-C, ha sido establecida la norma IEC 1131-3 que fija criterios en tal sentido. As, la norma define los lenguajes de programacin: Escalera (ladder). Lista de instrucciones (Assembier), Estructurado (Similar el Pascal), Bloques de Funcin y Diagrama Flujo de Secuencial (SFC o Grafcet). Segn el tipo de PLC que se escoja, podr tener uno o ms de estos lenguajes. Cuando la aplicacin crece en complejidad dado el tipo de seales a manejar, es posible incrementar la capacidad de Entradas/Salidas. Adems permite el control de seales, tanto digitales como analgicas. Un concepto que cada da es ms necesario aplicar, es la comunicacin entre PLCs o con un sistema de supervisin (SCADA). Cuando es el momento de realizarlo, el PLC dispone de la capacidad de resolverlo agregando los mdulos de comunicacin necesarios.

2. Campos de aplicacin de los PLCs

Hoy la tecnologa nos ofrece PLCs acorde las necesidades de cada usuario y cada aplicacin. Para automatizaciones de pequea envergadura, como por ejemplo dosificadores, alimentadores para mquinas, montacargas lavadoras industriales y de automviles, control de barreras, calefaccin, vidrieras, etc, casos de mediana

complejidad donde se necesitan adems seales analgicas y comunicacin, por ejemplo mquinas inyectores paletizadoras, cintas transportadoras, etc., se utilizan por lo general PLCs compactos. En aplicaciones de mayor complejidad como por ejemplo supervisin remota de subestaciones de energa, estaciones de bombeo, plantas potabilizadoras de agua, sistemas de control de luces en aeropuertos, lneas de produccin en la industria automotriz, procesos de chancado y molienda en la industria cementera, etc., donde se requiere' gran cantidad de entradas/salidas de diversa, naturaleza (discretas, analgicas, termopares, pulsos de 40kHZ) y un programa de control extenso y varios canales de comunicacin, por lo general se recurre a PLCs del tipo modular. Cuando la complejidad del proceso requiere gran velocidad de procesamiento del programa, manejo de lazos de control, alta prestacin en mltiples protocolos de comunicacin, elevada cantidad de entradas/salidas controladas en forma remota y descentralizada, como por ejemplo en la automatizacin de una planta siderrgica, de un oleoducto, de una refinera, de una planta minera completa, de una planta de extraccin de aceites, etc., se utiliza por lo general grandes PLCs modulares. La supervisin se puede realizar en dos niveles diferentes de complejidad:

A nivel del operador, empleando terminales de dilogo hombre

- mquina del tipo XBT Magelis.

A nivel de planta, empleando una PC con un software de

supervisin, comnmente denominado SCADA, como por ejemplo el software P-CIM. En el presente captulo desarrollamos con extensin la oferta de PLCs de aplicacin cotidiana, y mencionamos las caractersticas relevantes de los PLCs modulares y terminales de dilogo.

Para obtener ms datos e informaciones es imprescindible consultar los catlogos espcficos y solicitar asesoramiento tcnico.

3. Comunicaciones
Principios bsicos

Una red est formada por un conjunto de dispositivos electrnicos que tienen la habilidad de comunicarse entre ellos, utilizando un medio fsico y un idioma comn. La automatizacin de un proceso industrial requiere la implementacin de una red cuando se necesita: Controlar un proceso entre varios PLCs Compartir informacin del proceso Conocer el estado de los dispositivos Diagnosticar en forma remota Transferir archivos Reportar alarmas Se puede afirmar que los componentes intervienen en una red son: Dos o ms dispositivos que tengan informacin para compartir Un camino para la comunicacin vnculo fsico Reglas de comunicacin que determinan el lenguaje o protocolo

Informacin

La informacin que se necesita compartir en un proceso puede diferenciarse por su extensin: Bits que reportan el estado (activa/inactiva) de una entrada o salida directamente vinculadas a elementos de campo como sa pulsadores, finales de carrera, sensores, actuadores, vlvulas, solenoides, contactores, etc. Bytes, palabras, o un conjunto de stas pan conocer el valor de una variable analgica, para cambiar los parmetros de un temporizador, para enviar un mensaje de texto a un terminal grfico, etc. Archivos o paquetes de informacin ms complejos de extensin considerable para los cuales se requiere alta velocidad de intercambio de datos. Pero si bien puede variar la extensin de la informacin a transmitir, siempre sern "ceros y unos" concatenados en un formato y una lgica determinada establecida por el protocolo (0101010001001111110101110101 ... ) Sistema de control jerrquico

Otra forma de clasificar la informadn es por la funcin o utilizacin de la misma (ver figura anterior):

Buses de Campo

Se trata de una red donde el tipo de informacin que se intercambia corresponde a datos simples (bits) con el estado de sensores, actuadores o un poco ms compleja (bytes) con informacin de diagnstico de dispositivos, valores de variables analgicas, configuracin de dispositivos, etc. Por lo general la informacin viaja en forma ascendente, es decir desde el elemento de campo hacia el PI-C o sistema de control. En ste rubro se pueden encontrar buses como el AS-i, Seriplex, Modbus o Unitelway. BUSES DE CAMPO

Red de Control

Es el vnculo entre los aparatos de control y/o PLCs, donde se intercambia informacin sobre la evolucin M proceso, en paquetes o conjunto de registros, variables de produccin, tablas de datos, recetas, etc. En este nivel tambin se incorporan generalmente los sistemas de supervisin o SCADAs que se nutren de la informacin disponible en esta red para generar reportes histricos, reportes de alarmas, grficos de tendencia y la animacin de mmicos. La informacin viaja por lo general en horizontal, entre los PLCs y/o dispositivos de control.

Dentro de este grupo podemos ubicar a redes como Modbus Plus o Fipway. RED DE CONTROL

Red de Datos o Corporativa

En este caso se trata M intercambio grandes archivos entre computadoras y sistemas de gestin comercial, financie logstica de las empresas. Generalmente se vinculan en forma ve con las bases de datos de los SCADAs obtener informacin de gestin de la emp estadsticas de produccin, consumos ge les de energa, etc. Ethernet TCP/IP (Transfer Control Prot Internet Protocol) es la red ms difundida nivel mundial para este tipo.

RED DE DATOS O CORPORATIVA

Vnculo fsico

Teniendo en cuenta el tipo de informacin a intercambiar y su funcin, es que surgen diferentes necesidades de velocidad y performance de la red, que determinan el tipo de medio o vnculo fsico y sus variables, El vnculo o medio fsico est generalmente compuesto por cables blindados, cable coaxiales, fibra ptica y porqu no, enlaces satelitales o de radio frecuencia tambin. A cada medio le corresponde una caracte. rstica elctrica particular: Impedancia, capacidad/metro, resistencia/metro, atenua. cin en decibeles (dB). Estas caractersticas fsico/elctricas determinan limitaciones en distancias y velocidad. Existen estndares que determinan todos estos valores, ej. BELDEN en el case de los cables. El Instituto de Ingenieros Elctricos y Electrnicos (IEEE, Institute of Electric and Electronic Engineers) define algunos de los estndares ms utilizados teniendo en cuenta todos los factores que intervienen en los medios fsicos. Slo a ttulo de ejemplo se nombran a continuacin alguno de ellos:

RS 232 IEEE

Par trenzado y blindado, velocidad 20 Kbps (bits por segundo), distancia mxima 15 mts. Punto a punto, o sea 1 transmisor - 1 receptor (DTE-DCE).
RS 485 lEEE

Doble par trenzado y blindado, velocidad 10 Mbps, distancia mxima 1200 mts. Multipunto, 32 transmisores - 32 receptores.
Ethernet - 10base T

Par trenzado UTP Categora 3, velocidad 10 Mbps, distancia mxima 100 mts. por segmento. Multipunto, 1024 nodos/segmento.
Ethernet - 1 00base F

Fibra ptica, velocidad 100 Mbps, distancia mxima 2000 mts. por segmento. Multipunto 1024 nodos/segmento.
Accesorios:

Todas las redes sin excepcin requieren un reacondicionamiento del medio fsico cada vez que se realiza una derivacin o cuando es necesario extender el alcance de la misma. Existen adaptadores de impedancia, derivadores, fines de lnea, conectores especficos, etc., para adecuar las instalaciones. Es imprescindible tenerlos en cuenta a la hora de disear una red.

Protocolo
Se puede definir a un protocolo como el idioma, lenguaje o estndar que utilizan dos o m dispositivos electrnicos para "entenderse" y comunicarse entre s. Un protocolo define cmo se identifican dispositivos entre s dentro de la red, el formato que debe tomar la informacin en trnsito y cmo es procesada dicha informacin una vez que lleg a su destino.

Los protocolos tambin definen procedimientos para manejar transmisiones perdidas o errneas.
Modbus:

Desarrollado por Schneider en 1979, es el idioma comn utilizado por todos los PLCs TSX Modicon. Este protocolo define la estructura de los mensajes que los PLCs reconocen, sin importar el tipo de red sobre la cual se comunican. Describe el proceso que el controlador utiliza para solicitar acceso a otro dispositivo, cmo responde a los requerimientos de otros controladores y cmo se detectan y reportan los errores de comunicacin. Establece un formato comn para la distribucin y el contenido de los registros o campos de los mensajes. Se trata de un protocolo abierto, es decir que se encuentra disponible en forma gratuita la forma de funcionamiento del mismo en el sitio de Internet: www.modbus.org

4. Bus de campo AS-i


El concepto AS-i

El concepto AS-i surgi en el ao 1990, por iniciativa de un grupo de trabajo formado por una decena de empresas, en su mayora fabricantes de sensores/actuadores, cuyo objetivo inicial era definir y adoptar un sistema de comunicacin nico para todos los fabricantes de sensores o actuadores, lo que determin la denominacin AS-i (Actuator Sensor Interface). Dicho concepto permitira descentralizar as funciones inteligentes hasta el nivel de las clulas de produccin o de las mquinas, con un sistema de cableado e instalacin muy sencillos.

Ms adelante, en 1992 se cre una asociacin encargada de coordinar la produccin AS-i de las distintas empresas, para dar a conocer el concepto y expedir certificados para los componentes conectables al bus.
El Bus AS-i

AS-i es un bus para sensores y/o actuadores discretos con topologa libre (en lnea, en estrella, en rbol, etc.) El tiempo de respuesta de este bus es muy breve (ciclo de 5 ms como mximo para 31 esclavos conectados).

Permite realizar acciones reflejas a nivel los actuadores. Se puede conectar a los niveles jerrquicos superiores de la red mediante bridges (pasarelas) como por ejemplo Modbus/AS-i o aprovechando la capacidad de comunicacin de un mdulo del bus en un PLC (ver figura)
El ASIC

Parte de las funciones inteligentes AS-i se encuentran en el ASIC (Application Specific Integrated Circuit) - Circuito integrado especfico) incorporado directamente en el sensor o actuador (componente llamado comunicante), en un mdulo de usuario o el una interfase de conexin que admita hasta 4 sensores y 4 actuadores estndar (llamados no comunicantes). El Asic se encarga de gestionar todas las funciones del sensor o actuador para proporcionar al maestro AS-i informacin sobre si estado de la conmutacin, comunicarle le disponibilidad de funcionamiento del sensor, etc.

El cable, soporte fsico del bus

Transmite la informacin y la alimentacin de 24 V de los sensores y actuadores (tensin suministrada por fuente de alimentacin especfica AS-i). Consta de 2 hilos sin trenzar y sin apantallar, de seccin 1,5 a 2,5 mm2. Pueden ser cables redondos clsicos o cables especficos AS-i, que permiten realizar un cableado rpido y sencillo de todos los: componentes del bus AS-i. El cable AS-i es plano con 2 conductores y un perfil particular que, impide que se invierta la polaridad durante la conexin a los repartidores o derivadores "T" de conexin AS-i.
Topologa del bus AS-i

La topologa libre del bus AS-i admite cualquier arquitectura (en estrella, en lnea, en rbol o en anillo).

En estrella Se pueden aadir ramificaciones desde cualquier punto, sin que sean necesarias terminaciones ni adaptaciones.

En linea Todas estas facilidades permiten realizar conexiones ms directas entre el bus y los diferentes sensores y actuadores de la instalacin.

En rbol La longitud mxima bus AS-i es de 100 (incluidas las ramificaciones principales y derivaciones). Se puede prolongar otros 300 m utilizando regeneradores de seales (repetidores).

En anillo

Conexin del bus AS-i

Con las espigas tipo "vampiro" incorpora en los repartidores o derivaciones 'T", el cable AS-i se conecta rpida y automticamente, perforando el recubrimiento aislante del cable y estableciendo el contacto. Cuando se retiran los elementos de conexin para modificar el cableado, el cable recupera su aspecto original gracias al recubrimiento autocicatrizante.

Repartidor mdulo de conexin Te de conexin + mdulo de usuario


Un bus Maestro - Esclavo

AS-i es un bus con maestro nico, que se encarga de gestionar los esclavos. El maestro pregunta sucesivamente a cada uno de los esclavos conectados al bus y espera la respuesta. El ciclo de preguntas dura como mximo 5 ms con 31 esclavos. El maestro siempre toma la iniciativa de dilogo. Los esclavos se configuran en fbrica con la direccin 0. Antes de utilizarlos por primera vez, es necesario asignarles una direccin utilizando un terminal de direccionamiento. La transmisin entre el maestro y los esclavos se realiza utilizando la tcnica de modulacin por impulsos alternos (APM) sobre la corriente portadora. El proceso de deteccin de fallas garantiza una transmisin ptima.

El Maestro

AS-i admite varios tipos de maestros:

Maestro PLC con comunicacin AS-i integrada, que consigue

que esta comunicacin sea transparente para el programa del PLC, al direccionar los dispositivos como Entradas o Salidas

Maestro bridge (pasarela), que transforma el bus AS-i en un

simple nodo de comunicacin de un bus de nivel superior (por ejemplo, FIPIO o Modbus)
Los Esclavos

AS-i admite hasta 31 esclavos (componentes que incluyan un "chip" Asic), cada uno de ellos con 4 bits de entrada y 4 bits de salida para intercambio cclico de informacin con el maestro y 4 bits de parametrizacin para realizar funciones complejas (configuracin, diagnstico, etc.) Cada esclavo tiene una direccin propia y un perfil que lo define (cdigo que precisa el tipo de la unidad esclava). Los sensores o actuadores comunicantes incluyen un "chip" Asic) se conectan directamente al bus AS-i a travs' repartidores o "T" de conexin pasivos. Por lo tanto, se puede conectar un mximo de 31 sensores o actuadores comunicantes. Los sensores o actuadores estn discretos (finales de carrera, sensores inductivos, etc.) se conectan al bus a travs de repartidores activos o interfases de conexin. Por lo tanto, se pueden conectar un mximo de 248 sensores o actuadores estndar.Se pueden combinar sensores/actuadores comunicantes y estandar.

Caractersticas principales

Protocolo: Maestro/esclavo centralizado. Tipo de acceso : Escrutinio cclico (polling). Tiempo de actualizacin : 5 ms para 31 esclavos (1 ms para cada 6 esclavos). Tiempo de respuesta : Tiempo mximo establecido para cada esclavo. Puntos de conexin : 31 esclavos. Nmero de productos estndar : 248 como mximo. Tamao de los datos : 4 bits de estado, 4 bits de mando y 4 Bits de parametrizacin por esclavo. Longitud mxima del bus : 100 metros (300 metros con repetidor). Organizacin del bus : Alimentacin y seal sobre el mismo soporte fsico. Soporte fsico : Cable de 2 hilos sin apantallar.
Beneficios

AS-i es un bus de campo estandarizado abierto, vlido para todos los fabricantes de sensoria/actuadores y adoptado a las exigencias de los ambientes Industriales.

Estandarizacin de los elementos constitutivos bsicos: Cable, Repartidores, Perfil, o conectores, etc.

Posibilidad de conectar sensores/actuadores estndar o

comunicantes.

Tiempo de ciclo reducido (5 ms para 31 esclavos). Transferencia de datos fiable (conformidad con las normas

sobre CEM - (Compatibilidad Electro Magntica). Costos reducidos de Instalacin y mantenimiento (25 a 70% menos)

Menor longitud de cable y menor nmero de puntos de

conexin (alimentacin y datos en el mismo cable).

Menor costo de montaje e instalacin por la reduccin del

tiempo de conexin (sistema de espigas tipo "vampiro").

Concepto de fcil instalacin, que no requiere conocimientos

especficos. Mayor flexibilidad de las instalaciones

Topologa libre (en estrella, en lnea, en rbol, etc.). Posibilidad de precableado de mquinas otableros por tramos. Facilidad para modificar y ampliar las instalaciones existentes.

Integracin perfecta en los sistemas de automatizacin

Posibilidad de establecer comunicacin con los niveles

superiores (ejemplo: FIPIO, Modbus).

Acceso a las funciones complejas de los sensores y

actuadores (diagnstico, parametrizacin, etc.).

Comunicacin transparente para el programa de la unidad de

control (programa aplicacin del PLC). Dedicado a la automatizacin de instalaciones industriales simples y de mquinas pequeas, el PLC Twldo se encuentra disponible en dos versiones: Compacto y Modular, comparten opcionales, extensiones de E/S y el software programacin, otorgndole mxima flexibilidad y simple de uso. Twido reduce los espacios en los tableros gracias a su pequeo tamao.

Tanto los controladores como los mdulos de extensin de E/S, ofrecen una gran variedad en opciones para simplificar cableado: borneras extrables, conectores a resorte y varios mdulos precableados llamados Twiciofast. Con Twido es posible ajustar la solucin de acuerdo a las necesidades de cada aplicacin:

Twido Compacto, disponible en 10, 16 6 24 E/S y extensible

hasta 88 E/S.

Twido Modular, disponibles en 20 40 E/S, extensible hasta

152 E/S.

Un mismo rango de mdulos de extensin de E/S para ambos

controladores: 14 mdulos de EIS digitales, 4 mdulos de E/S analgicas.

Todos los modelos disponen de un puerto de comunicacin

RS485 Modbus.

Mdulos opcionales que permiten aumentar la capacidad de

comunicacin en RS232 y RS485; Modbus/ASCII displays de dilogo hombre-mquina; reloj de tiempo real-, memoria backup de 32 Kb y memoria de expansin a 64 Kb, simuladores de entradas y una variedad de cables, conectores y unidades precableadas, que facilitan el montaje ahorrando costos y tiempo. TwidoSoft es el software de programacin en Windows 98/2000, que simplifica la programacin a travs de un manejo intuitivo. El PLC Modicon TSX Micro ha sido desarrollado con el fin de satisfacer ptimamente las exigencias de adaptabilidad y mantenimiento requeridos por los usuarios: modular y compacto. Responde de manera econmica a la

automatizacin de mquinas que requieren hasta 250 E/S y que necesitan funciones especficas de altas prestaciones (E/S analgicas, regulacin, contaje, posicionamiento, dilogo hombre-mquina y comunicaciones). El PLC TSX Micro est integrado por los siguientes componentes: 1 Bornes para conexin de la alimentacin 2 Display con indicacin del estado del PLC y de las E/S 3 Puerto Terminal (TER) 4 Slot 1 Para mdulos E/S 5 Slot 2 para mdulos E/S 6 Slot para tarjeta de comunicaciones PCMCIA 7 Puerto Auxiliar (AUX) * 8 Entradas/Salidas analgicas** 9 Contador rpido 1 ** 10 Contador rpido 2** * Slo disponibles para los modelos TSX 37 21 y TSX 37 22 ** Slo disponibles para los modelos TSX 37 22 Los PLC TSX 37-10, se diferencian entre ellos por la tensin de alimentacin y el tipo de mdulos de E/S discretas ubicado en el primer emplazamiento. Cada configuracin TSX 37-10 incluye un rack con alimentacin (24 VCC 100-240 VCA), un procesador con memoria RAM de 14 kpalabras (programa,

datos y constantes), una memoria de seguridad Flash EPROM, un mdulo de E/S digitales (28 64 E/S) y un Slot disponible que puede recibir: 1 mdulo de E/S discretas de formato estndar (ocupa el emplazamiento) de cualquier tipo. 2 mdulos de medio formato: E/S discretas, seguridad, analgicas y contaje. Los PLCs TSX 37-21122, se diferencian entre si por la tensin de alimentacin y/o la posibilidad de integrar en la base entradas para contaje rpido y analgicas. Cada PLC incluye un rack con tres slots libres con alimentacin (24 VCC 100-240 VCA), un procesador con memoria RAM de 20 kpalabras (programa, datos y constantes), dos emplazamientos para tarjetas PCMCIA (una de comunicacin y la otra para una tarjeta de extensin de memoria de 64 kpalabras mximo), una memoria de seguridad Flash EEPROM y reloj calendario. Un minirack de extensin TSXRKZ02 permite aumentar en 2 nmero de emplazamientos. Cada emplazamiento disponible puede recibir:

1 mdulo de E/S digitales de formato estndar (ocupa todo el

emplazamiento) de cualquier tipo.

2 mdulos de medio formato: E/S digitales, seguridad,

analgicas y contaje. En todos los casos el primer emplazamiento est reservado para un mdulo de formato estndar.

Mdulos de entradas/salidas discretas

La gama de entradas/salidas digitales en rack ofrece varias posibilidades de conexin para responder a todas las necesidades:

Conexin sobre bornes de tornillos en la cara frontal de los

mdulos de Entradas/Salidas mixtos 16E + 12 S o en mdulos de 32 E 32 S. Modicon TSX Micro

Conexin directa al sistema TELEFAST 2 (interfases de

conexin y de adaptacin al proceso), mediante cable con conector en ambos extremos. Estos dos modos de conexin son tambin validos para los mdulos de medio formato que permiten adaptar al mximo la configuracin del autmata a la necesidad del usuario en cuanto a nmero, variedad de Entradas/Salidas y tipo de conexin. La cantidad mxima de mdulos de 64 vas digitales es: TSX 37-1 0=2, TSX 37-211/22=4.
Entradas/salidas analgicas

Los Autmatas Modicon TSX Micro ofrecen dos posibilidades para efectuar operaciones de tratamiento analgico:

Para adquisicin de datos o control que no requiera un nivel

de resolucin elevado, utilizando Entradas/Salidas integradas en los autmatas TSX 37-22.

Para medida o control exactos, (12 y 16 bits de resolucin)

utilizando mdulos de Entradas/Salidas analgicas de medio formato (2 a 8 vas). La cantidad mxima de mdulos analgicos es de TSX 37-051 08/1 0=2, TSX 37-211/22=4. Los mdulos de Entradas/Salidas analgicas TSX AEZIASVAMZ son mdulos de medio formato que se diferencian por:

Las funciones (compensacin de soldadura fra, linealizacin,

puesta en escala, etc.).

La resolucin (12 6 16 bits para las entradas y 11 bits + signo

para las salidas).

El nivel de las entradas (tensin, corriente, sonda Pt

termopar)

El nivel de las salidas (tensin o tensin/corriente).

Las Entradas/Salidas analgicas integradas en los autmatas TSX 37-22 son de tipo alto nivel 0-10 V con resolucin de 8 bits e incluyen 8 vas de entrada y 1 va de salida. Un mdulo adaptador TSX ACZ 03 permite:

Adaptar las entradas a 0-20 mA o 4-20 mA Utilizar las 8 entradas analgicas como 8 entradas digitales. Regular valores con ayuda de 4 potencimetros en las 4

primeras vas.

Regulacin PID

Los Autmatas Modicon TSX Micro disponen de funciones de regulacin a las que puede acceder el usuario con el software de programacin PL7 Micro. Estas funciones estn especialmente adaptadas para:

Responder a las necesidades de procesos secuenciales que

requieren funciones auxiliares de regulacin, tal como temperatura, mquinas de embalaje, mquinas para tratamiento de superficies, prensas, etc.

Responder a las necesidades de procesos simples tales como

los hornos para tratamiento de metales y los grupos frigorficos.

Responder a particularidades de realimentaci6n o de

regulacin mecnica tales como control de par, de velocidad, etc.


Contaje:

Los autmatas Modicon TSX Micro ofrecen tres posibilidades para efectuar operaciones de contaje:

A travs de las entradas digitales a 500 Hz (las cuatro

primeras entradas del mdulo instalado en el emplazamiento 1)

Utilizando las vas de contaje integradas en las bases los

autmatas TSX 37-22 a 10 kHz

A travs de los mdulos de contaje TSX CTZ a 40 kHz 250

kHz y 1 MHz. La cantidad mxima de mdulos de contaje es: TSX 3705/0811 0=2 / TSX 37-21/22=4.
PL7 Micro, Software de Programacin

El PL7 Micro es el software de programacin de los autmatas Modicon TSX Micro, que responde a la norma IEC 1131-3 La programacin puede realizarse en lista de instrucciones (IL), lenguaje de contactos o ladder (LD), diagrama de flujo grafcet (SFC) y texto estructurado (ST), bajo Windows.

Una estructura de software multirea: tarea maestra, tarea

rpida, tratamientos con eventos.

La posibilidad de modificar un programa mientras se est

ejecutando.

Comunicacin

Los PLCs Modicon TSX Micro ofrecen tres posibilidades: Comunicacin integrada con funciones de dilogo econrnicas realizadas a travs de la toma terminal (TER) en los TSX 37-05/08/10 por toma termina] (TER) y dilogo operador (AUX) en los TSX 37-21/22. Estas conexiones de tipo

serie RS485 no aisladas, disponen de protocolo Uni Telway (maestro o esclavo), modo caracteres y Modbus (maestro o esclavo). Tarjeta de comunicacin formato PCMCIA para los PLCs TSX 37-21/22. Estos PLCs estn equipados con un slot dedicado para una tarjeta PCMCIA: conexin serie asincrona full-duplex, bus Fip I/0 agente, o Uni-Telway, Modbus/Jbus y Fipway, como as tambin Mdem. Mdulo Ethernet Modbus TCP/IP. Ofrece una solucin universal de comunicacin en red con todos los dispositivos Ethernet. Existe en dos versiones: una, que aparte de la comunicacin permite el diagnstico va Web y la otra, con pgina Web de usuario (personalizada). El puerto de programacin posibilita la conexin de: una PC o una notebook para realizar la programacin, un terminal de dilogo operador Magelis, otros PLCs en enlace multipunto, una impresora o una terminal en modo caracteres ASCII. La utilizacin de una caja de derivacin TSXPACC01 permite aislar la toma terminal. Adems permite conectar simultneamente una terminal de programacin y una terminal de dilogo operador. Esta caja es necesaria tambin para conectar el PLC a un enlace Uni-TeIway cuando la distancia entre los equipo es superior a los 10 metros. Modicon TSX Momentum es una familia completa de productos de control (Mdulos de E/S, procesadores, adaptadores de comunicacin y adaptadores opcionales)con un diseo modular nico y flexible.
Un concepto modular innovador y fcilmente adaptable a los cambios tecnolgicos

El sistema Modicon TSX Momentum, incluye 4 componentes fundamentales que se fcilmente entre s en combinaciones para sistemas o subsistemas de control verstiles. Los 4 componentes son:

Bases de E/S. Adaptadores de comunicacin para mltiples protocolos. Adaptadores procesador. Adaptadores opcionales.

Bases de E/S

Las bases de E/S Modicon TSX Momentum se integran fcilmente a los sistemas de control existentes, gracias a sus adaptadores de comunicacin, procesadores, adaptadores opcionales y diversas bases de entradas/ salidas E/S analgicas, E/S discretas en tensiones de 24 VDC, 11 OVAC y 220 VAC, bases con salidas a rel, bases con E/S combinadas, bases con funciones especficas (contaje, control de motores paso a paso), etc. Todas ellas con sistema de borneras extrables.

Adaptadores de comunicacin

El Sistema Modicon TSX Momentum est diseado independizar las comunicaciones de la base de E/S creando un sistema de E/S realmente abierto que se puede cualquier bus de campo o red de control. Al montar sobre la base de E/S Modicon TSX Momentum adaptador de comunicacin, obtenemos una base E/S que se conecta directamente con cualquier campo y respondiendo al administrador de la red. Las E/S Modicon TSX Momentum pueden ser utilizadas distintos tipos de arquitecturas; sistemas de control centralizados, distribuidos, sistemas basados en

PC, como complemento para controladores programables de diferentes proveedores y como complemento de otros procesadores Modicon TSX Momentum.

Procesadores

Cuando se necesita una inteligencia local distribuida en el punto de control, Modicon TSX Momentum es a respuesta adecuada. Los adaptadores procesadores Modicom TSX Momentum M1 equipados con CPU, RAM y memoria Flash, son compatibles con los PLC Quantum Compact y 984 de Modicon y se conectan en las bases de E/S Modicom TSX Momentum igual que los adaptadores de comunicacin.
Adaptadores opcionales

El adaptador opcional va acompaado siempre de un procesador que le proporciona nuevas capacidades de red, reloj calendario y batera de seguridad para la de datos. El adaptador opcional tambin se conecta la base de E/S, en la parte superior.
Adaptadores y Procesadores con puerto Ethernet

La familia TSX Momentum se integra a la plataforma Transparent Factory a travs de los adaptadoores de comunicacin Ethernet y los procesadores (CPUs) con puerto de comunicacin Ethernet y pginas WEB embebidas (incorporadas).

Adaptadores de comunicacin Ethernet

Los adaptadores de comunicacin 170 ENT 110 00y 170 ENT 110 01 permiten la conexin a la red Ethernet de la familia completa de bases de entradas y salidas TSX Momentum. Esta conectividad posibilita la comunicacin con todos los dispositivos de control compatibles con Ethernet TCP/IP (PLCs, controles de movimiento, PCs industriales, etc) lo que convierte a la familia TSX Momentum en un poderoso sistema de entradas/salidas distribuidas dialogando en un protocolo universal y abierto (servicio I/0 Scanning). El sistema de direccionamiento IP permite un nmero ilimitado de bases de E/S TSX Momentum conectadas a la red. Utilizando hubs, routers, bridges, switches, la performance y longitud de la red Ethernet puede ser adecuadamente ajustada a las necesidades de casi cualquier aplicacin de control. El adaptador de comunicacin Ethernet utiliza la estructura estandarizada de mensajes y comandos de control de Modbus sobre el protocolo TCP/I P, lo cual simplifica la implementaci6n de control y al mismo tiempo posibilita que la informacin pueda estar disponible en una red estandarizada y mundialmente aceptada como Ethernet.

Programacion orientada a objetos.

Conceptos fundamentales

La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de

un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas.

Herencia: (por ejemplo, herencia de la clase C a la clase D)

Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos mtodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) tambin se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico el ideal de OOP.

Objeto: entidad provista de un conjunto de propiedades o

atributos (datos) y de comportamiento o funcionalidad (mtodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Mtodo: Algoritmo asociado a un objeto (o a una clase de

objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto,

o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento: Es un suceso en el sistema (tal como una interaccin

del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que puede desencadenar un objeto, es decir la accin que genera.

Mensaje: una comunicacin dirigida a un objeto, que le ordena

que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener.

Propiedad o atributo: contenedor de un tipo de datos

asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado por la ejecucin de algn mtodo.

Estado interno: es una variable que se declara privada, que

puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

Componentes de un objeto: atributos, identidad, relaciones y Identificacin de un objeto: un objeto se representa por

mtodos.

medio de una tabla o entidad que est compuesta por sus atributos y funciones correspondientes. En comparacin con un lenguaje imperativo, una "variable", no es ms que un contenedor interno del atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del objeto.

Caractersticas de la POO

Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", las caractersticas siguientes son las ms importantes:

Abstraccin: denota las caractersticas esenciales de un

objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin.El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Encapsulamiento: Significa reunir a todos los elementos que

pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se suelen emplear conjuntamente.

Modularidad: Se denomina Modularidad a la propiedad que

permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la Modularidad de diversas formas.

Principio de ocultacin: Cada objeto est aislado del

exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a

objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Herencia: las clases no estn aisladas, sino que se relacionan

entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en rboles o

enrejados que reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple.

Recoleccin de basura: la recoleccin de basura o garbage

collector es la tcnica por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajes hbridos que se extendieron para soportar el Paradigma de Programacin Orientada a Objetos como C++ u Object Pascal, esta caracterstica no existe y la memoria debe desasignarse manualmente.

Visual Basic .NET (VB.NET)


Es un lenguaje de programacin orientado a objetos que se puede considerar una evolucin de Visual Basic implementada sobre el framework .NET. Su introduccin result muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NET no es compatible hacia atrs con Visual Basic, pero el manejo de las instrucciones es similar a versiones anteriores de Visual Basic, facilitando as el desarrollo de aplicaciones ms avanzadas con herramientas modernas. La gran mayora de programadores de VB.NET utilizan el entorno de desarrollo integrado Microsoft Visual Studio en alguna de sus versiones (desde el primer Visual Studio .NET hasta Visual Studio .NET 2010, que es la ltima versin de Visual Studio para la plataforma .NET), aunque existen otras alternativas, como SharpDevelop (que adems es libre).

Al igual que con todos los lenguajes de programacin basados en .NET, los programas escritos en VB .NET requieren el Framework .NET o Mono para ejecutarse.

DESARROLLO
VISUAL BASIC:

'' VARIABLES DE CONVERSION DECIMAL A BINARIO Dim NUM As Double, N As Integer, B As String Dim BIN As String, L As String, BinAux As String Dim I As Integer ''FIN DE DECLARACIN DE VARIABLES Dim diacont, mescont, aocont As String 'Integer 'variables de cambio de hora Dim diaconti, mesconti, aoconti As Integer Private Sub CommandButton1_Click() 'ACTIVAR BOMBA 1 Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.0,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.0,BOOL,W", 0, "") End Sub

Private Sub CommandButton27_Click() 'DESACTIVAR BOMBA 1 Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.1,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.1,BOOL,W", 0, "") End Sub

Private Sub CommandButton28_Click() 'ACTIVAR BOMBA 2 Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.2,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.2,BOOL,W", 0, "")

End Sub

Private Sub CommandButton29_Click() 'DESACTIVAR BOMBA 2 Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.3,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.3,BOOL,W", 0, "") End Sub

Private Sub CommandButton30_Click() 'ACTIVAR BOMBA 3 Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.4,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.4,BOOL,W", 0, "") End Sub

Private Sub CommandButton31_Click() 'DESACTIVAR BOMBA3 Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.5,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.5,BOOL,W", 0, "") End Sub

Private Sub CommandButton32_Click()

End Sub

Private Sub CommandButton33_Click()

End Sub

Private Sub CommandButton34_Click() 'VALVULA 2 ACTIVAR Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.2,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.2,BOOL,W", 0, "") End Sub

Private Sub CommandButton35_Click() 'VALVULA 2 DESACTIVAR Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.3,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.3,BOOL,W", 0, "") End Sub

Private Sub CommandButton36_Click() 'VALVULA 3 ACTIVAR Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.4,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.4,BOOL,W", 0, "")

End Sub

Private Sub CommandButton37_Click() 'VALVULA 3 DESACTIVAR Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.5,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.5,BOOL,W", 0, "") End Sub

Private Sub CommandButton43_Click() ''ACTUALIZAR FECHA DE INICIO DE RIEGO 'End Sub

DIA = TextBox8.Text 'SETOMA EL VALOR DE LA CAJA DE TEXTOY SE MANDA A LA VARIABLE DIA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB62,BYTE,W", DIA, "") Label31.Caption = DIA MES = TextBox9.Text Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB61,BYTE,W", MES, "") Label32.Caption = MES

AO = TextBox10.Text Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB60,BYTE,W", AO, "") Label42.Caption = AO

End Sub

Private Sub CommandButton47_Click() ''ACTUALIZAR FECHA DE FIN DE RIEGO

DIAF = TextBox20.Text 'SETOMA EL VALOR DE LA CAJA DE TEXTOY SE MANDA A LA VARIABLE DIA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB72,BYTE,W", DIAF, "") Label43.Caption = DIAF

MESF = TextBox21.Text Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB71,BYTE,W", MESF, "") Label44.Caption = MESF

AOF = TextBox22.Text Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB70,BYTE,W", AOF, "") Label45.Caption = AOF End Sub

Private Sub CommandButton48_Click() 'ACTUALIZAR HORA DE INICIO DE RIEGO

HORA = TextBox23.Text 'SE TOMA EL VALOR DE LA CAJA DE TEXTO Y SE MANDA A LA VARIABLE DIA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB63,BYTE,W", HORA, "") Label46.Caption = HORA

MINU = TextBox24.Text Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB64,BYTE,W", MINU, "") Label47.Caption = MINU End Sub

Private Sub CommandButton49_Click() 'ACTUALIZAR HORA DE FIN DE RIEGO HORAF = TextBox25.Text 'SE TOMA EL VALOR DE LA CAJA DE TEXTO Y SE MANDA A LA VARIABLE DIA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB73,BYTE,W", HORAF, "") Label48.Caption = HORAF

MINUF = TextBox26.Text Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB74,BYTE,W", MINUF, "") Label49.Caption = MINUF End Sub

Private Sub VISUALIZA()

''CONVERSION DECIMAL A BINARIO

'conversin de decimales a binarios

Dim valor As Variant

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,MB30,BYTE,RW", valor) Label41.Caption = valor 'NUM = Val(TextBox6.Text) NUM = Val(valor) 'Caption = NUM BIN = "" ' Pongo en Null el futuro binario If NUM = 0 Then BIN = "0" End If Convertir End Sub

Sub Convertir() Dim D As String, F As String, X As String While NUM >= 1 NUM = NUM / 2 X = Str(NUM) D = "": F = "" ' Pongo en Null las string D y F para cargar de nuevo

For I = 1 To Len(X) L = Mid(X, I, 1)

If L <> "." Then D = D + L ' Cargo la parte entera en D Else F = F + Right(X, Len(X) - I) ' Transfiero la parte decimal Exit For End If Next ' Salgo del Bucle sino...

If F = "" Then B = "0" Else B = "1" End If ' Con decimales ' NUM/2 Sin decimales

BIN = BIN + B ' Armo el binario (invertido) NUM = Val(D) ' Actualizo NUM para seguir dividiendo

Wend ' Ojo: Poner los 0 de acuerdo al tamao de nmeros que se manejen ' Si la cifra es enorme, puede haber errores, el TextBox limitarlo a 8 dgitos BinAux = StrReverse(Trim(BIN)) ' Reservo binario para futuras conversiones TextBox7.Text = Format(BinAux, "#### #### #### #### #### 0000 0000")

visualizacion

End Sub

Sub visualizacion() cadena = BIN

If (Mid(cadena, 1, 1)) = True Then Frame1.BackColor = vbGreen 'M30.0 - BOMBA1 Else Frame1.BackColor = vbRed End If

If (Mid(cadena, 2, 1)) = True Then 'M30.1 - BOMBA2 Frame2.BackColor = vbGreen Else Frame2.BackColor = vbRed End If

If (Mid(cadena, 3, 1)) = True Then 'M30.2 - BOMBA 3 Frame3.BackColor = vbGreen Else Frame3.BackColor = vbRed End If

If (Mid(cadena, 4, 1)) = True Then ' M30.3 - VALVULA 1 Frame9.BackColor = vbGreen

Else Frame9.BackColor = vbRed End If

If (Mid(cadena, 5, 1)) = True Then 'M30.4 -VALVULA 2 Frame7.BackColor = vbGreen Else Frame7.BackColor = vbRed End If

If (Mid(cadena, 6, 1)) = True Then Frame8.BackColor = vbGreen Else Frame8.BackColor = vbRed End If 'M30.5 - VALVULA 3

If (Mid(cadena, 7, 1)) = True Then 'M30.6 - VALVULA 4 Frame10.BackColor = vbGreen Else 'Frame10.BackColor = vbRed End If

If (Mid(cadena, 8, 1)) = True Then 'M30.7 - VALVULA 5 Frame11.BackColor = vbGreen Else 'Frame11.BackColor = vbRed

End If End Sub

Private Sub CommandButton46_Click() Call VISUALIZA End Sub

Private Sub CommandButton50_Click() Dim Mensaje, Botones, Titulo, Respuesta, advertencia

CommandButton50.BackColor = vbBlue

'Mensaje = "Desea cambiar la Fecha o la hora del PLC?" 'Botones = vbYesNo + vbQuestion + vbDefaultButton2 'Ttulo = "CAMBIO DE HORA Y FECHA DE PLC"

Respuesta = MsgBox("Desea cambiar la Fecha o la hora del PLC?", vbYesNo + vbQuestion + vbDefaultButton2, "CAMBIO DE HORA Y FECHA DE PLC") If Respuesta = vbYes Then 'el usuario eligio el boton si

'################### CAMBIAR DIA ############ Dim Mensaje1, Titulo1, ValorPred, MiValor

Mensaje1 = "Introduzca Da : Rango de 1 a 31" Titulo1 = "CAMBIAR DIA" ValorPred = "1" diacont = InputBox(Mensaje1, Titulo1, ValorPred, 500, 500) 'diaconts = diacont 'If diacontent < 1 Or diacontent > 31 Then 'MsgBox ("VALOR FUERA DE RANGO")

If diacont = "" Then ' El usuario eligi el botn S. Label55.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. diaconti = CInt(diacont) 'convierte un string a entero Label55.Caption = diaconti End If

'################ CAMBIAR MES ################ Dim Mensaje2, Titulo2, ValorPred2, MiValor2 Mensaje2 = "Introduzca Mes : Rango de 1 a 12" Titulo2 = "CAMBIAR MES" ValorPred2 = "1" mescont = InputBox(Mensaje2, Titulo2, ValorPred2, 500, 500) If mescont = "" Then ' El usuario eligi el botn S. Label56.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. mesconti = CInt(mescont) Label56.Caption = mesconti

End If

'################ CAMBIAR AO ################ Dim Mensaje3, Titulo3, ValorPred3, MiValor3 Mensaje3 = "Introduzca Ao : Rango de 0 a 99" Titulo3 = "CAMBIAR AO" ValorPred3 = "0" aocont = InputBox(Mensaje3, Titulo3, ValorPred3, 500, 500) If aocont = "" Then ' El usuario eligi el botn S. Label57.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. aoconti = CInt(aocont) Label57.Caption = aoconti End If

'################ CAMBIAR HORA ################ Dim Mensaje4, Titulo4, ValorPred4, MiValor4 Mensaje4 = "Introduzca Hora : Rango de 0 a 24" Titulo4 = "CAMBIAR HORA" ValorPred4 = "0" horacont = InputBox(Mensaje4, Titulo4, ValorPred4, 500, 500) If horacont = "" Then ' El usuario eligi el botn S. Label91.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. horaconti = CInt(horacont) Label91.Caption = horaconti

End If

'################ CAMBIAR MINUTOS ################ Dim Mensaje5, Titulo5, ValorPred5, MiValor5 Mensaje5 = "Introduzca los Minutos : Rango de 0 a 59" Titulo5 = "CAMBIAR MINUTOS" ValorPred5 = "0" minucont = InputBox(Mensaje5, Titulo5, ValorPred5, 500, 500) If minucont = "" Then ' El usuario eligi el botn S. Label92.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. minuconti = CInt(minucont) Label92.Caption = minuconti End If

'""""""""""""""""""""""""""""""""""""""""""""""""""""" 'Envio de seales para escritura de cambio de hora 'DETIENE LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 1, "")

'CAMBIA MINUTO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB54,BYTE,W", minuconti, "")

'CAMBIA HORA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB53,BYTE,W", horaconti, "") 'CAMBIA DIA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB52,BYTE,W", diaconti, "") 'CAMBIA MES Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB51,BYTE,W", mesconti, "") 'CAMBIA AO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB50,BYTE,W", aoconti, "")

'HABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 1, "") 'DESHABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 0, "")

'HABILITA LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 0, "")

'"""""""""""""""""""""""""""""""""""""""""""""""""""""

CommandButton50.BackColor = &H8000000F

Else 'el usuario eligio no CommandButton50.BackColor = &H8000000F 'SI NO HUBO CAMBIO SE LEEN LOS DATOS ACTUALES DEL CONTROLADOR

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB52,BYTE,RW", "valor") diaconti = valor Label55.Caption = diaconti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB51,BYTE,RW", "valor") mesconti = valor Label56.Caption = mesconti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB50,BYTE,RW", "valor") aoconti = valor Label57.Caption = aoconti End If

End Sub

Private Sub CommandButton55_Click() 'LEER FECHA DEL CONTROLADOR

'LEER SEGUNDOS valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB55,BYTE,RW", "valor")

seguconti = valor Label99.Caption = seguconti

'LEER MINUTO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB54,BYTE,RW", "valor") minuconti = valor Label92.Caption = minuconti

'LEER HORA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB53,BYTE,RW", "valor") horaconti = valor Label91.Caption = horaconti

'LEER DIA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB52,BYTE,RW", "valor") diaconti = valor Label55.Caption = diaconti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB51,BYTE,RW", "valor") mesconti = valor Label56.Caption = mesconti 'LEER AO

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB50,BYTE,RW", "valor") aoconti = valor Label57.Caption = aoconti End Sub

Private Sub CommandButton82_Click() 'LEER FECHA DE INICIO DEL CONTROLADOR

'LEER MINUTO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB64,BYTE,RW", "valor") minuiniconti = valor Label111.Caption = minuiniconti

'LEER HORA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB63,BYTE,RW", "valor") horainiconti = valor Label110.Caption = horainiconti

'LEER DIA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB62,BYTE,RW", "valor") diainiconti = valor Label106.Caption = diainiconti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB61,BYTE,RW", "valor") mesiniconti = valor

Label107.Caption = mesiniconti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB60,BYTE,RW", "valor") aoiniconti = valor Label108.Caption = aoiniconti End Sub

Private Sub CommandButton83_Click() Dim Mensaje, Botones, Titulo, Respuesta, advertencia

CommandButton83.BackColor = vbBlue

'Mensaje = "Desea cambiar la Fecha o la hora del PLC?" 'Botones = vbYesNo + vbQuestion + vbDefaultButton2 'Ttulo = "CAMBIO DE HORA Y FECHA DE PLC"

Respuesta = MsgBox("Desea cambiar la Fecha o la hora del PLC?", vbYesNo + vbQuestion + vbDefaultButton2, "CAMBIO DE HORA Y FECHA DE PLC") If Respuesta = vbYes Then 'el usuario eligio el boton si

'################### CAMBIAR DIA ############ Dim Mensaje1, Titulo1, ValorPred, MiValor Mensaje1 = "Introduzca Da : Rango de 1 a 31" Titulo1 = "CAMBIAR DIA DE INICIO"

ValorPred = "1" diainicont = InputBox(Mensaje1, Titulo1, ValorPred, 500, 500) 'diaconts = diacont 'If diacontent < 1 Or diacontent > 31 Then 'MsgBox ("VALOR FUERA DE RANGO")

If diainicont = "" Then ' El usuario eligi el botn S. Label106.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. diainiconti = CInt(diainicont) 'convierte un string a entero Label106.Caption = diainiconti End If

'################ CAMBIAR MES ################ Dim Mensaje2, Titulo2, ValorPred2, MiValor2 Mensaje2 = "Introduzca Mes : Rango de 1 a 12" Titulo2 = "CAMBIAR MES DE INICIO" ValorPred2 = "1" mesinicont = InputBox(Mensaje2, Titulo2, ValorPred2, 500, 500) If mesinicont = "" Then ' El usuario eligi el botn S. Label107.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. mesiniconti = CInt(mesinicont) Label107.Caption = mesiniconti End If

'################ CAMBIAR AO ################ Dim Mensaje3, Titulo3, ValorPred3, MiValor3 Mensaje3 = "Introduzca Ao : Rango de 0 a 99" Titulo3 = "CAMBIAR AO DE INICIO" ValorPred3 = "0" aoinicont = InputBox(Mensaje3, Titulo3, ValorPred3, 500, 500) If aoinicont = "" Then ' El usuario eligi el botn S. Label108.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. aoiniconti = CInt(aoinicont) Label108.Caption = aoiniconti End If

'################ CAMBIAR HORA ################ Dim Mensaje4, Titulo4, ValorPred4, MiValor4 Mensaje4 = "Introduzca Hora : Rango de 0 a 24" Titulo4 = "CAMBIAR HORA DE INICIO" ValorPred4 = "0" horainicont = InputBox(Mensaje4, Titulo4, ValorPred4, 500, 500) If horainicont = "" Then ' El usuario eligi el botn S. Label110.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. horainiconti = CInt(horainicont) Label110.Caption = horainiconti End If

'################ CAMBIAR MINUTOS ################ Dim Mensaje5, Titulo5, ValorPred5, MiValor5 Mensaje5 = "Introduzca los Minutos : Rango de 0 a 59" Titulo5 = "CAMBIAR MINUTOS DE INICIO" ValorPred5 = "0" minuinicont = InputBox(Mensaje5, Titulo5, ValorPred5, 500, 500) If minuinicont = "" Then ' El usuario eligi el botn S. Label111.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. minuiniconti = CInt(minuinicont) Label111.Caption = minuiniconti End If

'""""""""""""""""""""""""""""""""""""""""""""""""""""" 'Envio de seales para escritura de cambio de hora 'DETIENE LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 1, "")

'CAMBIA MINUTO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB64,BYTE,W", minuiniconti, "") 'CAMBIA HORA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB63,BYTE,W", horainiconti, "")

'CAMBIA DIA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB62,BYTE,W", diainiconti, "") 'CAMBIA MES INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB61,BYTE,W", mesiniconti, "") 'CAMBIA AO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB60,BYTE,W", aoiniconti, "")

'HABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 1, "") 'DESHABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 0, "")

'HABILITA LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 0, "")

'"""""""""""""""""""""""""""""""""""""""""""""""""""""

CommandButton50.BackColor = &H8000000F

Else 'el usuario eligio no CommandButton50.BackColor = &H8000000F

'SI NO HUBO CAMBIO SE LEEN LOS DATOS ACTUALES DEL CONTROLADOR

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB62,BYTE,RW", "valor") diafinconti = valor Label55.Caption = diafinconti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB61,BYTE,RW", "valor") mesfinconti = valor Label56.Caption = mesfinconti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB60,BYTE,RW", "valor") aofinconti = valor Label57.Caption = aofinconti End If

End Sub

Private Sub CommandButton84_Click() 'LEER FECHA DE FIN DEL CONTROLADOR

'LEER MINUTO FINAL valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB74,BYTE,RW", "valor")

minufinconti = valor Label118.Caption = minufinconti

'LEER HORA FINAL valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB73,BYTE,RW", "valor") horafinconti = valor Label117.Caption = horafinconti

'LEER DIA FINAL valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB72,BYTE,RW", "valor") diafinconti = valor Label113.Caption = diafinconti 'LEER MES FINAL valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB71,BYTE,RW", "valor") mesfinconti = valor Label114.Caption = mesfinconti 'LEER AO FINAL valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB70,BYTE,RW", "valor") aofinconti = valor Label115.Caption = aofinconti End Sub

Private Sub CommandButton85_Click()

Dim Mensaje, Botones, Titulo, Respuesta, advertencia

CommandButton85.BackColor = vbBlue

'Mensaje = "Desea cambiar la Fecha o la hora del PLC?" 'Botones = vbYesNo + vbQuestion + vbDefaultButton2 'Ttulo = "CAMBIO DE HORA Y FECHA DE PLC"

Respuesta = MsgBox("Desea cambiar la Fecha o la hora del PLC?", vbYesNo + vbQuestion + vbDefaultButton2, "CAMBIO DE HORA Y FECHA DE PLC") If Respuesta = vbYes Then 'el usuario eligio el boton si

'################### CAMBIAR DIA ############ Dim Mensaje1, Titulo1, ValorPred, MiValor Mensaje1 = "Introduzca Da : Rango de 1 a 31" Titulo1 = "CAMBIAR DIA" ValorPred = "1" diafincont = InputBox(Mensaje1, Titulo1, ValorPred, 500, 500) 'diaconts = diacont 'If diacontent < 1 Or diacontent > 31 Then 'MsgBox ("VALOR FUERA DE RANGO")

If diafincont = "" Then ' El usuario eligi el botn S. Label113.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No.

diafinconti = CInt(diafincont) 'convierte un string a entero Label113.Caption = diafinconti End If

'################ CAMBIAR MES ################ Dim Mensaje2, Titulo2, ValorPred2, MiValor2 Mensaje2 = "Introduzca Mes : Rango de 1 a 12" Titulo2 = "CAMBIAR MES" ValorPred2 = "1" mesfincont = InputBox(Mensaje2, Titulo2, ValorPred2, 500, 500) If mesfincont = "" Then ' El usuario eligi el botn S. Label114.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. mesfinconti = CInt(mesfincont) Label114.Caption = mesfinconti End If

'################ CAMBIAR AO ################ Dim Mensaje3, Titulo3, ValorPred3, MiValor3 Mensaje3 = "Introduzca Ao : Rango de 0 a 99" Titulo3 = "CAMBIAR AO" ValorPred3 = "0" aofincont = InputBox(Mensaje3, Titulo3, ValorPred3, 500, 500) If aofincont = "" Then ' El usuario eligi el botn S. Label115.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No.

aofinconti = CInt(aofincont) Label115.Caption = aofinconti End If

'################ CAMBIAR HORA ################ Dim Mensaje4, Titulo4, ValorPred4, MiValor4 Mensaje4 = "Introduzca Hora : Rango de 0 a 24" Titulo4 = "CAMBIAR HORA" ValorPred4 = "0" horafincont = InputBox(Mensaje4, Titulo4, ValorPred4, 500, 500) If horafincont = "" Then ' El usuario eligi el botn S. Label117.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. horafinconti = CInt(horafincont) Label117.Caption = horafinconti End If

'################ CAMBIAR MINUTOS ################ Dim Mensaje5, Titulo5, ValorPred5, MiValor5 Mensaje5 = "Introduzca los Minutos : Rango de 0 a 59" Titulo5 = "CAMBIAR MINUTOS" ValorPred5 = "0" minufincont = InputBox(Mensaje5, Titulo5, ValorPred5, 500, 500) If minufincont = "" Then ' El usuario eligi el botn S. Label118.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No.

minufinconti = CInt(minufincont) Label118.Caption = minufinconti End If

'""""""""""""""""""""""""""""""""""""""""""""""""""""" 'Envio de seales para escritura de cambio de hora 'DETIENE LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 1, "")

'CAMBIA MINUTO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB74,BYTE,W", minufinconti, "") 'CAMBIA HORA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB73,BYTE,W", horafinconti, "") 'CAMBIA DIA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB72,BYTE,W", diafinconti, "") 'CAMBIA MES INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB71,BYTE,W", mesfinconti, "") 'CAMBIA AO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB70,BYTE,W", aofinconti, "")

'HABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 1, "") 'DESHABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 0, "")

'HABILITA LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 0, "")

'"""""""""""""""""""""""""""""""""""""""""""""""""""""

CommandButton50.BackColor = &H8000000F

Else 'el usuario eligio no CommandButton50.BackColor = &H8000000F 'SI NO HUBO CAMBIO SE LEEN LOS DATOS ACTUALES DEL CONTROLADOR

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB72,BYTE,RW", "valor") diafinconti = valor Label113.Caption = diafinconti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB71,BYTE,RW", "valor")

mesfinconti = valor Label114.Caption = mesfinconti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB70,BYTE,RW", "valor") aofinconti = valor Label115.Caption = aofinconti End If End Sub

Private Sub CommandButton86_Click() 'LEER FECHA DE FIN DE LA BOMBA 2

'LEER MINUTO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB94,BYTE,RW", "valor") minufin2conti = valor Label125.Caption = minufin2conti

'LEER HORA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB93,BYTE,RW", "valor") horafin2conti = valor Label124.Caption = horafin2conti

'LEER DIA

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB92,BYTE,RW", "valor") diafin2conti = valor Label120.Caption = diafin2conti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB91,BYTE,RW", "valor") mesfin2conti = valor Label121.Caption = mesfin2conti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB90,BYTE,RW", "valor") aofin2conti = valor Label122.Caption = aofin2conti End Sub

Private Sub CommandButton87_Click() ' ################CAMBIO DE FECHA DE INICIO BOMBA 2

Dim Mensaje, Botones, Titulo, Respuesta, advertencia

CommandButton83.BackColor = vbBlue

'Mensaje = "Desea cambiar la Fecha o la hora del PLC?" 'Botones = vbYesNo + vbQuestion + vbDefaultButton2 'Ttulo = "CAMBIO DE HORA Y FECHA DE PLC"

Respuesta = MsgBox("Desea cambiar la Fecha o la hora del PLC?", vbYesNo + vbQuestion + vbDefaultButton2, "CAMBIO DE HORA Y FECHA DE PLC") If Respuesta = vbYes Then 'el usuario eligio el boton si

'################### CAMBIAR DIA ############ Dim Mensaje1, Titulo1, ValorPred, MiValor Mensaje1 = "Introduzca Da : Rango de 1 a 31" Titulo1 = "CAMBIAR DIA DE INICIO" ValorPred = "1" diafin2cont = InputBox(Mensaje1, Titulo1, ValorPred, 500, 500) 'diaconts = diacont 'If diacontent < 1 Or diacontent > 31 Then 'MsgBox ("VALOR FUERA DE RANGO")

If diafin2cont = "" Then ' El usuario eligi el botn S. Label120.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. diafin2conti = CInt(diafin2cont) 'convierte un string a entero Label120.Caption = diafin2conti End If

'################ CAMBIAR MES ################ Dim Mensaje2, Titulo2, ValorPred2, MiValor2 Mensaje2 = "Introduzca Mes : Rango de 1 a 12" Titulo2 = "CAMBIAR MES DE INICIO"

ValorPred2 = "1" mesfin2cont = InputBox(Mensaje2, Titulo2, ValorPred2, 500, 500) If mesfin2cont = "" Then ' El usuario eligi el botn S. Label121.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. mesfin2conti = CInt(mesfin2cont) Label121.Caption = mesfin2conti End If

'################ CAMBIAR AO ################ Dim Mensaje3, Titulo3, ValorPred3, MiValor3 Mensaje3 = "Introduzca Ao : Rango de 0 a 99" Titulo3 = "CAMBIAR AO DE INICIO" ValorPred3 = "0" aofin2cont = InputBox(Mensaje3, Titulo3, ValorPred3, 500, 500) If aofin2cont = "" Then ' El usuario eligi el botn S. Label122.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. aofin2conti = CInt(aofin2cont) Label122.Caption = aofin2conti End If

'################ CAMBIAR HORA ################ Dim Mensaje4, Titulo4, ValorPred4, MiValor4 Mensaje4 = "Introduzca Hora : Rango de 0 a 24" Titulo4 = "CAMBIAR HORA DE INICIO"

ValorPred4 = "0" horafin2cont = InputBox(Mensaje4, Titulo4, ValorPred4, 500, 500) If horafin2cont = "" Then ' El usuario eligi el botn S. Label124.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. horafin2conti = CInt(horafin2cont) Label124.Caption = horafin2conti End If

'################ CAMBIAR MINUTOS ################ Dim Mensaje5, Titulo5, ValorPred5, MiValor5 Mensaje5 = "Introduzca los Minutos : Rango de 0 a 59" Titulo5 = "CAMBIAR MINUTOS DE INICIO" ValorPred5 = "0" minufin2cont = InputBox(Mensaje5, Titulo5, ValorPred5, 500, 500) If minufin2cont = "" Then ' El usuario eligi el botn S. Label125.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. minufin2conti = CInt(minufin2cont) Label125.Caption = minufin2conti End If

'""""""""""""""""""""""""""""""""""""""""""""""""""""" 'Envio de seales para escritura de cambio de hora

'DETIENE LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 1, "")

'CAMBIA MINUTO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB94,BYTE,W", minufin2conti, "") 'CAMBIA HORA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB93,BYTE,W", horafin2conti, "") 'CAMBIA DIA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB92,BYTE,W", diafin2conti, "") 'CAMBIA MES INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB91,BYTE,W", mesfin2conti, "") 'CAMBIA AO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB90,BYTE,W", aofin2conti, "")

'HABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 1, "") 'DESHABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 0, "")

'HABILITA LECTURA

Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 0, "")

'"""""""""""""""""""""""""""""""""""""""""""""""""""""

CommandButton50.BackColor = &H8000000F

Else 'el usuario eligio no CommandButton50.BackColor = &H8000000F 'SI NO HUBO CAMBIO SE LEEN LOS DATOS ACTUALES DEL CONTROLADOR

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB92,BYTE,RW", "valor") diafin2conti = valor Label120.Caption = diafin2conti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB91,BYTE,RW", "valor") mesfin2conti = valor Label121.Caption = mesfin2conti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB90,BYTE,RW", "valor") aofin2conti = valor Label122.Caption = aofin2conti End If

End Sub

Private Sub CommandButton88_Click() 'LEER FECHA DE INICIO DE LA BOMBA 2

'LEER MINUTO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB84,BYTE,RW", "valor") minuiniconti = valor Label132.Caption = minuiniconti

'LEER HORA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB83,BYTE,RW", "valor") horainiconti = valor Label131.Caption = horainiconti

'LEER DIA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB82,BYTE,RW", "valor") diainiconti = valor Label127.Caption = diainiconti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB81,BYTE,RW", "valor")

mesiniconti = valor Label128.Caption = mesiniconti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB80,BYTE,RW", "valor") aoiniconti = valor Label129.Caption = aoiniconti End Sub

Private Sub CommandButton89_Click() ' ################CAMBIO DE FECHA DE INICIO BOMBA 2

Dim Mensaje, Botones, Titulo, Respuesta, advertencia

CommandButton83.BackColor = vbBlue

'Mensaje = "Desea cambiar la Fecha o la hora del PLC?" 'Botones = vbYesNo + vbQuestion + vbDefaultButton2 'Ttulo = "CAMBIO DE HORA Y FECHA DE PLC"

Respuesta = MsgBox("Desea cambiar la Fecha o la hora del PLC?", vbYesNo + vbQuestion + vbDefaultButton2, "CAMBIO DE HORA Y FECHA DE PLC") If Respuesta = vbYes Then 'el usuario eligio el boton si

'################### CAMBIAR DIA ############

Dim Mensaje1, Titulo1, ValorPred, MiValor Mensaje1 = "Introduzca Da : Rango de 1 a 31" Titulo1 = "CAMBIAR DIA DE INICIO" ValorPred = "1" diaini2cont = InputBox(Mensaje1, Titulo1, ValorPred, 500, 500) 'diaconts = diacont 'If diacontent < 1 Or diacontent > 31 Then 'MsgBox ("VALOR FUERA DE RANGO")

If diaini2cont = "" Then ' El usuario eligi el botn S. Label127.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. diaini2conti = CInt(diaini2cont) 'convierte un string a entero Label127.Caption = diaini2conti End If

'################ CAMBIAR MES ################ Dim Mensaje2, Titulo2, ValorPred2, MiValor2 Mensaje2 = "Introduzca Mes : Rango de 1 a 12" Titulo2 = "CAMBIAR MES DE INICIO" ValorPred2 = "1" mesini2cont = InputBox(Mensaje2, Titulo2, ValorPred2, 500, 500) If mesini2cont = "" Then ' El usuario eligi el botn S. Label128.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. mesini2conti = CInt(mesini2cont)

Label128.Caption = mesini2conti End If

'################ CAMBIAR AO ################ Dim Mensaje3, Titulo3, ValorPred3, MiValor3 Mensaje3 = "Introduzca Ao : Rango de 0 a 99" Titulo3 = "CAMBIAR AO DE INICIO" ValorPred3 = "0" aoini2cont = InputBox(Mensaje3, Titulo3, ValorPred3, 500, 500) If aoini2cont = "" Then ' El usuario eligi el botn S. Label129.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. aoini2conti = CInt(aoini2cont) Label129.Caption = aoini2conti End If

'################ CAMBIAR HORA ################ Dim Mensaje4, Titulo4, ValorPred4, MiValor4 Mensaje4 = "Introduzca Hora : Rango de 0 a 24" Titulo4 = "CAMBIAR HORA DE INICIO" ValorPred4 = "0" horaini2cont = InputBox(Mensaje4, Titulo4, ValorPred4, 500, 500) If horaini2cont = "" Then ' El usuario eligi el botn S. Label131.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. horaini2conti = CInt(horaini2cont)

Label131.Caption = horaini2conti End If

'################ CAMBIAR MINUTOS ################ Dim Mensaje5, Titulo5, ValorPred5, MiValor5 Mensaje5 = "Introduzca los Minutos : Rango de 0 a 59" Titulo5 = "CAMBIAR MINUTOS DE INICIO" ValorPred5 = "0" minuini2cont = InputBox(Mensaje5, Titulo5, ValorPred5, 500, 500) If minuini2cont = "" Then ' El usuario eligi el botn S. Label132.BackColor = vbRed ' Ejecuta una accin. Else ' El usuario eligi el botn No. minuini2conti = CInt(minuini2cont) Label132.Caption = minuini2conti End If

'""""""""""""""""""""""""""""""""""""""""""""""""""""" 'Envio de seales para escritura de cambio de hora 'DETIENE LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 1, "")

'CAMBIA MINUTO INICIO

Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB84,BYTE,W", minuini2conti, "") 'CAMBIA HORA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB83,BYTE,W", horaini2conti, "") 'CAMBIA DIA INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB82,BYTE,W", diaini2conti, "") 'CAMBIA MES INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB81,BYTE,W", mesini2conti, "") 'CAMBIA AO INICIO Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,VB80,BYTE,W", aoini2conti, "")

'HABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 1, "") 'DESHABILITA ESCRITURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.1,BOOL,W", 0, "")

'HABILITA LECTURA Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M6.0,BOOL,W", 0, "")

'"""""""""""""""""""""""""""""""""""""""""""""""""""""

CommandButton50.BackColor = &H8000000F

Else 'el usuario eligio no CommandButton50.BackColor = &H8000000F 'SI NO HUBO CAMBIO SE LEEN LOS DATOS ACTUALES DEL CONTROLADOR

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB82,BYTE,RW", "valor") diafin2conti = valor Label127.Caption = diafin2conti 'LEER MES valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB81,BYTE,RW", "valor") mesfin2conti = valor Label128.Caption = mesfin2conti 'LEER AO valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB80,BYTE,RW", "valor") aofin2conti = valor Label129.Caption = aofin2conti End If

End Sub

Private Sub Frame20_Click()

End Sub

Private Sub Frame50_Click()

End Sub

Private Sub Image3_Click()

End Sub

Private Sub Label111_Click()

End Sub

Private Sub Label99_Click()

End Sub

Private Sub MultiPage2_Change()

End Sub

Private Sub TextBox7_Change()

End Sub

Private Sub UserForm_Activate() 'PRIMERA RUTINA

PARAR.BackColor = vbGreen INICIAR.BackColor = vbRed MANUAL.BackColor = vbRed AUTO.BackColor = vbRed

Dim interval As Double Dim tiempocambio As Double

Sheets("INICIO").Select Range("A1").Select ActiveCell.Formula = "00:00:01" 'Selection.Font.Bold = True 'Selection.Font.Size = 1 tiempocambio = (Range("a1").Value)

Call timer_Start(tiempocambio) End Sub

Friend Sub secuencia() '"""" SECUENCIA EJECUTADA CONTINUAMENTE""""'

Call VISUALIZA 'Dim valor As Boolean 'Dim valor As Boolean

'VALVULAS SIN PROGRAMA PLC 'Frame12.BackColor = vbBlack 'Frame13.BackColor = vbBlack 'Frame14.BackColor = vbBlack 'Frame15.BackColor = vbBlack 'Frame16.BackColor = vbBlack

'##################### LEER FECHA Y HORA DEL PLC ################################ 'LEER SEGUNDOS valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB55,BYTE,RW", "valor") seguconti = valor Label99.Caption = seguconti

'LEER MINUTO If seguconti = 59 Then valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB54,BYTE,RW", "valor") minuconti = valor Label92.Caption = minuconti Else End If

'LEER HORA If minuconti = 59 And seguconti = 59 Then

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB53,BYTE,RW", "valor") horaconti = valor Label91.Caption = horaconti Else End If

If minuconti = 59 And horaconti = 23 And seguconti = 59 Then 'LEER DIA valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB52,BYTE,RW", "valor") diaconti = valor Label55.Caption = diaconti Else End If

'LEER MES If minuconti = 59 And horaconti = 23 And seguconti = 59 Then valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB51,BYTE,RW", "valor") mesconti = valor Label56.Caption = mesconti Else End If

If minuconti = 59 And horaconti = 23 And seguconti = 59 Then 'LEER AO

valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,VB50,BYTE,RW", "valor") aoconti = valor Label57.Caption = aoconti Else End If

'#############################################################333

'FORMAS ALTERNATIVAS DE LECTURA ' valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.0,BOOL,RW", "valor") ' If valor = True Then ' Frame1.BackColor = vbGreen ' Else ' Frame1.BackColor = vbRed ' End If

' valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.1,BOOL,RW", "valor") 'BOMBA2 = valor ' If valor = True Then ' Frame2.BackColor = vbGreen ' Else ' Frame2.BackColor = vbRed ' End If

'LECTURA DE UN BYTE, CONFIGURACIN DE LECTURA CORRECTA, FALTA SEPARA EN BINARIOS

'Dim valor1 As Single 'Byte 'Dim cadena, uno, dos, tres, cuatro, cinco, seis, siete, ocho 'valor cadena a convertir

'valor1 = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,MB30,BYTE,RW", "valor1") 'cadena = Str(valor1)

'uno = Mid(cadena, 1, 14)

'Label39.Caption = uno

'If foco = CBool(cadena = 255) Then 'Label38.BackColor = vbBlack 'Else 'Label38.BackColor = vbBlue 'End If

End Sub

'Private Sub cmd_TimerOff_Click()

'End Sub

'Private Sub cmd_TimerOff_Click() 'Call timer_Stop 'End Sub

'Private Sub cmd_TimerOff_Click() 'Call timer_Stop 'End Sub

Private Sub CommandButton11_Click()

timer_enabled = False 'timer_enabled = False 'Call timer_Stop 'detener reloj 'limpiar inicio Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.1,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.1,BOOL,W", 0, "") 'desactivar bombas Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.1,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.1,BOOL,W", 0, "")

'desactivar valvulas Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.1,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.1,BOOL,W", 0, "")

Workbooks("PAI.XLSM").Close SaveChanges:=False

'Workbooks.Close End Sub

'################## LECTURA DE SEAL ACTIVA

'Private Sub UserForm1()

'End Sub 'PARAR.BackColor = vbRed 'Dim TiempoPausa, Inicio, Final, TiempoTotal 'Dim valor As Boolean 'VARIABLES

'iniciacuenta = True

'If iniciacuenta = True Then

'TiempoPausa = 10 '100 ' Asigna hora de inicio. 'Inicio = Timer ' Establece la hora de inicio. 'Do While iniciacuenta = True 'Timer < Inicio + TiempoPausa

'Instrucciones que deben ejecutarse por ciclos de tiempo

'Label23.Caption = Date 'Label24.Caption = Time

'LECTURA CICLICA DE ESTADOS 'valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.0,BOOL,RW", valor)

'BOMBA1 = valor 'valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.1,BOOL,RW", "valor") 'BOMBA2 = "falso " ' "valor" 'valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.2,BOOL,RW", "valor") 'BOMBA3 = "verdadero" '"valor"

'If BOMBA1 = True Then 'Frame1.BackColor = vbGreen 'Label25.Caption = BOMBA1 'Else 'Frame1.BackColor = vbRed 'Label25.Caption = BOMBA1 'End If

'llamado de variable ' valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.0,BOOL,RW", "valor") ' BOMBA1 = valor

' If BOMBA1 = True Then ' Frame1.BackColor = vbGreen ' Label25.Caption = BOMBA1 ' Else

' Frame1.BackColor = vbRed ' Label25.Caption = BOMBA1 ' End If

' If BOMBA2 = "True" Then ' Frame2.BackColor = vbGreen ' Else ' Frame2.BackColor = vbRed ' End If

' If BOMBA3 = "True" Then ' Frame3.BackColor = vbGreen ' Else 'Frame3.BackColor = vbRed ' End If

' DoEvents ' Cambia a otros procesos. 'Loop 'MsgBox "APLICACIN DETENIDA" 'Else ' End 'End If 'End Sub

'Private Sub CommandButton1_Click() 'BOMBA 1 ACTIVAR 'Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.0,BOOL,W", 1, "") 'Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.0,BOOL,W", 0, "")

'valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,M30.0,BOOL,RW", "valor") 'BOMBA1 = "valor" 'If BOMBA1 = "True" Then 'Frame1.BackColor = vbGreen 'Else 'Frame1.BackColor = vbRed 'End If

'End Sub

'Private Sub CommandButton27_Click() 'BOMBA 1 DESACTIVAR 'Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.1,BOOL,W", 1, "") 'Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M22.1,BOOL,W", 0, "")

'valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,Q0.0,BOOL,RW", "valor")

'BOMBA1 = "valor" 'If BOMBA1 = "True" Then 'Frame1.BackColor = vbGreen 'Else 'Frame1.BackColor = vbRed ' Frame9.BackColor = vbRed 'End If

'End Sub

Private Sub CommandButton17_Click() 'VALVULA 1 ACTIVAR Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.0,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.0,BOOL,W", 0, "")

End Sub

Private Sub CommandButton18_Click() 'VALVULA 1 DESACTIVAR Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.1,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M24.1,BOOL,W", 0, "") End Sub

Private Sub INICIAR_Click() Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.0,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.0,BOOL,W", 0, "") valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,M20.0,BOOL,RW", "valor") INICIAR.BackColor = vbGreen PARAR.BackColor = vbRed End Sub

Private Sub PARAR_Click() Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.1,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.1,BOOL,W", 0, "") valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,M20.1,BOOL,RW", "valor") PARAR.BackColor = vbGreen INICIAR.BackColor = vbRed MANUAL.BackColor = vbRed AUTO.BackColor = vbRed

End Sub

Private Sub MANUAL_Click()

Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.2,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.2,BOOL,W", 0, "") valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,M20.2,BOOL,RW", "valor") 'MANAU.Caption = "MANUAL" MANUAL.BackColor = vbGreen AUTO.BackColor = vbRed End Sub

Private Sub AUTO_Click()

Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.3,BOOL,W", 1, "") Call Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCWrite", "2:192.168.10.10:1001:1000,M15.3,BOOL,W", 0, "") valor = Excel.Application.Run("OPCS7200ExcelAddin.XLA!OPCRead", "2:192.168.10.10:1001:1000,M20.3,BOOL,RW", "valor") 'MANAU.Caption = "AUTOMATICO" AUTO.BackColor = vbGreen MANUAL.BackColor = vbRed End Sub

BIBLIOGRAFIAS: -Controlador Lgico Programable (PLC) Curso Tutorial, Universidad de Oriente, Nucleo de Anzotegui. Escuela de ingeniera y ciencias aplicadas: Departamento de Electricidad. -s7200 Manual General, Simens. -s7200 System manual, Simens. -s7200 Examples, Simens. -

You might also like