philou77 a écrit : ↑29 mars 2017, 10:46
Pour faire simple :
L'automate fait :
1 - il regarde toutes ses Entrées et affecte la zone MIE (Mémoire image des entrées)
2 - il traite son programme, affecte les mémoires, affecte les sorties dans la MIS (Mémoire Image des sorties)
3 - pour finir il affecte d'un coup les mémoire physiques en transférant la MIS dans les sorties
et il recommence..indéfiniment..
Ton pupitre lui affecte ses mémoire n'importe ou entre le point 1 et le point 3...
Donc si il le fait entre le point 1 et le point 2 ça peut marcher...
Si il le fait pendant le point 2, c'est plus aléatoire (en fonction de la scrutation du programme, quelle instruction est traitée, a t-on dépassé le point ou le programme teste l'entrée...)
si il fait pendant le point 3, ça marchera pas, car le point 1 va 'effacer' ce qu'a fait le pupitre...
Ton programme 'marche' (et encore c'est de la bidouille) car oui, si tu affectes une entrée qui n'est pas scrutée physiquement par l'automate, aucun e raison que celui change quelque chose car cette entrée n'existe pas 'physiquement'. tu as donc trouvé un moyen de transformer une entrée en 'mémoire'.
On faisait cela en siemens il y a bien longtemps quand les ordinateurs avaient très peu de mémoire et qu'elle était super chère !!
Depuis, nos 'chers' automates ont bien assez de mémoire pour s'en passer et programmer 'propre'.
Donc !
Règle N°1 : Ne JAMAIS AFFECTER une entrée par programme !!
Règle N° 2 : si on veut attribuer une entrée par programme , appliquer la règle N° 1