Architecture
ADISRA SmartView se compose de trois composants principaux.
- Ingénierie
- Durée
- Viewer
Tout d’abord, examinons l’image ci-dessous et comprenons ensuite comment ils fonctionnent en interne.
![](https://www.adisra.fr/wp-content/uploads/2021/06/Architecture-High-Level.png)
Ingénierie
L’outil d’ingénierie ADISRA SmartView est utilisé par le développeur d’applications pour créer l’intégralité de l’application et nécessite une licence d’ingénierie pour le faire. À tout moment, cette application peut être construite ou exécutée. Ces deux actions nécessitent une génération complète de l’application puisque la sortie de cette génération sera utilisée par le runtime et la visionneuse.
Mais que se passe-t-il réellement lorsque vous créez une application ?
La sortie de la construction sont plusieurs fichiers DLL qui seront générés dans le dossier du projet. Les DLL doivent être des DLL valides, sinon la construction échouera et une erreur apparaîtra dans les journaux d’ingénierie. S’il y a des erreurs dans un bouton par exemple, vous pourrez toujours exécuter l’application et démarrer le RunTime et le Viewer, mais ce bouton ne fonctionnera pas.
Dès que les DLL sont générées, elles seront utilisées par le Runtime et le Viewer. Ces DLL générées automatiquement sont essentiellement des classes C# qui représenteront un écran graphique, un déclencheur ou peut-être un service.
![](https://www.adisra.fr/wp-content/uploads/2021/06/DllGeneration-1024x785-1.png)
Runtime
ADISRA SmartView Runtime est un serveur essentiel à toute application. Il est possible qu’une application s’exécute sans aucun Viewer, mais jamais sans Runtime. Le runtime contient tous les tags, services, déclencheurs, communication du pilote, communication de base de données, alarmes, bibliothèques de fonctions et système de sécurité.
Il est également possible de créer des serveurs redondants, ce qui signifie que deux serveurs situés dans des machines différentes seront maintenus synchronisés.
Le Runtime est installé sur la machine du client et il nécessite une licence Runtime pour être exécuté. Pour exécuter le Runtime, il suffit d’un raccourci qui démarrera essentiellement l’exécutable du Runtime (le client n’a pas besoin d’ouvrir l’ingénierie pour démarrer le Runtime).
Dès qu’il est exécuté, il ouvre un port pour recevoir la connexion des clients suivants.
- Téléspectateur
- Visionneuse à distance
- Navigateur Web
- Observateur de données
Viewer
L’ADISRA SmartView Viewer, comme mentionné ci-dessus, est un client du serveur d’exécution. Elle n’est pas indispensable à l’exécution d’une application, mais c’est la représentation graphique de l’application. Un bon exemple est la possibilité de permettre aux utilisateurs d’interagir avec la machine (Human Machine Interface) en envoyant des commandes ou en recevant des données.
Il peut être exécuté sur n’importe quelle machine distante et se connecter au serveur Runtime.
Dès que la connexion est établie, le serveur Runtime transfère les écrans graphiques à ouvrir par les Viewers afin que l’utilisateur n’ait pas besoin de télécharger le projet avant de l’exécuter. Comme mentionné précédemment, le Runtime contient de nombreux modules tels que les balises, les services, les déclencheurs, etc… mais les visionneuses contiendront également certaines exécutions localement. Les écrans graphiques étant transférés pour chaque connexion Viewer, ils seront exécutés localement. Un script d’écran (c’est-à-dire à l’ouverture) sera exécuté localement sur cette visionneuse et n’affectera pas les autres visionneuses. Ce fait est important à garder à l’esprit au cas où une animation serait créée. Si une animation doit être animée pour toutes les visionneuses en même temps, la logique d’animation doit être dans le Runtime ; il peut s’agir d’un service modifiant les valeurs d’une balise. Cependant, si l’animation doit être locale pour chaque spectateur, cette animation ne doit pas utiliser de balises, mais des objets d’écran et des scripts d’écran.
Architecture de script
![](https://www.adisra.fr/wp-content/uploads/2021/06/Architecture-Scripts.png)