Parece una pregunta tonta pero me tiene mosqueado.
Diseñé ya hará unos años un circuito que consiste en un montón de entradas y una única salida. La salida siempre está activa y según la lógica de las entradas se desactiva la salida.
Las entradas son los contactos de una protecciones. Si la protección se activa el contacto activa la entrada correspondiente y hace actuar un relé que es la salida.
El circuito tiene conexión modbus, en la cual guardo el valor de las entradas, el valor de la salida, y una "marca". Dicha marcha guarda el valor de la entrada que provoco un fallo. Ejemplo: Si la protección de temperatura salta, la entrada se activa y provoca un disparo de la maquinaría. En el registro de marcas de guarda el valor de la entrada indicando que fue la temperatura.
Así en cualquier momento puedo leer que entrada fue la que produjo el disparo.
Para quitar el disparo se debe "enviar" un comando de modbus o pulsar un botón de "restaurar" que es otra entrada del circuito.
Tengo un ordenador de control que constantemente está leyendo vía modbus el estado de las entradas, la salida, marcas, etc. y muestra en pantalla la entrada que se marcó como disparo.
El montaje ha estado y está en funcionamiento, funcionando las 24h del dia, todos los dias del año: cada vez que había un fallo marcaba el disparo en pantalla.
Pero curiosamente, ya ha pasado dos veces que se ha producido el disparo y no se
muestra en pantalla la "marca".
No debe ser fallo de modbus, puesto que leo constantemente los registros y si hay fallo en la comunicación se muestra en pantalla que ha habido una mala comunicación. Y no hay errores de comunicación, el dispositivo responde a la petición del ordenador.
La lógica de las entradas parece funcionar correctamente, por que el disparo se produce y no deja armar el circuito si no aprietas el botón de restaurar. Lo único, que no se guarda la marca.
¿Podría ocurrir que la memoria flash de programa o la RAM se hubiese degradado de tal manera que una porción de código no funcione pero el resto si?