Professional Documents
Culture Documents
ITST
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.
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:
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
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.
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
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.
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
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.
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
que esta comunicacin sea transparente para el programa del PLC, al direccionar los dispositivos como Entradas o Salidas
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.
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)
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.
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:
hasta 88 E/S.
152 E/S.
RS485 Modbus.
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:
analgicas y contaje. En todos los casos el primer emplazamiento est reservado para un mdulo de formato estndar.
La gama de entradas/salidas digitales en rack ofrece varias posibilidades de conexin para responder a todas las necesidades:
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:
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:
termopar)
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:
requieren funciones auxiliares de regulacin, tal como temperatura, mquinas de embalaje, mquinas para tratamiento de superficies, prensas, etc.
Los autmatas Modicon TSX Micro ofrecen tres posibilidades para efectuar operaciones de contaje:
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.
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).
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.
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:
un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas.
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.
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.
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.
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.
que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener.
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.
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:
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.
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.
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.
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.
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++.
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.
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.
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
End Sub
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
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
End Sub
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
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
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
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
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
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, 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
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
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 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, "")
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
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
'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
'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
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, "")
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
CommandButton50.BackColor = &H8000000F
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
'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
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.
'################ 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.
'################ 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.
'""""""""""""""""""""""""""""""""""""""""""""""""""""" '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, "")
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
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
'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
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
'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
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
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
'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
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
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)
'################ 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)
'################ 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, "")
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, "")
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
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
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
'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
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
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
'Dim valor1 As Single 'Byte 'Dim cadena, uno, dos, tres, cuatro, cinco, seis, siete, ocho 'valor cadena a convertir
'Label39.Caption = uno
'If foco = CBool(cadena = 255) Then 'Label38.BackColor = vbBlack 'Else 'Label38.BackColor = vbBlue 'End If
End Sub
'End Sub
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
'End Sub 'PARAR.BackColor = vbRed 'Dim TiempoPausa, Inicio, Final, TiempoTotal 'Dim valor As Boolean 'VARIABLES
'iniciacuenta = True
'TiempoPausa = 10 '100 ' Asigna hora de inicio. 'Inicio = Timer ' Establece la hora de inicio. 'Do While iniciacuenta = True 'Timer < Inicio + TiempoPausa
'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
' 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, "")
'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
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
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. -