Bonjour
Quelqu'un saurait sur quel événement le bit Systeme %S11 (chien de garde) passe à 1 ?
Je sais qu'il change d'état au dépassement du temps definit pour le CDG mais comment provoquer son changement d'état ?
J'effectue des tests en bureau donc sans E/S raccordé aux cartes.
Merci d'avance pour votre réponse
Bien cordialement,
Lucas SIMEREY
Chien de garde - bit système %S11 M340 - UNITY pro
-
- Générateur de blocs fonctions
- Messages : 105
- Enregistré le : 20 oct. 2015, 11:16
- Localisation : Oise et Ile-de-France / France
Re: Chien de garde - bit système %S11 M340 - UNITY pro
Salut,
je testerais un truc comme ça :
A chaque cycle de programme, on fait un certain nombre de tours de boucle (nb_tours), puis on prépare le prochain cycle à faire un tour de plus.
On mémorise le nombre de tours maxi pour garder une trace du nombre de tours nécessaires pour déclencher le chien de garde, histoire de voir...
Avec le simulateur, ça bloque à 9_033_000 tours chez moi, pour une période de 10 ms sur la tâche MAST.
je testerais un truc comme ça :
Code : Tout sélectionner
(* test du chien de garde *)
if %S0 or %S1 or %S13
then
nb_max := 0;
nb_tours := 1_000_000;
end_if;
for index in 0 to nb_tours by 1
do
nb_max := nb_tours;
if %S11
then
nb_tours := nb_tours - 10_000; (* pour éviter de faire planter l'API *)
break;
end_if;
end_for;
nb_tours := nb_tours + 1_000;
On mémorise le nombre de tours maxi pour garder une trace du nombre de tours nécessaires pour déclencher le chien de garde, histoire de voir...
Avec le simulateur, ça bloque à 9_033_000 tours chez moi, pour une période de 10 ms sur la tâche MAST.
Laurent