wincc中如何获取父级画面窗口的前缀

我有两个画面,在A画面有3个画面窗口PIc-A,PIc-B ,PIc-C,调用的同一个模板pump。
画面窗口PIc-A,PIc-B ,PIc-C,分别带有变量前缀P01.   P02.   P03.     。

模板pump中,设置一个按钮,就是把模板的内容,放大,放到画面B中,B中也放置了一个带变量前缀的画面窗口pic_template,且调用模板pic_template,,这个窗口的模板比上面的PUmp模板多了趋势图。
附件图片中的按钮VB,VC,是分别用VB和VC测试用的
现在我遇到的问题是:在按钮脚本中指定变量前缀的话,画面B中可以正常显示,但是想用获取A画面中3个窗口的变量前缀的方法,来实现想要的功能,但画面B的IO域就是不正常。
我想关键点应该就是获取父级画面窗口的前缀,就各位大神指点。谢谢
附现在的按钮脚本,是指定的变量前缀,是可以实现我要的功能的:
VB
Dim obj1
 HMIRuntime.BaseScreenName = "02_detail"
Set obj1=HMIRuntime.Screens("02_detail").ScreenItems("pic_template")
‘obj1.PictureName = "02_TemplateHK"
obj1.TagPrefix = "HK2_P03."

VC
OpenPicture("02_detail.PDL"); //Return-Type: void 
SetPropChar("02_detail","pic_template","TagPrefix","HK2_P03."); 

因为我是A画面调用的同一个模板,所以指定变量前缀打开在B画面,是行不通的,只有想办法获取A画面中3个画面窗口的前缀。

问题补充:
给出的代码没有成功,从附件图片中得到了信息,成功取到了画面前缀。
我用的代码:
Dim mycircle
Set mycircle = ScreenItems("圆1")
MsgBox mycircle.Parent.Parent.TagPrefix

图片说明:

wincc中如何获取父级画面窗口的前缀    wincc中如何获取父级画面窗口的前缀    wincc中如何获取父级画面窗口的前缀    wincc中如何获取父级画面窗口的前缀   

最佳答案

在模板pump的按钮事件中:
Sub OnClick(Byval Item) 
Dim obj1

HMIRuntime.BaseScreenName = "02_detail"
Set obj1 = HMIRuntime.Screens("02_detail").ScreenItems("pic_template")

”HMIRuntime.Trace item.Parent.Parent.PictureName
obj1.TagPrefix = item.Parent.Parent.TagPrefix
End Sub

附件:画面层次关系图

图片说明:

wincc中如何获取父级画面窗口的前缀  

提问者对于答案的评价:
非常感谢。
给出的代码没有成功,从附件图片中得到了信息,成功取到了画面前缀。
我用的代码:
Dim mycircle
Set mycircle = ScreenItems("圆1")
MsgBox mycircle.Parent.Parent.TagPrefix

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论