|
Description L'accès aux propriétés des objets à l'aide de script est une autre alternative à la configuration via la boîte de dialogue des propriétés ou de l'animation.
Certaines propriétés d'objets ne peuvent pas être dynamisées/animées en Runtime via la configuration standard, comme, par exemple, la taille d'un rectangle. Ces attributs ou propriétés peuvent alors être dynamisés à l'aide de scripts.
Vous trouverez en fin de cet article un document PDF ainsi que le projet exemple décrit.
Le document PDF contient une liste des objets qui sont inclus en standard dans WinCC Comfort ou WinCC Advanced. Vous y trouverez la liste des propriétés des objets (attributs) qui peuvent être appelées par script ainsi que le type d'accès à ces propriétés.
Guide
Dans l'exemple suivant, nous montrons comment modifier en Runtime la largeur et la hauteur d'un rectangle à l'aide d'un script.
Les noms utilisés pour les variables et pour les objets peuvent être adaptés individuellement selon vos besoins.
Les variables n'ont pas besoin d'une liaison avec l'automate (sauf si vous souhaitez assigner la largeur et la hauteur du rectangle par l'automate).
Pour une meilleure compréhension, il est utile d'ouvrir le projet joint.
| N° |
Procédure |
| 1 |
Insérer un rectangle
- Insérez un objet de type "rectangle" dans la vue "Screen_01".
Note
Le nom de la vue sera utilisé ultérieurement dans le script.
- Définissez la taille ainsi que le nom de l'objet.
Dans cet exemple, la largeur du rectangle est de 100 et sa hauteur est de 50.
Le nom de l'objet est "Rectangle_1".
Note
Le nom de l'objet (rectangle) sera utilisé ultérieurement dans le script.

Figure 01
|
| 2 |
Créer les variables
La largeur et la hauteur du rectangle doivent être modifiées par script. Pour cela, créez deux variables internes dénommées "RectangleHeight" et "RectangleWidth".
(Navigateur du projet > Pupitre opérateur > Variables IHM > Table de variables standard).
Une valeur initiale est assignée aux variables. Vous pouvez, par exemple, utiliser les valeurs de la configuration du rectangle. Dans ce cas, "100" pour la largeur et "50" pour la hauteur (Attributs > Valeurs > Valeur initiale). La raison de cette mesure est décrite plus bas (lien).
Note
Les variables seront utilisées ultérieurement dans le script.

Figure 02
|
| 3 |
Créer les scripts Deux scripts sont utilisés dans le projet.
(Navigateur du projet > Pupitre opérateur > Scripts VB > Ajouter une nouvelle fonction VB ).
Vous pouvez donner un nom quelconque aux scripts.
Dans cet exemple:
- Script_01_Rectangle
- Script_02_Init_Rectangle
Vous trouverez la description détaillée des scripts utilisés ci-après. |
| 4 |
Script_01_Rectangle Le script "Script_01_Rectangle" permet de modifier la taille du rectangle.
Créer une variable interne au script Une variable interne au script est nécessaire pour modifier les propriétés d'un objet dans WinCC Comfort ou WinCC Advanced (dans cet exemple, les propriétés du rectangle).
Vous pouvez donner un nom quelconque aux variables.
Dans cet exemple : "ObjectRectangle"
Définition de l'objet
Dans l'éditeur de script, l'objet "Rectangle_1" est transféré à la variable "ObjectRectangle".
L'instruction "HmiRuntime.Screens" permet d'indiquer la vue qui contient l'objet (rectangle).
L'accès explicite à l'objet (rectangle) dans la vue se fait grâce à l'instruction "ScreenItems".
Dans cet exemple :
Set ObjectRectangle = HmiRuntime.Screens("Screen_01").ScreenItems("Rectangle_1")
Note
Veuillez noter que le nom de l'objet doit être univoque dans la vue ; cela signifie que ce nom ne doit pas être utilisé par un autre objet.
Le même nom d'objet mais dans une vue différente est autorisé !
Affecter à l'objet (rectangle) les attributs et les variables pour la "hauteur" et la "largeur"
La largeur de l'objet est transmise via l'attribut "Width".
La hauteur de l'objet est transmise via l'attribut "Height".
Deux variables pour la "largeur" et la "hauteur" ont été défini pour le rectangle utilisé.
Ces variables sont à affecter à l'objet.
Dans notre exemple :
ObjectRectangle.Width = SmartTags("RectangleWidth")
ObjectRectangle.Height = SmartTags("RectangleHeight")

