Bonjour
Je rencontre un soucis , jaimerais realiser un programme en ladder qui me permet de trouver un emplacement libre .
Je mexplique enfaite jai 4 emplacement A B C D stocker dans un DB , avec comme etat initial A =1 B=0 C=1 D=0
1 pour occupe et 0 pour libre
Donc jaimerai par appui sur bouton poussoir trouver le premier emplacement libre et le mettre a 1.
Dit comme ça sa parait simple mais jy arrive vraiment pas a une solution.
Cordialement.
Recherche emplacement
Re: Recherche emplacement
Bonjour,
Si ce n'est que sur un mot, simple. Par contre, sur une table de mot, penser à plus profond.
Tu réalise un "AND" avec le mot sur chaque bit qui valide une info et tu travailles avec la 1er info à 0.
Exemple Ton mot DB100.DBW20 ou
A = DB100.DBX21.0 = 1
B = DB100.DBX21.1 = 0
C = DB100.DBX21.2 = 1
D = DB100.DBX21.3 = 0
A_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0001 (0000 0000 0000 0001) =TRUE
B_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0002 (0000 0000 0000 0010) = FALSE
C_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0004 (0000 0000 0000 0100) = TRUE
D_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0008 (0000 0000 0000 1000) = FALSE
Ensuite tu utilses le 1er en FALSE, c'est le plus compréhensible.
Maintenant, cela réponds t il à ta demande ?
+
Si ce n'est que sur un mot, simple. Par contre, sur une table de mot, penser à plus profond.
Tu réalise un "AND" avec le mot sur chaque bit qui valide une info et tu travailles avec la 1er info à 0.
Exemple Ton mot DB100.DBW20 ou
A = DB100.DBX21.0 = 1
B = DB100.DBX21.1 = 0
C = DB100.DBX21.2 = 1
D = DB100.DBX21.3 = 0
A_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0001 (0000 0000 0000 0001) =TRUE
B_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0002 (0000 0000 0000 0010) = FALSE
C_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0004 (0000 0000 0000 0100) = TRUE
D_Occupe = DB100.DBW20 (0000 0000 0000 0101) AND 16#0008 (0000 0000 0000 1000) = FALSE
Ensuite tu utilses le 1er en FALSE, c'est le plus compréhensible.
Maintenant, cela réponds t il à ta demande ?
+

