PLC Siemens SIMATIC S7 como servidor Modbus TCP: un tutorial rápido

El Siemens SIMATIC S7-1200 es más que un simple controlador lógico programable (PLC); es una piedra angular de la automatización industrial. El protocolo Modbus, conocido por su simplicidad y facilidad de implementación, es muy relevante aquí ya que facilita la comunicación industrial y la transmisión de datos dentro de la automatización industrial. Al configurarlo como servidor Modbus, puede compartir los datos con una gateway IoT configurada como cliente Modbus para monitoreo remoto. En esta guía, lo guiaremos a través de todo el proceso, desde la programación del PLC hasta la simulación de la comunicación con un cliente Modbus.

¿Estás listo para desbloquear todo el potencial de tu Siemens S7-1200? ¡Vamos a sumergirnos!

Introducción a Modbus y PLC

Modbus es uno de los protocolos más utilizados en entornos industriales. La mayoría de los PLC industriales, incluido el Siemens SIMATIC S7-1200, admiten múltiples protocolos de comunicación, como Profinet y Modbus. Modbus en sí viene en dos variantes comunes: Modbus RTU (que opera en una arquitectura maestro-esclavo a través de comunicación en serie) y Modbus TCP (que utiliza un modelo servidor-cliente a través de Ethernet).

En este tutorial, demostraremos cómo configurar Modbus TCP IP S7 1200 como servidor y comunicarnos con dispositivos a través de una red industrial. También usaremos un simulador Modbus para probar la configuración.

Requisitos

Requisitos de hardware

1. PLC Siemens S7 (estamos usando el modelo S7-1212C DC/DC/DC, pero cualquier serie S7 con funcionalidad Modbus funcionará)

2. Cable Profinet/Ethernet

3. Fuente de alimentación para el PLC

Requisitos de software

  1. TIA Portal V16 (para programación y configuración de PLC Siemens)
  2. MODBUS ClientX (un cliente Modbus TCP para simular la comunicación)

Configuración de hardware

Para comenzar, conecte la fuente de alimentación al PLC Siemens SIMATIC S7-1200. Utilice un cable Profinet o Ethernet para conectar el puerto Ethernet del PLC a su PC o conmutador de red. Esta conexión es esencial para permitir la comunicación TCP/IP entre el PLC y su cliente Modbus.

Configurar el PLC S7-1200 en el TIA Portal

  1. Inicie TIA Portal y cree un nuevo proyecto en "Vista de proyecto".
Inicie TIA Portal y cree un nuevo proyecto en "Vista de proyecto".
  1. Seleccione "Configurar un dispositivo" y luego "Agregar nuevo dispositivo". Elija su modelo Siemens S7-1200 y la versión de firmware correcta antes de hacer clic en "Agregar".
Añadir un nuevo dispositivo en TIA Portal

En el árbol del proyecto, puede navegar y administrar los componentes de su proyecto, como acceder a propiedades y ajustes de configuración.

Nota importante : si el PLC ya contiene un programa existente, asegúrese de utilizar el mismo firmware y la misma versión de TIA Portal. De lo contrario, es mejor actualizar a la última versión disponible.

Configuración del PLC S7-1200 como servidor Modbus TCP

  1. Navegue hasta el bloque "Principal (OB1)" en la "Vista del proyecto" para comenzar a crear un diagrama de lógica de escalera.
  1. En la ventana "Instrucción" a la derecha, vaya a Comunicación -> Otros -> Modbus TCP .
La instrucción MB_SERVER que se agregará al programa principal.

Arrastre la MB_SERVER a su diagrama de lógica de escalera:

El bloque MB_SERVER
  1. Crea un bloque de datos:
Creando un bloque de datos

Haga clic en el nuevo bloque de datos, luego agregue estas dos variables:

  • Datos : una matriz de tipo “Palabra” para almacenar datos Modbus (por ejemplo, valores iniciales como “21”, “4” y “35”).
  • Conectar: Tipo "TCON_IP_v4" como tipo de datos para configurar los ajustes del servidor Modbus TCP. Inmediatamente, verá aparecer una lista de variables de configuración justo debajo. Configúrelas de la siguiente manera:
    • El puerto local debe configurarse en “502”, que es el puerto predeterminado para las comunicaciones Modbus TCP.
  • El InterfaceID es el ID de hardware del puerto Ethernet de su PLC. En la comunicación TCP/IP utilizamos el puerto ethernet, por lo que el ID sería "64". Puede encontrar el ID en la configuración del dispositivo -> página de constantes del sistema:
  • ID es el ID del Esclavo, hemos escrito “1”. Más adelante tendremos que utilizar el mismo ID en el simulador de esclavos.
  • El tipo de conexión debe ser "11" para TCP.
  • Configure RemoteAddress en la IP de su PC (que se encuentra usando ipconfig en Windows o ifconfig en Linux/Mac)

