• 自动化系统
  • 驱动技术
  • 低压电气
  • 工业服务
  • 其他
SIMATIC WinCC PLC和组件HMI人机界面通信与网络组件过程控制系统过程仪表及分析仪器工业识别工业信息安全
SIMATIC Panel
SIMATIC WinCC
Portal WinCC
WinCC Unified
WinCC OA / WinCC Open Architecture
编程器(PG)/工业计算机(IPC)
更多

复选框动态选择趋势显示

star star star star star
0 分
发布时间:2025年03月25日
  • 0
  • 38
WinCC V8.0 项目通过复选框勾选选项动态控制趋势控件上的趋势显示

1. 组态在线趋势控件

添加一个在线趋势控件“控件1“,在控件上添加3条趋势:“趋势1”、“趋势2”、“趋势3”,并分别组态这3个趋势的数据源,分别关联在线变量 “Trend1”、“Trend2”、“Trend3”,如图所示。

A screenshot of a computer screen

AI-generated content may be incorrect.

A screenshot of a computer

AI-generated content may be incorrect.


2. 添加一个复选框,设置复选框的框数量为3(最多可设置为32),设置3个选择框的文本为“趋势1”、“趋势2”、“趋势3”。

A screenshot of a computer

AI-generated content may be incorrect.


3. 动态勾选复选框的选择框后实现动态控制趋势的显示,需要在复选框的所选框的更改事件中组态 C 脚本:


4. 在 C脚本中,利用for 循环(循环的次数是复选框定义的框数量,此示例中复选框的框数量是3),对复选框的所选框的值逐位进行与运算(即判断复选框中哪些框被勾选了),判断所选框的每一位的数值是0还是1,如果与运算的结果是1则设置对应索引编号的趋势可见,反之,若与运算的对应位的值为0,则设置对应索引编号的趋势不可见。代码如下:

A screenshot of a computer

AI-generated content may be incorrect.


具体代码如下:

#include "apdefap.h"

void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, long value)

{

int i;

for (i = 31; i >= 0; i--) { // 从最高位开始检查

if (value & (1 << i)) { // 检查第i位是否为1

SetPropWord(lpszPictureName,"控件1","TrendIndex",i);//选择索引为 i 的趋势

SetPropBOOL(lpszPictureName,"控件1","TrendVisible",1);//设置索引为 i 的趋势可见

//printf("1");

} else {

SetPropWord(lpszPictureName,"控件1","TrendIndex",i); //选择索引为 i 的趋势

SetPropBOOL(lpszPictureName,"控件1","TrendVisible",0); //设置索引为 i 的趋势可见

//printf("0")

}

}

}

5. 执行效果如下所示:

A screenshot of a computer

AI-generated content may be incorrect.

此时打开在线趋势控件的在线组态对话框:

A screenshot of a computer

AI-generated content may be incorrect.

  • 评论
  • 分享

    扫码分享

  • 收藏
  • 点赞
  • 纠错
 

隐私政策更新提示

欢迎您来到西门子数字化工业支持中心网站!我们使用cookies来确保您能最好地使用我们的网站,进行网站分析并根据您的兴趣定制内容。我们有时会与第三方共享cookie数据。继续浏览本网站,即表示您同意我们使用cookies。您亦可以参考西门子数据隐私政策以了解更多相关信息。

同意并继续浏览
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。