Direccionamiento Absoluto vs. Simbólico en Siemens: De SIMATIC Step 7 a TIA Portal

Introducción
En el universo de la automatización industrial, la forma en que referenciamos y organizamos las variables dentro de un autómata programable (PLC) determina la mantenibilidad, escalabilidad y calidad del código.
Para quienes trabajan con tecnología Siemens, la evolución desde el histórico SIMATIC Manager (Step 7 V5.x) hacia el ecosistema unificado TIA Portal (Totally Integrated Automation) supuso un cambio de paradigma crucial: el paso del direccionamiento absoluto dominante al direccionamiento simbólico nativo.
En este artículo analizaremos qué significa cada concepto, cómo los interpreta el compilador de Siemens en cada plataforma y por qué el direccionamiento simbólico es la piedra angular de la programación moderna.
1. ¿Qué es el Direccionamiento Absoluto?
El direccionamiento absoluto consiste en identificar una variable especificando directamente su ubicación física o lógica dentro del mapa de memoria del PLC.
El sistema identifica la variable según su tipo de área de memoria, su dirección de byte y, si aplica, su posición de bit.
- Ejemplos clásicos:
- I0.0 (o E0.0 en sintaxis alemana): Entrada digital en la dirección de byte 0, bit 0.
- Q1.2 (o A1.2): Salida digital en la dirección de byte 1, bit 2.
- M10.0: Marca de memoria interna en byte 10, bit 0.
- DB1.DBD0: Palabra doble (4 bytes) situada a partir del byte 0 dentro del Bloque de Datos 1.
Dirección Absoluta: DB1.DBD0
- Área: Data Block 1
- Offset de Byte: 0
- Tamaño: Double Word (32 bits / 4 bytes)
Ventajas y Desventajas del Direccionamiento Absoluto
- Ventajas: Es directo, cercano al hardware y permite entender la ocupación real de memoria en sistemas con recursos muy limitados.
- Desventajas: Dificulta la lectura del programa, incrementa el riesgo de solapamiento accidental de memoria (M0.0 y MW0 comparten bytes) y vuelve compleja cualquier reestructuración o ampliación del programa.
2. ¿Qué es el Direccionamiento Simbólico?
El direccionamiento simbólico asigna un nombre alfanumérico legible por el ser humano (Tag o Símbolo) a una variable o bloque del programa.
En lugar de memorizar qué función cumple la marca M50.2, la definimos con el símbolo "Boton_Paro_Emergencia". El compilador y la interfaz de usuario se encargan de vincular dicho nombre con la variable correspondiente.
- Ejemplos simbólicos:
- "FC_Nivel_Alto" en lugar de I0.3.
- "Motor_Convector".Arrancar en lugar de DB5.DBX0.0.
- "Punto_Consigna_Temp" en lugar de MD20.
Dirección Simbólica: "Tanque_Mezcla".Temperatura
- Nombre legible, autodocumentado y autosostenible.
- Independiente del offset físico del archivo.
Ventajas del Direccionamiento Simbólico
- Legibilidad: El código es autodocumentado.
- Refactorización: Si se cambia la asignación del símbolo a otra dirección o tipo de dato, todo el programa se actualiza automáticamente.
- Reducción de errores: Elimina la escritura accidental sobre bytes de memoria adyacentes.
3. Direccionamiento en SIMATIC Step 7 (V5.x Classic)
En el entorno clásico Step 7 V5.x (pensado principalmente para las familias S7-300 y S7-400), el direccionamiento absoluto era la base del funcionamiento interno del compilador.
- Tabla de Símbolos (Symbol Table): Se creaba una tabla global donde se mapeaba manualmente cada símbolo con su dirección absoluta (Boton_Start --> I0.0).
- Estructura Rígida de DBs: Los bloques de datos (DBs Estándar) tenían un direccionamiento en bytes estrictamente definido. Si insertabas una variable tipo REAL en el byte 2, la siguiente variable debía comenzar obligatoriamente en el byte 6.
- Punteros y Direccionamiento Indirecto: La programación avanzada mediante código AWL (STL) requería el uso intensivo de punteros tipo ANY o POINTER (P#DB1.DBX0.0 BYTE 10), dependiendo totalmente del offset numérico absoluto.
El problema histórico: Si en Step 7 modificabas la estructura de un DB agregando una variable intermedia, las direcciones absolutas de las variables inferiores cambiaban, rompiendo los accesos indirectos y obligando a recompilar y descargar bloques completos con interrupción del proceso.
4. La Revolución Simbólica en TIA Portal (S7-1200 / S7-1500)
Con la llegada de TIA Portal y la arquitectura de los autómatas S7-1200 y S7-1500, Siemens rediseñó por completo el motor de compilación para convertir el direccionamiento simbólico en el estándar prioritario.
Bloques de Datos Optimizados (Optimized Block Access)
El cambio más trascendental en TIA Portal es la introducción del Acceso Optimizado a Bloques.

- Sin offsets explícitos: En un DB optimizado no existen direcciones como DB1.DBD0. Las variables solo existen por su nombre simbólico ("DB_Datos".Temperatura).
- Optimización por la CPU: La CPU organiza internamente los datos para maximizar la velocidad de procesamiento del microprocesador y evitar pérdidas de espacio por alineación de bytes.
- Variables PLC (PLC Tags): Reemplazan a la antigua tabla de símbolos, permitiendo refactorizar nombres en tiempo real en todo el proyecto sin perder las referencias.
- Indexación Simbólica: Los arreglos se direccionan simbólicamente sin necesidad de punteros complejos: "DB_Sensores".Lectura[#Indice].
5. Tabla Comparativa Resumen
| Característica | SIMATIC Step 7 (Classic) | TIA Portal (S7-1200 / S7-1500) |
| Paradigma Principal |
Absoluto (Simbólico como capa externa)
|
Simbólico Puro (Nativo) |
| Acceso a Datos (DB) | Estándar (Basado en Byte/Word offset) | Optimizado (Basado en Nombres/Tags) |
| Refactorización | Compleja (Riesgo de romper accesos) | Automática y Transparente |
| Punteros / Direccionamiento Indirecto | Punteros ANY, registros de AR1/AR2 | Indexación de Arrays y referencias simbólicas |
| Rendimiento de CPU | Condicionado por la alineación física | Optimizado por compilador interno |
Conclusión y Buenas Prácticas
El direccionamiento absoluto no ha desaparecido del todo —sigue siendo necesario para mapear entradas y salidas físicas del hardware o mantener compatibilidad con equipos legados—. Sin embargo, en la Industria 4.0, mantener código rígido basado en offsets absolutos es una práctica obsoleta.
Buenas Prácticas Recomendadas:
- Diseña siempre tus programas en TIA Portal utilizando Bloques Optimizados.
- Asigna nombres descriptivos y estructurados a tus PLC Tags e Inputs/Outputs.
- Emplea UDTs (User Defined Data Types) para agrupar variables complejas simbólicamente.
💬 ¡Queremos conocer tu opinión!
¿Aún trabajas con proyectos en Step 7 V5.x o ya has migrado completamente a TIA Portal? ¿Cuál ha sido tu mayor reto al trabajar con DBs optimizados? ¡Déjanos tu comentario abajo y debate con nuestra comunidad!
👉 ¿Quieres recibir reflexiones técnicas y formación exclusiva? Suscríbete a nuestra Newsletter y forma parte de la comunidad OneDoor