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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | FUNCTION_BLOCK Fonction_Freinage VAR_INPUT Autonom_actif: BOOL; Manuel_actif: BOOL; Vitesse_actuelle_vehicule: REAL; // en m/s Vitesse_cible_vehicule: REAL; // en m/s Pression_Circuit_frein_arriere: REAL; // en bar Pression_Circuit_frein_avant: REAL; // en bar Boucle_controle_position_Thomson: REAL; // en mm Boucle_controle_vitesse_Thomson: REAL; // en mm VAR_OUTPUT Braking_setpoint_limited: REAL; Current_setpoint: REAL; // Consigne intensit - Force de freinage Delta_vitesse: REAL; // Delta consigne vitesse - vitesse actuelle Speed_setpoint: USINT; // Consigne de vitesse - vitesse de sortie/entr e de la tige Emergency_braking: BOOL; // Demande d'un freinage d'urgence Accelerate: BOOL; // TURE si le v hicule acc l re Bufferize_speed: BLINK; SR_Decel: SR; rtrigg_Restart_seq: R_TRIG; // Trigger detection front montant demande s quence r armement v rin thomson Refresh_rearm_verin: BLINK; Value_step_verin: WORD; internal_Vitesse_cible_vehicule: REAL; // en m/s internal_Pression_circuit_frein_avant: REAL; // en Bar internal_Braking_setpoint: REAL; // en mm - sortie de tige Braking_setpoint: REAL; // Consigne de freinage - distance de sortie du v rin thomson 652 {8e575c5b-1d37-49c6-941b-5c0ec7874787} ChildObjectGuids AddAttributeSubsequent internal_Vitesse_actuelle_vehicule := LIMIT(0, Vitesse_actuelle_vehicule, 10); internal_Pression_circuit_frein_arriere := LIMIT(0, Pression_Circuit_frein_arriere, 250); Braking_setpoint_limited := LIMIT(Param_Thomson.Param_sortie_min, Braking_setpoint, Param_Thomson.Param_sortie_max); (*Calcul_distance_max_arret_P3(Vitesse_vehicule := Vitesse_actuelle_vehicule, Distance_maximal_arret => Distance_arret_max);*) Fonction: Appel de la m thode monitoring dynamique du v hicule (*-----------------------------------------------------------------------------------------------------*) Delta_Calcule_Consigne( Valeur_actuelle := internal_Vitesse_actuelle_vehicule, Valeur_cible := internal_Vitesse_cible_vehicule, Delta_valeur => internal_Delta_calcule, Delta_vitesse := internal_Delta_calcule; Fonction: Appel de la m thode de consigne verin thomson Consigne_Thomson( Delta_calcule := internal_Delta_calcule, Coeff_delta_min := Param_delta_frein.Delta_min_35, Coeff_delta_max := Param_delta_frein.Delta_max, Consigne_thomson_min := Param_Thomson.Param_sortie_min, Consigne_thomson_max := Param_Thomson.Param_sortie_max, Consigne_thomson => internal_Braking_setpoint, IF internal_Braking_setpoint > 0 AND internal_Vitesse_actuelle_vehicule > 0 THEN IF Braking_setpoint < internal_Braking_setpoint THEN (* Remise 0 de la consigne de freinage sur pression commande manuel *) IF Manuel_actif = TRUE THEN Refresh_consigne(ENABLE:=((Tag_shared_from_CR1083.Shared_var_cr7xxS_inc_pos_tige) OR (Tag_shared_from_CR1083.Shared_var_cr7xxS_dec_pos_tige)), TIMELOW:=TIME#500MS , TIMEHIGH:=TIME#20MS , OUT=> ); RESET:= (countStep_rearm_verin.Q)OR(Tag_shared_from_CR1083.Shared_var_cr7xxS_restart_seq = FALSE), PV:= 9, Q=> , CV=> Value_step_verin); IF Manuel_actif = FALSE AND Autonom_actif = FALSE THEN (* Gestion d placement Manuel *) IF Refresh_consigne.OUT THEN ELSIF (Tag_shared_from_CR1083.Shared_var_cr7xxS_inc_pos_tige) AND (Braking_setpoint < Param_Thomson.Param_sortie_max) THEN Braking_setpoint := Braking_setpoint + 1; Enable_Thomson := TRUE; END_IF (* Gestion R armement V rin *) CASE Value_step_verin OF 1: Enable_Thomson := FALSE; 2: Braking_setpoint := 0; 3: Enable_Thomson := TRUE; 4: Enable_Thomson := FALSE; 5: Braking_setpoint := 15; 6: Enable_Thomson := TRUE; 7: Enable_Thomson := FALSE; 8: Braking_setpoint := 0; 9: Enable_Thomson := TRUE; END_CASE Fonction: Demande de lib ration des accu de freinage IF (Emergency_braking = TRUE) AND (internal_Vitesse_actuelle_vehicule = 0) THEN Emergency_braking := FALSE; ELSE |