1. Escribir un dato digital del WinCC al Arduino Con el siguiente ejercicio se pretende enviar un dato digital o tipo bool del WinCC al arduino y que sea visible por medio de un led y del cambio de color del interruptor virtual del software SCADA. Para lo anterior es necesario conseguir los siguientes elementos: Placa Arduino con su respectivo cable USB. Resistencia de 220 Ω. Diodo Led. Cables UTP o cable DuPont. ProtoBoard Computador con Wincc e IDE de arduino y el ArduinoOPCServer, instalado previamente. Una vez que se obtuvieron los anteriores elementos, se procederá a realizar el ejercicio mediante los siguientes pasos: 1.1 Conexión física: En la figura 1.1, se observa cómo es la conexión física de los elementos. Se activara el pin digital 33 de la placa de arduino, la cual está conectado a una resistencia en serie y está a un diodo led. Posterior a esto, se conecta el arduino al computador. Figura 1 1.2 Programación en el IDE de Arduino: Una vez realizado el paso anterior, se procederá a enviar el sketch o programa para que se realice el proceso de comunicación y a su vez se tomen las operaciones de control de acuerdo a la programación realizada. Es importante recordar que se debió agregar la librería de OPC para evitar errores en la compilación. Para efectos de prueba se tomara un ejemplo ya hecho, que se encuentra en el menú de Archivo/Ejemplos/OPC/WriteDigital del IDE de arduino. El programa es el siguiente: #include <OPC.h> #include <Bridge.h> #include <Ethernet.h> #include <SPI.h> /* *Declarando los objetos OPC */ OPCSerial aOPCSerial; /* * Inicializa la variable global a utilizar y su tipo */ int ledPin = 33; /* *Crear la función de llamada o CallBack del OPCItem */ bool callback(const char *itemID, const opcOperation opcOP, const bool value){ static bool ledValue = false; /* * Si la operación es un comando de escritura de Cliente OPC */ if (opcOP == opc_opwrite) { ledValue = value; if (ledValue) digitalWrite(ledPin, HIGH); else digitalWrite(ledPin, LOW); } else /* * Lea el estado del Led */ return ledValue; } void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); /* * Inicializacion del objeto OPC */ aOPCSerial.setup(); /* * Declarando el objeto OPCItem */ aOPCSerial.addItem("led",opc_readwrite, opc_bool, callback); } void loop() { /* *Comandos del proceso OPC */ aOPCSerial.processOPCCommands(); } 1.3 Creación de la variable en el WinCC: Una vez que se compilo y envió el programa a la placa de Arduino, se procederá a ejecutar el programa de WinCC. Como ya se realizó la configuración en la conexión de este, se procederá a crear la variable, como se observa en la figura 2. Es importante mencionar que para que el WinCC encuentre la variable a usar es necesario que el arduino esté conectado y con el programa cargado. Figura 2 1.4 Interruptor en una imagen de WinCC: Cuando se crea la variable, se podrá agregar un interruptor el cual permitirá prender y apagar el led. Para ello, se dará clink en Imagen_1 el cual abrirá una imagen o pantalla y en este se dará clink en el interruptor como se observa en la figura 3. Figura 3 1.5 Configuración de las propiedades generales del interruptor: Ya habiendo desarrollado el paso anterior, se procederá a configurar las propiedades generales; para ello se da clink en el interruptor y luego en general y después se cambia la forma en interruptor con texto, la variable a controlar será Led y en texto activado se escribe ON y texto desactivado se escribe OFF como se observa en la figura 4. Figura 4 1.6 Configuración de las animaciones del interruptor: Luego de realizar el paso anterior, se le da clink en animaciones, después en apariencia y se activa y la variable que lo controla será led, el tipo de dato será bit. Una vez realizado lo anterior, el cuadro derecho en la columna de tipo se escribe 0 y en el color de fondo se escoge el rojo y luego se escribe el 1 y se escoge el verde como se evidencia en la figura 5. Figura 5 1.7 Activar los eventos del interruptor: Habiendo realizado el paso anterior, se procederá a darle clink en eventos, luego en activar, después se despliega la barra de ninguna función, se busca la de procesamiento de bits y se escoge la opción de ActivarBit. Una vez hecho lo anterior, se escoge la variable Led como se muestra en la figura 6. Figura 6 1.8 Desactivar los eventos del interruptor: Habiendo realizado el paso anterior, se procederá a darle clink en eventos, luego en desactivar, después se despliega la barra de ninguna función, se busca la de procesamiento de bits y se escoge la opción de DesactivarBit. Una vez hecho lo anterior, se escoge la variable Led como se muestra en la figura 7. Figura 7 1.9 Iniciar el Runtime: Después de que se terminó de configurar todo los parámetros, tanto del WinCC como del Arduino, se podrá iniciar el Runtime y se observara una pantalla inicial como la de la figura 8. Como se visualiza, el interruptor empieza de color rojo e indicando que su estado es OFF y adicional a eso el diodo Led debe estar apagado. Pero luego de presionarlo, este cambia de estado, pasa a ON, el interruptor cambia de color y el diodo Led se encenderá, como se observa en la figura 9. Figura 8 Figura 9
© Copyright 2024