CONFIGURACIÓN DEL HARDWARE
Como en todo proyecto abrimos la aplicación HWCONFIG y vamos colocando cada uno de los módulos en el bastidor.
Por ejemplo, podemos colocarle a una CPU 314IFM una CP 343-1 Advanced-IT con referencia 6GK7 343-1GX21-0XE0 en el spot 4, y aparecerá la siguiente ventana.
Le damos una dirección IP y una máscara de red. Además crearemos una red nueva (dar al botón nueva y en la ventana que se abre darle un nombre o dejar el que viene por defectoEthernet(1)).
En el proyecto crearemos el segundo autómata de forma similar (también con CP 343-1 Advence) teniendo cuidado de darle una dirección IP diferente, y que la máscara de red sea la adecuada para que los dos autómatas estén dentro de la misma subred.
Si desde el HW-CONFIG pulsamos encima de la CP
Se abrirá la siguiente ventana:
Hacemos doble clic
Se podrá ver y cambiar las propiedades de ETHERNET (dirección IP, máscara de subred, …)
Se pude ver si esta CP además de Ethernet puede comunicar por PROFINET
Importante: cada CP debe tener un nombre diferente dentro de la misma red.
El siguiente paso será el configurar los enlaces. Para ello abriremos la aplicación NETPRO. Que tendrá la siguiente apariencia:
Como puedes ver, los dos autómatas están conectados desde la CP(con un cuadro verde) a la misma red ethernet (línea verde con nombre Ethernet(1)). Si alguna de las CPs no estuviera conectada a la red se puede hacer desde aquí, pinchando el cuadro verde y arrastrando sin soltar hasta la red ethernet.
Para crear los enlaces tenemos que hacer un clic encima de una de las CPUs. Por ejemplo, en la primera y el NETPRO quedará como sigue:
Si hacemos doble clic en la primera línea, debajo de ID local, nos aparece la siguiente ventana: Hemos hecho clic en esta CPU, por eso está en color gris
Zona para crear los enlaces
Doble clic para definir un enlace
Al escoger el interlocutor, lo más sencillo es escoger una CPU que ya está definida en nuestro proyecto. Por otro lado, cuando tenemos muchos autómatas y queremos enviar los mismos datos a un grupo de ellos, la opción a escoger sería hacer Multicast, hacer Broadcast es enviar algo a todos los autómatas existentes en la red.
A continuación explicaremos las diferencias entre los enlaces ISO, TCP y UDP. Enlace ISO-on-TCP:
o Está previsto para transmitir datos de forma segura a través de diferentes redes. o El servicio ISO-on-TCP cumple con la norma Transmisión Control Protocol/Internet
Protocol (TCP/IP).
o La seguridad en la transferencia es muy alta gracias a mecanismos de repetición automática y de verificación adicionales. El interlocutor tiene que confirmar la recepción de los datos.
Enlace TCP:
o En el interface SEND/RECIVE, el CP puede comunicarse con casi todos los equipos con tecnología Ethernet.
o Cumple con la norma Transmisión Control Protocol/Internet Protocol (TCP/IP). Enlace UDP:
o La transmisión no exige acuse de recibo. o Se pueden hacer enlaces Multicast.
o Los enlaces Broadcast pueden saturar la red, la alternativa es usar Multicast.
EJEMPLO A: enlace TCP
Después de escoger como interlocutor el autómata que está en nuestro mismo proyecto y como enlace un TCP (como mostramos en la figura anterior), nos aparecerá la siguiente venta:
Interlocutor: podemos escoger entre - CPU 314 IFM del proyecto actual - una CPU no especificada
- a todas las estaciones broadcast - a todas las estaciones multicast - una CPU de otro proyecto.
Nos interesa comunicarnos con la CPU 314 IFM de nuestro proyecto.
Tipo de enlace: podemos escoger entre - Enlace S7
- Enlace ISO - Enlace UDP - Enlace TCP - Y otros muchos
Si pinchamos en la pestaña de direcciones tenemos la siguiente ventana:
EJEMPLO 2: enlace UDP con Multicast
En la siguiente tabla puedes ver 4 autómatas que trabajan en dos grupos Multicast.
Nombre PLC1 PLC2 PLC3 PLC4 Dirección IP 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 Grupo Multicast 1 224.0.1.1 Puerto Multicast 1 4000 Grupo Multicast 2 224.0.1.2 Puerto Multicast 2 4001
Cuando el PLC3 envía algo a la dirección 224.0.1.1, los datos le llegarán tanto al PLC1 como al PLC2. Pero si los datos son enviados a la dirección 224.0.1.2 los datos le llegarán al PLC4. Por otro lado decir que las direcciones 224.0.1.1 y 224.0.1.2 son direcciones reservadas para hacer Multicast y no se pueden asignar a ningún autómata.
Lo que tendremos que hacer desde el NETPRO es:
En PLC1 un enlace con interlocutor Multicast, tipo de enlace UDP, en la ventana de direcciones poner la dirección Multicast 224.0.1.1 y puerto 4000.
El identificador del enlace(ID) es muy importante y lo necesitaremos cuando programemos el OB1. En este ejemplo es el enlace 1.
La dirección de la CP(LADDR) también es importante y también lo necesitaremos cuando programemos el OB1. En este ejemplo es W#16#100 que corresponde al slot4.
En esta pantalla nos informa que el enlace será entre las direcciones IP 192.168.0.1 y 192.168.0.2; lo único que tenemos poner los puertos de comunicación. El puerto escogido no se podrá repetir en futuros enlaces TCP que hagamos en este autómata.
En PLC2 un enlace con interlocutor Multicast, tipo de enlace UDP, en la ventana de direcciones poner la dirección Multicast 224.0.1.1 y puerto 4000.
En PLC3 tenemos que crear dos enlaces: un enlace con interlocutor Multicast, tipo de enlace UDP, en la ventana de direcciones poner la dirección Multicast 224.0.1.1 y puerto 4000; y otro enlace con interlocutor Multicast, tipo de enlace UDP, en la ventana de direcciones poner la dirección Multicast 224.0.1.2 y puerto 4001.
En PLC4 un enlace con interlocutor Multicast, tipo de enlace UDP, en la ventana de direcciones poner la dirección Multicast 224.0.1.2 y puerto 4001.
PROGRAMACIÓN DE LOS EQUIPOS
Una vez creados los enlaces tenemos que programar en el OB1 de cada uno de los autómatas la comunicación. Para ello tenemos que pedirle los datos (que nos envían otros autómatas) a nuestra CP usando la función FC6 (AG_RECV) y tenemos que enviarle a nuestra CP los datos que queremos hacer llegar a los otros autómatas con la función FC5 (AG_SEND).
La función FC5 AG_SEND(la puedes encontrar en la LibreríasSIMATIC_NET_CPCP300) tiene la siguiente apariencia:
La función FC6 AG_RECV(la puedes encontrar en la LibreríasSIMATIC_NET_CPCP300) tiene la siguiente apariencia:
ACT BOOL Con ACT=1 se envían los datos, con ACT=0 se actualizan las salidas DONE, ERROR y STATUS
ID INT Es el número de enlace. Cuando se define en el enlace en el NETPRO ya habíamos dicho que este dato lo necesitaríamos. LADDR WORD Dirección de la CP. W#16#100 si está en el slot4, W#16#110
si está en el slot5,…
SEND ANY Se indica la zona de memoria de envío, poniendo la dirección inicial y cuantos bytes enviamos. Por ejemplo P#M14.0 byte 10, podremos enviar 10 bytes siendo el primero MB14. LEN INT Tamaño de datos a enviar. Aunque tengamos una zona de 10
bytes para poder enviar (definido en SEND), igual nos interesa enviar menos.
DONE BOOL DONE=0petición en curso; DONE=1petición ejecutada. ERROR BOOL ERROR=0no tenemos error; ERROR=1existe un error STATUS WORD Código de estado. Indica un valor hexadecimal con un código
PROFINET
Profinet es la evolución lógica entre Profibus y Ethernet, cogiendo lo mejor de cada uno. Los objetivos de Profinet son:
Ser un estándar abierto basado en Ethernet para automatizar.
Que los componentes de Profinet y Ethernet se puedan usar en la misma red. Automatización en tiempo real (algo que Ethernet no garantiza).
Ahorro en ingeniería y puesta en marcha.
Usar los equipos ya adquiridos para Profibus en una nueva red de Profinet. Ser más rápido que los buses existentes.
En Siemens se habla de dos tipos de Profinet:
Profinet I/O: comunicación entre autómatas y dispositivos de campo.
Profinet CBA: adecuado cuando tenemos que automatizar varias máquinas. Lo que trata es de encapsular toda la programación de una máquina en un bloque, este bloque puede tener una salida para comunicarse con el siguiente bloque(máquina) que tendrá esta línea como entrada.
Sabiendo programar Profibus DP es muy fácil programar con Profinet I/O. En Profinet I/O también tenemos dos posibilidades para que un autómata se pueda comunicar. O compramos una CP de Profinet o nos compramos un autómata con puerto integrado. Cuando tenemos CP tendremos que usar las funciones PN_I/O_SEND y PN_I/O_RECV (hacen lo mismo que DP_SEND y DP_RECV en Profibus) y con puerto integrado el las entradas y salidas distribuidas se guardan como entradas y salidas del autómatas en los huecos libres como se hacía en Profibus.