Figure 03
|
| 5 |
Script_02_Init_Rectangle Le script "Script_02_Init_Rectangle" permet de modifier la taille du rectangle à une taille définie dans le script (retour à la "taille standard").
Il ne sert qu'à remettre le rectangle à sa "taille d'origine" sans avoir à renseigner auparavant les valeurs dans les champs d'E/S.
La structure du script est identique à celle du script "Script_01_Rectangle". Il se distingue uniquement par l'affection d'une taille fixe pour la largeur ("200") et pour la hauteur ("100") du rectangle.

Figure 04 |
| 6 |
Astuces pour créer les scripts
Complètement automatique
- Lors de la création de script, utilisez le "complètement automatique".
Le "complètement automatique" signifie que vous obtenez une liste contextuelle depuis laquelle vous pouvez choisir les variables ou instructions souhaitées.
Exemple 1
Après avoir inséré "...= HmiRuntime", ajoutez un "point".
Un "menu contextuel" s'ouvre depuis lequel vous pouvez choisir parmi les variables ou instructions disponibles.

Figure 05
Exemple 2
Après avoir inséré "ObjectRectangle", ajoutez un "point".
Un "menu contextuel" s'ouvre depuis lequel vous pouvez choisir parmi les propriétés disponibles.

Figure 06
Insérer les variables
- Placez-vous à l'endroit où vous souhaitez insérer la variable
- Cliquez sur le bouton droit de la souris. Un menu contextuel apparaît.
Choisissez le menu "Complètement automatique > Lister objets".
Une autre fenêtre s'ouvre depuis laquelle vous pouvez sélectionner la variable correspondante et l'insérer en cliquant sur le bouton "OK".

Figure 07
|
| 7 |
Insérer des boutons et des champs d'E/S
Pour pouvoir indiquer la largeur et la hauteur, deux champs d'E/S sont nécessaires. Deux boutons sont utilisés pour exécuter les scripts.
- Bouton "Change size" (Script "Script_01_Rectangle")
- Bouton "Standard size" (script "Script_02_Init_Rectangle")

Figure 08
Les variables internes pour la "largeur" et la "hauteur" sont configurées chacune sur un champ d'E/S
(Attributs > Général > Process).
Le script "Script_01_Rectangle" est appelé par le bouton "Change size"
(Propriétés > Evénements > Appuyer).
Le script "Script_02_Init_Rectangle" est appelé par le bouton "Standard size"
(Propriétés > Evénements > Appuyer). |
| 8 |
Propriétés de la vue "Screen_01" L'exemple est exécuté via la vue "Screen_01".
Si la taille du "rectangle" est modifiée, ceci n'est fait que "temporairement". Si la vue est réappelée, le rectangle reprend la taille issue de la configuration.
Si vous souhaitez conserver la taille modifiée après un changement de vue, vous devez appeler le script "Script_01_Rectangle" au chargement de la vue "Screen_01". (Propriétés > Evénements > Chargé).
Au premier chargement de la vue ou lorsque qu'aucune valeur pour la taille du rectangle n'a été indiquée, le rectangle n'est pas visible sur la vue ! (largeur et hauteur ont une longueur "Null").
Pour que ce phénomène ne se produise pas, il faut indiquer une valeur initiale aux variables "largeur" et "hauteur" (lien).

