Alors le contexte...
Je cherche à afficher un code de défaut sur un bloc de 3 afficheurs 7 segments pilotables en BCD.
Les défauts ont chacun leur bit respectif (M20.0, M20.1, M20.3...).
Si les défauts M20.0 et M20.3 se déclenchent, je veux afficher 001 (M20.0 est le défaut 1) pendant une seconde, puis 004 (M20.3 est le défaut 4) pendant une seconde, et on reboucle. Et ce, sur autant de défauts qui se présentent et tant qu'il y en a.
Quand tous les défauts ont disparu, j'affiche 000.
J'interroge donc chaque bit du mot MW20 et n'affiche que ceux qui sont à 1. Quand un (ou plusieurs) bit à 0 s'intercale(nt) entre deux bits à 1, je n'en tiens pas compte et file chercher le prochain bit à 1.
Hum, pas facile à expliquer...
Bref, voilà mon code.
MW20 est donc le mot de défaut à interroger.
M2.1 est un pulse (front montant d'un bit de cadence) d'une seconde.
Le reste est dans le DB.
Une petite usine à gaz qui doit pouvoir s'optimiser probablement, mais bon, ça tourne.
Photo d'écran pour avoir tous les commentaires.
Connaître le rang d'un bit à 1 dans un mot.
Re: Connaître le rang d'un bit à 1 dans un mot.
ça part dans tous les sens...
voici une version simplifiée :
je suis presque sûr que tu peux aussi supprimer des variables.
Ca se fait encore les afficheurs 7 segments ?
Moi je remonte tout sur des TV 55 pouces (via browser web sous Android TV ou sinon Raspberry) avec des libellés directement.
@+
voici une version simplifiée :
Code : Tout sélectionner
ON...
O(
UN...
UN...
)
SPB FIN
L "Aff defauts".Cptbit
+ 1
UW 16#F
T "Aff defauts".Cptbit
L "Mot défauts"
SRW
UW 16#1
U ==0
= "Aff defauts".Bit0
SPB FIN
L "Aff defauts".Cptbit
+ 1
T "Aff defauts".Numdef
ITB
T "Afficheur"
FIN: ...
Ca se fait encore les afficheurs 7 segments ?
Moi je remonte tout sur des TV 55 pouces (via browser web sous Android TV ou sinon Raspberry) avec des libellés directement.
@+
- Béryl
- Mi homme - Mi automate

- Messages : 1953
- Enregistré le : 20 oct. 2015, 12:00
- Localisation : localhost
Re: Connaître le rang d'un bit à 1 dans un mot.
Bien joué, Steph68, ton code est plus concis et tourne nickel !
Comme quoi, 10 programmeurs, 10 programmes différents !
Eh oui, il reste des vieilles machines avec des afficheurs (j'ai même encore quelques roues codeuses qui trainent par-ci par-là). Enfin, c'est juste une partie de la machine. Cette dernière est beaucoup plus pêchue et a son propre PPC pour dialoguer avec l'automate (un S7-400).
Comme quoi, 10 programmeurs, 10 programmes différents !
Eh oui, il reste des vieilles machines avec des afficheurs (j'ai même encore quelques roues codeuses qui trainent par-ci par-là). Enfin, c'est juste une partie de la machine. Cette dernière est beaucoup plus pêchue et a son propre PPC pour dialoguer avec l'automate (un S7-400).
Re: Connaître le rang d'un bit à 1 dans un mot.
Excellent!
J’aurais fait encore différemment et certainement avec un code plus « long »
En tout cas bravo, j’aime voir vos façons de coder, c’est très intéressant.
Ce genre de code pourrait être utile un jour.
J’ai bien pensé à le sauvegarder mais le jour où j’en aurais besoin, je ne le retrouverais pas
J’aurais fait encore différemment et certainement avec un code plus « long »
En tout cas bravo, j’aime voir vos façons de coder, c’est très intéressant.
Ce genre de code pourrait être utile un jour.
J’ai bien pensé à le sauvegarder mais le jour où j’en aurais besoin, je ne le retrouverais pas
- andala
- Créateur de langage

- Messages : 505
- Enregistré le : 19 déc. 2016, 10:24
- Localisation : Atlantide
Re: Connaître le rang d'un bit à 1 dans un mot.
Pourquoi ne pas faire un petit block FBD pour ça ? comme ça tu te le trimbale partout en l'exportant... je dis ça...
Une bonne action en entraine toujours une autre
- Béryl
- Mi homme - Mi automate

- Messages : 1953
- Enregistré le : 20 oct. 2015, 12:00
- Localisation : localhost
Re: Connaître le rang d'un bit à 1 dans un mot.
Parce que, comme le dit si bien Steph68 : "Ça se fait encore les afficheurs 7 segments ?"
C'est le première fois en 30 et quelques années que j'ai à faire ça. Alors bon, je garde le code par-là dans mon pc, mais je ne compte pas m'en resservir de si tôt !
- itasoft
- Mi homme - Mi automate

- Messages : 7803
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Connaître le rang d'un bit à 1 dans un mot.
j'avais fait ça en lagage à contact sur un M221 , le demander si le besoin s'en fait cruellement sentir
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
- andala
- Créateur de langage

- Messages : 505
- Enregistré le : 19 déc. 2016, 10:24
- Localisation : Atlantide
Re: Connaître le rang d'un bit à 1 dans un mot.
Ah oui d'accord ! autant pour moi
Une bonne action en entraine toujours une autre

