Simatic 1200 Servidor ModbusTCP

En la practica anterior configuramos WinAC equivalente a nuestro PLC con interfaz Profinet como cliente Modbus TCP, como servidor utilizamos un simulador, en este caso vamos a sustituir el simulador por un S7-1200 que actuara como Servidor.

Vamos a partir de un nuevo proyecto, donde lo primero que vamos a configurar es la dirección IP y agregarlo a una red, en este caso esta en la misma subred, para recordar el cliente tiene la IP 192.168.1.100

A partir del TIA Portal V.11 SP1, si mal no recuerdo esta disponible los bloques de función para comunicación Modbus TCP, nevegamos hasta el directorio y insertamos en nuestro OB1 el MB_SERVER, automaticamente nos pide asociarle un DB, por defecto asignamos el que nos aparece.

La parametrización del módulo es la siguiente, DISCONNET lo dejamos en false, para una comunicación pasiva, CONNECT_ID tenemos que asignarle un número inequivoco e irrepetible en futuras llamadas, IP_PORT, por defecto es el 502 como ya hemos comentado, MB_HOLD_REG es el parámetro donde debemos asignarle un Puntero a la dirección de memoria que nos interese seguido de la longitud, los parametros NDR hace referencia a nuevos datos, tenemos true si el cliente ha escrito, DR Leer datos, true si el cliente ha leido datos, en ERROR tendremos true si se ha producido algún error al llamar a la función, y en STATUS guardaremos el código del error producido.

Siguiendo el ejemplo vamos a servir 10 Registros, correspondientes a MW100 ... MW118, que se guardaran en el Cliente en DB10 que se creo para tal fin

Creamos las variables, y en el OB1 usamos la instruccion move para insertar  los valores a los siguientes registros, esta guia esta orientada para dar una idea de como seria el Servidor Modbus, en el proyecto real a un servidor modbus para adquirir esos valores de unos sensores de campo, caudalimetros, Ultrasónicos, sensores de conductividad etc...

Una vez realizado estos pasos, donde habría que haber implementado la lógica necesaria y la configuración del MB_SERVER, ya podemos compilar y cargar el proyecto a nuestro PL

Una vez transferido nos ponemos online y ya podemos observar que en la llamada al MV_SERVER no se ha producido ningun error y todo es correcto, ahora esta a la espera de una peticion por parte del Cliente

Desde el cliente, forzamos una peticion de datos y ya se puede observar como en el DB10.DBW 0 corresponde el valor de MW100 y asi correlativamente una longitud de 10 Registros. Para la próxima practica, una vez adquidos los registros del Servidor Modbus, haremos un escalado para aplicar la lógica de programación al programa y para visualizar los datos en el Scada.

6 de Marzo del 2013