Script VBS sur WinCC Runtime V7.0

Forum traitant des automates industriels de marque Siemens.
dufourbe14330
Apprend le binaire
Apprend le binaire
Messages : 9
Enregistré le : 03 août 2020, 14:40

Script VBS sur WinCC Runtime V7.0

Message par dufourbe14330 »

Bonjour à tous,

Je dois réaliser un script qui sera lancé une seule fois depuis la supervision afin de recueillir tout les objets d'un certains type (pour moi type Vanne) présent sur le serveur. Puis je voudrais lire un bit dans les objets vannes et afficher sur la supervision les objets qui ont ce bit à 1.
Avez vous des idées pour m'aider a réaliser ce script?
Je suis novice en script.
Pour info je suis en PCS7 V7.0 avec des automates S7-416.
Merci d'avance
Lorent2
Maître du binaire
Maître du binaire
Messages : 487
Enregistré le : 27 déc. 2015, 08:52

Re: Script VBS sur WinCC Runtime V7.0

Message par Lorent2 »

Je vois pas trop comment un script pourrait t'aider à identifier des objets sur serveur.
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
dufourbe14330
Apprend le binaire
Apprend le binaire
Messages : 9
Enregistré le : 03 août 2020, 14:40

Re: Script VBS sur WinCC Runtime V7.0

Message par dufourbe14330 »

Pour faire un listing des objets qui ont un cas particulier (le fameux bit à 1) ;)
Lorent2
Maître du binaire
Maître du binaire
Messages : 487
Enregistré le : 27 déc. 2015, 08:52

Re: Script VBS sur WinCC Runtime V7.0

Message par Lorent2 »

Mais comment tu veux que le script le trouve ce bit ?
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Script VBS sur WinCC Runtime V7.0

Message par djé »

Salut,

En général pour ce genre de truc il faut utiliser dans les librairies de l'appli celle qui te retourne une collection des objects contenus sur le serveur.
Ensuite parcourir la collection à la recherche d'un type d'object en particulier (ici vanne) puis vérifier la propriété de l'object en question.
Il te faut éplucher la documentation de Winncc et des différentes interfaces mise à disposition.

Edit :Je ne connais pas PCS7 et WinnCC je suppose que la doc est celle-ci: SIMATIC HMI WinCC V7.2.

A partir de la page 110 tu trouves les Références VBS aux modèles d'objects WINNCC qui te permettra de manipuler ensuite tout le reste.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
dufourbe14330
Apprend le binaire
Apprend le binaire
Messages : 9
Enregistré le : 03 août 2020, 14:40

Re: Script VBS sur WinCC Runtime V7.0

Message par dufourbe14330 »

Effectivement @djé c'est ce que je souhaite faire.
Nous sommes sur la même longueur d'onde.
J'arrive pas a trouvé dans la documentation de wincc comment faire pour lire tout les objets du même type!
J'y arrive pour lire une vanne avec le tag mais pour toutes les vannes du serveur je sais pas comment faire!
As tu une idée?
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Script VBS sur WinCC Runtime V7.0

Message par djé »

A vue de nez,
je parcourrais la liste des Ecrans ("Screens") de l'objet HmiRunTime et pour chaque Ecran, la liste ScreenItems.

Exemple pour le parcours des objets dans une vue spécifique

Code : Tout sélectionner

L'exemple suivant affiche le nom de tous les objets contenus dans la vue "NewPDL1" :
'VBS99
Dim objScreen
Dim objScrItem
Dim lngIndex
Dim lngAnswer
Dim strName
lngIndex = 1

Set objScreen = HMIRuntime.Screens("NewPDL1")
For lngIndex = 1 To objScreen.ScreenItems.Count
'The objects will be indicate by Item()
strName = objScreen.ScreenItems.Item(lngIndex).ObjectName
Set objScrItem = objScreen.ScreenItems(strName)
lngAnswer = MsgBox(objScrItem.ObjectName, vbOKCancel
If vbCancel = lngAnswer Then Exit For
Next

A toi d'adapter pour chaque vue (HMIRuntime.Screens ou HMIRuntime.Screens("") ???

Une fois qu'une référence à un objet est faite tu disposes de toutes le propriétés et méthode de celui-ci.
C'est un exemple, il y a peut être aussi moyen d'utiliser For each objScrItem in objScreen.ScreenItems à la place.
A voir.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Script VBS sur WinCC Runtime V7.0

Message par itasoft »

slts,
J'y arrive pour lire une vanne avec le tag mais pour toutes les vannes du serveur je sais pas comment faire!

Es que la vanne que tu arrive à lire tu sais l'afficher sur la supervision ??
Automaticien privé (de tout)
itasoft@free.fr
dufourbe14330
Apprend le binaire
Apprend le binaire
Messages : 9
Enregistré le : 03 août 2020, 14:40

Re: Script VBS sur WinCC Runtime V7.0

Message par dufourbe14330 »

Oui je sais l'afficher sur la supervision et elle déjà présente ;)
dufourbe14330
Apprend le binaire
Apprend le binaire
Messages : 9
Enregistré le : 03 août 2020, 14:40

Re: Script VBS sur WinCC Runtime V7.0

Message par dufourbe14330 »

djé a écrit : 04 août 2020, 14:37 A vue de nez,
je parcourrais la liste des Ecrans ("Screens") de l'objet HmiRunTime et pour chaque Ecran, la liste ScreenItems.

Exemple pour le parcours des objets dans une vue spécifique

Code : Tout sélectionner

L'exemple suivant affiche le nom de tous les objets contenus dans la vue "NewPDL1" :
'VBS99
Dim objScreen
Dim objScrItem
Dim lngIndex
Dim lngAnswer
Dim strName
lngIndex = 1

Set objScreen = HMIRuntime.Screens("NewPDL1")
For lngIndex = 1 To objScreen.ScreenItems.Count
'The objects will be indicate by Item()
strName = objScreen.ScreenItems.Item(lngIndex).ObjectName
Set objScrItem = objScreen.ScreenItems(strName)
lngAnswer = MsgBox(objScrItem.ObjectName, vbOKCancel
If vbCancel = lngAnswer Then Exit For
Next

A toi d'adapter pour chaque vue (HMIRuntime.Screens ou HMIRuntime.Screens("") ???

Une fois qu'une référence à un objet est faite tu disposes de toutes le propriétés et méthode de celui-ci.
C'est un exemple, il y a peut être aussi moyen d'utiliser For each objScrItem in objScreen.ScreenItems à la place.
A voir.
Je vais essayer ça et je te tiens au courant ;)
Merci en tout cas d'avoir pris le temps de regarder :D
Répondre