Actualización 27/11/2024

Mejorados los envios a Lloys, DNV, ahora se muestran correctamente los consumos de los auxiliares y motor principal.

Se ha añadido un nuevo tipo de control, TIMELINE.
Este tipo de control lo usamos para mostrar en una escala de tiempo los eventos que hayamos filtrado por una fecha inicio y final.
Si clickamos encima del evento que queramos abriremos una pestaña nueva con la pantalla de acumulados filtrada ya por las fechas del evento. El control admite zoom y avanzar manualmente en la escala de tiempo.

Cambios a la pantalla MRV
Ahora la pantalla MRV separa en dos colores las rutas y puertos en funcion a su papel en el MRV.
Las RUTAS y PUERTOS que aparezcan en rojo no contarán para el sumatorio de MRV. Las RUTAS que aparezcan en amarillo sumarán un 50% del valor al cálculo MRV. Lo que aparezca en negro contará el 100%.
Abajo en la tabla ahora habra una separación entre el valor calculado y el real(el que suma todo sin tener en cuenta si vale para mrv o no)

Nuevo formato pantalla CII
Ahora la pantalla muestra por defecto solo las rutas y si queremos los calculos mensuales entonces deberemos seleccionarlo.
Hemos cambiado el formato de las cajas y el gráfico que posicionaba el CII ATT del barco de una forma mas visual en la que podemos ver mejor de forma visual la distancia de donde esta el barco a cada punto de referencia del gráfico.
Abajo se ha incorporado un timeline con los eventos de ruta y puerto que también redirigen a acumulados

Nuevo informe de Análisis refrigerante
Se ha creado un nuevo informe que hemos nombrado como Análisis refrigerante/Cooling analysis. Mostramos tres gráficas donde analizamos estos tres campos brass,iron,copper junto con sus variables. Cada uno en un gráfico junto con el nivel de ph en la escala secundaria.

Nuevo evento DATA_GAP
A partir de ahora se generará un evento DATA_GAP el cual marcará la falta de telemetrias durante mas de x tiempo. Estos datos los estamos reflejando por ejemplo en el timeline de la pantalla de acumulados.

Mejoras a la hora de calcular las tablas de medias _TEM
Ahora se tienen en cuenta los datos de las tablas de historicos para generar las lineas de la tabla de medias. Antes solo se tenian en cuenta las tablas en la conexion por defecto y ahora se tiene en ceunta la conexión por defecto y a demás la conexión de historicos del barco.

Se han cambiado los formatos de todas las fechas de la aplicación al formato AAAA-MM-DD HH:MM incluidos los gráficos.

Solucionado un error por el cual la carga no se mostraba correctamente en los eventos de ruta y puerto. Ahora ya se pueden visualizar en pantallas como por ejemplo en MRV

Se ha optimizado el cálculo de eventos para que a la hora de cargar acumulados o cii con rutas las pantallas cargen instantaneamente.

Cambios en funciones muy específicas como por ejemplo selINS() la cual afecta a calculos en algunas pantallas.

Solución sobre la marcha de errores varios que suceden a la hora de ir desarrollando la aplicación.

Actualización 18/10/2024

Añadida la conexión con el sistema LLOYS para envío de datos DNV.

Rework del sistema se zoom y marcadores de los mapas de google, ahora tienen autozoom en función a la linea que mostremos y las longitudes.

Cambio de la pantalla de detalles de evento:
-Mapas con lo anteriormente mencionado, mejora visual del tipo de evento que estamos consultando.
-Los acumulados y las diferencias ahora se calculan dentro del mismo dia, antes mostraba la difrencia entre el ultimo valor del dia anterior y el ultimo valor del dia en curso de esta forma no se visualizaban datos correctos para el primer y último dia del evento.
-Se ha arreglado el sistema de cálculos en la pantalla de evento que muestra dia a dia, ya que los valores mostrados eran los de la tabla de medias y el dato correspondiente al final del dia era el de las 18:00, ahora se obtienen los datos en maxima resolución y se ha optimizado la consulta para que solo obtenegamos el primer y último valor diario para que la consulta sea rápida.
-Mostramos también la la fecha inicial la hora donde empieza el evento y la hora a la que acaba en el último dia.

