Esempio 4 - Rilevamento di una fermata
Esempio 4 - Rilevamento di una fermata:
Compito:
Per poter eseguire ulteriori analisi statistiche è necessario lo stato HALTEPUNKT. Esso deve essere impostato quando sul veicolo viene attivato il consenso all'apertura delle porte FREIGABE_LI, FREIGABE_RE. A causa delle condizioni locali può accadere che il veicolo debba avanzare a una seconda o terza posizione di arresto senza lasciare la fermata.
Soluzione:
Questo esempio utilizza il calcolo della distanza percorsa dall'Esempio 2.
_doors = FREIGABE_LI || FREIGABE_RE;
_stnDist = DIST_KM - dFF(_doors, DIST_KM); // km
HALTEPUNKT = rsFF(_stnDist > 0.100, _doors);
Funzioni utilizzate
Spiegazione:
-
Le variabili per uso interno sono contrassegnate da un
_come primo carattere. Ciò migliora la leggibilità. -
_doors: Il consenso all'apertura delle porte può essere attivo a sinistra o a destra. Forse qui si aggiungeranno ulteriori condizioni. -
_stnDist: Con il fronte positivo sul segnale di consenso all'apertura delle porte,dFF()acquisisce il valore del dato, cioè il chilometraggio in quell'istante. Il risultato della differenza è la distanza percorsa dall'ultima apertura delle porte. -
HALTEPUNKT: La condizione di fermata, sotto forma dirsFF(), deve essere impostata (set) con l'apertura delle porte e viene rimossa quando sono stati percorsi 100 m (reset). Questa distanza è maggiore di quella necessaria per avanzare a una posizione di arresto alternativa. In questo modo tale manovra viene gestita correttamente.