slts,
disons que j'ai un exemple mais c'est en langage ST
affichage liste defaut - Unity
- itasoft
- Mi homme - Mi automate
- Messages : 7167
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: affichage liste defaut - Unity
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: affichage liste defaut - Unity
Itasoft
Si tu veux la mettre en ligne je veux bien regarder ta solution aussi.
Merci à tous
Si tu veux la mettre en ligne je veux bien regarder ta solution aussi.
Merci à tous
- itasoft
- Mi homme - Mi automate
- Messages : 7167
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: affichage liste defaut - Unity
(*-- LES DEFAUTS SONT DANS LES BITS DU MOT WDEF_N ---*)
(*Bit horloge 5s*)
TON_0(IN:=NOT H5s, PT:=t#5s, Q=>H5s);
(* Bits qui ont changés d'état dans WDEF_N *)
WXOR:=WDEF_N XOR WDEF_M;
(* Bits en apparitions*)
WAPP:=WXOR AND WDEF_N;
(* Mémoire Etat N->N-1 *)
WDEF_M:=WDEF_N;
(*Raz FIFO *)
FIFO_0 (R:=%S0 or %S1 or %S13, SET:=false,GET:=false, X:=XX,N_MAX:=128, FULL=>FIFO_PLEIN,EMPTY=>FIFO_VIDE,Y=> OUT_DEF) ;
(*Entrée des défauts en apparition dans registre FIFO *)
for XX:=1 to 16 do
if WAPP.0 then
FIFO_0 (SET:=true,GET:=false, X:=XX, N_MAX:=128, Y=>OUT_DEF) ;
end_if;
WAPP:=SHR(WAPP,1);
END_FOR;
(*Extraction des n°de défauts du FIFO pour affichage toutes les 5s *)
if H5s then
FIFO_0(SET:=false,GET:=true, X:=XX,N_MAX:=128, Y=>OUT_DEF) ;
if OUT_DEF>0 then
(*n°défaut*)
BYTE0:=INT_TO_BYTE(OUT_DEF);
(*faire l'affichage ici*)
OUT_DEF:=0;
end_if;
end_if;
(*Bit horloge 5s*)
TON_0(IN:=NOT H5s, PT:=t#5s, Q=>H5s);
(* Bits qui ont changés d'état dans WDEF_N *)
WXOR:=WDEF_N XOR WDEF_M;
(* Bits en apparitions*)
WAPP:=WXOR AND WDEF_N;
(* Mémoire Etat N->N-1 *)
WDEF_M:=WDEF_N;
(*Raz FIFO *)
FIFO_0 (R:=%S0 or %S1 or %S13, SET:=false,GET:=false, X:=XX,N_MAX:=128, FULL=>FIFO_PLEIN,EMPTY=>FIFO_VIDE,Y=> OUT_DEF) ;
(*Entrée des défauts en apparition dans registre FIFO *)
for XX:=1 to 16 do
if WAPP.0 then
FIFO_0 (SET:=true,GET:=false, X:=XX, N_MAX:=128, Y=>OUT_DEF) ;
end_if;
WAPP:=SHR(WAPP,1);
END_FOR;
(*Extraction des n°de défauts du FIFO pour affichage toutes les 5s *)
if H5s then
FIFO_0(SET:=false,GET:=true, X:=XX,N_MAX:=128, Y=>OUT_DEF) ;
if OUT_DEF>0 then
(*n°défaut*)
BYTE0:=INT_TO_BYTE(OUT_DEF);
(*faire l'affichage ici*)
OUT_DEF:=0;
end_if;
end_if;
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: affichage liste defaut - Unity
Merci pour ton retour Itasoft.
je viens te tester :
Quand WDEF_N vaut 1 alors BYTE0 vaut 1
Quand WDEF_N vaut 2 alors BYTE0 vaut 2
mais quand WDEF_N vaut 3 alors BYTE0 vaut 2 alors que je voudrais 1 puis au bout de 5s 2 - Clignotement en alternance des défauts
Possible?
je viens te tester :
Quand WDEF_N vaut 1 alors BYTE0 vaut 1
Quand WDEF_N vaut 2 alors BYTE0 vaut 2
mais quand WDEF_N vaut 3 alors BYTE0 vaut 2 alors que je voudrais 1 puis au bout de 5s 2 - Clignotement en alternance des défauts
Possible?
- itasoft
- Mi homme - Mi automate
- Messages : 7167
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: affichage liste defaut - Unity
slts,
ça traite les bits en apparition donc mettre à zéro le WDEF_N avant de y mettre une nouvelle valeur
Si tu met la valeur 1 dans WDEF_N puis la valeur 2 puis la valeur 3 avec la valeur 3 ya que le bit 0 qui est apparu le bit 1 était déjà là
met 255 dans WDEF_N et tu verra BYTE0 compter de 1 à 8
ça traite les bits en apparition donc mettre à zéro le WDEF_N avant de y mettre une nouvelle valeur
Si tu met la valeur 1 dans WDEF_N puis la valeur 2 puis la valeur 3 avec la valeur 3 ya que le bit 0 qui est apparu le bit 1 était déjà là
met 255 dans WDEF_N et tu verra BYTE0 compter de 1 à 8
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: affichage liste defaut - Unity
Super Itasoft, ça fonctionne bien.
Je te remercie de ton aide![Très content :D](./images/smilies/icon_e_biggrin.gif)
Je te remercie de ton aide
![Très content :D](./images/smilies/icon_e_biggrin.gif)