Ajout API communiquant sans modifier les programmes des existants
Posté : 11 mai 2017, 12:17
Bonjour,
Dans mes bâtiments j'ai régulièrement plusieurs automates. Ils gèrent différentes choses : chauffage, éclairage, ventilation, refroidissement, air comprimé, et d'autres trucs à la demande du client...
Comme on est dans le bâtiment, tout est toujours super bien pensé avec des automates toujours super accessibles.... Et en plus on nous appelle "il y a un défaut dans le bâtiment 5", et nous on cherche...
Donc notre client a eu une idée :
Dans tous les automates sont programmés des pages Web qui sont affichées sur des écrans tactiles. La plupart du temps, chaque API a son écran perso. Il n'y a pas de supervision générale.
Tous les projet Web des automates d'un même bâtiment devront être liés entre eux au moyen d'un menu générique. Ainsi toutes les pages d'accueil des projet web sont un menu :
- chauffage
- Ventilation
- Refroidissement
- Eclairage
- autre (air comprimé, etc)
Ensuite, il y a les sous menus, par exemple pour le chauffage :
- échangeur ES
- circuit nord,
- circuit sud
- circuit est
Et quand on clique sur le bouton "circuit nord", on affiche la vue correspondante, et donc on fait un "jump url" pour aller sur l'automate qui gère cet équipement et qui possède cette vue Web.
Je vous joins un schéma explicatif.
Jusque là c'est facile.
Maintenant, le problème, c'est qu'il souhaite que lorsque le circuit Sud est en défaut par exemple, le bouton "chauffage" soit en rouge ainsi que le bouton "circuit sud" sur chacun des projets web du bâtiment.
Il faut donc que je transmette des synthèses défauts entre les automates. J'ai prévu de le faire avec des mots. Par exemple le chauffage aura 1 mot de synthèse avec le bit 0 pour le défaut échangeur ES, le bit 1 pour le défaut circuit nord, le bit 2 pour le défaut circuit sud etc.
Le premier problème c'est qu'un automate ne fait pas forcément que du chauffage et que plusieurs automates dans le bâtiment peuvent faire du chauffage et donc écrire dans cette synthèse... il faut donc que tous les automates puisse récupérer les mise à jours des copains pour chaque synthèses.
En programmation de départ, c'est pas très compliqué à faire... mais les automates sont amenés à évoluer ET on peut en ajouter dans les bâtiments qui devront s'intégrer à ce schéma.
Le problème c'est qu'à chaque modif je me retrouve à modifier :
- les projets web de tout le monde, mais c'est pas grave car je peux recharger un projet web sans aucune coupure de service.
- la programmation de tous les automates pour l'échange des données... et là ça pose problème. Certains automates pilotent des systèmes ultra sensibles type salle serveur, refroidissement four, réseau général de distribution etc....
De plus dans certains bâtiment j'ai 25 automates.... Vla le boulot en cas d'ajout d'un API, le nombre d'automates à recharger et tout !
J'en ai déjà parler au client, il tient à son idée.... jusqu'au moment où il verra le temps prévu pour faire la modif et le coût. Là ça sera le drame !
Il est impossible d'avoir un automate concentrateur. Les automates doivent tous être autonomes en cas d'avarie réseau...
Si vous avez une idée de comment gérer la com, je prends.
Chacun de mes automates peut aller lire ou écrire dans un autre et se faire lire ou écrire dessus.
Dans mes bâtiments j'ai régulièrement plusieurs automates. Ils gèrent différentes choses : chauffage, éclairage, ventilation, refroidissement, air comprimé, et d'autres trucs à la demande du client...
Comme on est dans le bâtiment, tout est toujours super bien pensé avec des automates toujours super accessibles.... Et en plus on nous appelle "il y a un défaut dans le bâtiment 5", et nous on cherche...
Donc notre client a eu une idée :
Dans tous les automates sont programmés des pages Web qui sont affichées sur des écrans tactiles. La plupart du temps, chaque API a son écran perso. Il n'y a pas de supervision générale.
Tous les projet Web des automates d'un même bâtiment devront être liés entre eux au moyen d'un menu générique. Ainsi toutes les pages d'accueil des projet web sont un menu :
- chauffage
- Ventilation
- Refroidissement
- Eclairage
- autre (air comprimé, etc)
Ensuite, il y a les sous menus, par exemple pour le chauffage :
- échangeur ES
- circuit nord,
- circuit sud
- circuit est
Et quand on clique sur le bouton "circuit nord", on affiche la vue correspondante, et donc on fait un "jump url" pour aller sur l'automate qui gère cet équipement et qui possède cette vue Web.
Je vous joins un schéma explicatif.
Jusque là c'est facile.
Maintenant, le problème, c'est qu'il souhaite que lorsque le circuit Sud est en défaut par exemple, le bouton "chauffage" soit en rouge ainsi que le bouton "circuit sud" sur chacun des projets web du bâtiment.
Il faut donc que je transmette des synthèses défauts entre les automates. J'ai prévu de le faire avec des mots. Par exemple le chauffage aura 1 mot de synthèse avec le bit 0 pour le défaut échangeur ES, le bit 1 pour le défaut circuit nord, le bit 2 pour le défaut circuit sud etc.
Le premier problème c'est qu'un automate ne fait pas forcément que du chauffage et que plusieurs automates dans le bâtiment peuvent faire du chauffage et donc écrire dans cette synthèse... il faut donc que tous les automates puisse récupérer les mise à jours des copains pour chaque synthèses.
En programmation de départ, c'est pas très compliqué à faire... mais les automates sont amenés à évoluer ET on peut en ajouter dans les bâtiments qui devront s'intégrer à ce schéma.
Le problème c'est qu'à chaque modif je me retrouve à modifier :
- les projets web de tout le monde, mais c'est pas grave car je peux recharger un projet web sans aucune coupure de service.
- la programmation de tous les automates pour l'échange des données... et là ça pose problème. Certains automates pilotent des systèmes ultra sensibles type salle serveur, refroidissement four, réseau général de distribution etc....
De plus dans certains bâtiment j'ai 25 automates.... Vla le boulot en cas d'ajout d'un API, le nombre d'automates à recharger et tout !
J'en ai déjà parler au client, il tient à son idée.... jusqu'au moment où il verra le temps prévu pour faire la modif et le coût. Là ça sera le drame !
Il est impossible d'avoir un automate concentrateur. Les automates doivent tous être autonomes en cas d'avarie réseau...
Si vous avez une idée de comment gérer la com, je prends.
Chacun de mes automates peut aller lire ou écrire dans un autre et se faire lire ou écrire dessus.