Figure 09
|
| 9 |
Remarques et astuces sur la configuration
- Pour tester le projet joint, vous pouvez utiliser un pupitre TP1200 Comfort ou démarrer la simulation WinCC Comfort ou WinCC Advanced.
- Lorsque vous changez une valeur pour le rectangle via un champ d'E/S, veillez à ce que cette valeur ne dépasse pas la hauteur ou la largeur de la vue en cours. Sinon, vous obtiendrez un message d'erreur (erreur de script).
Remède
Vous pouvez indiquer une valeur maximale pour les variables "RectangleHeight" et "RectangleWidth" sous "Attributs > Plage > Paramètres". Cette valeur est dépendante de la position de l'objet configuré.
- Erreur dans le script ....
Les scripts lisent le nom de l'objet (rectangle). Si vous souhaitez tester le projet dans une "Simulation Runtime PC", avant le démarrage du Runtime, vérifiez que l'option sous "Paramètres Runtime > Général > Vue > Charger le nom" soit cochée.
- Dans l'aide de WinCC (TIA Portal), vous trouverez d'autres informations sur le thème "Modèle d'objet VBS" (cf. figure suivante).

Figure 10
|
Tableau 01
Informations complémentaires (insignifiantes pour l'exemple actuel)
Dans l'aide de WinCC V11 (TIA Portal), vous trouverez tous les objets en liaison avec VBS. Les tableaux suivants contiennent la liste des objets avec leur désignation.
Dans l'onglet "index" du système d'aide, indiquez par exemple le mot-clé "rectangle". Vous obtiendrez alors un aperçu de l'objet pour lequel vous pourrez obtenir d'autres informations.

Figure 11
Objets de base
|
N° |
Objet |
HMI Runtime Object |
| 1 |
Ligne |
Line |
| 2 |
Ligne polygonale |
Polyline |
| 3 |
Polygone |
Polygon |
| 4 |
Ellipse |
Ellipse |
| 5 |
Cercle |
Circle |
| 6 |
Rectangle |
Rectangle |
| 7 |
Champ de texte |
TextField |
| 8 |
Vue de graphique |
GraphicView |
Tableau 02
Eléments
|
N° |
Objet |
HMI Runtime Object |
| 1 |
Champ d'E/S |
IOField |
| 2 |
Bouton |
Button |
| 3 |
Champ d'E/S symbolique |
SymbolicIOField |
| 4 |
Champ d'E/S graphique |
GraphicIOField |
| 5 |
Champ de date/heure |
DateTimeField |
| 6 |
Bargraphe |
Bar |
| 7 |
Commutateur |
Switch |
| 8 |
Bibliothèque des icônes |
SymbolLibrary |
| 9 |
Curseur |
Slider |
| 10 |
Instrument à aiguille |
Gauge |
| 11 |
Horloge |
Clock |
Tableau 03
Contrôles
| N° |
Objet |
HMI Runtime Object |
| 1 |
Vue des alarmes |
MessageView |
| 2 |
Vue de courbes |
TrendView |
| 3 |
Vue des utilisateurs |
UserView |
| 4 |
Visualisation/forçage |
StatusForce |
| 5 |
Vue Sm@rtClient |
SmartClientView |
| 6 |
Vue de recette |
RecipeView |
| 7 |
Vue de courbes f(x) |
f(x)TrendView |
| 8 |
Vue du diagnostic système |
SystemDiagnosticsView |
| 9 |
Media Player |
MediaPlayer |
Tableau 04
Remarque
Veuillez noter que tous les objets ne sont pas disponibles sur tous les pupitres.
Environnement de création Les figures et téléchargements de ce FAQ ont été créés avec WinCC V11.
Téléchargements
| Contenu du téléchargement |
Téléchargement |
Documentation
L'annexe contient une liste des objets contenus en standard dans WinCC Comfort ou WinCC Advanced. Toutes les propriétés (attributs) des objets, ainsi que le type d'accès à ces propriétés, qui peuvent être appelées dans un script via les instructions "HmiRuntime.Screens" et "ScreenItems" sont listées. |

Object_Attributes ( 40 KB ) |
Code
Le fichier compacté contient le projet exemple décrit. |

TIA_Project_V11 ( 2314 KB ) |
|