Varios cambios también en la pantalla de detalle de cada día muy similares a los anteriormente mencionados. Añadimos lo siguiente:
– Colores y la latra (P),(R) en función a si la telemetria es correspondiente a un evento de ruta o puerto

Cambios en la pantalla de acumulados:
Hemos decidido cambiar la pantalla de acumulados porque tardaba mucho en calcularse todo, asique vamosa simplificarla, cambiar su diseño y a la vez separar los acumulados de rutas de los acumulados generales. De momento esta por acabar, el nuevo formato será:
Mapa, descripción, tabla cumulados y si la pantalla es de un rango fechas que no es evento, mostraremos un timeline donde seleccionarlos para consultarlos.

Corregidos algunos errores a la hora de definir inicios y finales de ruta.

También se han realizado varias correcciónes de tickets…

Se ha modificado el recolector para que ahora se autolimpien y reseteen las tablas de ram_modbus y tememetrias para que nunca se puedan llegar al límite en la columna id de ambas tablas

Funcionamiento nuevo sistema KPI

Kpi_cfg Lenguaje del ‘path’ o ruta para obtener los equipos/variables

El sistema se basa en los tipos de equipo que queramos obtener.
Lo primero que debemos seleccionar es un tipo de equipo principal que queramos analizar, para ello usamos la letra ‘t’seguido del numero de tipo de equipo que queramos obtener. Por ejemplo un motor principal sería t1.
Si tenemos mas de un equipo asociado a ese tipo podemos seleccionarlo mediante su índice añadiendo la letra i y el numero de índice. Recordar que los índices empiezan en 0. Así pues si queremos obtener el motor auxiliar 3 sería t2i2.
Una vez obtenemos el equipo principal puede que queramos ir hacia uno o mas subequipos, para ello añadimos el separador para indicar que acabamos con el equipo padre y añadimos ‘-‘ seguido de esto de la misma forma que antes le indicamos
el subequipo esta vez con la letra ‘s’ en vez de la ‘t’, por ejemplo queremos acceder al caudalímetro del motor auxiliar 4 sería ‘t2i3-s14’ (equipo de tipo 2 índice 3 subequipo de tipo 14). Podemos seguir añadiendo subequipos de forma ilimitada uno tras
otro mediante la misma formula. Tenemos un sistema para detectar dentro de los subequipos uno muy en concreto cuando tenemos varios del mismo tipo dentro del equipo padre, y sería luego del número de tipo de subequipo añadir entre » en mayúsculas
un fragmento del nombre del equipo al que queremos acceder, por ejemplo, queremos el enfriador del motor principal 1 ER -> ‘t1i0-s13-s13’DESPUES DE’-s13’ESTRIBOR’ y si queremos el enfriador del motor principal 1 BR -> t1i0-s13-s13’DESPUES DE’-s13’BABOR’
Para obtener la variable, una vez acabamos con el equipo, añadimos el separador ‘|’ para indicar que empezamos con la variable y simplemente añadimos el id de la variable que queramos de ese equipo. Así pues pdemos obtener los m3 del caudalímetro del motor auxiliar 4 -> ‘t2i3-s14|421’,
otros ejemplos con los anteriores equipos: presión enfriador del motor principal 1 BR t1i0-s13-s13’DESPUES DE’-s13’BABOR’|402

En cuanto a las CACHE de los kpi funcionan de la siguiente manera:

-Hay dos tipo de CACHE en este sistema, uno mediante COOKIES de sesion y otro mediante BBDD.

Se pueden dar estos tres casos una vez llamamos a un kpi:

