成人精品一区二区久久久 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,歡迎+
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 161 個(gè)
工控威望: 292 點(diǎn)
下載積分: 940 分
在線時(shí)間: 13(小時(shí))
注冊(cè)時(shí)間: 2021-06-11
最后登錄: 2025-10-04
查看萬泉河的 主題 / 回貼
樓主  發(fā)表于: 2022-12-27 12:00
1225 【跨新年】【萬泉河】WINCC中獲取窗口變量前綴以及跨窗口操控的方法

近段時(shí)間,不約而同的,網(wǎng)站論壇和煙臺(tái)方法學(xué)員中都有提出這樣的問題。

比如:
l C腳本如何獲得窗口中對(duì)象的變量前綴? VBS如何獲得?
l C腳本如何實(shí)現(xiàn)在一個(gè)窗口中操控父窗口下的另一個(gè)窗口內(nèi)的控件?
l VBS如何實(shí)現(xiàn)?

這些問題,都有個(gè)特點(diǎn),提問的時(shí)候先把編程語(yǔ)言給限定了。

而咱就不太有辦法拒絕。畢竟,人家有可能是在完成一個(gè)更復(fù)雜的工作,已經(jīng)在選定的語(yǔ)言下實(shí)現(xiàn)了大部分的功能,現(xiàn)在就在這一點(diǎn)點(diǎn)功能搞不定被卡主了,過不去了,才來求助的。

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

而且會(huì)發(fā)現(xiàn),大部分提問者其實(shí)是有我的那本書的,只是通讀不夠細(xì)致,沒發(fā)現(xiàn),或者沒記住有這方面的介紹。驗(yàn)證了一個(gè)道理,對(duì)一本書,最了解的還是作者自己。

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

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

所以,我這里做了個(gè)例子,進(jìn)行了測(cè)試,可以把這些坑填上了。也算是對(duì)我自己著作中遺漏部分的補(bǔ)充。


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

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

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

l 按鈕11的單擊鼠標(biāo)中的VBS程序?yàn)椋?/font>
Sub OnClick(ByVal Item)
ScreenItems("畫面窗口1").TagPrefix="M001_"
ScreenItems("畫面窗口1").PictureName=Item.Text
ScreenItems("畫面窗口1").Visible=True

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

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

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

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

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

標(biāo)準(zhǔn)的用法當(dāng)然不能每次都通過腳本來獲取,而是會(huì)在子窗口打開時(shí)即執(zhí)行腳本,獲取到前綴后,賦值到一個(gè)靜態(tài)文本中,窗口中任何需要的地方,可以通過讀取文本內(nèi)容得到。

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

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

l 按鈕12的單擊鼠標(biāo)中的C程序?yàn)椋?/font>
#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);
}

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

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

MessageBox(hwnd,Name,"OK",MB_OK);
}
畫面打開事件中文本內(nèi)容得到的方法:
#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腳本實(shí)現(xiàn)的核心是一個(gè)GetParentPicture的函數(shù),可以得到窗口的父窗口的文件名字。而這個(gè)函數(shù)是個(gè)神仙函數(shù),各種幫助資料中都沒有見過介紹。所以只有從已有的使用演示程序中獲取。

l 窗口中按鈕11的單擊鼠標(biāo)中的VBS程序?yàn)椋?/font>
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的單擊鼠標(biāo)中的C程序?yàn)椋?/font>
#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);
}

分別實(shí)現(xiàn)了上述同樣的功能。

當(dāng)然,我們也可以隨意的組合搭配按鈕和窗口內(nèi)的程序,都可以實(shí)現(xiàn)同樣的功能。比如即便你程序的主體語(yǔ)言是C的或者VBS,然而窗口中的文本獲得前綴部分可以用VBS簡(jiǎn)單得到。

