Tutorial A...inCC - Software tools for makers

Anuncio
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
Descargar