Adisra

Script

Le logiciel ADISRA SmartView offre une intégration puissante avec des scripts c# dans plusieurs parties de l’application.

C# est un langage de programmation développé par Microsoft qui s’exécute sur le .NET Framework. Il est largement utilisé et connu par les développeurs et est un langage de haut niveau, il fait abstraction de la plupart des tâches complexes et, comme il s’agit d’un langage populaire, il continuera d’évoluer et d’apporter plus de fonctionnalités et d’améliorations.

Pourquoi C# et pas n’importe quel autre langage ?

L’ADISRA SmartView a été créé pour être un outil flexible et facile à utiliser. Dans cet esprit, ADISRA SmartView a été développé en utilisant C# car c’est un langage avec de si bonnes performances qui est vital pour les logiciels SCADA et qui possède de nombreuses fonctionnalités intéressantes. Après avoir pris cette décision, il était facile de choisir C# comme langage de script. Les utilisateurs seraient en mesure d’implémenter un code puissant en utilisant un langage largement documenté et pris en charge par tant d’autres développeurs.

Comment puis-je apprendre C# ?

Il existe de nombreuses façons d’apprendre le C#. Vous pouvez lire des documentations, suivre des cours en ligne ou suivre des tutoriels. Pour écrire des scripts, l’application ne nécessitera pas de connaissances approfondies, mais vous avez choisi d’apprendre C#, vous serez capable de créer de bons scripts.
N’hésitez pas à consulter certaines des références ci-dessous au cas où vous souhaiteriez plus d’informations et de matériel à apprendre :

Les scripts d'ADISRA SmartView

1. Vue d'ensemble

Explorons maintenant les scripts ADISRA SmartView. Ils combinent le code C# avec quelque chose d’autre qui les rend très puissants pour connecter l’ensemble de l’application.

ADISRA SmartView est un logiciel SCADA (Supervisory Control and Data Acquisition). ADISRA SmartView permet aux utilisateurs de manipuler toutes les données collectées ou les données envoyées à différents emplacements, qu’il s’agisse d’une base de données, d’un API (contrôleur logique programmable) ou de tout autre appareil.

Toutes les données doivent être stockées dans des variables dans ADISRA SmartView. Les variables sont appelées balises et peuvent être utilisées dans les scripts.

ADISRA SmartView a été conçu pour connecter des appareils, créer des interfaces étonnantes pour afficher toutes les données. Il existe une grande collection d’objets d’écran créés à partir des éléments les plus élémentaires tels que les étiquettes, les zones de texte, les zones de liste déroulante, les cases à cocher et des éléments plus complexes tels que les grilles matricielles, les visionneuses MultiTag, les graphiques, les tendances et les alarmes. Les scripts ont accès à ces objets. Cela signifie donc qu’avec un seul script, vous pouvez ajouter une rotation à un objet géométrique en utilisant n’importe quelle valeur de balises, peut-être ajouter de nouveaux éléments à un ComboBox ou ajouter de nouveaux stylos à un objet Trend. Les possibilités sont infinies.

Il est très important de comprendre l’architecture de l’ADISRA SmartView et la portée des différents modules avant de concevoir votre application et d’écrire les scripts nécessaires. La section suivante expliquera les scripts trouvés dans les différents modules et leurs relations, représentés dans le diagramme ci-dessous.

2. Portée et relation

Le diagramme ci-dessus montre la portée des scripts et leur relation avec les autres modules. Tous les scripts graphiques (écran, objets et modèles) sont exécutés sur la visionneuse. Les services, les déclencheurs et les fonctions utilisateur sont exécutés sur le Runtime. Ils ont tous accès au Gestionnaire de balises, ce qui signifie que si une balise change de valeur, ils seront tous notifiés et partageront la même valeur de balise. Le diagramme montre également qu’il n’y a pas de relation entre 2 écrans différents. Ainsi, un script de l’écran 1 ne peut pas être utilisé pour modifier la propriété d’un objet d’écran sur l’écran 2.

