COMUNICACIÓN MODBUS TCP ENTRE DOS PLCS
En este tutorial se describirán los pasos a seguir para efectuar una
comunicación modbus tcp entre dos plcs de la marca SIEMENS modelo S7-1200;
las operaciones a efectuar para la conexión entre los mismos y un ejemplo de
programa en el que se efectúa una comunicación entre ellos.
1º- Se habrán de conectar el PC y los PLCS con cables RJ45 a través de un SWITCH.
A continuación se comenzará con la creación de un proyecto:
Para la creación de un proyecto, se pondrá en marcha el programa TIA_PORTAL, y en la
pantalla de crear proyecto se dará un nombre a dicho proyecto, se le dará la ruta donde se guardará,
así como el nombre del autor y los comentarios, si procede.
Tras ello se pulsará Crear.
2º- Una vez creado el proyecto se pulsará sobre Agregar un dispositivo de la rama
Dispositivos y redes en el árbol Iniciar.
En la siguiente pantalla se pulsará sobre el botón de Agregar un dispositivo.
Se abrirá una nueva pantalla en la que se dará nombre y se configurarán los dispositivos:
Se pulsará sobre la ventana en que aparece PLC y en este caso se le dará el nombre de
MASTER y se seleccionará el dispositivo SIMATIC S7-1200; en CPU se seleccionará el modelo
de la CPU del dispositivo, CPU 1214C AC/DC/Rly, en la opción 6ES7 214-1BE30-0XB0,
asegurándose de que la versión que aparece es la que tiene como firmware el PLC, de no ser así, se
seleccionará la que corresponda abriendo el desplegable y se pulsará sobre Agregar.
Aquí se observa la pantalla de trabajo, en ella se realizará posteriormente la programación de
los PLCS y se terminará la configuración de los mismos para la conexión.
Seguidamente se procederá a configurar el otro PLC pulsando sobre Agregar dispositivo
en la ventana Árbol de proyecto.
En esta ocasión realizaremos los mismos pasos que para el PLC MASTER, pero se
nombrará como SLAVE; el resto de la configuración se realizará igual.
Tras ello se pulsará Aceptar.
A continuación se le asignarán tanto la Signal Board como los octetos de la IP.
Se observará en la ventana central, en Vista de dispositivos aparece el PLC SLAVE, así que
se pulsará sobre el desplegable de Signal Board de la ventana Catálogo de hardware. Después
sobre el desplegable de AQ, tras ello sobre el desplegable de AQ1 x 12bits y se hará doble click
sobre la Signal Board 6ES7 232-4HA30-0XB0.
Se observará que el recuadro a cambiado de color.
Tras haber configurado por completo la CPU del PLC, así que se pasará a asignar la IP
pulsando sobre la base del conector del cable RJ45 que aparece el el dibujo del PLC, se pulsará
sobre la pestaña Propiedades y en Direcciones Ethernet, se pulsará el botón Ajustar dirección IP
en el proyecto y se rellenarán las casillas de Dirección IP con [Link] y la de Másc. Subred
con [Link].
Una vez concluida la configuración del SLAVE, se pulsará en desplegable en el que aparece
este nombre, siempre dentro de la ventana central, y se seleccionará el MASTER en el mismo.
Se procederá igual que con el SLAVE para terminar de configurar la CPU con la Signal
Board y la IP que en este caso será la [Link] con la Másc. Subred: [Link].
Tras haber realizado toda la configuración y haberle asignado las IP, habrá de asegurarse de
que el PC tiene una dirección en el rango de conexión con los PLCS. Para ello habrá que dirigirse a
la configuración de redes del equipo y en la conexión de área local, en propiedades, en la pestaña
General, se seleccionará: Protocolo Internet (TCP/IP). Se pulsará sobre Propiedades y en el botón:
Usar la siguiente dirección IP: se rellenarán las casillas de Dirección IP: con [Link] y la
Máscara de subred: con [Link]. Se pulsa sobre Aceptar y cerramos todas las ventanas de
configuración de red.
(NOTA: PARA S.O. WINDOWS XP)
Se maximizará la ventana de TIA PORTAL y se procederá a realizar la conexión de los
PLCS pulsando sobre la pestaña Vista de redes de la ventana central. Aparecerán los PLCS a
conectar, se pulsara sobre Conexiones se seleccionará en el desplegable la opción Conexión TCP.
Ademas, pulsando sobre el icono inmediato a su derecha (Mostrar direcciones), se
visualizarán las IP de los PLCS.
Ahora se procederá a la programación de los PLCS. Para ello se abrirá el desplegable de
MASTER [CPU 1214C AC/..... y después el desplegable Bloques de programa, en la pestaña
Dispositivo de la ventana Árbol de proyecto. A continuación se abrirá el Main [OB1] pulsando
dos veces sobre él con el botón izquierdo del mouse.
Habrá de dirigirse a la ventana Instrucciones, en el desplegable Comunicación,
desplegable Procesador de comunicaciones, desplegar MODBUS TCP y arrastrar el bloque
MB_CLIENTE hasta el centro de la línea del Segmento 1.
Tras ello se pulsará Aceptar.
A continuación se describen los parámetros a cumplimentar para una conexión:
REQ: Variable Input de tipo BOOL. Aquí se realiza la petición con el servidor Modbus
TCP.
DISCONNET: Variable Input de tipo BOOL. 0 para establecer una conexión con la
dirección IP y puerto especificados y 1 para deshacer la conexión.
CONNECT_ID: Variable Input de tipo WORD. ID unívoca para identificar la conexión.
IP_OCTECT_1: Variable Input de tipo BYTE. Primer octeto de la IP del Servidor.
IP_OCTECT_2: Variable Input de tipo BYTE. Segundo octeto de la IP del Servidor.
IP_OCTECT_3: Variable Input de tipo BYTE. Tercer octeto de la IP del Servidor.
IP_OCTECT_4: Variable Input de tipo BYTE. Cuarto octeto de la IP del Servidor.
IP_PORT: Variable Input de tipo WORD. Puerto del Servidor por el que el cliente establece
la conexión.
MB_MODE: Variable Input de tipo USINT. Selección del modo de petición.
MB_DATA_ADDR: Variable Input de tipo UDINT. Dirección inicial de los datos a los que
accede la instrucción “MB_CLIENT”
MB_DATA_LEN:Variable Input de tipo UINT. Longitud de los datos en bits o plalabras.
MB_DATA_PTR:Variable InOut de tipo VARIANT. Puntero del registro de datos Modbus.
DONE:Variable Output de tipo BOOL. Se pone a 1 si la última petición se ha ejecutado sin
errores.
BUSY:Variable Output de tipo BOOL. 0 No se está ejecutando petición y 1 si se ejecuta
alguna petición de “MB_CLIENT”
ERROR:Variable Output de tipo BOOL. 0 si ningún error y 1 si existe algún error.
STATUS:Variable Output de tipo BOOL. Código de error de la instrucción.
Primero se declararán las variables que se necesitarán: En Árbol del proyecto, Dispositivos,
se abrirá el desplegable de Variables PLC y se hará doble click con el botón izquierdo del ratón
sobre Tabla de variables estándar. En agregar se escribirá: Tag_1 como nombre de la variable y se
seleccionará en tipo de datos Bool y como dirección I0.0. Habrá de introducir las variables hasta
que la tabla quede como la que se muestra a continuación:
Una vez realizada la tabla de variables se procederá a introducirlas en el bloque y en el resto
de programa.
Y el resto de los segmentos:
Ahora se realizará el mismo procedimiento con SLAVE:
Sobre el deslizable de SLAVE [CPU 1214C AC/DC/Rly] del Árbol del proyecto, se
procederá a abrir el desplegable de Bloques de programa y se hará doble click sobre Main [OB1].
Habrá de dirigirse a la ventana Instrucciones, en el desplegable Comunicación,
desplegable Procesador de comunicaciones, desplegar MODBUS TCP y arrastrar el bloque
MB_SERVER hasta el centro de la línea del Segmento 1.
Se pulsará Aceptar.
Aquí se describen los parámetros de este bloque:
DISCONNECT: Variable Input de tipo BOOL. 0 puede iniciarse una conexión de
comunicación pasiva y 1 inicialización del establecimiento de la conexión.
CONNECT_ID: Variable Input de tipo WORD. Identificación unívoca de la conexión.
IP_PORT: Variable Input de tipo WORD. Determina el puerto a vigilar para las peticiones.
MB_HOLD_REG: Variable InOut de tipo VARIANT. Puntero del registro de datos
Modbus.
NDR: Variable Output de tipo BOOL. 0 si no hay datos nuevos y 1 si el cliente Modbus ha
escrito datos nuevos.
DR: Variable Output de tipo BOOL. 0 no se han leído datos y 1 si el cliente Modbus ha
leído datos.
ERROR: Variable Output de tipo [Link] si se produce un error durante la llamada a la
instrucción “MB_SERVER”.
STATUS: Variable Output de tipo WORD. Código de error de la instrucción.
Se procederá a la introducción de variables en el bloque.
DESCRIPCIÓN DEL PROGRAMA:
El programa solicita, desde el PLC MASTER (CLIENT), con el movimiento efectuado en el
segmento 2 al poner a (1) la entrada I 0.7 del PLC, que las salidas (AAA0 en hexadecimal,
1010101010101010 en binario) del PLC SERVER (SLAVE) se pongan a (1) (las salidas pares).
Al poner a (1) la entrada I 0.0 en REQ, se efectúa la petición al PLC SERVER (SLAVE).
A DISCONNECT se le ha incorporado el contacto de la entrada I 0.5 para efectuar la
desconexión manualmente.
Habrá que tener en cuenta, para una correcta comunicación, que la entrada I 0.0 del PLC
SLAVE (SERVER) está a (0).
AUTORES: FRANCISCO GIL PEÑA.
AARÓN ROMERO
JORGE GORDILLO
LUIS MANUEL
JOSE ANTONIO SALAMANCA
LUIS MIGUEL DURÁN DÍAZ.
ALUMNOS DEL I.E.S. SANTIAGO APOSTOL
2º SRCA 2012/2013.