El bloque de datos debería verse así:

Bloque de datos con dos variables: una matriz de "palabras" y una variable TCON_IP_v4
  1. Por último, apunte la variable " Datos " al MB_HOLD_REG del bloque Modbus, y la variable " Conectar " al CONNECT del bloque Modbus:
El bloque de datos MB_SERVER, con las variables de configuración adjuntas.

Ahora, descargue la configuración al PLC Siemens haciendo clic derecho en el PLC y seleccionando "Descargar hardware y software". Si tiene éxito, el PLC actuará como un servidor Modbus TCP, listo para la comunicación.

Simulación de la comunicación Modbus utilizando la herramienta ModbusClientX

Lectura de datos Modbus utilizando ModbusClientX

Para verificar que su PLC esté funcionando correctamente como servidor Modbus TCP, utilice la herramienta ModbusClientX para simulación.

  1. Abra ModbusClientX y seleccione Modbus TCP.
  2. Ingrese la dirección IP de su PLC y haga clic en "Conectar".
Herramienta ModbusClientX
  1. Haga clic en "Leer de 0 a 9" para recuperar los primeros 10 valores de datos almacenados en la de datos dentro del PLC:
Herramienta ModbusClientX

Si aparecen los valores que configuró (p. ej., “21”, “4”, “35”), esto confirma que la comunicación Modbus TCP está funcionando como se esperaba.

Escritura de datos Modbus mediante ModbusClientX

ModbusClientX también le permite volver a escribir datos en el PLC, simulando escenarios del mundo real, como sensores y actuadores industriales que envían datos.

  1. Haga doble clic en cualquier valor en la columna "Registro de explotación" para abrir una pantalla donde puede ingresar nuevos valores de datos. Los registros de retención son cruciales en la comunicación Modbus, ya que permiten una manipulación flexible de los datos dentro de los PLC de Siemens, lo que garantiza que las estructuras de datos y los parámetros se alineen para una comunicación exitosa.
  2. Ingrese su valor y haga clic en "Escribir en el dispositivo".

A continuación, regrese al TIA Portal y abra el bloque de datos en "Modo Monitor" (haga clic en el icono de las gafas). El nuevo valor aparecerá en la variable correspondiente, confirmando la escritura exitosa de datos al PLC:

Uso de una Gateway IoT como cliente Modbus para sondear datos de sensores

Una vez que haya configurado el Siemens S7-1200 como servidor Modbus, estará un paso más cerca de la recopilación perfecta de datos de sus sensores utilizando una gateway IoT configurada como cliente Modbus, como un Teltonika TRB-140 o un Advantech ADAM 6717. . Al hacer esto, la gateway IoT puede sondear continuamente el PLC en busca de datos de sensores y transmitirlos a una IoT como Ubidots , para monitoreo y análisis en tiempo real.

Paso 1: identificar los registros Modbus

Primero, debe asegurarse de que todos los datos relevantes del sensor estén asignados a registros Modbus específicos dentro del PLC. En el MB_HOLD_REG de tu bloque de datos, tendrás definidas variables que corresponden a los sensores conectados a tu PLC. Los datos de cada sensor se almacenarán en registros de retención específicos, que pueden ser leídos por la gateway IoT .

  • Asegúrese de que los datos de cada sensor estén asignados correctamente a un registro de retención individual.
  • Trace estos registros para saber qué registro corresponde a cada sensor Modbus o punto de datos (por ejemplo, temperatura, presión, caudal).

Paso 2: configurar la Gateway IoT

Ahora, configure la gateway IoT como cliente Modbus. En la interfaz de configuración de gateway :

  • Configure la dirección IP del servidor Modbus (el PLC Siemens).
  • Asegúrese de que esté seleccionado el Modbus TCP .
  • Ingrese el número de puerto (generalmente 502 para Modbus TCP) para conectarse al PLC.
  • Defina el rango de registros que la gateway IoT necesita sondear. Esto debería alinearse con los registros de retención que configuró en el PLC para los datos de su sensor.
  • Establezca el intervalo de sondeo según sus necesidades (por ejemplo, cada 5 minutos)

