Bonjour,
Aujourd'hui je vous présente un projet sur lequel je bosse depuis un peu plus de 2 ans. C'est une supervision que je développe sur Fusion 2.5. Le projet avance bien mais n'est pas encore fini.
La suite communique avec 3 bases de donnée. Le système de courbe, les données machine, tout y est enregistré.
Prochainement je vais y ajouter une page de contrôle de ces bases de donnée, un paramétrage (système de login avec des droits), une planification de production etc... bref j'ai encore du boulot ^^
Voilà voilà !
Bon visionnage ^^
Ouah, très beau boulot!
Je suis intéressé de savoir quelles solutions techniques (CF2.5 extensions ou non) tu as choisies pour les choses suivantes:
- Actualisation des graphs d'états: communication réseau avec les machines?
- Base de données: MySQL, MSSQL, ...?
- Graphiques (courbes, diagrammes): custom code ou extensions (Oxyplot, ...)?
Alors !
Le graph d'état, comme les courbes et diagrammes sont simplement de l'objet Surface sur lequel je dessine en fonction d'une table dans ma base de donnée qui se présente comme ça.
ID | Pourcentage | Etat |
Ensuite à l'aide d'une boucle (comme m'a appris Patrice ^^, avec une petite variante pour ma part), je remplis les objet surface avec mes données collecté :
- la courbe => grâce au pourcentage je trace une ligne de X timeline et un Y0 et Ypourcentage
- le graff d'état => chaque Id d'état correspond a une zone, du coup quand je lis une ligne sur la base de donnée et que la valeur est 1 il me fait un trait dans production et ainsi de suite
Concernant les machines, ce sont des écrans embarqués programmé par LADER, qui vont envoyer les données de l'automate aux base de données.
Pour la base de donnée j'utilise immanquablement l'objet ODBC et la base est une SQL Server.
Pour résumer tout ça tourne avec les objets : ODBC, surface, liste, chaine, actif, combo ^^
Si tu as besoin de plus de précision je suis là pour ca ^^
Cool. J'avais oublié l'objet ODBC.
Tu envoies donc des Query en permanence pour récupérer les données des automates depuis la base de données?
Je suppose que la latence n'est pas un trop gros problème de votre côté alors?
Une timeline de 8h (28800 secondes) correspond à 1200 pixel (la largeur de l'objet surface). La base de donnée se rempli d'une ligne toute les 24s.
28800 / 1200 = 24
J'ai laissé le choix à l'utilisateur. Soit le logiciel remet a jour toute les 24s, soit il le fait en manuel avec un bouton ou la touche F5. Ce qui permet (s'il y a trop de trafic sur le réseau) de limiter l'impact de la latence et de garder du coup un système assez rapide.
Dans un futur proche je vais fibrer le réseau local pour permettre d'avoir des chargements presque instant, du coup normalement tout devrait être bien plus rapide.
La vache je me suis toujours demandé quelle était les possibilité de Fusion 2.5 pour le développement logiciel et je vois qu'elle sont énormes. Comment à tu fait l'interface de ton logiciel avec le menu sur la gauche ? Et qu'elle résolution utilise tu ? Elle est défini par rapport au poste de travail ou le logiciel est utilisé ou l'interface et redimensionnable ?
Super réalisation bravo.
Salut !!
Merci pour le compliment mais je suis très loin d'être du niveau de certains ici ^^
L'interface est construite sur photoshop. Je l'ai découpée en frame pour avoir chaque élément séparé.
Les boutons sont des actifs.
Toutes l'interface est monté sur plusieur calques. (calque tooltip, interface, menu etc... )
Visuellement parlant c'est propre mais la programmation est pas tip top... J' ai encore pas mal de choses à apprendre et à essayer :/.
Pour le moment l'interface est prévu pour du 1920*1080, mais sera par la suite prévu pour du 720p mini à 4k.
J'ai également fais la partie IHM que je n'ai pas présenté ici encore et beaucoup de choses ont changé depuis la version de la vidéo (je ferais un petit topo d'ici 2 ou 3 semaine)
Voilà voilà si tu a d'autres questions n'hésite pas ;)
Ouais il y a des chance que je te bombarde de question dans l'avenir :-D J'ai l'habitude de développer mes logiciels avec un langage de programmation mais fusion me permettrait de gagner énormément de temps si je le maîtrise. Mais changer d'un langage à fusion et un peut déroutant car il y a tellement d'options à droite et à gauche que ce n'est pas simple de le prendre en main au début surtout pour la programmation de la logique avec le tableau des événements.
Moi je n'utilise pas le tableau,c'est pour les débutants.La feuille d'evenement est plus proche de la programmation.