Simulación S7 OpenModbus/TCP

Esta práctica se la dedico a Raul, por haberme hecho participe en un proyecto donde tiene que implementar una Red Modbus TCP con un Simatic S7-300 con CP 343-1 Lean, yo para las pruebas voy a utilizar el software WinAC donde es posible implementar la red aunque con diferentes bloques. Siemens dispone de OPEN MODBUS/TCP CP para cuando se trabaja con una CP 343-1, sin embargo si trabajas con una CPU que dispone de los puertos DP/PN se utiliza el S7 OpenModbus TCP que será el que utilizare en estas pruebas, conjuntamente con el Wizard que puedes descargar de Siemens para crear el bloque de datos con los parametros

Lo primero que voy a mostrar será el PLC con su dirección IP y que función cumpliara en la red Servidor o Cliente, tambien hay que saber la direccion IP del dispositivo o dispositivos y puerto, normalmente el puerto es el 502 para Modbus TCP

Para este ejemplo antes de implementarlo voy a comunicar con la IP 192.168.1.101, esté será el simulador ModRSSim actuando como Servidor y quiero acceder a los holdings registers 40001-40010

Una vez configurada la IP y los datos del Servidor ejecutamos el Wizard para crear el bloque indicado anteriormente, en el primer paso seleccionamos el proyecto en el que estemos trabajando y el directorio de los bloques, automaticamente se detecta la IP, pasamos al siguiente paso y se detecta si hay configurado algún enlace, como no es el caso seleccionamos New y next ->

Enter your text here

El próximo paso es seleccionar si nuestro PLC es Servidor o Cliente, en este caso es Cliente, con lo cual dejamos tal cual y pasamos a siguiente. Aqui nos asigna un ID de nuestra conexión, seleccionamos el radio button de Active y especificamos la IP del Servidor y el tipo de S7 que disponemos para la interface

Especificamos el puerto del Servidor Modbus, como se ha comentado por defecto es el 502, en caso contrario recomienda el manual asignar uno del rango 2000

La siguiente parte es donde vamos a configurar a que datos queremos acceder, tenemos la posibilidad de configurar desde 1 como mínimo hasta 8, seleccionamos el tipo de datos, la direccion de inicio y la direccion final, conjuntamente con el DB asociado a esos datos, es decir, cuando nos interese acceder al area de datos 1 configurado, en el FB102 estando este en el OB1 o OB35, que sera donde se ejecutan los datos del runtime iremos cambiado el tipo de datos a los cual queremos acceder, yo para probar solo he configurado 1 zona de datos

Para finalizar le indicamos el DB de los parametros que será abierto desde el FB102

Siguiendo el asistente seleccionamos next y nos muestra el enlace creado y finalizamos el asistente, automaticamente se genera el DB2 y se guarda en el directorio especificado al inicio del asistente.

El proyecto que voy a utilizar es el que siemens tiene disponible una vez instalada la libreria, una vez probado ya se adaptara según las necesidades. Pero siguiendo el manual se utiliza el OB100 donde se hace una primera llamada al FB102, aunque este mismo es llamado desde el OB1 o en su defecto se podria llamar desde el OB35, el FB102 necesita de su DB de instancia DB102 y este a su vez abre el DB2 y llama a los diferentes FB, ya que para una comunicación con profinet integrado se utiliza el TSEND,TRCV,TCON y TDISCON, el OB121 es necesario sino se dispone de la licencia correspondiente, pero para probarlo funciona aunque en la CPU parpadea el led de error

En el DB1 estan todos los datos disponibles para hacer las pruebas pertinentes, para probarlo solo necesitamos habilitar el bit DB1.DBX12.1 habiendo previamente parametrizado a que zona de datos queremos acceder,tipo de datos, direccion de inicio y longitud, para los holdings registers es el 3 la direccion de inicio la 0 tal y como configuramos en el Wizard y la longitud 10

Nos ponemos Online y forzamos los valores. ya podemos observar que la conexion se ha establecido, el estatus Modbus A090 indica que estamos en version Demo y se han registrado los datos en el DB10 según se ha configurado

Como servidor Modbus usamos el ModRSSim que aqui puedes descargar .Lo primero que hacemos es un ping para comprobar la red y estos son los datos que habia introducido.

3 de Marzo del 2012