1- El kpi para ese barco no se habia llamado nunca antes. Entonces el sistema detecta cual es el equipo/variable asociado a ese kpi y lo almacena en la tabla de cache de kpi en BBDD (kpi_cfg_cache) Una vez esto se inserta tambien se añade este kpi a una COOKIE de sesión para no tener que recalcularla ni buscarla en todo el rato que estemos logeados.

2- El kpi se habia llamado antes pero acabamos de iniciar sesión: Aquí ya tenemos el equipo/variable en la tabla BBDD que almacena esos datos para ese centro, pero no tenemos la COOKIE de sesión, pero lo que el sistema irá a la BBDD a la tabla de cache (kpi_cfg_cache) y recupera los valores del kpi. Una vez los obtenemos los metemos en la COOKIE de sesión para el resto de nuestras consultas.

3- El kpi se habia llamado antes y ya lo habiamos consultado en la sesión actual: En este caso el kpi está almacenado en una COOKIE de sesión y ya no gasta tiempo en consultarlo a la BBDD ni mucho menos recalcular nada.

Dicho esto, si el path de un kpi es incorrecto ó añadimos un kpi específico para un barco cuando anteriormente ya habia consultado el por defecto, esos datos ya estan cacheados en la BBDD, por lo tanto para que los cambios en el path o los nuevos kpi especificos surjan efecto hay que borrar de la BBDD (kpi_cfg_cache) esos kpi asociados al centro en cuestión. Una vez lo hagamos ya se regenerarán con los nuevos valores.
También es recomendable reiniciar sesión, porque sinó la COOKIE de sesión nos devolverá el valor antes de recalcular nada.

El orden sería así:
Si existe COOKIE de sesión ya no va a la BBDD a obtener nada, si la COOKIE no existe irá a buscar los valores a la tabla de cache (kpi_cfg_cache). Si no existen datos en la tabla de cache, el sistema usará una función apra obtener los valores e insertarlos tanto en BBDD como en COOKIE.
Las COOKIES se renuevan una vez reiniciamos la sesión pero la cache de BBDD es permanente por lo que si se hacen cambios la forma de renovar esto es borrar el registro asociado a la tabla (kpi_cfg_cache)

Actualización recolector 25/06/2024

Ahora el recolector avisará si alguna opcion del cfg.ini se ha introducido con un texto no reconocible por el recolector.
Aparecerá un mensaje de error en la pantalla indicando el codigo erroneo y la informacion asociada a el y se parará la ejecución del recolector.

Maintenance: LogBook

Para acceder a esta pantalla tenemos las urls:

  • /logbook: Url sin parámetros de entrada.
  • /logbook/idagente/idcentro/iduni: El único obligatorio es el idagente, si no queremos pasar idcentro y/o iduni bastará con ponerlos a 0. Ej.: /logbook/123/0/456. Al pasar parámetros la pantalla automáticamente seleccionará el agente en el selector, cargará sus registros en la tabla, abrirá automáticamente el modal y cumplimentará el Centro y el Registro en caso de pasarle alguno de estos 2 parámetros opcionales.

En la parte superior de la pantalla nos encontraremos con la sección de informes que nos permite ejecutar informes asociados a la localización /logbook:

En la parte inferior tenemos la sección Diario de Registros en la que tenemos un selector de agente, el botón para crear un registro y la tabla con los registros del agente seleccionado.

Al entrar en la pantalla el selector de agentes filtrará los agentes en función del centro seleccionado en el menú superior.

  • Sin filtro de centro:
  • Con filtro de centro:

Si estamos filtrando por centro, al lado de la la etiqueta del selector de agente encontramos un botón que nos permitirá mostrar en el selector de agente los agentes de ese centro o mostar todos los agentes de esa instalación.

Al pulsar en el botón de crear, se nos abrirá un modal con un formulario para rellenar los datos necesarios, además de un check Firma, que si lo activamos tras pulsar Crear en el modal, nos solicitará la firma.

Los campos obligatorios en este modal son el Centro, Registro y la fecha.

