El concepto de unidad de obra en automatización industrial

En los proyectos de sistemas de medida y regulación, la unidad de obra es el elemento básico en que se divide el trabajo para su análisis técnico y económico. Representa una tarea completa, definida y medible, que puede realizarse de forma independiente dentro de un proceso más amplio. Por ejemplo, la instalación de un sensor de temperatura, la calibración de un transmisor de presión o el tendido de una canalización para cables de instrumentación constituyen unidades de obra.

Este capítulo explica la estructura de una unidad de obra (descripción, cantidad, medición, materiales, mano de obra), su representación en presupuestos y su importancia para la planificación, control y valoración de los trabajos.

Estructura de una unidad de obra

Una unidad de obra se define con precisión para evitar ambigüedades. Sus componentes son:

  • Descripción técnica: Explica detalladamente el trabajo, especificando características técnicas, normativas aplicables (UNE, IEC) y condiciones de ejecución. Ejemplo: “Suministro e instalación de sensor PT100 clase A con termopozo, incluyendo cable apantallado 2x1,5 mm², prensaestopas y conexionado en armario de control.”
  • Cantidad: Número de veces que se repite la unidad en el proyecto (ej. 12 ud, 150 m).
  • Medición: Define cómo se cuantifica (por unidad, por metro lineal, por hora, etc.). Esencial para control de calidad y valoración económica.
  • Materiales: Lista de materiales necesarios, con calidades y cantidades. Incluye sensores, cables, conectores, soportes, armarios, etc.
  • Mano de obra: Recursos humanos por especialidad (electricista, instrumentista, programador) y tiempos estimados.

La correcta definición de cada componente asegura la transparencia en la ejecución y facilita la detección de posibles mejoras técnicas o económicas.

Ejemplos de unidades de obra en sistemas de medida y regulación

Ejemplo 1: Instalación de sensor de temperatura PT100

  • Descripción: Suministro e instalación de sensor PT100 clase A, con termopozo de acero inoxidable, cable apantallado 2x1,5 mm², prensaestopas M20 y conexionado en armario de control. Incluye verificación de continuidad y aislamiento.
  • Cantidad: 12 unidades.
  • Medición: Por sensor instalado y verificado.
  • Materiales: Sensor PT100, termopozo, cable apantallado (12 m por sensor), prensaestopas, bornes.
  • Mano de obra: 2 horas de técnico electricista por sensor.

Ejemplo 2: Montaje de armario de control

  • Descripción: Suministro, montaje y conexionado de armario de control IP66 800x600x300, incluyendo borneros, relés, fuente de alimentación, PLC y módulos de E/S según proyecto. Incluye rotulado de cables y pruebas funcionales.
  • Cantidad: 1 unidad.
  • Medición: Por armario completamente instalado y probado.
  • Materiales: Armario, borneros, relés, PLC, fuente, cableado interno, canaletas.
  • Mano de obra: 8 horas de técnico electricista + 4 horas de técnico programador.

Representación en el presupuesto

En un presupuesto técnico, las unidades de obra se agrupan en partidas y capítulos. Cada partida incluye:

  • Código identificativo (ej. INS-01).
  • Descripción completa.
  • Cantidad.
  • Precio unitario (calculado a partir de los materiales, mano de obra y medios auxiliares).
  • Importe total (cantidad × precio unitario).

Esta estructura permite un control exhaustivo del coste y facilita la gestión de desviaciones durante la ejecución. Además, el desglose por unidades de obra ayuda a justificar cada gasto ante el cliente y a identificar posibles alternativas de optimización.

🐍 Gestión de unidades de obra y generación de partidas de presupuesto
# work_unit_manager.py - Clase para gestionar unidades de obra y generar presupuesto

class Material:
    def __init__(self, nombre, unidad, cantidad, precio_unitario):
        self.nombre = nombre
        self.unidad = unidad
        self.cantidad = cantidad
        self.precio_unitario = precio_unitario
        self.importe = cantidad * precio_unitario

class ManoDeObra:
    def __init__(self, categoria, horas, precio_hora):
        self.categoria = categoria
        self.horas = horas
        self.precio_hora = precio_hora
        self.importe = horas * precio_hora

class UnidadObra:
    def __init__(self, codigo, descripcion, unidad_medida):
        self.codigo = codigo
        self.descripcion = descripcion
        self.unidad_medida = unidad_medida
        self.materiales = []
        self.mano_obra = []
        self.medios_aux = []   # lista de (descripción, importe)
        self.gastos_generales = 0.15  # 15%

    def agregar_material(self, material):
        self.materiales.append(material)

    def agregar_mano_obra(self, mano):
        self.mano_obra.append(mano)

    def agregar_medio_aux(self, descripcion, importe):
        self.medios_aux.append((descripcion, importe))

    def coste_directo(self):
        total_materiales = sum(m.importe for m in self.materiales)
        total_mano = sum(m.importe for m in self.mano_obra)
        total_aux = sum(m[1] for m in self.medios_aux)
        return total_materiales + total_mano + total_aux

    def precio_unitario(self):
        directo = self.coste_directo()
        return directo * (1 + self.gastos_generales)

    def detalle(self):
        print(f"\n=== UNIDAD DE OBRA: {self.codigo} ===")
        print(f"Descripción: {self.descripcion}")
        print(f"Unidad: {self.unidad_medida}")
        print("\nMateriales:")
        for m in self.materiales:
            print(f"  {m.nombre}: {m.cantidad:.2f} {m.unidad} x {m.precio_unitario:.2f} € = {m.importe:.2f} €")
        print("\nMano de obra:")
        for mo in self.mano_obra:
            print(f"  {mo.categoria}: {mo.horas:.1f} h x {mo.precio_hora:.2f} € = {mo.importe:.2f} €")
        print("\nMedios auxiliares:")
        for aux in self.medios_aux:
            print(f"  {aux[0]}: {aux[1]:.2f} €")
        print(f"\nCoste directo: {self.coste_directo():.2f} €")
        print(f"Precio unitario (con GG 15%): {self.precio_unitario():.2f} € / {self.unidad_medida}")

# --- Ejemplo: instalación de sensor PT100 ---
sensor_pt100 = UnidadObra("INS-01", "Instalación de sensor PT100 con termopozo", "ud")
sensor_pt100.agregar_material(Material("Sensor PT100 clase A", "ud", 1, 85.00))
sensor_pt100.agregar_material(Material("Termopozo acero inoxidable", "ud", 1, 45.00))
sensor_pt100.agregar_material(Material("Cable apantallado 2x1,5", "m", 12, 2.80))
sensor_pt100.agregar_material(Material("Prensaestopa M20", "ud", 1, 2.50))
sensor_pt100.agregar_mano_obra(ManoDeObra("Electricista", 2.0, 35.00))
sensor_pt100.agregar_medio_aux("Herramientas manuales (amortización)", 3.00)
sensor_pt100.detalle()

print("\n--- Si se instalan 12 unidades ---")
cantidad_total = 12
coste_total = cantidad_total * sensor_pt100.precio_unitario()
print(f"Total partida: {cantidad_total} ud × {sensor_pt100.precio_unitario():.2f} € = {coste_total:.2f} €")

Este script define una unidad de obra de instalación de sensor PT100, desglosa sus materiales y mano de obra, calcula el coste directo y el precio unitario con gastos generales. Útil para generar partidas de presupuesto.

Tendencias Actuales 2026

La gestión de unidades de obra se integra cada vez más con software BIM (Building Information Modeling) que extrae automáticamente cantidades del modelo 3D y las asocia a bases de datos de precios. Las bibliotecas digitales de unidades de obra (como las de ITeC) permiten estandarizar descripciones y rendimientos, facilitando la elaboración de presupuestos consistentes. Además, la inteligencia artificial se utiliza para recomendar agrupaciones óptimas de partidas y detectar errores en las mediciones.

Aplicaciones con Raspberry Pi

Una Raspberry Pi puede ejecutar scripts Python como el anterior para calcular presupuestos a partir de unidades de obra introducidas en campo. También puede servir como servidor para consultar catálogos de unidades de obra estandarizadas.

Aplicaciones con Arduino

En proyectos educativos, Arduino puede simular la medición de unidades de obra (por ejemplo, contador de piezas instaladas) y enviar los datos a un PC para su valoración automática, introduciendo conceptos de control de obra.

💼 Caso Práctico Industrial: Identificación de unidad de obra

Contexto: Se debe definir una unidad de obra para la "calibración de un transmisor de presión 4-20 mA". ¿Qué información debe incluir la descripción técnica?

Pregunta: ¿Qué elementos son imprescindibles?

🍓 Raspberry Pi + Python

Contexto: El script Python calcula el precio unitario sumando costes directos y aplicando un 15% de gastos generales. Si el coste directo de una unidad de obra es 120 €, ¿cuál es el precio unitario?

Pregunta: ¿Qué valor se obtiene?

🐍 Componentes de unidad de obra

Contexto: En la unidad de obra del ejemplo, se incluyen materiales, mano de obra y medios auxiliares. ¿Qué concepto representa la "amortización de herramientas manuales"?

Pregunta: ¿A qué categoría pertenece?

Tabla 1: Ejemplos de unidades de obra en automatización CódigoDescripciónUnidadPrecio unitario (€)Componentes principales ' INS-01Instalación de sensor PT100 con termopozoud235,00Sensor, termopozo, cable 12 m, mano de obra 2h INS-02Instalación de transmisor de presión 4-20 mAud320,00Transmisor, cable, mano de obra 1,5h CAB-01Tendido de cable apantallado 2x1,5m3,50Cable, mano de obra, guías, EPI ARM-01Montaje de armario de control 800x600ud1.200,00Armario, borneros, PLC, mano de obra 8h + 4h 点

📚 Recursos Técnicos y Normativos 2026

Normativas y Estándares

Recursos Raspberry Pi y Python