PLC Siemens SIMATIC S7 como servidor Modbus TCP: un tutorial rápido
El Siemens SIMATIC S7-1200 es mucho más que un controlador lógico programable (PLC); es un pilar fundamental de la automatización industrial. El protocolo Modbus, conocido por su simplicidad y facilidad de implementación, resulta crucial en este contexto, ya que facilita la comunicación industrial y la transmisión de datos en la automatización de fábricas. Al configurarlo como servidor Modbus, se pueden compartir los datos con una IoT gateway configurada como cliente Modbus para llevar la información más allá de la planta de producción y lograr la monitorización remota, incluso enviando los datos del PLC a la nube. En esta guía, le explicaremos todo el proceso, desde la programación del PLC hasta la simulación de la comunicación con un cliente Modbus.
¿Listo para descubrir todo el potencial de tu Siemens S7-1200? ¡Adelante!
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 se presenta en dos variantes comunes: Modbus RTU (que opera en una arquitectura maestro-esclavo mediante comunicación serie) y Modbus TCP (que utiliza un modelo servidor-cliente a través de Ethernet).
En este tutorial, demostraremos cómo configurar el Modbus TCP IP S7 1200 como servidor y cómo comunicarse con dispositivos a través de una red industrial. También utilizaremos 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
- TIA Portal V16 (para programación y configuración de PLC Siemens)
- MODBUS ClientX (un cliente Modbus TCP para simular la comunicación)
Configuración del 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 habilitar la comunicación TCP/IP entre el PLC y su cliente Modbus.
Configuración del PLC S7-1200 en TIA Portal
- Inicie TIA Portal y cree un nuevo proyecto en “Vista de proyecto”
- Seleccione "Configurar un dispositivo" y luego "Agregar nuevo dispositivo". Elija su modelo de Siemens S7-1200 y la versión de firmware correcta antes de hacer clic en "Agregar"
En el árbol del proyecto, puede navegar y administrar los componentes de su proyecto, como acceder a propiedades y configuraciones.
Nota importante: Si el PLC ya contiene un programa, asegúrese de usar el mismo firmware y la misma versión de TIA Portal. De lo contrario, lo mejor es actualizar a la última versión disponible.
Configuración del PLC S7-1200 como servidor Modbus TCP
- Navegue hasta el bloque “Principal (OB1)” en la “Vista del proyecto” para comenzar a crear un diagrama de lógica de escalera.
- En la ventana “Instrucciones” de la derecha, vaya a Comunicación -> Otros -> Modbus TCP.
Arrastre la MB_SERVER a su diagrama de lógica de escalera:
- Crear un bloque de datos:
Haga clic en el nuevo bloque de datos y luego agregue estas dos variables:
- Datos: Una matriz de tipo “Word” para almacenar datos Modbus (por ejemplo, valores iniciales como “21”, “4” y “35”).
- Conectar: Tipo "TCON_IP_v4" como tipo de dato 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 identificador de hardware del puerto Ethernet de su PLC. En la comunicación TCP/IP utilizamos el puerto Ethernet, por lo que el identificador sería "64". Puede encontrar el identificador en la página de configuración del dispositivo -> constantes del sistema.
- ID es el ID del esclavo, hemos escrito “1”. Más adelante, tendremos que usar el mismo ID en el simulador del esclavo.
- El tipo de conexión debe ser “11” para TCP.
- Establece RemoteAddress con la dirección IP de tu PC (puedes encontrarla usando ipconfig en Windows o ifconfig en Linux/Mac).
El bloque de datos debería verse así:
- Por último, asigne la variable "Data" al MB_HOLD_REG del bloque Modbus y la variable "Connect" al CONNECT del bloque Modbus:
Ahora, descargue la configuración al PLC Siemens haciendo clic derecho en el PLC y seleccionando "Descargar hardware y software". Si la descarga es correcta, el PLC actuará como servidor Modbus TCP, listo para la comunicación.
Simulación de la comunicación Modbus mediante la herramienta ModbusClientX
Lectura de datos Modbus mediante ModbusClientX
Para verificar que su PLC esté funcionando correctamente como un servidor Modbus TCP, utilice la herramienta ModbusClientX para simulación.
- Abra ModbusClientX y seleccione Modbus TCP.
- Ingrese la dirección IP de su PLC y haga clic en “Conectar”
- Haga clic en “Leer de 0 a 9” para recuperar los primeros 10 valores de datos almacenados en la de datos dentro del PLC:
Si aparecen los valores configurados (por ejemplo, “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 escribir datos en el PLC, simulando escenarios del mundo real, como sensores y actuadores industriales que envían datos.
- Haga doble clic en cualquier valor de la columna "Registro de retención" para abrir una pantalla donde puede introducir nuevos valores de datos. Los registros de retención son cruciales en la comunicación Modbus, ya que permiten una manipulación flexible de datos en los PLC Siemens, garantizando la alineación de las estructuras de datos y los parámetros para una comunicación eficaz.
- Ingrese su valor y haga clic en “Escribir en el dispositivo”
A continuación, vuelva a 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 que la escritura de datos en el PLC se ha realizado correctamente:
Uso de un IoT Gateway como cliente Modbus para sondear datos de sensores
Una vez configurado el Siemens S7-1200 como servidor Modbus, estará un paso más cerca de recopilar datos de sus sensores sin interrupciones mediante una IoT gateway configurada como cliente Modbus, como un Teltonika TRB-140o un Advantech ADAM 6717.De esta forma, la IoT gateway puede consultar continuamente el PLC para obtener datos de los sensores y transmitirlos a una IoT como Ubidots, para su monitorización y análisis en tiempo real.
Paso 1: Identificar los registros Modbus
En primer lugar, debe asegurarse de que todos los datos relevantes de los sensores estén asignados a registros Modbus específicos dentro del PLC. En el MB_HOLD_REG de su bloque de datos, habrá definido variables que corresponden a los sensores conectados a su PLC. Los datos de cada sensor se almacenarán en registros de retención específicos, que pueden ser leídos por la IoT gateway.
- Asegúrese de que los datos de cada sensor estén asignados correctamente a un registro de retención individual.
- Mapee estos registros para saber qué registro corresponde a cada sensor Modbus o punto de datos (por ejemplo, temperatura, presión, caudal).
Paso 2: Configurar el IoT Gateway
Ahora, configure la gateway IoT como cliente Modbus. En la interfaz de configuración de la gateway:
- Establezca la dirección IP del servidor Modbus (el PLC Siemens).
- Asegúrese de que el Modbus TCP esté seleccionado.
- Introduzca el número de puerto (normalmente 502 para Modbus TCP) para conectarse al PLC.
- Define el rango de registros que la gateway IoT necesita sondear. Esto debe coincidir con los registros de retención que configuraste en el PLC para los datos de tus sensores.
- Establezca el intervalo de sondeo según sus necesidades (por ejemplo, cada 5 minutos)
Paso 3: Enviar datos a la nube u otro sistema
que la IoT gatewaygatewaygateway gatewaygatewaygatewaygateway gatewaygateway que los envíe a una industrial IoT plataforma o a un destino interno (por ejemplo, un servidor local) para su posterior procesamiento, almacenamiento o análisis. La mayoría de IoT gatewayofrecen opciones para enviar datos mediante MQTT, HTTPu otros protocolos.
Al integrar una IoT gateway como cliente Modbus, se habilita una monitorización robusta, escalable y centralizada de toda la red de sensores, aprovechando todo el potencial de la comunicación Modbus TCP y IoT como la creación de basados en la nube SCADAsistemas.
Mejores prácticas para la configuración de Modbus TCP/IP
Ahora que ya sabe cómo configurar su PLC S7 como servidor Modbus, le presentamos algunos consejos para una configuración Modbus TCP fiable y eficiente. Siguiendo estas pautas, podrá evitar problemas de comunicación comunes y optimizar la configuración y 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 implementarlo 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, ha 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 industrial IoT gateway, lo que permitirá la monitorización y el control remotos de datos en SCADA sistemas. Continúe explorando el potencial de la comunicación Modbus para optimizar su infraestructura de automatización industrial.
Preguntas frecuentes
¿El S7-1200 admite 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 admite 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 normalmente es 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 la comunicación a través de redes TCP/IP. Permite que los dispositivos Modbus intercambien datos mediante 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 serial que normalmente se utiliza para implementar Modbus RTU en dispositivos industriales.