Cuando añadimos Registros, el sistema automáticamente detectará si hay una operación para ese agente y para ese centro en estado En Curso, si la detecta automáticamente añadirá un registro a esa operación, sino la detecta primero crea la operación y luego crea el registro.

Publicada el
Categorizado como ARGOS

Maintenance: CrewList

Tabla superior(CREW LIST Llegadas/Salidas):

En esta tabla se cargan las operaciones de tipo Crew List filtrando por los centros del usuario. Para los tipos de operaciones se crean 2 opciones de configuración en app_cfg, ‘tipdoc.crewlist.arr‘ para las llegadas y ‘tipdoc.crewlist.dep‘ para las salidas. Dentro de las columna de Acciones nos encontraremos 3 o 4 botones dependiendo del estado de la operación:

  • Botón 1(Editar): Este botón solo aparece en los operaciones con estado En Revisión. Nos abre un modal que nos permite editar los datos que se muestran a continuación:
  • Botón 2(Ver): Nos lleva directamente a la pantalla de operaciones.
  • Botón 3(Clonar): Nos permite clonar una operación modificando antes los datos siguiente en caso de ser necesario:
  • Botón 4(Imprimir/Informes): Permite ejecutar informes sobre ese registro.

Si en la tabla superior tenemos alguna operación seleccionada estaremos editando dicha operación:

Por el contrario si no tenemos ninguna operación seleccionada estaremos creando una nueva operación:

Si estamos editando una operación pero queremos crear una nueva, basta con quitar la selección de dicha operación en la tabla superior para entrar en el Modo Crear.

Debajo de la tabla superior nos encontramos con un selector de agentes y 3 botontes:

  • Selector de agente. Nos permite seleccionar el agente que queremos añadir a la crew list.
  • Añadir Agente. Botón para añadir el agente. Estará deshabilitado si en el selector no tenemos ningún agente seleccionado.
  • Crear Agente. Nos abre un modal con un formulario con los datos básicos que nos permiten crear agentes. Tras crearlo el selector de agentes se recarga para incluir este nuevo agente.
  • Ejecutar operación. Está habilitado si tenemos en la tabla superior seleccionada alguna operación en estado En Revisión. Al pulsarlo nos solicitará la firma y desvinculará de este centro todos los usuarios de nivel 3(Técnico) y vinculará a este centro los agentes de este documento Crew List. Además modifica el estado de la operación a Realizado.

En la parte inferior encontramos la tabla con la información de los agentes de la Crew List seleccionada. En la columna de Acciones nos encontramos con un botón que nos llevará a la ficha de agente.

Actualizacion 31/05/2024

-Creacion pantalla apikeys ubicado en la opcion de menú sistema
-Cracion pantalla infdnv ubicado en la opcion de menú sistema
-Correccion error acumulados cuando no existen tablas para fi y ff
-Bloques mas grandes de telemetrias enviados por el recolector para agilizar llegada de datos antiguos. Hasta ahora habia una limitación del envio de estos paquetes y los barcos podian tardar mucho en actualizarse porque a veces generaban mas telemetrias de las que enviaban. Ahora en el cfg.ini se puede ampliar ese numero de paquete de envio para agilizar estes casos.
-Script php para leer csv del barco en funcion a los gaps generados por el recolector e incorporarlos a la tabla telemetrias que luego sera enviada a la nube mediante el recolector. De esta forma complementamos vacios de datos a causa de algun fallo en el pc o recolector durante ese tiempo.
-Cambios en api/puttelemetria para incorporar telemetrias en bloques mas grandes y también se ha agilizado mas la función y los inserts en grupo a la base de datos para que cada centro ahora tarde mucho menos en insertar telemetrias.
-Cambio en la funcion _nomequ para que se le pueda pasar el parametro isDemo y sustituir el nombre del centro de los equipos a DEMO.
-Corrección a la hora de generar rutas en ciertos barcos con nombres de puertos que contenian la coma
-Se ha añadido una tabla en la pantalla del centro (panCEN) y pestaña APLICACIÓN en la cual podremos ver y editar las opciones de configuración que determinan varios de los procesos que el barco puede realizar como por ejemplo eventos de zona horaria, rutas cortas,…
-Se ha creado un conjunto de scripts que generan y actualizan una nueva base de datos Timescale (postgre) en la cual estamos haciendo pruebas de rendimiento con el fin de agilizar consultas demasiado grandes ahora mismo y poder almacenar mas datos ocupando menos espacio.
-Se ha creado un api de consulta para peticiones DNV con las funciones vessels y log_abstract que actualmente esta última se encuentra en fase de mejora
-Se ha creado un sistema de scripts que controla la zona horaria de un barco. Este sistema inserta en la bbdd los cambios de estas franjas horarias para saber en que momentos el barco ha cambiado.
Esto se utilizará en varios sitios como en la pantalla principal del centro donde ahora se muestra la hora local del barco.
También se usará en los calculos de las horas a las que el barco genera las lineas del fichero DNV
-Corrección de errores menores tal como; Consultas sql, logs que faltaban por incluir, nombres incorrectos de logs, tipicos errores menores de código que no necesitan abrir ticket.

