成人精品一区二区久久久 I 国产美女永久无遮挡 I 中文字幕+乱码+中文字幕明步 I 国产在视频一区二区三区吞精 I 日韩精品小视频 I 成人性生交大片免费4 I 免费aaa级毛片在线视频 I 一级片毛片 I 大型成人社区 I 国模在线播放 I 欧美大荫蒂毛茸茸视频 I 偷偷色噜狠狠狠狠的777米奇 I www.久久亚洲 I 日日搞夜夜操 I 亚洲成色777777女色窝 I 毛片黄色毛片 I 午夜片在线观看 I 国产一区二区三区中文字幕 I 天天干夜夜骑 I 日韩在线视频一区二区三区 I 久久久无码精品亚洲a片0000 I 写真福利片hd在线播放 I 欧美成人一区二免费视频 I 色噜噜狠狠爱综合视频 I 中文字幕无线码免费人妻 I 国产精品久久久久久久久久不蜜臀 I 欧美综合人人做人人爱 I 1024成人网色www I 国产精品视频一二三区 I 亚洲免费美女视频

萬泉河
WX:ZHO6371995,歡迎+
級別: 略有小成
精華主題: 0
發帖數量: 161 個
工控威望: 292 點
下載積分: 940 分
在線時間: 13(小時)
注冊時間: 2021-06-11
最后登錄: 2025-10-04
查看萬泉河的 主題 / 回貼
樓主  發表于: 2022-12-27 12:00
1225 【跨新年】【萬泉河】WINCC中獲取窗口變量前綴以及跨窗口操控的方法

近段時間,不約而同的,網站論壇和煙臺方法學員中都有提出這樣的問題。

比如:
l C腳本如何獲得窗口中對象的變量前綴? VBS如何獲得?
l C腳本如何實現在一個窗口中操控父窗口下的另一個窗口內的控件?
l VBS如何實現?

這些問題,都有個特點,提問的時候先把編程語言給限定了。

而咱就不太有辦法拒絕。畢竟,人家有可能是在完成一個更復雜的工作,已經在選定的語言下實現了大部分的功能,現在就在這一點點功能搞不定被卡主了,過不去了,才來求助的。

而如果不指定語言的話,其實我都早就有答案,特別是VBS的解決方案,都寫在《西門子WINCC入門到精通》的書里了,所以只需要從書柜里把我自己的書拿出來,找到頁碼,把頁碼號告訴對方就可以了。

而且會發現,大部分提問者其實是有我的那本書的,只是通讀不夠細致,沒發現,或者沒記住有這方面的介紹。驗證了一個道理,對一本書,最了解的還是作者自己。

當然,我也發現了我寫書時候遺漏的該寫而未寫的技巧知識點。可能潛意識里面,我自己覺得反正另一條路上有解決方案了,這邊這一條就沒必要去重復啰嗦實現了。特別是C腳本,對西門子來說自從20年前的WINCC版本支持VBS之后,官方逐漸在弱化C腳本的地位,我自己也逐漸淡化對其的研究和使用。想一碗水端平是永遠不可能的。    

在此先提醒大家,提問問題的時候,盡可能不要限定編程語言。那樣的答案多的是,可以唾手可得。而非要限定語言了,尋找起來就會有一些難度。

所以,我這里做了個例子,進行了測試,可以把這些坑填上了。也算是對我自己著作中遺漏部分的補充。


主畫面中是2個按鈕,分別演示了VBS腳本和C腳本彈出窗口的方法。

而彈出的窗口外觀相同,然而內部的程序語言不同,分別有按鈕按下后可以彈出對話框提示讀取得到了前綴。

而后,將上述2個按鈕分別放到另一個叫做“窗口中操控”的窗口(PDL文件),腳本經過稍微修改,實現了上述同樣的功能。

l 按鈕11的單擊鼠標中的VBS程序為:
Sub OnClick(ByVal Item)
ScreenItems("畫面窗口1").TagPrefix="M001_"
ScreenItems("畫面窗口1").PictureName=Item.Text
ScreenItems("畫面窗口1").Visible=True

End Sub
而窗口中有2個獲取前綴的按鈕,同樣可以得到結果,腳本分別為:
Sub OnClick(Byval Item)
'MsgBOX(ITEM.Parent.Parent.TagPrefix)

MsgBOX(Parent.TagPrefix)
End Sub
注釋掉的腳本也同樣可以執行。

Sub OnClick(Byval Item)
Dim name
name=HMIRuntime.Tags("aa").Name

