[WinCC RT Pro V16]Utiliser une variale UDT IHM dans VBs

Forum traitant des automates industriels de marque Siemens.
Répondre
Weetoz
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 14 août 2021, 07:04

[WinCC RT Pro V16]Utiliser une variale UDT IHM dans VBs

Message par Weetoz »

Bonjour à tous,
je suis en train de créer un modèle de vue "auto adaptatif".
Cette vue est déjà relié a un UDT de l'automate, je souhaite utiliser un autre UDT côté IHM pour faire le réglage des positions des éléments graphique dans la vue. L'architecture de la vue est celui-ci
- txt_NomCycle (objet graphique texte)
-SepVerti (une ligne vertical servant à positionner les fenêtre de vue sur la droite de la ligne)
-scrw_cdtInit (fenêtre de vue des conditions initiales placé à droite de SepVerti et à 10 pixel en hauteur par rapport à sa vue parente)
-scrw_cdtDem (fenêtre de vue des demandes de démarrage de cycle, en dessous de scrw_cdtInit + 5 pixel)
Le fonctionnement est prévue comme suit:
La vue principale exécute le script suivant sur l'événement "chargé", et génère le nom de la variable UDT à partir du nom de la vue

Code : Tout sélectionner

Sub OnGenerateScreen()
'Démarrage de la routine des positions
Dim cycleName, seqTag
ToTrace "Coucou"
ToTrace "Nom de la vue: " & ScreenItems.Parent.ObjectName
cycleName = Split(ScreenItems.Parent.ObjectName, " - ")
'ToTrace "cycleName: " & cycleName(1)
seqTag = "@NOP::" & Replace (cycleName(1)," ","_")
seqTag = Replace (seqTag,".","_")
ToTrace "seqTag: " & seqTag
'SmartTags("@NOP::Dépotage_vers_CS_01.if_OneTIme") ' ici un glissé déposé de la variable UDT IHM 
ToTrace "ifOneTime: " & SmartTags(seqTag & ".if_OneTime") 
If SmartTags(seqTag & ".if_OneTime") Then 'SmartTags(seqTag & ".if_OneTime")
	ScreenItems("txt_NomCycle").Text = SmartTags(seqTag & ".NomCycle")
	ScreenItems("scrw_cdtInit").Top = SmartTags(seqTag & ".cdtInit_Top")
	ScreenItems("scrw_cdtInit").Left = SmartTags(seqTag & ".cdt_Left")
	ScreenItems("scrw_cdtInit").Visible = True
	ScreenItems("scrw_cdtDem").Top = SmartTags(seqTag & ".cdtDem_Top")
	ScreenItems("scrw_cdtDem").Left = SmartTags(seqTag & ".cdt_Left")
	ScreenItems("scrw_cdtDem").Visible = True
	ScreenItems("scrw_cdtAn").Top = SmartTags(seqTag & ".cdtAn_Top")
	ScreenItems("scrw_cdtAn").Left = SmartTags(seqTag & ".cdt_Left")
	ScreenItems("scrw_cdtAn").Visible = True
	ScreenItems("scrw_cdtAd").Top = SmartTags(seqTag & ".cdtAd_Top")
	ScreenItems("scrw_cdtAd").Left = SmartTags(seqTag & ".cdt_Left")
	ScreenItems("scrw_cdtAd").Visible = True
Else
	SmartTags(seqTag & ".NomCycle") = cycleName(1)
	SmartTags(seqTag & ".if_OneTime") = True
	ToTrace "NomCycle: " & cycleName(1)
	ScreenItems("scrw_cdtInit").Visible = True	'Lance le script "chargé" de la "scrw_cdtInit"
End If	
End Sub
Malgré le "@NOP::" à l'exécution, j'ai une erreur signalant que la variable "@NOP::Dépotage_vers_CS_01.if_OneTime" n'existe pas.
Pourtant elle est nommé ainsi lors que j'en fait un glissé déposé.
Que manque-t-il pour que cela fonctionne?
Merci d'avance, et bonne journée.
gmak
Code son premier grafcet
Code son premier grafcet
Messages : 38
Enregistré le : 18 janv. 2021, 16:34

Re: [WinCC RT Pro V16]Utiliser une variale UDT IHM dans VBs

Message par gmak »

Bonjour, concernant la variable "@NOP::Dépotage_vers_CS_01.if_OneTIme", comment est-elle nommée à la base dans la liste des variables ?
Weetoz
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 14 août 2021, 07:04

Re: [WinCC RT Pro V16]Utiliser une variale UDT IHM dans VBs

Message par Weetoz »

Bonjour gmak,

la variable se nomme: Dépotage_vers_cs_01
if_OneTime est un booleen de l'UDT sur lequel la variable Dépotage_vers_CS_01 est typé.
Répondre