当前位置: 主页 > PLC控制

wicc中C脚本下怎么取消变量前缀

wincc中,在弹出式画面窗口中,变量都增加了前缀,其中有一个变量,我不需要加前缀,如何解决?另外,我想在弹出式窗口中获取变量前缀值,又是如何获取?

问题补充:
请大家看清楚标题,是在C脚本中,不是VB。@RENHQ,GetTagPrefix(lpszPictureName,lpszObjectName);?//Return-Type:?char*?
这个函数我在窗口中的按钮中测试了,读到的前缀值为(NULL),这是怎么回事呢?

最佳答案

以下实例说明了请求不带前缀的变量的原因。
您想要使用“@CurrentUser”变量读取本地用户。在多用户系统中,或者如果使用了面板技术,则在变量名称前始终会有服务器前缀或变量前缀。可使用下列变量附加件取消前缀以读取“@CurrentUser”变量。
●“@NOTP”取消变量前缀。
●“@NOSP”取消服务器前缀。
●“@NOP”取消变量前缀和服务器前缀。
附加件不能用于画面窗口或基本画面的“TagPrefix”或“ServerPrefix”属性。
附加件适用于所有动态化类型。仅当客户端带有自身项目时,取消服务器前缀才能发挥作用。
如果在多用户系统中建立了标准服务器,则无法使用“@NOP”和“@NOSP”附加件。
手册:
WinCCV7.4:使用WinCC系统手册
https://suPPORT.induSTry.siemens.com/cs/cn/zh/view/109736220
1146页请求不带前缀的变量

获取画面的变量前缀可以使用:
GetTagPrefix(lpszPictureName,lpszObjectName);//Return-Type:char*
函数

补充:
用这个函数是没问题的,我用过,返回是NULL,一是你设置的画面或对象不对,二是你子画面的变量前缀是不是没设置,还有就是你子画面窗口是否已经显示,没显示会找不到对象的,返回值可能也是空
您也可以使用这个函数获取:
GetPrOPChar("START.Pdl","画面窗口1","TagPrefix");//Return-Type:char*

下图是我测试的结果,两个都没问题

图片说明:

wicc中C脚本下怎么取消变量前缀wicc中C脚本下怎么取消变量前缀

提问者对于答案的评价:
变量前缀可以读取到了,但是避开变量前缀在脚本中无法实现。

  • 关注微信

猜你喜欢

微信公众号