最后,這些具體產(chǎn)品知識(shí)點(diǎn)的技巧內(nèi)容我近幾年確實(shí)很少觸及了。因?yàn)樵谖铱磥砟嵌际腔竟ΑN疑踔烈膊蝗ビ洃浘唧w的函數(shù)名字,比如上面的name還是tagname, TagPrefix還是Prefix都記不住的。我即便要使用,也都直接找現(xiàn)成的程序模塊看一眼,抄來用下即可。

而事實(shí)上,隨著標(biāo)準(zhǔn)化模塊化的推進(jìn),這些技能已經(jīng)很少用到了,因?yàn)樵缇头庋b完善在模塊中了。

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

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

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

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

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

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

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

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

    主站蜘蛛池模板: 久久久999国产 | 992tv在线成人免费观看 | 黄色毛片前黄 | 国产伦人人人人人人性 | 嫩草网站在线观看 | 日韩欧美中字 | 欧一区二区三区 | 亚洲国产精品成人综合久久久 | 欧美美女喷潮 | 无码热综合无码色综合 | 最新中文字幕av无码专区 | 一区二区三区av高清免费波多 | 人妻无码中文字幕免费视频蜜桃 | 亚洲视频网站在线观看 | 欧美黑人性视频 | 老司机午夜激情 | 国产日韩欧美一区二区东京热 | 欧美xx网站 | 成年人福利网站 | 全黄久久久久a级全毛片 | 久久久久久久久淑女av国产精品 | 日韩高清在线一区二区 | 奇米影视在线视频 | 一区二区三区四区在线播放 | 国内熟妇人妻色无码视频在线 | 日韩综合久久 | 亚洲色大成网站www永久网站 | 免费看黄网站在线 | 人人添人人妻人人爽夜欢视av | 中文字幕亚洲专区 | 噼里啪啦在线看免费观看视频 | 老女老肥熟国产在线视频 | 久久精品国产亚洲a∨麻豆 欧美系列在线观看 | 亚洲日韩欧美在线观看一区二区三区 | 亚洲成人黄色小说 | 欧美第十页| 天天av天天干 | 国产剧情在线 | 最新亚洲卡一卡二卡三新区 | 天海翼中文字幕 | 国产一区二区三区视频在线观看 | 欧美日韩中文在线观看 | 天天摸天天做天天爽婷婷 | 草草影院ccyy国产日本欧美 | 国产精品星空无限传媒 | 成人性生交大片免费看视频app | 欧美六区 | 人人玩人人添人人澡免费 | 114av| 抱起大胸美女扔在床吻胸 | 激情综合五月天 | 理论片午午伦夜理片影院 | 日韩在线不卡视频 | 日本妇人成熟免费视频 | 亚洲爱婷婷色婷婷五月 | 日本少妇的性生活 | 在线不卡中文字幕 | 哺乳一区二区久久久免费 | 欧美精品免费在线观看 | 主站蜘蛛池模板: 蛛词}| 天天干天天色综合网 | 人人看片人人看特色大片 | 国产a区| 中文字幕一区二区三区精品 | 国产日产精品一区二区三区四区 | 免费又色又爽又黄的舒服软件 | 99re6在线| 中出精品 | 九九99九九精彩网站 | 特黄视频在线观看 | 在线精品自拍 | 天堂成人 | 国产一卡2卡3卡4卡网站免费 | 久久婷婷五月综合色中文字幕 | 九九国产视频 | 又黄又爽又无遮挡免费的网站 | 激情噜噜| 青草青草久热精品视频在线观看 | 成人无码精品一区二区三区亚洲区 | 激情综合色综合久久综合 | 色综合久久本道鬼色 | 国产麻豆精品一区二区三区v视界 | 国产福利高颜值在线观看 | 国产精品久久久久久2021 | xxxx亚洲 | 亚洲激情国产 | 日韩精品中文字幕av | 久热国产区二三四 | 国产偷抇久久精品a片69麻豆 | www.91在线播放 | 国产精品久久久久久久竹霞 | 亚洲另类欧美综合久久图片区 | 日日干狠狠操 | 制服久久 | 亚洲国产中文字幕在线视频综合 | 日韩在线综合视频 | 国产开嫩苞视频在线观看 | 久久久高清 | 久久人妻无码aⅴ毛片a片动图 | 午夜爽爽爽男女污污污网站 | 尹人久久 | 日日夜夜精 | 7788色淫视频观看日本人 | 国产黄在线视频 | 亚洲人成人网站18禁 | 日本成人三级 | 欧美日韩国产一区二区 | 奇米影视狠狠干 | 99久久精品国 | 少妇人妻呻吟青椒bobx | 视频一区二区免费 | 国产精品多p对白交换绿帽 久草视频网 | 狠狠色狠狠色综合日日五 | 欧美最猛性xxxxx(亚洲精品) | 强开乳罩摸双乳吃奶网站 | 丝袜 国产 日韩 另类 美女 | 深夜爽爽福利 | 一区二区三区在线免费观看视频 | 亚洲自偷自偷在线成人网址 | 主站蜘蛛池模板: 蛛词}| 夜夜嗨aⅴ免费视频 | 免费va国产高清大片在线 | 久久久久人妻一区精品性色av | 亚洲国产午夜精品理论片妓女 | 久久精品成人免费国产 | 亚洲精品综合在线 | 久久久av一区二区三区 | 91ts国产人妖系列 | 美日韩在线 | 成人性做爰aaa片免费看曹查理 | 亚洲精品tv久久久久久久久j | 中文天堂资源在线www | av怡红院一区二区三区 | 国产午夜福利伦理300 | 国模欣谣大尺度啪啪人体 | 日韩国产欧美一区 | 日韩和的一区二区 | 成人午夜免费观看 | 中文字幕av无码不卡免费 | 国产一区丝袜在线播放 | 99久久国产综合精品swag | 日本久久久久久科技有限公司 | 日本天堂网在线 | 欧美性战a久久久久久 | 99国产精品入口 | 日本少妇高潮正在线播放 | 最新亚洲中文av在线不卡 | 特级欧美插插插插插bbbbb | 在线视频一二三区 | 美女黄的全免费 | 久草在线视频新时代视频 | 久久精品视频免费看 | 日韩成人高清视频 | 中文字幕av无码专区第一页 | 亚洲精品久久久av无码专区 | 八区精品色欲人妻综合网 | 无码国产精品高清免费 | 强被迫伦姧在线观看无码 | 亚洲中文字幕第一页在线 | 国产在线 | 欧洲 | 国产视频一区二区 | 精品人妻伦九区久久aaa片69 | 真实国产老熟女无套中出 | 无码三级国产三级在线电影 | 久久国产福利国产秒拍飘飘网 | 99国精品午夜福利视频不卡 | 国产在线极品 | 久久久激情 | 久草福利免费 | 久久五月激情 | 国产精品无码a∨果冻传媒 久久精品国产99久久6 | 国产日本免费 | 麻豆精品一区二区三区在线观看 | 福利cosplayh裸体の福利 | 午夜福利院电影 | 国产精品一区二区人人爽79欧美 | 亚洲欧美乱综合图片区小说区 | 伊人精品无码av一区二区三区 | 好吊妞视频988gao在线播放 | 主站蜘蛛池模板: 蛛词}| 国产一级揄自揄精品视频 | 亚洲国产一区二区精品专区 | 日韩激情综合网 | 亚洲永久免费视频 | 亚洲aⅴ无码成人网站国产app | 欧美性狂猛xxxxx深喉 | 久久久久久久久久久久久久国产 | 黑人巨大xxxxxxx精品 | 青青青国产最新视频在线观看 | 亚洲中文自拍另类av片 | 九九色综合 | 国产成人综合在线女婷五月99播放 | 国产激情一区二区三区 | 久久精品人妻中文系列 | 欧洲一卡2卡3卡4卡国产 | 韩国三级做爰高潮 | 国产午夜高清高清在线观看 | 国产成人av综合亚洲色欲 | 无码人妻一区二区三区免费n鬼逝 | 日韩视频a | 99久久99久久久精品齐齐 | 人妻少妇精品视频二区 | 免费无遮挡又黄又爽网站 | 国产精品麻豆成人av电影艾秋 | 91精品国自产拍天天拍 | 伊人影院亚洲 | 爱情岛论坛自拍亚洲品质极速福利 | 人妻少妇精品无码专区app | 欧美一卡二卡在线 | 欧美激情久 | 无码专区国产精品视频 | 亚洲精品久久久久久蜜桃 | 亚洲精品国产美女久久久 | 狠狠色丁香久久婷婷综 | 欧美日韩在线播放三区四区 | y111111少妇| 欧美一级裸体视频 | 无码精品、日韩专区 | 日本精品一区二区三区在线视频 | 无码人妻在线一区二区三区免费 | 日本丰满少妇做爰爽爽 | 日韩一级在线观看视频 | 欧美一区二区最爽乱淫视频免费看 | 麻豆国产人妻欲求不满谁演的 | www.天堂在线| 手机在线观看免费av | 色99色 | 国产v亚洲v欧美v精品综合 | 森泽佳奈av在线播放 | 国产农村妇女精品一二区 | 18禁无码永久免费无限制网站 | 不卡午夜| 思思久久精品视频 | 男女猛烈无遮挡免费视频在线观看 | 日韩国产免费 | 国产欧美日韩综合精品一区二区 | 国产亚洲精品成人aa片新蒲金 | 91视频进入 | 搡女人真爽免费视频网站波兰美女 | 主站蜘蛛池模板: 蛛词}| 天堂国产在线 | 草裙社区精品视频播放 | 国产综合免费视频 | 成av人在线观看 | 亚洲精品无码久久久久sm | 国产成人亚洲在线观看 | 日韩h片 | 日本黄色特级片 | 99欧美视频| 永久免费网站直接看 | 我要看www免费看插插视频 | 亚洲中文字幕无码卡通动漫野外 | 少妇熟女久久综合网色欲 | 国产成人精品久久久 | 国产成人精品999视频 | 深夜免费福利 | 永久看看免费大片 | 9色在线视频 | 区二区三区玖玖玖 | 中国特黄毛片 | 人妻丰满熟妇av无码区hd | 国产九九在线视频 | 无码精品国产va在线观看dvd | 91夜夜未满十八勿入爽爽影院 | 精品999久久久久久中文字幕 | 亚洲情在线| 欧美日韩在线视频首页 | 又色又爽又黄的吃奶视频免费观看 | 97超碰网| 一级特黄aaa大片 | 久久九九日本韩国精品 | 18禁无遮挡羞羞污污污污网站 | 国产乱妇视频 | 久久伊人五月天 | 精品久久久久一区二区国产 | 欧美人与动牲交大全免费 | 一区二区视频在线播放 | 国产日韩av在线播放 | 日本欧美一区二区三区 | 俄罗斯大荫蒂女人毛茸茸 | 干大奶子 | 久久香蕉国产线看观看手机 | 男人的天堂毛片 | 国产草莓视频无码a在线观看 | 天天射天天射 | 免费高清av一区二区三区 | 黄色片库 | jizz一区二区三区 | 精选国产av精选一区二区三区 | 日本高清免费观看 | 亚洲大片免费观看 | 亚洲精品乱码久久久久久app | 国产精品美女一区二区三区 | 国产尻逼视频 | 好吊妞这里有精品 | 日本成夜色爽免费视频 | 国产成人精品永久免费视频 | 日韩欧美亚洲综合久久影院 | 亚洲免费成人在线视频 |