在WinCC中如何使用间接变量

各位高手! 请教一个问题:
  我在WinCC中用WinCC Online Trend Control  组态了一个历史曲线的画面,在控件上设置了8个趋势,名称分别为 Pen1~Pen8,并为8个趋势连接8个内部变量Pen1PV~Pen8PV,我有组态了另一张制成画面,上面有很多变量,我需要实现的功能是当我点击制成画面上某个变量(a)连接的方框时,会弹出一个按钮,当我点击这个按钮时,就把制成画面上的变量(a)传给历史曲线上对应的变量 Pen1PV~Pen8PV   中的一个变量(假设Pen1PV),在历史曲线的画面上可以显示制成画面上变量(a)的曲线,请各位高手不吝赐教,谢谢!

问题补充:
谢谢两位的回答,我根据dcount107的回答修改了一下代码,修改后的代码如下:
 char szArchiveName[255];
 BOOL bRet;
 LINKINFO plink;
 int iRet;

 bRet = GetLink("HistoryTrend.pdl","TrendChart","OutputValue",&plink);
 sprintf(szArchiveName,"MEPSystem\\MEP1-F10-5C-TET0020-PV",plink.szLinkName);
 iRet=MessageBox(NULL,"是否设置?","提示",MB_OKCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
 if (iRet==IDOK)
 {
   SetPropWord("HistoryTrend.pdl","TrendChart","Index",0);
   SetPropChar("HistoryTrend.pdl","TrendChart","TagName",szArchiveName);
 }
 其中"HistoryTrend.pdl"是WinCC Online Trend Control 所在的画面名称,"TrendChart"是WinCC Online Trend Control 名称,MEPSystem\ 是归档名称,MEP1-F10-5C-TET0020-PV是我定义的内部变量,现有几个问题还想请教一下各位:
 1、当我点击执行此段代码的按钮时,HistoryTrend.pdl画面必须在画面中可见时才可以将内部变量MEP1-F10-5C-TET0020-PV加入历史曲线中显示,而实际操作时需要HistoryTrend.pdl画面是不可见的(即是在制成画面操作的)。
 2、当将内部变量MEP1-F10-5C-TET0020-PV加入历史曲线中显示,离开历史曲线的画面又重新进入时,前面加的内部变量MEP1-F10-5C-TET0020-PV又消失了,如何才能保持住?
 3、在实际操作时"MEPSystem\\MEP1-F10-5C-TET0020-PV"需要用变量取代(此变量的值要求是在执行此按钮前就已赋值了),请问该如何处理?

     以上三个问题,还请高手赐教,谢谢!

最佳答案

控制趋势控件主要是设置其Index和TagName属性。

  char szArchiveName[255];
  BOOL bRet;
  LINKINFO plink;
  int iRet;

  bRet = GetLink(lpszPictureName,lpszObjectName,"OutputValue",&plink);
  sprintf(szArchiveName,"ProcessValueArchive\\%s",plink.szLinkName);
  iRet=MessageBox(NULL,"是否设置?","提示",MB_OKCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
  if (iRet==IDOK)
  {
    SetPropWord(lpszPictureName,"TrendControl1","Index",0);
    SetPropChar(lpszPictureName,"TrendControl1","TagName",szArchiveName);
  }
  ------------------------------
 1、添加SetVisible使其可见。
 2、这个实现起来比较困难,需要将每个Index所对应的TagName都记录下来,然后在HistoryTrend.pdl打开时全部重载。
 3、szArchiveName既是变量,你的问题在于你所改写后的szArchiveName始终是MEPSystem\\MEP1-F10-5C-TET0020-PV,而不是MEPSystem\\XXXXXX。
 保存到变量用SetTagChar函数。

提问者对于答案的评价:
谢谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午10:35
下一篇 2019年6月11日 上午10:35

相关推荐

  • 关于wincc中定义全局变量的问题

    用wincc做一个用户控制的界面,之前在VB中做过相同的功能,我想问下VB里设置的全局变量在wincc中应该在哪里定义,是一个一个设置内部变量吗,还是说在全局脚本里定义 最佳答案 …

    SIMATIC WinCC 2020年11月1日
  • WINCC怎么导入以前的归档

    WINCC怎么导入以前的归档? 最佳答案 1、你要确认你已经做了归档备份2、激活wincc。3、打开wincc归档记录,在快速归档上右键选择“链接归档”,然后找到你的归档时间的文件…

    SIMATIC WinCC 2017年12月10日
  • 请问有关WINCC COMBOBOX的组态

    做一个趋势视图的画面,用COMBOBOX做一个下拉栏,选择不同的项目可以显示不同的曲线,其实也就是选择不同的项目可以对一个变量进行不同的赋值。我是这么实现的,在事件Miscella…

    SIMATIC WinCC 2019年6月11日
  • wincc弹出报警框

    wincc工程中,当报警出现时,任何一个画面都弹出报警提示框,以便客户在任何一个画面操作时,都能实时第一时间看到报警显示。我搜索了很多帖子,有些写的不详细,希望高手们能解释的详细一…

    SIMATIC WinCC 2019年6月10日
  • return 值问题

    在c程序中,在有的程序结尾是会用到 "return "有时候返回一个常数,有时候后面什么也不跟,请问返回的是什么值,返回的给谁的,因为刚学W…

    SIMATIC WinCC 2019年6月11日
  • wincc做服务器跟操作台

    是这样的,我有四台电脑,现在想两台作为操作用,两台作为服务器用,两台操作电脑的wincc程序是一样的,只是在默认情况下,操作不一样的设备,在一台出现问题的时候,另外台可以备用,一台…

    2021年7月5日
  • 请问大家wincc激活后为什么老是提示未找到启动画面?

    请问大家wincc激活后为什么老是提示未找到启动画面是什么原因,我明明设置了启动画面,谢谢! 图片说明:    最佳答案 1、项目启动画面组态了没?2、项目目录…

    2020年11月1日
  • 如何在在线趋势图中获取实时统计数据?

    通过ruler control获取平均值、最大值时要暂停在线趋势图,如何不用暂停,如统计最新的10个数据的平均值、最大值? 最佳答案 参考:SIMATIC Wi…

    SIMATIC WinCC 2018年3月6日
  • wincc激活不了!!!

    我的wincc和step7  5.2版的连接的时候无法激活,总是激活还没完就显示取消激活,怎么回事啊?是不是什么东西设置的问题啊?大家帮帮我! 谢谢 …

    SIMATIC WinCC 2019年6月11日
  • wincc VBS 将SQL数据导出EXCEL 问题

    用循环写入单元格的方法,将SQL查到的数据一个个写入EXCEL,18000数值,用了20分左右。用户体验非常差。 请教各位老师,有什么办法以可以加快EXCEL写入的速度?…

    SIMATIC WinCC 2020年11月1日