Simatic 1200 Cliente ModbusTCP

Siguiendo las prácticas que hemos realizado con Modbus TCP, en esta ocasión vamos a configurar el S7-1200 como cliente Modbus TCP y como servidor utilizaremos el Simulador, una vez comprobado su funcionamiento, en la próxima configuraremos un S7-300 como Servidor y el 1200 como cliente.

Creamos un nuevo proyecto en enl TIA Portal y lo primero que configuramos es la direccion IP del PLC

Seguidamente vamos a habilitar la marca de reloj, la cual cada bit del byte que hayamos configurado parpadeara a una frecuencia especifica para cada bit y habilitaremos el byte de sistema, en el cual tenemos un bit que siempre es TRUE y un bit que siempre es FALSE entre otros

Una vez realizado esos pasos, que son opcionales, el motivo de ello es que usaremos un bit del reloj, para hacer la petición al Servidor. Abrimos nuestro OB1 y dentro de las instrucciones nos dirigimos a Comunicacion, dentro de este directorio a Modbus TCP y insertamos el MB_CLIENT, al insertarlo automaticamente nos pide que le asociemos un DB y por defecto seleccionamos el que nos muestra.

En la parametrizacion del Bloque vamos a ir configurando, REQ, cada vez que cambie este bit, hará una peticion al Servidor, aqui es donde hemos usado el bit de reloj, que previamente habiamos habilitado. DISCONNECT lo dejamos en 0, FALSE porque vamos a utilizar la dirección IP y puerto que hayamos configurado para establecer la comunicación. DONNECT_ID tiene que ser un identificador único e irrepetible, seguidamente tenemos que especificar la direccion IP en sus cuatro octetos IP_OCTET, el IP_PORT como ya hemos comentado, por defecto es el puerto 502. MB_MODE 0 nos sirve para acceder a los holdings registers, inputs registers, inputs bits y outputs bit, con lo cual como nosotros queremos acceder a los holdings registers es el modo que nos interesa, seguido de MB_DATA_ADDR que es la dirección de inicio de los registros que nos interese y en MB_DATA_LEN la longitud de datos, en este caso 10, significa que leeremos del registro 40001-40010. Los datos que leamos los vamos a guardar en la siguiente area de memoria configurada en MB_DATA_PTR, lo configuramos en formato puntero, apuntando a la primera direccion y la longitud de datos. El bit de DONE lo tendremos a TRUE cuando se haya leido correctamente, al igual que BUSY lo tendremos a true cuando este una operacion en progreso, el bit de ERROR nos indicara que hay un error y en STATUS obtendremos el código de error

Ahora vamos a crear las variables donde guardaremos los datos leidos del Servidor Modbus, y como hemos especificado será en el word Mw100 y seguido de 9 registros mas

Una vez realizados estos pasos ya podemos transferir a nuestro PLC, pero previamente hemos iniciado el simulador, se puede observar que no hay ningún cliente conectado, ya podemos transferir

Una vez transferido el proyecto y puesta la CPU en RUN, nos conectamos Online para visualizar el funcionamiento, y ya podemos observar que tenemos un cliente conectado al simulador

Ahora ya podemos visualizar los tags y observar que hemos registrado los valores, si vamos cambiando los valores en el simulador observaremos que se van actualizando los valores en los registros

10 de Marzo del 2013