Download this file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
FUNCTION_BLOCK Function_Speed_Sensor_BISIGNAL VAR_INPUT Value_freq_signal_B: REAL; // Valeur extraite des sorties de frquence voie B Retour_Cycle_signal_B: UDINT; // Information detection de mouvement en micro-sec - "Value Cycle" signal B Sensor_Resolution: INT; // Resolution du capteur Diametre_roue: REAL; // en millimetre Vitesse_moteur: INT; END_VAR VAR_OUTPUT Vitesse_ms: REAL; Vitesse_kmh: REAL; Vitesse_revolution_par_min: REAL; VAR revolution: REAL; perimetre_roue: REAL; vitesse_linaire: REAL; moy_retour_cycle: UDINT; moy_retour_cycle := Retour_Cycle_signal_A; IF ((moy_retour_cycle <> 0) AND (Vitesse_moteur <> 0)) THEN revolution := (Value_freq_signal_A) * (60); Vitesse_revolution_par_min := revolution / Sensor_Resolution; perimetre_roue := Diametre_roue * 3.14; Vitesse_ms := (perimetre_roue / 1000) * (Vitesse_revolution_par_min / 60); Vitesse_kmh := (Vitesse_ms * 3600 ) / 1000; ELSE Vitesse_ms := 0; Vitesse_kmh :=0; Vitesse_revolution_par_min := 0; END_IF