Dim TagPrefix
TagPrefix=Split(name,"_")(0)
MsgBOX(TagPrefix)
End Sub
這里取了一個不存在的aa后綴的變量,然而也絲毫不影響功能。因為語法本身獲取的是變量名字,對變量是否有值是否合法根本不在意。

也注意兩種方式得到的前綴分別有分隔符和無分隔符的區別。

標準的用法當然不能每次都通過腳本來獲取,而是會在子窗口打開時即執行腳本,獲取到前綴后,賦值到一個靜態文本中,窗口中任何需要的地方,可以通過讀取文本內容得到。

Sub OnOpen()
'MsgBOX(Parent.TagPrefix)
ScreenItems("窗口前綴").Text=Parent.TagPrefix
End Sub

而如果畫面窗口中不需要顯示這個前綴,可以設置靜態文本為隱藏。這是官方例程中慣用的手法。

l 按鈕12的單擊鼠標中的C程序為:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char*lpszObjectName, char* lpszPropertyName)
{
SetPropChar(lpszPictureName, "畫面窗口1","PictureName","窗口12-C獲取前綴.Pdl");
SetPropChar(lpszPictureName, "畫面窗口1","TagPrefix", "M002_");

SetPropBOOL(lpszPictureName, "畫面窗口1","Visible", TRUE);
}

窗口內獲取按鈕的腳本:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char*lpszObjectName, char* lpszPropertyName)
{
char Name[20];
HWND hwnd=NULL;

hwnd=FindWindow(NULL,"WinCC-運行系統 -"); //獲得句柄
strcpy(Name,GetPropChar(GetParentPicture(lpszPictureName),GetParentPictureWindow(lpszPictureName),"TagPrefix")); //Return-Type: char*

MessageBox(hwnd,Name,"OK",MB_OK);
}
畫面打開事件中文本內容得到的方法:
#include "apdefap.h"
void OnOpenPicture(char* lpszPictureName,char* lpszObjectName, char* lpszPropertyName)
{
char Name[20];
strcpy(Name,GetPropChar(GetParentPicture(lpszPictureName),GetParentPictureWindow(lpszPictureName),"TagPrefix")); //Return-Type: char*
SetPropChar(lpszPictureName,"窗口前綴","Text",Name); //Return-Type: BOOL
}

這里C腳本實現的核心是一個GetParentPicture的函數,可以得到窗口的父窗口的文件名字。而這個函數是個神仙函數,各種幫助資料中都沒有見過介紹。所以只有從已有的使用演示程序中獲取。

l 窗口中按鈕11的單擊鼠標中的VBS程序為:
Sub OnClick(ByVal Item)
Parent.Parent.ScreenItems("畫面窗口1").TagPrefix="M001_"
Parent.Parent.ScreenItems("畫面窗口1").PictureName=Item.Text
Parent.Parent.ScreenItems("畫面窗口1").Visible=True
End Sub

l 窗口中按鈕12的單擊鼠標中的C程序為:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char*lpszObjectName, char* lpszPropertyName)
{
char szParentPicture[512];
strncpy (szParentPicture,GetParentPicture(lpszPictureName), sizeof(szParentPicture));

SetPropChar(szParentPicture, "畫面窗口1","PictureName","窗口12-C獲取前綴.Pdl");
SetPropChar(szParentPicture, "畫面窗口1","TagPrefix", "M002_");

SetPropBOOL(szParentPicture, "畫面窗口1","Visible", TRUE);
}

分別實現了上述同樣的功能。

當然,我們也可以隨意的組合搭配按鈕和窗口內的程序,都可以實現同樣的功能。比如即便你程序的主體語言是C的或者VBS,然而窗口中的文本獲得前綴部分可以用VBS簡單得到。

最后,這些具體產品知識點的技巧內容我近幾年確實很少觸及了。因為在我看來那都是基本功。我甚至也不去記憶具體的函數名字,比如上面的name還是tagname, TagPrefix還是Prefix都記不住的。我即便要使用,也都直接找現成的程序模塊看一眼,抄來用下即可。

而事實上,隨著標準化模塊化的推進,這些技能已經很少用到了,因為早就封裝完善在模塊中了。

有一些年輕人看到我近年來寫各種科普文章,很少提及這些具體的技術技能技巧,懷疑我從來沒掌握這些技能,DISS我,甚至來跟我PK,只能是他們眼光太短淺了,你要從事技術工作,不是要把一項項的技能從年輕到年老記憶地牢牢的,以隨時使用。相反的是,大部分技能是需要封裝的,封裝以后直接使用,甚至自己要主動把這些具體技能都遺忘掉,才可以有更多的精力去掌握更高層的知識。

最后,給大家的建議是,要盡量少自己從頭造輪子。

雖然我自己在成長過程中,是摸著石頭過河每個輪子逐個造過來的,遇到任何問題,也都抑制不住要自己親自造輪子的沖動。輪子的每一個細節,如果不親自掌握,就會抓耳撓腮睡覺都不安心。

然而仍然要提醒同行后來者,這是一種非常低效率的行為。你可以有好奇心,精力充沛的情況下可以對別人造好的輪子仔細研讀原理,自己可以從中掌握些基本功,然而自己從頭造輪子這件事,就要盡量避免了。

上述例程的實現方法,西門子官方的例子中其實原本就有,而且功能比我這里介紹的要全面而細致得多得多。

西門子官方例程中, BST例程較多的是使用了C腳本,而LBP例程(或者叫做BPL)相同的功能則更多是用VBS實現的。

這些例程我都已經寫文章推薦過多次了。這回就不再提供鏈接以及親自提供文件了,而只提供名字,需要者自己辛苦一點去找到并學習了解。看來太容易得到的資料通常都不珍惜,只有自己辛苦一點,千辛萬苦得到的才會更加倍的去學習。

另外,考慮到上面的乏味的語言講述不夠直觀,有可能很多人看了并不能理解。 我有計劃在元旦期間做2次視頻直播講座,專門講解展示這個例程的實現方法。第一次直播會在煙臺方法學員群中,第二次直播會面向大眾。有感興趣者請關注公眾號、朋友圈,及時獲取通知。  
本帖最近評分記錄:
  • 下載積分:+1(hsiung) 熱心助人!
    eaglesence
    eaglesence
    級別: 家園常客
    精華主題: 0
    發帖數量: 485 個
    工控威望: 817 點
    下載積分: 25671 分
    在線時間: 125(小時)
    注冊時間: 2019-04-02
    最后登錄: 2025-10-07
    查看eaglesence的 主題 / 回貼
    1樓  發表于: 2022-12-30 12:14
    這個跨窗口操作大家用的多嗎?

    主站蜘蛛池模板: 四虎国产精品永久免费观看视频 | 久久综合给合久久狠狠狠88 | 根深蒂固在线观看 | 不卡av网站 | 九九视频麻婆豆腐在线观看 | 亚洲三区在线观看内射后入 | 中文字幕欧美日韩精品 | 国产精品igao视频网网址不卡日韩 | 99riav在线 | 欧美巨大黑人精品一.二.三 | 久在线视视频在线观看 | 久久狼人亚洲精品一区 | 91在线免费视频观看 | 爱爱一区二区三区 | 洞在线观看 | 国产又爽又黄又舒服的视频 | 精品亚洲国产成人av网站 | 精品综合视频 | 亚洲精品日韩丝袜精品 | 亚洲熟妇无码乱子av电影 | 艳妇臀荡乳欲伦交换在线看 | 无码中文字幕乱码一区 | 国产成人精品免费视频app软件 | 久久福利| 久草热线 | 激情综合五月婷婷 | 国产一区不卡在线 | 狠狠亚洲色一日本高清色 | 51午夜精品免费视频 | 蜜桃狠狠色伊人亚洲综合网站 | 亚洲αv无码一区二区三区四区 | 国产大爆乳大爆乳在线播放 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 九九热这里有精品 | 97夜夜澡人人爽人人喊中国片 | 猫咪av网站 | 久久久久国内精品影院 | 中文字幕无码av正片 | 亚洲精品综合一区二区 | 亚洲精品网站日本xxxxxxx | 日本三级吃奶头添泬 | 五十路亲子中出在线观看 | 亚洲高清网站 | 国精产品自偷自偷综合下载 | 天天色爱| 日日摸夜夜骑 | 国产又色又爽又高潮免费 | 国产精品一区二区在线看 | 天天躁日日躁狠狠躁婷婷 | 91九色蝌蚪视频 | 免费亚洲成人 | 亚洲区成人 | 天天色综合影视 | sao虎视频在线精品永久 | 果冻传媒18禁免费视频 | 日韩精品久久无码人妻中文字幕 | 2019国产精品| av片在线播放 | aa性欧美老妇人牲交免费 | 主站蜘蛛池模板: 蛛词}| 国产在线精品自拍 | 青春草在线视频免费观看 | 亚洲午夜久久久影院伊人 | 久久久久 亚洲 无码 av 专区 | 乱人伦人妻中文字幕不卡 | 中文字幕第1页第69 手机福利在线 | 欧美成年人视频在线观看 | av色综合久久天堂av色综合 | 五月天亚洲综合 | 精品欧美久久久 | 色老板精品视频在线观看 | 亚洲色无码中文字幕手机在线 | 午夜无码伦费影视在线观看果冻 | 99在线影院 | 国模雨珍浓密毛大尺度150p | 五月婷婷综合在线 | 中国少妇内射xxxhd | 成人四虎| 狠狠色老熟妇老熟女 | 欧美黄绝喷潮片 | 日韩精品无码免费专区网站 | 欧美人与动交视频在线观看 | 在线观看av不卡 | av播播| lutube成人福利在线观看污 | 青青青国产依人在线 | 五月婷婷六月合 | 无码专区—va亚洲v专区 | 天堂躁躁人人躁婷婷视频ⅴ | 精品国产乱码久久久久禁果 | 精品一二三区 | 久久久久99精品成人片欧美 | 欧洲一区二区在线观看 | eeuss亚洲精品久久 | 小荡货奶真大水多好紧视频 | 国产丰满农村老妇女乱 | 99久久精品6在线播放 | 乱视频在线观看 | 5566日本婷婷色中文字幕 | 久久99精品久久久久久琪琪 | 国产成人综合欧美精品久久 | 亚洲精品xxxx | 国产午夜伦伦午夜伦无码 | 19禁无遮挡啪啪无码网站 | 丰满少妇在线观看bd | 欧美一区国产一区 | 色猫咪av | 国产91在线看 | 成在人线av无码免费漫画 | 国产成人mv在线播放 | 国产无套丰满白嫩对白 | 在线免费观看av不卡 | 97久久精品国产一区二区片 | 中文字幕第一页九 | 久久黄网 | 午夜av网址| 国产夜夜爽| 色欧美在线视频 | 欧美亚韩一区二区三区 | 主站蜘蛛池模板: 蛛词}| 无码高潮喷水在线观看 | 国产精品久久久久久久久久久新郎 | 老师露双奶头无遮挡挤奶视频 | 国模裸体无码xxxx视频 | 亚洲色精品vr一区二区三区 | 国产精品麻花传媒二三区别 | 五月婷婷激情视频 | 精品国产美女av久久久久 | 四虎影视av| 午夜无码性爽快影院6080 | 无遮挡做爰激吻国产999 | 黑人巨大亚洲一区二区久 | 亚洲色图150p | 天天射天天 | 亚洲国产av无码一区二区三区 | 女人爽到高潮视频免费直播 | 麻豆av久久无码精品九九 | 天堂аⅴ在线地址8 | 亚洲欧美自拍制服另类图区 | 天天操天天舔天天射 | 日韩成人看片 | 国产丰满麻豆vⅰde0sex | 18禁超污无遮挡无码网址极速 | 爱情岛论坛成人永久网站在线观看 | 国内毛片毛片毛片毛片毛片毛片 | 成人免费午夜a大片app | 国产真实乱全部视频 | 欧洲熟妇色xxxx欧美老妇多毛 | 精品无码一区二区三区的天堂 | 婷婷丁香六月激情综合啪 | 国产亚洲日韩妖曝欧美 | 国产全是老熟女太爽了 | 三上悠亚网站在线观看一区二区 | 波多野结衣成人在线 | 久久国产精品二国产精品 | 精品国产成人国产在线视 | 国产老妇伦国产熟女老妇视频 | 五月激情日韩欧美啪啪婷婷 | 二级黄色毛片 | 性av盈盈无码天堂 | 国产日产欧产精品品不卡 | 不卡av影院| 玖草影院| 色喜国模李晴超大尺度 | 国产产无码乱码精品久久鸭 | 女同亚洲精品一区二区三 | 日韩视频免费观看高清 | 久久高清免费视频 | 成人网址在线观看 | 国产精品成人一区二区三区夜夜夜 | 天堂中文av在线 | 91国偷自产中文字幕久久 | 亚洲精品在线免费播放 | 日本一级淫片免费啪啪琪琪 | 免费一区二区 | 日本一区二区三区免费播放视频了 | 女人18毛片水最多 | 99热1| 在线看片免费人成视频福利 | 主站蜘蛛池模板: 蛛词}| 伊人一级片 | 国产色道 | 国产成人一区二区三区在线观看 | 欧美亚洲在线播放 | 亲子性教育中文字幕 | 欧美大片在线看 | 成人亚欧欧美激情在线观看 | 日韩a∨| 永久免费精品网站 | 欧美激情综合亚洲一二区 | 日韩激情在线观看 | 青青青在线视频免费观看 | 欧美人妖网站 | 丰满人妻跪趴高撅肥臀 | 无码人妻精品一区二区蜜桃网站 | 国产让女高潮的av毛片 | 黑人强辱丰满的人妻熟女 | 国产精品久久久久久日本 | www.日韩视频 | 永久免费看毛片 | 在线播放偷拍一区精品 | 老熟妇乱子交视频一区 | 日本欧美在线观看视频 | 福利视频久久 | 国产第十页 | 日本高清免费在线 | 少妇又色又紧又黄又刺激免费 | 国产又粗又猛又黄又爽视频 | 九九九九热 | 亚洲精品国自产拍在线观看 | 清纯粉嫩极品夜夜嗨av | 中文无码不卡的岛国片 | 欧美激情老妇 | 酒店偷拍毛片高潮 | 99精品视频免费观看 | 十八禁视频网站在线观看 | 成人区人妻精品一熟女 | 先锋影音av最新资源 | 欧美日韩亚洲国内综合网 | 婷婷丁香五月天综合东京热 | 天天躁日日躁狠狠躁精品推荐 | 国产目拍亚洲精品二区 | 夜夜春亚洲嫩草影院 | 西西人体午夜视频无码 | 男女啪啪抽搐呻吟高潮动态图 | 五月天婷亚洲天综合网精品偷 | 国产精品女上位 | 欧美影视精品久久 | 韩国和日本免费不卡在线v 中文字幕一区二区三区精彩视频 | 一区二区三区欧美在线 | 中文精品一区二区 | 亚洲午夜成aⅴ人片 | 中文字幕无码一区二区免费 | 亚洲国产欧美在线人成大黄瓜 | 这里只有精品22 | 久久99久久久 | 日日摸天天摸97狠狠婷婷 | 女性无套免费网站在线看动漫 | 五月婷六月丁香狠狠躁狠狠爱 | 主站蜘蛛池模板: 蛛词}| 欧美一区二区三区成人片在线 | 青草草在线视频 | 三级免费网站 | 天天射天天干天天舔 | 1024手机在线看片你懂的 | 中文字幕无码精品亚洲资源网久久 | 四虎wwwaa884成人精品视频 | 国产精品视频网址 | 久久精品高清一区二区三区 | 91小视频 | av高清一区 | 亚洲人成自拍网站在线观看 | 亚洲综合av在线在线播放 | 亚洲欧美另类在线图片区 | 亚洲欧美一区二 | 亚洲wwwxxx | www.久久久com | 午夜免费福利网站 | 国产精品熟女高潮视频 | 亚洲乱码日产精品bd在观看 | 国产成人无码精品久久久小说 | 熟年交尾五十路视频在线播放 | 欧美日韩在线观看一区二区三区 | 日日天堂| 人妻美妇疯狂迎合系列视频 | 久久精品国产99国产精2020丨 | 少妇高潮惨叫久久久久电影 | 国自产拍偷拍精品啪啪 | 无码一区二区三区视频 | 久色网站 | 亚洲福利国产网曝 | 又爽又色禁片1000视频免费看 | 国产精品乱码久久久久久1区2区 | 两性色午夜视频免费老司机 | 亚洲二区在线播放 | 夜夜夜网 | 看免费黄色毛片 | 亚洲一区二区三区国产精华液 | 91免费.| 久久精品在线观看 | 久久久国产精品va麻豆 | 成人三级无码视频在线观看 | 国产在线观看黄av免费 | 久久国产成人午夜av浪潮 | 国产又黄又爽又猛免费视频播放 | 成人做爰www免费看视频网战 | 国产美女精品视频线免费播放 | 亚洲一区av无码少妇电影玲奈 | 春药按摩人妻弓中文字幕 | 国产成人精品18p | 久草免费在线观看视频 | 国模欢欢炮交啪啪150 | 国产高清女同学巨大乳在线观看 | 18禁无遮挡羞羞污污污污免费 | 中文资源在线天堂库8 | 日韩一区二区在线免费观看 | 亚洲精品乱码久久久久久蜜桃欧美 | 四虎精品成人影院在线观看 | 欧美肉欲k8播放毛片欧美 |