C脚本实现Wincc模拟量趋势窗口弹出


前言

本文给出了一种基于C脚本实现点击输入输出域对象,弹出对应模拟量趋势窗口的方法。


一、步骤及解析

  1. 在Wincc变量管理中,添加两个变量;
    示例如下:
    在这里插入图片描述
  2. 将以上两个变量添加到变量记录中;
    在这里插入图片描述
  3. 打开Wincc计算机属性界面,勾选变量记录运行系统; 在这里插入图片描述
  4. 新建主画面,并添加一个“Wincc Online TrendControl”控件;
    这里将主画面命名为“Start_New.Pdl”,将“Wincc Online TrendControl”控件命名为“ControlTrend”。
    在这里插入图片描述
  5. 添加一个输入输出域对象,关联输入输出变量;
    在这里插入图片描述
  6. 在事件选项卡中,选择单击鼠标,添加C动作;
    代码如下:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
SetVisible("Start_New.PDL","ControlTrend", 0);
SetVisible("Start_New.PDL","ControlTrend", 1);
SetPropWord("Start_New.PDL","ControlTrend","TrendIndex",0); 
SetPropChar("Start_New.PDL","ControlTrend","TrendTagName","ProcessValueArchive\\F1.AI_OUT");
SetPropChar("Start_New.PDL","ControlTrend","Caption","F1_实际输出");
}

注释如下:

  • SetVisible("Start_New.PDL","ControlTrend", 0);:这行代码设置名为 “ControlTrend” 的元素在 “Start_New.PDL” 中的可见性为0,即隐藏该元素。
  • SetVisible("Start_New.PDL","ControlTrend", 1);:这行代码设置名为 “ControlTrend” 的元素在 “Start_New.PDL” 中的可见性为1,即显示该元素。
    以上两行代码的目的是,在点击一个控件时,先关闭上一个弹窗,再弹出下一个弹窗。
  • SetPropWord("Start_New.PDL","ControlTrend","TrendIndex",0);:这行代码设置名为 “ControlTrend” 的元素在 “Start_New.PDL” 中的 “TrendIndex” 属性为0。表示将趋势初始化。
  • SetPropChar("Start_New.PDL","ControlTrend","TrendTagName","ProcessValueArchive\\F1.AI_OUT");:这行代码设置名为 “ControlTrend” 的控件在主画面 “Start_New.PDL” 中弹出,该控件的 “TrendTagName” 属性为 “ProcessValueArchive\F1.AI_OUT”,其中“ProcessValueArchive”是变量记录的归档名称。
  • SetPropChar("Start_New.PDL","ControlTrend","Caption","F1_实际输出");:这行代码设置名为 “ControlTrend” 的元素在 “Start_New.PDL” 中的标题(Caption)属性为 “F1_实际输出”。即趋势弹窗标题为 “F1_实际输出”。
  1. 同理,再添加一个输入输出域对象,并关联变量;
    在这里插入图片描述
  2. 在事件选项卡中,选择单击鼠标,添加C动作;
    代码如下:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
SetVisible("Start_New.PDL","ControlTrend", 0);
SetVisible("Start_New.PDL","ControlTrend", 1);
SetPropWord("Start_New.PDL","ControlTrend","TrendIndex",0); 
SetPropChar("Start_New.PDL","ControlTrend","TrendTagName","ProcessValueArchive\\T1.AI_OUT");
SetPropChar("Start_New.PDL","ControlTrend","Caption","T1_实际输出");
}

这里变量名为“T1.AI_OUT”,弹窗标题为"T1_实际输出",其它不变。

二、运行画面演示

在这里插入图片描述
在这里插入图片描述

三、总结

该方法实现了单击不同输入输出域对象,弹出对应的趋势画面,并且调用的是同一个趋势控件,不需要为每一个对象都添加一个趋势控件,比较方便。

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值