当前位置: 首页 > news >正文

WINCC结构变量/公共弹窗

结构体变量

在变量管理窗口-----右键“结构变量”----新结构类型,如下图添加了气动阀门输出和电机输出两种类型。

右键“气动阀输出”----新结构类型元素,如下图添加了和气动阀相关的信号和控制元素:开到位,关到位,前缀,开关,手/自动,阀门报警。

鼠标左键“结构变量”-----在右侧“结构变量"窗口添加新结构变量。一个结构变量就对应一个气动阀门或电机。

然后在各个结构类型元素中,会自动出现对应的结构变量元素-------结构变量.结构类型元素

创建了一个公共的气动阀窗口如下图

(对象右键--属性)下图是开到位的圆形信号灯显示颜色配置,关到位异常与否(阀门报警),按钮显示信号同理

(对象右键--属性)按钮---事件----按左键---雷电符号右键,选C动作。

按钮控制脚本:

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
{
 if(!GetTagBit("开关"))
{
    x=MessageBox(NULL,"确认手动开'?","手动开'",MB_OKCANCEL|MB_ICONQUESTION|MB_SYSTEMMODAL|MB_DEFBUTTON2);
    if(x==1)
             SetTagBit("开关",1);
}
else if(GetTagBit("开关"))
{
    x=MessageBox(NULL,"确认手动关'?","手动关'",MB_OKCANCEL|MB_ICONQUESTION|MB_SYSTEMMODAL|MB_DEFBUTTON2);
    if(x==1)
             SetTagBit("开关",0);
}
}

}

气动阀

气动阀公共弹窗脚本:

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#define TagPrefix  "AV-B17." //变量前缀
#define PictureTitle   "AV-B17" //窗口标题
#define PictureName   "公共-气动阀.pdl" //模板画面名称
#define blqz "AV-B17.前缀"
char* sp;
SetVisible(lpszPictureName,"画面窗口2",0);// 关闭画面窗口
SetTagPrefix (lpszPictureName,"画面窗口2", TagPrefix);//传递变量前缀
SetPropChar(lpszPictureName,"画面窗口2","CaptionText",PictureTitle);//传递标题
SetPictureName(lpszPictureName,"画面窗口2",PictureName);//设置画面窗口调用的模板画面
SetVisible(lpszPictureName,"画面窗口2",1);// 打开画面窗口

sp=GetTagPrefix(lpszPictureName,"画面窗口2"); //获取画面窗口的变量前缀
SetTagChar (blqz, sp);//set prefix// WINCC:TAGNAME_SECTION_START
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
}

代码解析:

  • SetTagChar:WinCC提供的API函数,用于设置字符串类型标签(Tag)的值。
    • 第一个参数blqz:目标标签的名称(此处为宏定义"AV-B17.前缀",实际对应WinCC中的某个全局字符串标签)。
    • 第二个参数sp:要赋给标签的值(此处为通过GetTagPrefix获取的“画面窗口2”的当前变量前缀)。
    • 将其存储到全局标签blqz中,供后续逻辑调用(例如在其他脚本中通过GetTagChar(blqz)读取前缀,动态构建变量名)。

在WinCC模板画面中,变量通常使用前缀+基础名称的格式(如AV-B17.开到位)。通过SetTagPrefix将前缀"AV-B17."绑定到“画面窗口2”,使模板画面内的变量能自动拼接前缀,正确映射到PLC的DMTag(如AV-B17.开到位)。

http://www.dtcms.com/a/390062.html

相关文章:

  • 信息化项目验收计划方案书
  • 1.数据库概述和三种主要控制语言
  • 找到nohup启动的程序并杀死
  • 电磁干扰EMI (Electromagnetic Interference)是什么?
  • python提取域名
  • PR工具timing report中setup time的计算过程
  • 低延迟垃圾收集器:挑战“不可能三角”
  • 【测试】发版测试准入准出标准
  • 第一部分:HTML
  • 贪心算法应用:带权任务间隔调度问题详解
  • 视频监控大数据建模分析
  • IP的重要性
  • 远程访问管理爱快路由器
  • 算法 --- 优先级队列(堆)
  • Kindle出现电池感叹号图标和黄灯闪烁怎么办?
  • 摄像头模块在无人机上的应用
  • 深度学习篇GRU---LSTM和RNN的折中方案
  • Doris聚合表和物化视图选型对比
  • 互补色颜色对应的RGB
  • Python定义UDS诊断服务(8):SecurityAccess(0x27)
  • 第1节 工具(剪映剪映小助手)准备及安装(Coze扣子空间剪映小助手教程)
  • 大模型提示词Prompt工程:1-万能公式-完整指南
  • 8.30美团技术岗算法第三题
  • CentOS 7 一键安装 vsftpd 并创建可登录 FTP 用户 test
  • k8s自定义调度器实现路径
  • 服务器数据恢复—RAIDZ硬盘“惹祸”导致服务器崩溃的数据恢复过程
  • 20250917_车辆定位系统aidata-01Apache Doris数据库备份+恢复+清理 流程操作文档
  • Redis 7.0 ACL实战:RBAC模型实现精细化权限控制
  • Lightrag 文档处理不成功(httpx.ReadTimeout 为主)的解决步骤与方法总结
  • Spring Boot + MySQL MCP 集成标准流程