Paso 3: enviar datos a la nube u otro sistema

gateway IoT sondee correctamente los datos de Modbus , ahora puede configurar la gateway para reenviar estos datos a una plataforma en la nube o a un destino interno (por ejemplo, un servidor local) para su posterior procesamiento, almacenamiento o análisis. La mayoría de gateway IoT ofrecen opciones para enviar datos a través de MQTT , HTTP u otros protocolos.

Al integrar una gateway IoT como cliente Modbus, permite un monitoreo sólido, escalable y centralizado de toda su red de sensores, aprovechando todo el potencial de la comunicación Modbus TCP y IoT , como la creación de SCADA basados ​​en la nube .

Un SCADA basado en la nube impulsado por Ubidots para mantenimiento predictivo en petróleo y gas

Mejores prácticas para la configuración de Modbus TCP/IP

Ahora que sabe cómo configurar su PLC S7 para que actúe como servidor Modbus, aquí le ofrecemos algunos consejos para una configuración Modbus TCP confiable y eficiente. Si sigue estas pautas, puede evitar problemas de comunicación comunes y optimizar tanto la configuración como el mantenimiento de su PLC Siemens SIMATIC S7-1200.

  • Utilice siempre convenciones de nomenclatura coherentes para sus bloques de datos, registros y variables.
  • Pruebe su configuración Modbus TCP utilizando un simulador de servidor Modbus antes de implementarla en un entorno de producción.
  • Asegúrese de que las versiones del firmware de su PLC Siemens y del software TIA Portal sean compatibles.
  • Utilice la asignación de dirección IP y el reenvío de puertos adecuados si integra el PLC en una red más grande.
  • Documente todas las configuraciones y ajustes para facilitar la resolución de problemas y el mantenimiento.

Conclusión y próximos pasos

Siguiendo este tutorial, habrá transformado con éxito su Siemens SIMATIC S7-1200 en un servidor Modbus TCP, capaz de leer y escribir datos en clientes Modbus, como sensores Modbus , a través de una red industrial. El siguiente paso es ampliar esta configuración integrándola con una gateway IoT industrial , permitiendo el monitoreo y control remoto de datos sobre sistemas SCADA . Continúe explorando el potencial de la comunicación Modbus para mejorar su infraestructura de automatización industrial.

Preguntas frecuentes

¿El S7-1200 soporta Modbus TCP?

Sí, el Siemens S7-1200 es totalmente compatible con Modbus TCP, lo que le permite actuar como servidor o cliente Modbus dentro de un marco de comunicación TCP/IP.

¿El S7-1500 soporta Modbus TCP?

Sí, el Siemens S7-1500 también admite Modbus TCP, lo que proporciona capacidades de comunicación avanzadas en entornos industriales.

¿Cuál es la dirección IP predeterminada del PLC S7-1200?

La dirección IP predeterminada del PLC Siemens S7-1200 suele ser 192.168.0.1 , pero se puede cambiar durante la configuración del dispositivo.

¿Cuál es el protocolo de comunicación utilizado en el PLC S7-1200?

El PLC Siemens S7-1200 admite varios protocolos de comunicación, incluidos Profinet, Modbus TCP y Modbus RTU.

¿Qué es Modbus TCP?

Modbus TCP es un protocolo utilizado para comunicarse a través de redes TCP/IP. Permite que los dispositivos Modbus intercambien datos utilizando una infraestructura basada en Ethernet, comúnmente utilizada en sistemas de automatización industrial.

¿Modbus RTU y RS-485 son lo mismo?

No, Modbus RTU se refiere al protocolo de comunicación, mientras que RS-485 es la capa física utilizada para la transmisión de datos en serie en configuraciones Modbus RTU.

¿Qué protocolo de comunicación utiliza el PLC Siemens?

Los PLC de Siemens suelen utilizar Profinet, Modbus TCP y OPC UA para la comunicación en entornos industriales.

¿Cuál es la diferencia entre Modbus RTU y Modbus RS-485?

Modbus RTU es un protocolo de comunicación, mientras que RS-485 es el estándar de comunicación en serie que normalmente se utiliza para implementar Modbus RTU en dispositivos industriales.