Actualizacion recolector 27/02/2024

-Se ha implementado un sistema de reordenacion de variables, lo cual permite meter direcciones desordenadas dentro del mismo equipo con saltos incluso. El programa reordena estas direcciones y analiza en que tamaño de bloque debe leer tomado como minimo 1 y como maximo el tamaño que nosotros iniquemos en el cfg.ini
Aqui dejo un ejemplo:
; EQUIPO 50850 MOTOR PRINCIPAL
IDEQ=50850
VAR=5000;394;RECOLECTOR_FO_Consumo_Instant_LitrosMilla_ME1; AUT
VAR=5006;411;RECOLECTOR_Consumption_ME1_FO_Type; AUT
VAR=5002;414;ECDIS_SPEED_LOG_VLW_Total_Distancia; AUT
VAR=5004;406;RECOLECTOR_ME1_Horas_Funcionamiento; AUT

; EQUIPO 50851 CAUDALIMETRO MP
IDEQ=50851
VAR=5008;395;RECOLECTOR_FO_Consumo_Instant_LitresHour_ME1; AUT
VAR=5510;403;RECOLECTOR_FO_Consumo_Diesel_Acumulado_ME1_ton; AUT
VAR=5012;618;RECOLECTOR_FO_Consumo_Fuel_Acumulado_ME1_ton; AUT

-Se han realizado mas pruebas sobre la deteccion de gaps para el futuro sistema de importacion de csv

-Se ha creado mediante codigo en el propio recolector un servidor modbus al cual se puede acceder mediante la ip de la maquina donde esta el recolector y el puerto que indiquemos en el cfg.ini
Este servidor devolverá en las direcciones que nosotros indiquemos el estado de los hilos del recolector. Los valores serán 1 para cuando todo va bien (OK) y 0 para cuando va mal (KO)
Las nuevas opciones de configuracion son las siguientes:
; Define las direcciones de memoria y variables que se exponen para su consulta en MODBUS
; MODBUS-SERVER
; Puerto por defecto usado para el servidor
mb_srv_port = 502

; estado de comunicación entre el recolector .net y el PLC
mb_srv_mb = 100

; estado de inserción de valores en la tabla RAM ram_modbus
mb_srv_ramdb = 101

; estado de inserción de valores en la tabla DISCO telemetrias
mb_srv_diskdb = 102

; estado de comunicación con central/nube vía API ej.cfg servidor = https://argos-coterena.com
mb_srv_web = 103

Actualizacion 27/02/2024

