27/03/2019, 11:29:04
Merci Filou59
Pour mon idée de "heartbeat", il n'est pas question que pour celui ci soit diffusé en continu, plutot genre toutes les 10s, 30s (?), bref avec un délai raisonnable pour ne pas saturer le bus et ne pas non plus avoir un risque de non fonctionnement trop long.
Après, le module logique "garde" la présence ou non du heartbeat, et il faut aussi une horloge ou équivalent pour que le module logique sache qu'il n'a pas reçu de hartbeat pendant X temps et donc basculer sur le second masque/autre mapping si nécessaire.
Bon après ça me semble quand même bien compliqué, même un peu du bricolage mais conceptuellement je me dis que ça marche.
Après pour la programmation de ça, ça reste de la logique booléenne à bien choisr pour faire le masquequi va bien.
Si on prend des GAs sur 3 niveaux, on a des GA du style X Y Z, avec Z sur 8 bits, donc X Y Z8...Z1
Moi je partirai sur le bit de poids faible pour faire distinction GA superviseur, GA actionneur; par exemple 1.1.2 pour superviseur et 1.1.3 pour l'actionneur.
On considère que l'@ de base est 1.1.2 et en applicant un simple OU avec 0.0.1 dans le cas ou on a plus de heartbeat, on passe de 1.1.2 à 1.1.3
Dans le cas ou le heartbeat a été reçu, on fait rien ou un OU avec 0.0.0 (ce qui revient au même).
Au départ j'avoue que j'imaginais que le superviseur envoie un heartbeat, mais en réfléchissant, il est plus simple que périodiquement le module logique demande si le superviseur est la, il faut donc une horloge ou un module logique pouvant envoyé périodiquement des trames (je sais pas du tout si ça existe). Evidemment, l'horloge ne doit pas être le superviseur.
Et maintenant que j'y réfléchis un peu plus, si on a pas trop de monde sur le bus, le module logique peut même par défaut envoyer sur la GA superviseur et le superviseur renvoie des réception son heartbeat.
Si le module logique ne le reçoit pas alors il bascule en mode "superviseur mort" (et avec un peu de logique on doit pouvoir même lui faire renvoyer la dernière commande avec la deuxième @ mais suis pas vraiment sur, j'ai pas étudié les possibilités des modules logiques).
Par contre tout mon truc se base sur le fait que le module logique puisse s'enregistrer sur toutes les GAs qui doivent aller au superviseur et ça je sais vraiment pas si c'est possible.
Pour mon idée de "heartbeat", il n'est pas question que pour celui ci soit diffusé en continu, plutot genre toutes les 10s, 30s (?), bref avec un délai raisonnable pour ne pas saturer le bus et ne pas non plus avoir un risque de non fonctionnement trop long.
Après, le module logique "garde" la présence ou non du heartbeat, et il faut aussi une horloge ou équivalent pour que le module logique sache qu'il n'a pas reçu de hartbeat pendant X temps et donc basculer sur le second masque/autre mapping si nécessaire.
Bon après ça me semble quand même bien compliqué, même un peu du bricolage mais conceptuellement je me dis que ça marche.
Après pour la programmation de ça, ça reste de la logique booléenne à bien choisr pour faire le masquequi va bien.
Si on prend des GAs sur 3 niveaux, on a des GA du style X Y Z, avec Z sur 8 bits, donc X Y Z8...Z1
Moi je partirai sur le bit de poids faible pour faire distinction GA superviseur, GA actionneur; par exemple 1.1.2 pour superviseur et 1.1.3 pour l'actionneur.
On considère que l'@ de base est 1.1.2 et en applicant un simple OU avec 0.0.1 dans le cas ou on a plus de heartbeat, on passe de 1.1.2 à 1.1.3
Dans le cas ou le heartbeat a été reçu, on fait rien ou un OU avec 0.0.0 (ce qui revient au même).
Au départ j'avoue que j'imaginais que le superviseur envoie un heartbeat, mais en réfléchissant, il est plus simple que périodiquement le module logique demande si le superviseur est la, il faut donc une horloge ou un module logique pouvant envoyé périodiquement des trames (je sais pas du tout si ça existe). Evidemment, l'horloge ne doit pas être le superviseur.
Et maintenant que j'y réfléchis un peu plus, si on a pas trop de monde sur le bus, le module logique peut même par défaut envoyer sur la GA superviseur et le superviseur renvoie des réception son heartbeat.
Si le module logique ne le reçoit pas alors il bascule en mode "superviseur mort" (et avec un peu de logique on doit pouvoir même lui faire renvoyer la dernière commande avec la deuxième @ mais suis pas vraiment sur, j'ai pas étudié les possibilités des modules logiques).
Par contre tout mon truc se base sur le fait que le module logique puisse s'enregistrer sur toutes les GAs qui doivent aller au superviseur et ça je sais vraiment pas si c'est possible.