Page 2 sur 2

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 06:33
par itasoft
dufourbe14330 a écrit : 04 août 2020, 22:36 Oui je sais l'afficher sur la supervision et elle déjà présente ;)
--------------
elle est déjà présente ????????
es que ça serait pas pour lire les états des bits dans l'automate (serveur) pour animer les objets VANNES dans l'application WinCC (supervision) ??

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 11:46
par dufourbe14330
itasoft a écrit : 05 août 2020, 06:33
dufourbe14330 a écrit : 04 août 2020, 22:36 Oui je sais l'afficher sur la supervision et elle déjà présente ;)
--------------
elle est déjà présente ????????
es que ça serait pas pour lire les états des bits dans l'automate (serveur) pour animer les objets VANNES dans l'application WinCC (supervision) ??
Oui j'ai déjà pleins de vannes qui sont des objets de type VANNE et c'est vannes peuvent avoir un état masquée.
J'aimerais en un seul clic visualiser toute les vannes du serveur qui sont masquée.

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 11:47
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 comprend pas cela marche pas :(

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 12:17
par philou77
Salut !

Il faudrait que tu mettes un peu ton code afin que l'on puisse voir ce que tu fais !

parce que : ça ne marche pas, ça aide pas !
Quand on sait qu'un ordinateur faut toujours ce qu'on lui demande !! le problème est souvent l'interface chaise / clavier !

ceci dit...
Tu as une collection d'objets qu'il te faut parcourir, c'est le but du début de script proposé avant dont le but est :
""L'exemple suivant affiche le nom de tous les objets contenus dans la vue "NewPDL1" :""

Alors c'est sûr que si ta vue ne se nomme pas "NewPDL1" ça RISQUE DE PAS MARCHER.

Moralité Post ton code... ;-)

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 12:29
par djé
+1 avec philou77

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 12:36
par dufourbe14330
Voici le code que j'ai essayé

Code : Tout sélectionner

Option Explicit
Function action
Dim Name_Server							'Déclaration du nom du serveur
Dim Name_Master 						'Declaration du nom du master
Dim Name_File 	     					'Déclaration du chemin fichier
Dim objScreen
Dim objScrItem
Dim lngIndex
Dim lngAnswer
Dim strName
lngIndex = 1


'Récuperation des Nom de serveurs
Name_Server = Funct_Read_Tag("@LocalMachineName") 
Name_Master = Funct_Read_Tag("@RM_MASTER_NAME") 
'Si le serveur est le maitre du réseau et trigger = 1
If Name_Server = Name_Master And (Funct_Read_Tag("PLC21_API/VAR20_OS1.Bool_01") = 1) Then	

	Set objScreen = HMIRuntime.Screens("GR21D01_Detail_Recup")
	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
	
	'RAZ de la demande de transfert
	Call Funct_Write_Tag("PLC21_API/VAR20_OS1.Bool_01","0","Boolean")

End If
End Function

Re: Script VBS sur WinCC Runtime V7.0

Posté : 05 août 2020, 13:41
par djé
Salut,

Qu'est-ce qui ne marche pas ?
Le script d'origine, je ne l'ai pas inventé il est dans la doc donc à priori fonctionnel.
On imagine que la page "GR21D01_Detail_Recup" existe et qu'elle contient des objets.
Est-ce que la msgbox te renvoie les noms des objets ?

Re: Script VBS sur WinCC Runtime V7.0

Posté : 06 août 2020, 06:12
par Lorent2
Le script est executé ?

Il est censé renvoyer une série de pop-up avec le nom de chaque élément sur la vue.

Re: Script VBS sur WinCC Runtime V7.0

Posté : 06 août 2020, 06:17
par Lorent2
C'est quoi l’intérêt du contrôle du nom de serveur que tu as rajouté en début de script ?
Vu que tu bosses directement dans la supervision, je vois pas l’utilité de ce morceau de script.