Saltar al contenido principal

Ejemplo 4 - Detección de una parada

Ejemplo 4 - Detección de una parada:​

Tarea:​

Para poder realizar análisis estadísticos más avanzados se necesita el estado HALTEPUNKT. Este debe activarse cuando en el vehículo se activa la habilitación de puertas FREIGABE_LI, FREIGABE_RE. Debido a las condiciones locales, puede ocurrir que el vehículo deba avanzar a una 2.ª o 3.ª posición de parada sin abandonar la estación.

Solución:​

Este ejemplo utiliza el cálculo de la distancia recorrida del Ejemplo 2.

_doors = FREIGABE_LI || FREIGABE_RE;
_stnDist = DIST_KM - dFF(_doors, DIST_KM);    // km
HALTEPUNKT = rsFF(_stnDist > 0.100, _doors);    

Funciones utilizadas​

Explicación:​

  • Las variables de uso interno se identifican con un _ como primer carácter. Esto mejora la legibilidad.

  • _doors : la habilitación de puertas puede estar activada a la izquierda o a la derecha. Quizá se añadan aquí más condiciones.

  • _stnDist: con el flanco positivo de la señal de habilitación de puertas, dFF() toma el valor del dato, es decir, el kilometraje en ese instante. El resultado de la diferencia es la distancia recorrida desde la última apertura de puertas.

  • HALTEPUNKT: la condición de parada, en forma de rsFF(), se activa (set) con la apertura de puertas y se desactiva (reset) cuando se han recorrido 100 m. Esta distancia es mayor que la distancia para avanzar a una posición de parada alternativa. De este modo, este proceso se trata correctamente.