Page 1 sur 2

Script VBS sur WinCC Runtime V7.0

Posté : 03 août 2020, 14:53
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

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 06:11
par Lorent2
Je vois pas trop comment un script pourrait t'aider à identifier des objets sur serveur.

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 08:42
par dufourbe14330
Pour faire un listing des objets qui ont un cas particulier (le fameux bit à 1) ;)

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 10:42
par Lorent2
Mais comment tu veux que le script le trouve ce bit ?

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 12:05
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.

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 12:55
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?

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 14:37
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.

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 20:40
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 ??

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 22:36
par dufourbe14330
Oui je sais l'afficher sur la supervision et elle déjà présente ;)

Re: Script VBS sur WinCC Runtime V7.0

Posté : 04 août 2020, 22:37
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