You are on page 1of 7

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

Conexin fsica: En la figura 1.1, se observa cmo es la conexin fsica


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

Programacin 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 comunicacin y a su vez se tomen las operaciones de control
de acuerdo a la programacin realizada. Es importante recordar que se
debi agregar la librera de OPC para evitar errores en la compilacin. 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 funcin de llamada o CallBack del OPCItem
*/
bool callback(const char *itemID, const opcOperation opcOP, const bool value){
static bool ledValue = false;
/*
* Si la operacin 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

Creacin 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 configuracin en la conexin 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

Configuracin 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 despus 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

Configuracin de las animaciones del interruptor: Luego de realizar el


paso anterior, se le da clink en animaciones, despus 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, despus se
despliega la barra de ninguna funcin, se busca la de procesamiento de bits
y se escoge la opcin 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,
despus se despliega la barra de ninguna funcin, se busca la de
procesamiento de bits y se escoge la opcin 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: Despus de que se termin de configurar todo los


parmetros, 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

You might also like