Go Down

Topic: Tutorial Comunicación WinCC V7.2 con Arduino 1.5.6-r2 Parte 1 (Read 38 times) previous topic - next topic

GuillemR

MANUAL PARA ENLAZAR WinCC V7.2 con Arduino 1.5.6-r2



1.      . Configuración WinCC:

a)      Creación del proyecto.
b)      Configuración del nodo de conexión Modbus TCP.
c)      Declaración de variables.
d)      Creación de pantalla.
e)      Visualización de variables y configuración.

2.      . Configuración Arduino:

a)      Utilización de la librería  "Mudbus.h".
b)      Realización de programa.
c)      Programa.



Configuración WinCC:

Creación del proyecto:
Se supone que ya tenemos WinCC 7.2 instalado con SIMATIC NET para asegurarnos que no tendremos problemas con los drives de Motbus TCP/IP y digo que se supone que está instalado porque esto daría para otro manual.
En este caso vamos a hacer un proyecto monopuesto, vamos a lo sencillo, el que quiera experimentar……..

Captura_1

Le damos un nombre, en este caso Arduino.

Captura_2

Ya tenemos el proyecto Iniciado.
Configuración del nodo de conexión Modbus TCP.
Ahora nos aparecerá una pantalla en la que en el marguen izquierdo nos saldrá un árbol en donde aparece  Administración de variables clicamos dos veces y nos saldrá otra ventana.


Captura_3_1

En esta ventana tenemos un árbol en el cual también tenemos Administración de variables. Clicamos con el botón derecho y agregamos un driver Modbus TCPIP.

Captura_3_1

Ahora ya tendremos agregado el drive de Modbus TCPIP le podemos cambiar el nombre en este caso le ponemos Arduino.

Captura_4_1

Una vez le hayamos cambiado el nombre, hacemos clic con botón derecho y pulsamos parámetros de enlace.

Captura_5_1

Ahora sí, aquí es donde viene lo bueno. Aquí es donde tendremos que poner la IP del esclavo Modbus, en nuestro caso IP: 192.168.0.69 por el puerto 502, lo demás no lo tocaremos.

Captura_6_1


Declaración de variables.
Bien ahora ya tenemos el drive o nodo configurado, vamos a declarar variables, para ello vamos a la parrilla que nos sale a la derecha y al lio. Nombre de variable, tipo de dato, cuidado con esto es muy importante ya que Arduino nos va enviar enteros con  signo, también puede enviar booleanos, pero yo utilizo enteros sin signo para enviar booleanos, multiplexo en arduino y desmultiplexo en WinCC.

Captura_7_1

Si clicamos en los puntos suspensivos de la pestaña Dirección nos saldrá una ventanita donde debemos seleccionar el tipo de área de memoria en este caso 4x Holding Registers  400001 es donde iremos a leer el valor de Arduino tenemos que tener en cuenta que en Arduino vamos a escribir en un array donde el primer registro es 0 mientras que en WinCC es  1.
También se pueden separar las variables en grupos.


Captura_10_2

Ordenamos las variables y les asignamos las áreas de memoria.

Captura_11.1


Creación de pantalla.
Ahora iremos a crear lo que nos interesa, pantallas.
Vamos a ir a lo más básico, enviar y recibir dos tipos de datos, enteros y booleanos entre Arduino y WinCC.
De momento vamos a por la pantalla, en Graphic Designer - Nueva imagen


Captura_12


Nos aparecerá un nuevo archivo en la ventana de la derecha en el que tendremos que clicar con el botón derecho y clicar en Definir imagen como imagen inicial no hace falta explicar que hace esto.


Captura_13_1


Visualización de variables y configuración.
Una vez hecho esto abriremos el archivo que ya habremos cambiado de nombre, en este caso lo he nombrado Principal, con la extensión *.Pdl.


Captura_14

