Conceptos Clase Operaciones de Mantenimiento (ope)

Base de ejemplo: test-tareas y test-movil

Nociones previas

Las operaciones son programadores que nos permiten generar tareas preventivas automáticamente con un patrón temporal.

Supongamos el caso de una inspección mensual a una familia concreta de equipamiento o bins: compresores.

La primera serie de tareas pendientes se crea al pulsar el botón de Chequea tareas de la operación, cuando tengamos los datos imprescindibles de definición de la operación:
- Bins a los que se aplica
- Programación de frecuencias
- y casi imprescindible en el caso de las tareas preventivas que genera una operación: Medidas a aplicar

Esas tareas (una por cada bin seleccionado) serán las únicas creadas realmente en BD. Al ejecutar una de esas tareas (contra un compresor) y cerrarla, se creará la siguiente para ese bin, según el esquema temporal de programación en el tiempo. Y así sucesivamente.

Programación en el espacio

En Bins a los que se aplica, que se puede especificar:
1. el código de una clase, como bin. Si tiene subclases, se aplicará a todas
2. una búsqueda Ingrid o find() de mongoDB, como cla=panel rut=rut.B, es decir paneles con un campo ruta concreto, que puede ser la de inspección semestral, por ejemplo. La búsqueda mongoDB equivalente sería:  {find:{"cla":"panel","rut":"rut.B"}, sort:{"_id":1}}

Con esto se crea una tarea por bin de los seleccionados y se le aplican todas las Medidas (si hay definidas en la persiana Medidas).

 

El segundo dato imprescindible es Programación de frecuencias:

Programación en el tiempo

La primera consideración a tener en cuenta es que llamamos festivos a Sábado y Domingo y no se tiene en cuenta ningún calendario de festivos locales, nacionales, etc. La programación se hace como si todos los días fuesen laborables y cuando caiga en domingo o un festivo, se realizará al día siguiente. En ausencias largas como vacaciones, se pueden cambiar los grupos de trabajo para que sea otro el personal asignado.

Programación de frecuencias

Formato del campo: [Frecuencia] Periodo (SMADT) | Repetición (nº) | Estacionalidad

El Periodo es la unidad de tiempo entre cada repetición de la tarea (Semanal, Mensual, Anual), pudiendo utilizar también Diario (equivalente a S|L-V) y Todos (equivalente a S|L-D: semanal de lunes a domingo).

Si programo de forma semanal, puedo especificar qué día de la semana caerá siempre, si programo por meses o años, puedo especificar el nº de día (casi siempre: por ejemplo el día 31 de cada mes, algunos meses caerá el 1 del siguiente.

La Frecuencia (opcional) es el nº de Periodos entre cada ejecución (por defecto, 1).

Desde el punto de vista del tiempo, la Frecuencia DIVIDE, y la Repetición (bloques en cada Periodo), MULTIPLICA.
Ejemplo:
S es una vez por semana (4 veces al mes)
2S es casa dos semanas
S|MJ es 2 veces a la semana.

Repeticiones: cada frecuencia admite un conjunto distinto:  T=S (los 7 días) | L-D,   D=S | L-V,   S:[LMXJVSD-],   M:dia ..., A:[dia/]mes ...

Estacionalidad: [dia/]mes(incluido) - [dia/]mes(excluido)

 

En Duración estimada, pondremos en horas, la duración de la tarea. Es decir, si es una inspección de un bin, la duración de ese trabajo, si es una ruta, la duración de todas las ejecuciones sobre todos los bins, y si el bin tiene descomposición de mantenimiento (sub-bins) el tiempo de trabajo sobre todo el conjunto. Es la duración de un concepto tarea completo.

En el campo Repeticiones anuales, se muestra calculado el nº de tareas estimado que se crearán por año (en el caso de programación semanal o diaria, la estimación puede variar algún día en años bisiestos, por ejemplo).

 

Ejemplos de programación Programación Cant. anual
Cada mes

M 12
Cada 6 meses (divide el numero de veces, es decir, multiplica el tiempo transcurrido entre una ejecución y la siguiente)

6M 2
Cada 6 meses, el día 7 (mueve la Fecha programada al día MÁS CERCANO que cumpla la repetición)

6M|7 2
Cada 25 semanas. Casi equivalente a semestral
25S 2,09
Cada 10 días (laborables). Equivalente a 2S, pero la de días se debe evitar, porque se tarda más en calcular al evitar los fines de semana

2S 26,09
Con una estacionalidad complicada:
Cada mes, los días 15, 20 y 25, en el periodo del 1 de julio al 1 de octubre (último no incluido), y cada 2 meses el día 15, en el periodo del 1 de noviembre al 1 de febrero del año siguiente (último no incluido) y cada 2 meses los días 15 y 20 el resto de meses del año
M|15 20 25|7-10; 2M|15|11-2; 2M|15 20| 22,5

Definición de medidas

La lista de medidas, definen las acciones a realizar en el trabajo de la operación actual. Estas medidas pueden ser la realización de una acción como: "inspeccionar esta del cuadro" que en las tareas se marcará con un valor "Bien " / "Mal", o bien "Sí" / "No", o cualquiera que se defina, o también se puede recoger una medida de una contador (tensión, impedancia, horas de trabajo, calorías,, calorías, kms. recorridos...)

En la lista se definen con un código secuencial, y un rango de valores en el campo Opciones, si son del tipo Selección, por ejemplo, o bien en los campos Mínimo-Defecto-Máximo si son numéricos. Los valores permitidos son casi todos los tipos de campos de Ingrid. Puede ver ejemplos de definición en testTareas > ope.xEJE.

El campo Requerida marcado en una Medida, obliga a rellenarla en todas las Tareas, sino no se puede cerrar.

Los campos Mínimo y Máximo definen el rango fuera del cual los valores tomados generan una marca en el campo Incidencia de esa medida en la Tarea.

En los campos de tipo selección, los valores de la lista a partir del máximo (incluido) serían incorrectos y anteriores al indicado en el mínimo (incluido) también.

En campos con valor numérico incorrecto serían, naturalmente, los valores que superen el máximo indicado o no lleguen al mínimo.

Programación en el espacio

Ordenar el trabajo diario

Se trata, primero de ordenar la secuencia de tareas que vamos a realizar cada día. En las páginas de una operación, nuestro grupo de trabajo, un espacio o un bin, se puede ver el panel con las órdenes y tareas pendientes (el panel de órdenes es la agrupación de todas las que tenemos en la misma fecha, para el mismo grupo de trabajo y agrupadas en el mismo espacio, y en él podemos editar en conjunto la fecha de programación y el grupo de trabajo asignado).

El orden de las tareas de esta lista es importante, porque nos muestra primero todo lo pendiente que tenemos atrasado (anterior a Fecha programada de hoy) y en un orden determinado todas las que tenemos para hoy y para los próximos días.

Este orden, por defecto es agrupando por:   Fecha Programada - Espacio - Bin - Operación. Como ejemplo, si tuviéramos esta lista de tareas:

 

01     3/5/16    Planta -1, bombas             Bomba 11  Revisión semestral
02   11/5/16    Planta -1, bombas             Bomba 1    Revisión semestral
03   11/5/16    Planta -1, bombas             Bomba 1    Revisión anual
04   11/5/16    Planta -1, bombas             Bomba 2    Revisión semestral
05   11/5/16    Planta -1, bombas             Bomba 2    Revisión anual
06   11/5/16    Planta -1, bombas             Bomba 3    Inspección mensual
07   11/5/16    Planta -2, electrógenos      Grupo 1     Revisión semestral
08   11/5/16    Planta -2, electrógenos      Grupo 2     Revisión semestral
09   11/5/16    Planta -2, electrógenos      Grupo 3     Revisión semestral
10   12/5/16    Planta -1, bombas             Bomba 7    Revisión semestral
11   12/5/16    Planta -1, bombas             Bomba 8    Revisión semestral

 

donde la primera sería una tarea que nos quedó pendiente hace una semana. La 2ª y 3ª provienen de dos operaciones ligadas que se realizan sobre los bin Bomba a la vez siempre en la misma fecha: cuando nos acercamos a un bin, una revisión semestral y otra anual. La 4ª tarea ya se refiere a otro bin distinto del mismo espacio (planta 1).

Hay que destacar que este orden de trabajos puede ser automático, facilitando crear nuestro plan de mantenimiento: primero la ordenación por fechas nos agrupa el trabajo de todo el día y el de espacios, en principio es el primer campo de referencia a un concepto de clase Espacio que tanga cualquier otro concepto de BD (los bins pueden ser de decenas de clases, por ejemplo). Es decir, sin especificar nada, me agrupa lo que hay en la misma sala o zona y dentro de ella, todas las operaciones o sub-bins de un bin.

Distribuir la carga de trabajo

Por otro lado, tenemos una herramienta para realizar una distribución automática a partir de una fecha y un patrón. Por ejemplo, al crear una operación semestral de revisión de cuadros eléctricos, sobre 20 cuadros, si pulsamos Chequea tareas de la operación, se crearán 20 tareas con la fecha de hoy.

Si queremos planificar el mantenimiento a partir del día 15 del mes que viene, y queremos realizar 3 tareas diarias, iremos a la lista de Tareas pendientes, que es donde podemos modificar en columna las Fechas programadas de la próxima ejecución en todos los bins de la operación.

- Multi-seleccionamos las líneas que queremos distribuir (inicialmente están todas le mismo día), o con el menú contextual de cabecera, seleccionamos todas.

- En menú contextual > Cambia fecha programadas de la selección, y en el diálogo pondremos:  "15/3/17 D 3"

OJO! esta distribución no tiene en cuenta en estacionalidad e la programación en el tiempo, sólo es una herramienta para copiar fechas con un patrón, sin más condiciones. Por ejemplo, si en nuestra programación en el tiempo tenemos "que se realice mensualmente excepto en enero, agosto y diciembre", y nuestro patrón de distribución cae en esos meses, tendremos que ajustarlo por bloques manualmente.

Formas de programar con las operaciones

Hay tres formas de usar las operaciones para que se generen tareas preventivas, dependiendo del objeto contra el que se dirige este programador:

1. Programación simple contra un bin.

Creando una operación, poniendo en el campo Clase de objetos a los que se aplica, una clase o búsqueda de bins, y en PProgramación de frecuencias un patrón (semanal, mensual, semestral o cualquiera complejo). Los demás campos son opcionales: Grupo de trabajo, Duración, Descripción, Medidas -aunque debería tener-. Se crea una tarea por cada bin, inicialmente todas con la Fecha programada, la de hoy y en cada una se presentan las Medidas de la operación.

 

2. Programación contra un concepto de clase ruta, que incluye una lista de bins ordenados.

Se crea un concepto de clase 'rut' y en su lista de Componentes de la ruta se incluyen los deseados, en el orden preferido de recorrido. En la operación, la clase sobre la que se a aplica son las rutas o una selección de ellas o una única. Se crean tantas tareas como rutas y en cada una, las medidas se presentan para cada bin de cada ruta

 

3. Tarea de varias operaciones Ligadas: Programación contra un bin que se descompone en sub-bins.

Primero, se crea la operación principal, dirigiendo Bins a los que se aplica,  a los bins principales, por ejemplo: seguidor fotovoltaico.

Luego, en una o varias operaciones ligadas a esa (a través del campo Esta operación está ligada a), y sin especificar nada en el campo Bins a los que se aplica, se pueden detallar los Subbins donde se toman las medidas, relacionados con cada bin de la operación principal. Por ejemplo: inversores que en su campo 'seg' tienen el seguidor al que pertenecen (o sea, inv.seg), módulos fotovoltaicos que apuntan al seguidor con el campo mod.seg, etc.

Con esto se crea una sola tarea para cada bin principal, y en ella están las medidas de cada operación ligada aplicadas a todos los componentes del seguidor, además de las medidas de la operación principal, contra el bin principal (seguidor), claro.

OJO! Las operaciones ligadas sólo pueden tener EL MISMO patrón de programación temporal que la principal, por eso este campo no es editable. Si lo que se quiere es una operación que esté RELACIONADA O ASOCIADA en el tiempo a otra como múltiplo de su programación (por ejemplo las inspecciones anuales sobre las semestrales para cada bin), no hay ningún dato que las ligue realmente: creamos 2 operaciones independientes que comiencen el mismo día con un patrón diario o mensual compatible para que vayan coincidiendo en el tiempo.

Persiana Tareas del grupo de trabajo y Calendario

Tiene los controles para la realización del trabajo mediante tareas y para su planificación. Véalo en el Anexo Persianas de Tareas y Calendario.

Otras aplicaciones de estas herramientas

Podemos tener casos más complejos que se pueden gestionar con las 3 formas vistas de manejar la operaciones:

Problema a resolver: tenemos unas zonas áreas infantiles que son bienes de inventario y se componen de otros bins: equipamiento o mobiliario de juegos infantiles, y queremos aplicar una operación, con sus medidas al equipamiento, pero realizando la inspección por una lista ordenada de zonas en una ruta.

Solución: Simulamos el orden de rutas creando un campo de posición en las áreas infantiles, y ordenando en el campo Clase de objetos a los que se le aplica de la Operación, por ese campo posición. Así nos saldrá el trabajo ordenado por ese "orden de ruta". Las operaciones se aplicarán directamente a zonas y mediante una operación ligada, a sus sub-bins.

Conclusiones y condiciones

- Todas las tareas generadas por las operaciones van siempre contra un bin, aunque el generador (operación) puede tener diversos elementos en el campo Clase de objetos a los que se aplica.

- La definición de Medidas de una operación no se puede modificar nunca, una vez usadas en alguna tarea. Ni el código, descripción, rango de valores... tampoco añadir nuevas medidas o eliminar alguna (el orden de las líneas sí se puede cambiar). Todas las tareas se refieren a cada medida sólo por el código, y si se modifica la definición, las tareas cerradas tendrán datos falsos.