Il existe des cas particuliers où le script peut être exécuté sur le Runtime ou le Viewer, cela dépend de l’emplacement du Script. Par exemple, la bibliothèque de fonctions utilisateur, si elle est appelée depuis un script graphique, elle sera exécutée dans le Viewer mais si elle est appelée depuis un service, elle sera exécutée dans le Runtime. Il convient également de mentionner que certaines bibliothèques de fonctions système sont toujours exécutées en runtime (c’est-à-dire SVTags et SVRecipe). Comme vous pouvez le voir, le gestionnaire de balises est situé dans le runtime, donc chaque fois qu’un script a besoin de la valeur d’une balise ou doit mettre à jour une balise, il y aura une communication entre le visualiseur et le runtime.

3. Emplacement des scripts

Il existe de nombreux endroits différents où un script peut être écrit dans ADISRA SmartView. Veuillez consulter la liste ci-dessous et prêter attention aux commentaires.

Les sections suivantes présenteront les fonctionnalités mentionnées ci-dessus et expliqueront la portée des scripts tout en comprenant l’architecture.

4. Scripts et C#

Le script, dans l’image ci-dessous, identifie le langage C# et la couleur de la police des mots clés et des mots réservés est modifiée.

Il compile également le code écrit à chaque fois qu’il est enregistré (c’est-à-dire Services)


Le rectangle rouge indique qu’il y a une erreur dans le script. Au bas de l’image, vous pouvez voir l’erreur dans le journal d’ingénierie.

L’image suivante montre un exemple de script d’objet d’écran. La même erreur a été ajoutée à un bouton. Cette fois, l’erreur est levée dès que vous supprimez le focus du script, avant même de l’enregistrer.

Constantes

Les scripts ADISRA SmartView contiennent des constantes qui peuvent également être utilisées par les développeurs. Consultez le tableau ci-dessous avec des exemples et des descriptions.

5. Scripts et Balises d'écran

L’ADISRA SmartView vous permet de créer des balises d’écran. La portée de ces balises est uniquement locale à cet écran et elles peuvent être utilisées directement sur les objets de l’écran ou dans les Scripts. Nous nous concentrerons sur les scripts dans cette section. Les balises d’écran vous permettent de créer un écran générique qui peut être utilisé avec différentes entrées, sans vous restreindre à toujours utiliser les mêmes balises globales.

Ils peuvent être créés dans la grille de propriétés de l’écran comme vous pouvez le voir dans l’image ci-dessous.

Les balises d’écran peuvent être utilisées en ajoutant le jeton # sur les scripts. Dès que vous tapez le signe #, toutes les balises d’écran seront répertoriées dans un menu déroulant pour vous aider à les trouver.

6. Scripts et Balises de modèle

Les objets de modèle fonctionnent de la même manière que les balises d’écran. Une fois qu’un nouvel objet modèle est créé, vous aurez la possibilité de créer des balises d’objet sur la grille de propriétés qui sont également accessibles à l’aide du jeton #. Cela rend les objets de modèle incroyablement flexibles et génériques, leur permettant d’être utilisés avec différentes entrées.

7. Scripts et Balises

Dans ADISRA SmartView, toutes les balises créées dans l’application peuvent être utilisées dans des scripts, tapez simplement le jeton « @ » comme indiqué dans l’image ci-dessous, et les scripts afficheront toutes les balises disponibles.

Si la balise est un type de données, la saisie semi-automatique vous aidera également à trouver la balise interne comme dans l’exemple ci-dessous.

Si le tag n’existe pas, ADISRA SmartView vous permettra de le créer en sélectionnant son type et l’emplacement du document, comme indiqué dans l’image ci-dessous.

Chaque fois que la valeur d’une balise est définie dans un script, ce changement de balise est envoyé au gestionnaire de balises de Runtime et il est chargé de notifier tous les spectateurs (viewers).

8. Scripts et Écrans

Les écrans ont 3 événements où un script peut être écrit. Pour avoir accès à ces fenêtres de script, vous pouvez soit sélectionner Script View ou Split View et sélectionner l’écran. Recherchez le composant Mode View et faites votre choix.

L’image suivante montre la fenêtre de script en mode Script View

Comme mentionné précédemment, Screens accepte tout code compatible C# et accepte également les balises avec le jeton @, les fonctions utilisateur, les fonctions système, et il peut également manipuler les propriétés de l’objet d’écran. Les propriétés de l’objet d’écran seront expliquées en détail dans la section suivante. Ces scripts acceptent plusieurs lignes de code, mais vous ne pouvez pas écrire de fonctions ni de classes. Pensez-y comme une fonction déjà déclarée sans paramètres ni valeur de retour.