-Correccion al sql para calcular rutas actuales y otros errores a la hora de calcular rutas de las que no se conocia el puerto.
-Correccion a la hora de calcular puertos los cuales en el sql vienen con la misma hora el inicio y final (mov:0, ini:1, fin:1), ahora estos si cumplen el tiempo seran añadido tambien al array como puerto.
-Correccion menor para el touza con una traduccion que impedia añadir turbo b a las variables especificas
-Correccion a la hora de eliminar las coordenadas (0,0) sin tener en cuanta la distancia al punto correcto, evitando asi pequeños desajustes.
-Correccion menor a ocultar elementos del menú eliminado la cache para estos y incorporamos a las excepciones el informe frio
-Se ha añadido al informe frio la posibilidad de que los equipos de frio tuneles, bodegas, etc.. puedan tener subequipos y estos sean los que mostramos en las gráficas
-Moficacion al bloque B1 en la creacion de estructuras de centro para mostrar el CONSUMO ACUMULADO de los MM.AA. en caso de no tener caudalimetro los auxiliares. Se habilitaria asi tambien cambios en el informe de consumo
-Correccion en los containers de las tablas en informe de consumo y propulsion que bloqueaban la vista a las gráficas
Optimización tabla equipos la cual tardaba de forma exagerada en cargar
-Sistema de importacion y exportacion de estructuras de centros csv
-Correccion en algunas funciones que tienen que ver con obtener el arbol de equipos
-Reordenacion de variables en recolector
-Recoleccion dinamica en funcion al numero de direcciones consecutivas por bloque determinadas tambien por el tamaño del paquete
-Correccion de problema que hacia que se duplicaran lances u otros eventos comprobando si el evento ya existia
-Centrado verticalmente el contenido de las celdas de las tablas
Se ha limitado el numero maximo de variables a la hora de guardar un plan de tendecias
-Se ha arreglado el problema en la funcion que leia los elementos seleccionados por defecto en los combos multiples
-Se ha cambiado en la respuesta del csv AÑADIDA por CREADA para evitar la Ñ que producia un error al leer el csv
-Se ha modificado la tabla de app_paises para que ahora podamos marcar que paises perteneces a la UE
-Se ha corregido el error del filtro de la tabla de puertos
-Se han eliminado las tablas paises, provincias y se ha renombrado poblaciones a app_poblaciones

Actualizacion recolector 08/01/2024

Se han añadido varios controles de funcionamiento de los hilos del recolector para que a simple vista se pueda ver tanto los tiempos como si ha sucedido algun error en ese hilo que debe ser revisado en los logs o habilitar el modo dbug para estudiarlo.

El formato que veremos es el siguiente:
MB2DB v24.01.08: 17:53:23.480 Running MB(OK):62ms / RAMDB(OK):5ms / DISKDB(OK):0ms / WEB(OK):0ms…

MB2DB v24.01.08 -> Esta parte hace referencia a la versión del programa a simple vista. La version contiene el año, mes y dia en el que se compiló la versión.

17:53:23.480 -> Hora:minuto:segundo.milisegundo en el que esta el programa ejecutandose

MB(OK):62ms -> Funcionamiento del hilo de lectura modbus, en el podemos ver un OK o KO dependiendo de si algo ha sucedido en el proceso de lectura de datos. Se acompaña del tiempo que ha tardado en completar una vuelta a la funcion del hilo modbus.

RAMDB(OK):5ms -> Funcionamiento del hilo de escritura modbus en la tabla ram de la base de datos, en el podemos ver un OK o KO dependiendo de si algo ha sucedido en el proceso de escritura de datos. Se acompaña del tiempo que ha tardado en completar una vuelta a la funcion del hilo database ram.

DISKDB(OK):0ms -> Funcionamiento del hilo de escritura en la tabla de disco de la base de datos, en el podemos ver un OK o KO dependiendo de si algo ha sucedido en el proceso de escritura de datos. Se acompaña del tiempo que ha tardado en completar una vuelta a la funcion del hilo database disk.

WEB(OK):0ms -> Funcionamiento del hilo de comunicacion con la nube(web-api), en el podemos ver un OK o KO dependiendo de si algo ha sucedido en el proceso de comunicacion-recepcion-emision de datos a la nube. Se acompaña del tiempo que ha tardado en completar una vuelta a la funcion del hilo cloud(web).