S7 (Siemens)
El protocolo S7 permite la comunicación directa y en tiempo real con la familia de PLCs Simatic de Siemens. Al utilizar un driver nativo, ofrece una latencia significativamente menor que otras alternativas como OPC UA, lo que lo hace ideal para aplicaciones que requieren una alta velocidad de respuesta.
Parámetros de Conexión
Para configurar la comunicación con el PLC Siemens, define los siguientes campos:
- Nombre: Identificador único del protocolo.
- Dirección IP: La dirección IP del PLC en la red.
- Rack: Número de rack donde se ubica la CPU (habitualmente
0). - Slot: Número de slot donde se ubica la CPU (habitualmente
1para S7-1200/1500 y2para S7-300).
Configuración de Variables
El driver S7 accede directamente a las áreas de memoria del PLC. Para que la comunicación funcione correctamente, es imprescindible que los bloques de datos (DBs) a los que se acceda tengan el acceso optimizado desactivado en TIA Portal.
- Nombre: Nombre identificativo de la variable en InDataX.
- Tipo: Tipo de dato (Real, Entero, Counter, etc.).
- Audit trail: Registro de auditoría ante cambios de valor.
- Registrar valor: Inclusión en los históricos de la Thing.
- Dirección PLC: La dirección exacta de memoria del dato.
Sintaxis de Direccionamiento
Para que InDataX pueda leer o escribir en el PLC, la dirección debe seguir un formato específico que combina el área de memoria, el tipo de dato y la posición.
Formato General
[Tipo de bloque][Número de bloque],[Tipo de dato][Byte de inicio].[Número de bit]
El acceso optimizado de Siemens impide el direccionamiento directo por offset. Asegúrate de que tus DBs sean "estándar" (no optimizados) y que hayas cargado la configuración en el PLC antes de intentar leer desde InDataX.
Componentes de la Dirección
| Componente | Descripción | Valores posibles |
|---|---|---|
| Tipo de bloque | Área de memoria del PLC | DB (Data Block), CT (Contador), MK (Marcas/Merker), PA (Salidas periféricas), PE (Entradas periféricas), TM (Temporizador) |
| Número de bloque | Identificador del bloque | Número del DB o área (p.ej. 1, 01) |
| Tipo de dato | Formato del valor | BI (Bit), BY (Byte), IN (Integer 16b), DI (Double Integer 32b), RE (Real/Float 32b) |
| Byte de inicio | Offset de memoria | Posición del primer byte (p.ej. 0, 4, 10) |
| Número de bit | Solo para tipo BI | Indice del bit dentro del byte (0 al 7) |
Ejemplos comunes
DB1,RE0: Lee un valor Real del DB 1 empezando en el Byte 0.DB10,DI4: Lee un Double Integer del DB 10 empezando en el Byte 4.DB5,BI10.2: Lee el Bit 2 del Byte 10 dentro del DB 5.MK0,BY5: Lee el Byte 5 del área de Marcas.
Resolución de Problemas y Optimización
Para garantizar un rendimiento óptimo en la comunicación con PLCs Siemens, es importante tener en cuenta los siguientes escenarios:
Direcciones Inexistentes o Incorrectas
InDataX optimiza la lectura agrupando las variables por bloques de memoria (mismo tipo y número de bloque). Esto reduce el número de peticiones al PLC. Sin embargo, si una sola variable tiene una dirección incorrecta o que no existe en el PLC, la lectura de todo el grupo de variables al que pertenece fallará.
- Solución: Verifica que todos los offsets y números de DB existan físicamente en el PLC y que el DB no sea más pequeño que el offset solicitado.
Acumulación de Errores de Conexión
Si tienes configurados múltiples protocolos que sufren errores continuos de conexión o de lectura, los reintentos constantes pueden degradar el rendimiento general del sistema.
- Solución: Desactiva temporalmente los protocolos que no estén en uso o cuyos dispositivos estén fuera de línea para liberar recursos de procesamiento.
Límites de Rendimiento y Grandes Volúmenes
Aunque InDataX es altamente eficiente, gestionar más de 10,000 variables en un solo protocolo S7 puede causar latencia y problemas de rendimiento.
- Solución:
- División por protocolos: Divide la carga en varios protocolos S7 (lo que abrirá varias conexiones en paralelo al PLC).
- Arquitectura distribuida: Considera dividir la carga entre diferentes nodos o sistemas InDataX conectados entre sí para repartir el procesamiento.