手搓WinCC自定义功能块:从AS到OS的魔改指南

使用AS的自定义功能块与OS之间WINCC自定义功能块图标,自定义功能块面板教程。 1.不是采用西门子APL面板实现。 2.AS可以采用LAD或者SCL语言生成功能块。 3.实现弹窗功能。 4.事件可以采用C动作或者VBS。 5. 在PCS7或者STEP7+Wincc都可以实现。 6.可以提供实例源程序。

搞工控的都知道,西门子那套APL面板虽然方便,但用久了总觉得像被套模板。今天咱们直接甩开APL,用AS硬核搓自定义功能块,再给WinCC整点带专属图标的骚操作。

第一步:AS里造个"土制手雷"

先用SCL撸个带爆炸效果的功能块(LAD也行,但SCL写条件判断更爽):

scl 复制代码
FUNCTION_BLOCK FB_DiyPopup
VAR_INPUT
    Trigger : BOOL; // 弹窗触发信号
    MsgText : STRING[50]; 
END_VAR
VAR
    bPopupActive : BOOL := FALSE;
END_VAR

IF Trigger AND NOT bPopupActive THEN
    // 置位内部弹窗激活标志
    bPopupActive := TRUE;
    // 这里可以挂接OS的变量操作
    SetTagBit("HMI_Popup_Flag", TRUE);
    SetTagChar("HMI_Popup_Text", MsgText);
END_IF;

这玩意儿核心逻辑就是个带自锁的触发机制,注意SetTag系列函数是跨系统通信的关键。SCL的优势在于能直接操作绝对地址,适合需要精细控制的老司机。

第二步:给功能块穿皮肤

打开PCS7的Faceplate Designer(STEP7用户用图形编辑器硬改):

  1. 新建32x32像素的BMP图标
  2. 在块图标属性里勾选"User-Defined"
  3. 把画好的爆炸图标(比如💥)塞进C:\Program Files\Siemens\...\Symbols(路径看安装位置)
  4. 在CFC里插入功能块时,右键属性选自定义图标

有个坑要注意:WinCC的全局调色板是硬编码的,用PS做图标时记得把颜色索引限定在系统调色板,否则显示会鬼畜。

第三步:WinCC弹窗C脚本

在画面里藏个隐形按钮,事件里挂C脚本:

c 复制代码
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
    // 读取AS传过来的消息
    char msg[51];
    GetTagChar("HMI_Popup_Text", msg, 50);
    
    // 动态创建弹窗
    HWND hPopup = OpenPictureWindowEx("Popup.pdl", 300, 200, SW_SHOW, "PopupWindow");
    
    // 怼文本到弹窗里的静态文本控件
    SetText(hPopup, "StaticText1", msg);
}

用VBS也行,但C脚本执行效率更高,特别是需要高频触发时。注意OpenPictureWindowEx的参数单位是像素,别按工程单位瞎填。

避坑指南
  1. AS和OS时间戳不同步会导致触发丢失,建议在功能块里加500ms延时确认
  2. 图标更新后必须重启Simatic Manager才能生效
  3. 跨系统变量建议用ARSEND/ARRCV功能块打包传输
  4. 弹窗的.pdl文件里控件命名必须和C脚本里的完全一致

完整实例(包含AS功能块+WinCC画面)可以这么搞:

  • AS侧:在CFC里拖出FBDiyPopup实例,绑定到ARSEND
  • WinCC侧:用用户自定义对象封装弹窗控件组
  • 全局脚本里加个定时器清空弹窗标志位

这么整下来,你的WinCC面板既保留了西门子的稳定性,又有了定制化的逼格。实测在PCS7 V9.0和STEP7 V5.6+WinCC7.4都能跑,设备树不同导致的变量绑定问题,用交叉索引表能快速定位。

使用AS的自定义功能块与OS之间WINCC自定义功能块图标,自定义功能块面板教程。 1.不是采用西门子APL面板实现。 2.AS可以采用LAD或者SCL语言生成功能块。 3.实现弹窗功能。 4.事件可以采用C动作或者VBS。 5. 在PCS7或者STEP7+Wincc都可以实现。 6.可以提供实例源程序。

相关推荐
qq 180809512 个月前
无人机覆盖搜索路径规划:探索未知,锁定目标
imagen
后端小张3 个月前
【AI 解析】Gemini 3 全面解析:从认知到落地
人工智能·机器学习·ai·语言模型·chatgpt·imagen·gemini
科研小白_d.s1 年前
机器学习框架
javascript·网络·数据库·ide·windows·spring boot·sql·单片机·嵌入式硬件·机器学习·oracle·前端框架·php·intellij-idea·imagen
唐 城1 年前
毕业设计——医院信息化系统原型设计
人工智能·驱动开发·深度学习·数据挖掘·imagen
唐 城1 年前
毕业设计——物联网设备管理系统后台原型设计
人工智能·深度学习·yolo·数据挖掘·imagen
代码讲故事1 年前
谷歌发布Imagen 3,超过SD3、DALL・E-3,谷歌发布新RL方法,性能提升巨大,o1模型已证明
人工智能·gpt·计算机视觉·ai作画·图像识别·imagen·deepmind
勤劳兔码农1 年前
Imagen与其他生成模型的对比:DALL-E、Stable Diffusion、MidJourney
stable diffusion·midjourney·imagen
小周不摆烂1 年前
Imagen:重塑图像生成领域的革命性突破
imagen
庞德公2 年前
解锁Diffusion Model: 初识Stable Diffusion、DALL-E、Imagen
人工智能·stable diffusion·imagen·dall-e