8.1 Événements de script d'écran

Il existe 3 types d’événements dans les scripts d’écran. OnOpen, OnWhile et OnClose.

OnOpen
S’exécute chaque fois que l’écran actuel s’ouvre. Il ne sera exécuté qu’une seule fois. Peu importe si l’écran est ouvert par l’objet d’écran, une partie des objets d’interface, ou par la fonction système SVGraphics ou de toute autre manière, ce code sera exécuté une fois.

OnWhile
S’exécute plusieurs fois alors que l’écran est encore ouvert. La fréquence de son exécution peut être très faible, environ 300 ms, et cela dépend de la quantité de traitement qui se passe sur le Viewer. Ceci est couramment utilisé pour animer l’écran ou vérifier une condition spécifique, bien que vous puissiez utiliser un déclencheur au cas où vous vous attendriez à certaines conditions sur la valeur d’une balise.

OnClose
S’exécute chaque fois que l’écran actuel est fermé. Il ne sera exécuté qu’une seule fois.

9. Scripts et objets d'écran

Il existe plusieurs objets disponibles dans ADISRA SmartView à ajouter aux écrans. Ils appartiennent à différentes catégories comme les objets géométriques, les objets de base, les objets d’interface, les objets avancés et les graphiques. La portée de ce document est de montrer toutes les propriétés et fonctions qui peuvent être utilisées pour manipuler ces objets.

Il est important de comprendre que ces propriétés et fonctions d’objet ne peuvent être utilisées que par les scripts d’écran, l’utilisateur doit se trouver dans le script d’écran où l’objet a été ajouté et utilisé par les scripts d’objet qui se trouvent sur le même écran.

Pour avoir accès aux propriétés et fonctions des scripts, vous aurez besoin du nom de l’objet. Par défaut, ADISRA SmartView attribue déjà un nom aux objets lors de leur création, mais le nom peut être modifié si vous le souhaitez pour une meilleure organisation et maintenance.

9.1 Événements de script d'objet

Il existe 6 types d’événements courants dans les scripts d’objet. MouseUp, MouseDown, MouseWhile, MouseRightUp, MouseRightDown et MouseDoubleClick. Pour l’objet ComboBox, il existe un autre événement appelé SelectionChanged. Jetons un coup d’œil à chaque événement plus en détail.

Il existe 2 façons d’accéder aux événements de script de l’objet.

1) Vous pouvez sélectionner l’objet, double-cliquer sur l’objet ouvre la vue de mode et changer la vue de mode en vue de script ou sélectionner la vue fractionnée.

L’image suivante montre les événements de script du rectangle en mode Script View. Ces mêmes événements sont communs à la plupart des objets

2) La deuxième façon d’accéder aux événements de script à l’aide de la grille de propriétés, après avoir sélectionné l’objet comme indiqué dans l’image ci-dessous.

MouseUp
MouseUp est exécuté chaque fois que l’utilisateur relâche le bouton gauche de la souris sur l’objet sélectionné. Cet événement est couramment utilisé sur des actions qui peuvent être utilisées sur des actions plus critiques et offre à l’utilisateur la possibilité de quitter l’action. Si l’utilisateur sélectionne un bouton en maintenant le bouton gauche de la souris enfoncé, puis décide de ne pas terminer l’action, l’utilisateur doit faire glisser la souris loin du bouton sélectionné avant de relâcher le bouton gauche, l’événement ne sera pas exécuté.

Souris vers le bas
MouseDown est exécuté chaque fois que l’utilisateur sélectionne un objet et appuie sur le bouton gauche de la souris.

SourisPendant
MouseWhile est exécuté alors que l’objet sélectionné est encore cliqué, entre les événements MouseDown et MouseUp du bouton gauche de la souris.

MouseRightUp
MouseRightUp est exécuté chaque fois que l’utilisateur relâche le bouton droit de la souris sur l’objet sélectionné.

SourisDroiteBas
MouseRightDown est exécuté chaque fois que l’utilisateur clique sur l’objet sélectionné à l’aide du bouton droit de la souris.

SourisDoubleClick
MouseDoubleClick est exécuté lorsqu’un double clic est identifié à l’aide du bouton gauche de la souris.

SélectionChangé
SelectionChanged est exécuté chaque fois que l’élément sélectionné d’un ComboBox change.