Seleccionaremos, en el árbol de la izquierda, donde nos aparecen muchos de los controles de WinCC. Campo E/S. Una vez que ya tengamos seleccionado este campo iremos a la parrilla central para marcar un rectángulo.


Captura_15_1

Nos aparecerá una ventana que nos mostrará que Variable queremos poner, tiempo de Actualización, si es Entrada, Salida o E/S Tamaño de fuente Tipo de fuente. Color.


Captura_16_1

Seleccionamos La variable del desplegable, Integer_IN y en el tipo de campo marcamos Salida.


Captura_18_1

En la ventana inferior tenemos una pestaña Propiedades donde podremos configurar el objeto seleccionado.


Captura_19_1


Captura_20_1

Para las entradas y salidas booleanas tendremos que modificar el formato de dato y el formato de salida para poder ver los bits correctamente.


Captura_22_1

El resultado final sería este.


Captura_22_2  

Importante: Las variables de Arduino à  WinCC las tendremos que marcar como Salidas y las variables de WinCC à Arduino como Entradas .


Captura_18_2


Ni sí, ni no, tot el contrari.

GuillemR

Configuración Arduino:


Utilización de la librería  "Mudbus.h".

Nos descargamos la librería de https://code.google.com/p/mudbus/downloads/list
Abriremos el ejemplo que trae la misma librería y la modificaremos. Suponemos que ya sabemos instalar librerías en Arduino, http://www.arduino.cc/en/Guide/Libraries.
Muy importante utilizar la versión de Arduino 1.5.6-r2 las versiones posteriores no compila la librería.


Realización de programa.

Bien ya tenemos la librería instalada en nuestro Arduino 1.5.6-r2, vamos a abrir el ejemplo y a modificar cuatro cosas para comunicar con WinCC.
Lo primero modificar la IP que trae por defecto y poner la que hemos configurado en el drive de WinCC IP: 192.168.0.69, también modificaremos el gatway: 192.168.0.1.


Captura_A1

Bien, ahora vamos a trabajar un poco con las variables booleanas, para ello vamos a crear una nueva pestaña, en este caso IO_Modbbus.
El fin de esto es enviar o recibir 16 valores booleanos en una sola transferencia, para ello vamos a crear un array de 16 valores booleanos D_OUT_Modbus[15] en el caso  de las salidas digitales y D_IN_Modbus[15] para las entradas, tener en cuenta que el primer registro es 0.
Utilizaremos las funciónes bitWrite http://www.arduino.cc/en/Reference/BitWrite.
bitRead http://www.arduino.cc/en/Reference/BitRead. para poder realizar todo esto.

Declaramos las array y los enteros que van a contener esos valores.


Captura_A2

Declararemos también un entero que es donde almacenaremos el valor recibido por WinCC,


Captura_A9

Introducimos el valor del bit en el entero para el envío a WinCC.


Captura_A3

Extraemos los valores del entero recibido de WinCC.


Captura_A4

Todo esto en la nueva pestaña, donde habremos creado una función que será llamada desde inicio de programa.


Captura_A11

Aquí está la llamada.


Captura_A6

En ésta parte colocaremos los envíos y recepciones de datos.


Captura_A12

Seguidamente haremos la comprobación de los datos recibidos y enviados para visualizar en Arduino que realmente tenemos comunicación.


Captura_A8

Visualizar por serie el valor del entero enviado desde WinCC.


Captura_A10
Ni sí, ni no, tot el contrari.

GuillemR

Decir que también funciona con WinCC 7.3, que además tiene la función Webserver para poder ver todas las pantallas que hagamos en WinCC en cualquier dispositivo tablet, Iphone, Android, PC. etc.

Aquí un enlaze donde explica como configurar para hacer esta función, una página muy recomendable de mi amigo Jose Manuel Luque.

Aquí esta todo el proyecto:

https://www.dropbox.com/s/2wkdom424qev6ew/Manual%20WinCC%20Arduino.rar?dl=0

Ni sí, ni no, tot el contrari.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy