[M340] Amelioration programmation en ST
Posté : 19 déc. 2023, 12:08
Bonjour à tous,
Je vous demande conseil sur le code suivant concernant une mesure de poids d'un element qui s'enregistre dans une BDD:
Pensez-vous qu'il y a moyen de l'optimiser ? le code fonctionne mais je recherche juste une amélioration si il y en a une que vous voyez
Même s'il ne s'agit que de petites modifications, je suis preneur
Merci d'avance, comme toujours
Je vous demande conseil sur le code suivant concernant une mesure de poids d'un element qui s'enregistre dans une BDD:
Code : Tout sélectionner
IF poids_mesure = 0.0 AND En_auto (*Si aucune meule detecté et si la machine fonctionne*)
THEN Top_mesure :=1 ; (*Alors j'autorise la mesure*)
END_IF;
WHILE BDD_poids_enregistrement[index_poids] > 0 AND index_poids <= 200 DO (*Verifie si un emplacement est vide et si le tableau n'est pas plein*)
index_poids := index_poids + 1;
END_WHILE;
IF poids_mesure < Poids_coherent_min AND poids_mesure > Poids_coherent_max
THEN Top_mesure :=0 ;
Discordance_poids:=1;
END_IF;
IF poids_mesure > Poids_mini AND BDD_poids_enregistrement[index_poids] = 0 AND Top_mesure =1 (*Si le poids mesuré est superieur au poids minimum attendu et si la valeur de la BDD correspondante est bien vide (a 0) et que j'autorise une mesure*)
THEN BDD_poids_enregistrement[index_poids] := poids_mesure;
Top_mesure :=0; (*alors J'inscrit la mesure kdans la BDD a l'index corespondant puis j'interdit une nouvelle mesure*)
END_IF;
IF index_poids = 200 AND BDD_poids_enregistrement[index_poids] > 0 (*Si mon index depasse la valeur du tableau, j'interdit une nouvelle mesure*)
THEN Top_mesure :=0 ;
Alerte_BDD_pleine := 1;
END_IF;Même s'il ne s'agit que de petites modifications, je suis preneur
Merci d'avance, comme toujours