C脚本实现Wincc模拟量趋势窗口弹出
创作时间:
作者:
@小白创作中心
C脚本实现Wincc模拟量趋势窗口弹出
引用
CSDN
1.
https://blog.csdn.net/laohei026/article/details/138704242
本文介绍了一种基于C脚本实现点击输入输出域对象,弹出对应模拟量趋势窗口的方法。通过在Wincc中添加变量、配置控件和编写C脚本,可以实现单击不同输入输出域对象时弹出对应的趋势画面,且调用的是同一个趋势控件,操作简便。
一、步骤及解析
- 在Wincc变量管理中,添加两个变量;
示例如下: - 将以上两个变量添加到变量记录中;
- 打开Wincc计算机属性界面,勾选变量记录运行系统;
- 新建主画面,并添加一个“Wincc Online TrendControl”控件;
这里将主画面命名为“Start_New.Pdl”,将“Wincc Online TrendControl”控件命名为“ControlTrend”。 - 添加一个输入输出域对象,关联输入输出变量;
- 在事件选项卡中,选择单击鼠标,添加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_实际输出”。
- 同理,再添加一个输入输出域对象,并关联变量;
- 在事件选项卡中,选择单击鼠标,添加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_实际输出",其它不变。
二、运行画面演示
三、总结
该方法实现了单击不同输入输出域对象,弹出对应的趋势画面,并且调用的是同一个趋势控件,不需要为每一个对象都添加一个趋势控件,比较方便。
热门推荐
冲绳料理:传统、美味和热带食材
红酒等级全解析:从产区到星级,教你辨别红酒品质
人民法院数据安全解决方案
如何在网上法院提起诉讼:流程、注意事项及法律依据
7年内小行星将撞击地球,会带来什么后果?人类有能力防御吗?
膝关节置换术可以保持多久
好项目如何拓展客户需求
污水处理中的监测与评估方法与指标
解锁AI创作密码“小白”变“画家”
当算力霸权遭遇中国式创新:DeepSeek如何用「数学暴力」劈出AI新世界
C盘如何备份到云盘
孩子上户口是否需要亲子鉴定?详解特殊情况与法律规定
从陈所学的上奏书,佐证明代的党争
猫咪增肥秘籍:选对食物,胖嘟嘟不是梦!
牛奶什么时候喝最好?三个最佳饮用时间解析
听花酒合作博主一年多前因诱导消费被罚12万,市监部门将其列为典型案例
《怪物猎人荒野》游戏完整性验证指南
肝经当令时间是几点到几点
电木是什么材料?从发现到应用的全面科普
TA1钛合金是什么材料?
马蹄莲对家居环境的影响
早上洗头的利弊分析及注意事项
嵌瓷:岭南古建筑上的“立体画”
分层次教学培训对护士医院感染防控知识掌握水平及管理质量的影响
重症医学科医院感染控制原则专家共识
骶管囊肿是什么?医生详解病因、症状与治疗方案
腰疼是否与骶管囊肿有关
照明为什么不能用漏保(漏电保护开关需要安装吗?)
歌手榜排名持续上升,演唱会全面溢价,周深的未来真不用太担心
胸口长三四个红色疙瘩该如何处理