当前位置: 首页 > 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/389968.html

相关文章:

  • 获取公网IP的方法
  • 苦瓜叶片病害检测数据集:2w+图像,9类,yolo标注
  • LlamaIndex入门
  • 基于RK3576+FPGA的无人机飞控系统设计
  • Redisson原理
  • PyQt6之日期与时间控件应用案例
  • css | 总结一下flex布局
  • c#里面的catch (Exception e)
  • 浅谈 CDN
  • 125、【OS】【Nuttx】【周边】效果呈现方案解析:分号与换行
  • CBB21-MPP电子元器件 RC容钏 金属化聚丙烯薄膜电容器 电子元器件技术解析
  • Day02 递归 | 46. 全排列、226. 翻转二叉树
  • [Spring Cloud][6] Eureka Server 搭建详解,与 Zookeeper 的区别
  • 前端性能优化完全指南:从入门到实战
  • 国产组态软件对工控行业的影响及作用
  • Databend 亮相 RustChinaConf 2025,分享基于 Rust 构建商业化数仓平台的探索
  • 从把python里的一个函数变成接口到自动化测试平台的实现
  • LibreTV+cpolar:打造私人云影院的智能方案
  • 软考高级系统架构设计师之架构设计扩展篇(一)
  • 宝德PR1710P服务器安装Anolis8.6系统
  • ABAP读写SAP服务器文件
  • 无人机操控核心:智能飞行的技术引擎
  • H5页面在真机移动端1px边框处理方案总结
  • 本地大模型部署与应用: Dify 与 Ollama 集成
  • 从 “盲调” 到 “精准优化”:SQL Server 表统计信息实战指南
  • ffmpeg.dll是什么?4步彻底解决ffmpeg.dll丢失报错问题
  • ROS2C++核心基础
  • 第二篇:搭建现代C++开发环境:VS2022 / CLion / VSCode实战
  • 【群晖NAS】一键脚本搭建frp内网穿透,在外轻松远程访问内网设备|远程桌面
  • 【HTML】 第一章:HTML 基础