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

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

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

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

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

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

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

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

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

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


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

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

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

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

End Sub
而窗口中有2個獲取前綴的按鈕,同樣可以得到結(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
這里取了一個不存在的aa后綴的變量,然而也絲毫不影響功能。因為語法本身獲取的是變量名字,對變量是否有值是否合法根本不在意。

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

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

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

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

l 按鈕12的單擊鼠標(biāo)中的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);
}

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

hwnd=FindWindow(NULL,"WinCC-運行系統(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腳本實現(xiàn)的核心是一個GetParentPicture的函數(shù),可以得到窗口的父窗口的文件名字。而這個函數(shù)是個神仙函數(shù),各種幫助資料中都沒有見過介紹。所以只有從已有的使用演示程序中獲取。

l 窗口中按鈕11的單擊鼠標(biāo)中的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的單擊鼠標(biāo)中的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);
}

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

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

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

而事實上,隨著標(biāo)準(zhǔn)化模塊化的推進(jìn),這些技能已經(jīng)很少用到了,因為早就封裝完善在模塊中了。

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

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

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

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

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

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

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

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

    主站蜘蛛池模板: 国产成人啪精品视频免费视频 | 亚洲色婷婷综合开心网 | 国产乱码高清区二区三区在线 | 91福利视频网站 | 夜先锋av资源网站 | 日韩一区二区三区av | 日本另类xxxx| 99国产欧美久久久精品蜜芽 | 亚洲情侣偷拍激情在线播放 | 亚洲精品国男人在线视频 | 美国十次成人欧美色导视频 | 国产精品亚洲lv粉色 | 日韩中文字幕区一区有砖一区 | 午夜久久国产 | 亚洲综合专区 | 女人被躁到高潮免费视频 | 亚洲无吗在线观看 | 成人午夜做爰高潮片免费吸气 | 99久久精品免费观看国产 | 亚洲一区av无码少妇电影玲奈 | 欧美黑人又粗又大的性格特点 | 亚洲最大成人一区久久久 | 久久久久久久综合综合狠狠 | 国产精品嫩草影院免费观看 | 岛国一区二区三区 | 国产有码视频 | 欧美乱论视频 | 黄色福利 | 久久免费看少妇高潮 | 最大av| 成人午夜看黄在线尤物成人 | 亚洲人成电影网站色 | 中文字幕aⅴ在线视频 | 人与动物黄色大片 | 在线观看午夜 | 国产天堂av | sm免费人成虐网站 | 99re欧美 | 91视频日本| 美女内射视频www网站午夜 | 国产午夜福利不卡在线观看 | 成人毛片视频在线播放 | 国内外成人激情视频 | 久久精品无码一区二区三区不卡 | 国产热の有码热の无码视频 | 婷婷97狠狠成人免费视频 | 人妻无二区码区三区免费 | 越南毛茸茸的少妇 | 欧美xxxx视频 | 777米奇影视第四色 青青草视频网 | 亚洲少妇在线 | 人妻换人妻a片爽麻豆 | 无码人妻毛片丰满熟妇区毛片国产 | 一区二区三区三区在线 | 无码人妻精品一区二区三区不卡 | 欧美综合天天夜夜久久 | 欧美激情视频一区二区三区不卡 | 精品国产成人网站一区在线 | 99久re热视频这里只有精品6 | 主站蜘蛛池模板: 蛛词}| 精品亚洲视频在线观看 | 亚洲精品一| 人妻体内射精一区二区三区 | 老色鬼在线精品视频 | 99伊人网 | 亚洲高清在线观看 | 先锋影音一区二区三区 | 久久久噜噜噜久久久精品 | 中国少妇的呻吟xvideos | 欧美成人性生活片 | 国产黄在线观看 | 欧美另类在线播放 | 香蕉视频一直看一直爽 | 麻豆国产成人av高清在线观看 | 99国产精品99久久久久久 | 久久久久久人妻毛片a片 | 亚洲日韩在线a视频在线观看 | 轻轻草在线视频 | 99re6在线视频精品免费下载 | 一本色道久久综合亚洲精品不卡 | 久久综合乱子伦精品免费 | 精品无码一区二区三区av | 中文字幕无码视频专区 | 欧美亚洲日本国产其他 | 亚洲国产成人久久 | 免费午夜网站 | 天天躁狠狠躁 | 精品午夜福利无人区乱码一区 | 亚洲精品国产美女在线一区 | 久久久精品久久久久 | 婷婷六月久久 | 色综合天天综合欧美综合 | 丰满圆润自拍少妇啪啪xxx | 国产成人精品一区二三区四区五区 | av网站大全免费 | 精品无码国产污污污免费网站 | 黄色肉肉视频 | 男人和女人上床的视频 | 香蕉久久人人爽人人爽人人片av | 国产亚洲精品久久久麻豆男与男 | 免费看毛片基地 | 亚洲高清国产拍精品闺蜜合租 | 久草网视频在线观看 | 国产做a爰片久久毛片a片白丝 | 国产午夜精品视频在线播放 | 欧美xxxx做受欧美88bbw | 亚洲精选在线观看 | 国产人成高清在线视频99 | 日日噜噜夜夜狠狠视频 | 久久2018 | 日本嫩草影院 | 制服欧美激情丝袜综合色 | 超碰热久久 | 久久国产免费直播 | 亚洲视频无码高清在线 | 涩涩免费| 熟妇人妻不卡中文字幕 | 成人久久视频 | 九九九国产视频 | 主站蜘蛛池模板: 蛛词}| 亚洲欧美日韩成人在线 | 久久无码高潮喷水抽搐 | 欧美亚洲精品中文字幕乱码 | 日日干av| 日韩欧美高清在线观看 | 亚洲国语 | 嫩草嫩草| 奇米影视亚洲精品一区 | 亚洲国产日韩在线人高清 | 午夜欧美视频 | 国产成人99| 五月婷婷在线观看视频 | 国内精品自产拍在线观看 | 久久狠狠爱亚洲综合影院 | 久久15p | 国产成人无码性教育视频 | 一区二区三区成人久久爱 | 亚洲免费一级 | 久久成人伊人欧洲精品 | 五月婷婷操 | 国产在线精品一区二区在线观看 | 成人片在线观看地址kk4444 | 大香线蕉伊人超碰 | 日韩精品少妇无码受不了 | www.com操 | 亚洲中文字幕无码日韩精品 | 国产迷姦播放在线观看 | 中文字幕精品久久久久人妻红杏1 | 亚洲综合网站色欲色欲 | 午夜污片 | 久草观看| 91精品爽啪蜜夜国产在线播放 | 最新黄色毛片 | 大香伊人久久精品一区二区 | 亚洲乱码国产乱码精品精 | 国产成人高清亚洲明星一区 | 黄色欧美网站 | 国产产无码乱码精品久久鸭 | 亚洲精品无码不卡在线播放 | 伊人wwwyiren22 | 人人玩人人添人人澡97 | 国产黄色免费 | 思思久婷婷五月综合色啪 | 久久久久99精品成人片 | 1000部又爽又黄无遮挡的视频 | 国产揄拍国产精品人妻蜜 | 人人爽久久涩噜噜噜av | 色涩亚洲 | 久久婷婷综合99啪69影院 | 日本免费a级片 | 91看片在线 | 欧美国产成人精品二区芒果视频 | 美女自卫网站 | 国产主播喷水 | 黄色视屏在线看 | 一二三四视频社区3在线高清 | 黄色片在线观看网站 | 欧美一级一区 | 日日碰狠狠添天天爽超碰97久久 | 主站蜘蛛池模板: 蛛词}| 久久久久久久久久99精品 | 中文字幕久久久久人妻 | 国产成人亚洲综合无码99 | 亚洲综合欧美日韩 | caoporn国产一区二区 | 欧美一区二区三区视频在线观看 | 亚洲欧美精品一中文字幕 | 日韩欧美精品有码在线洗濯屋 | 香港三级日本三级韩级人妇 | 偷窥妇女撒尿久久 | 变态sm天堂无码专区 | 欧美一区二区三区在线看 | 在线观看国产黄色 | 男女乱婬真视频 | 亲子性教育中文字幕 | 国产精品三级av | 中文字幕亚洲日韩无线码 | 精品亚洲国产成人av | 成年人免费观看毛片 | 久久草莓香蕉频线观 | 精品 亚洲 无码 自拍 另类 | 一级免费黄色片 | 亚洲男人a在天堂线一区 | 极品少妇被猛得白浆直流草莓视频 | 亚洲精品自拍视频在线观看 | 丁香五月亚洲综合深深爱 | 成人h精品动漫一区二区三区 | 久久精品农村毛片 | 国产视频亚洲一区 | 日韩免费无码成人久久久久久片 | 天天添| 亚洲综合色在线视频www | 久久久久久久久久久久久久久久久久久久 | 国产区h| 午夜啊啊啊 | 亚洲色精品三区二区一区 | 无码av片av片av无码 | 中文字幕爆乳julia女教师 | 毛片网站免费观看 | 亚洲色图网站 | 好紧好湿好硬国产在线视频 | 欧美日韩免费在线观看 | 国产理论av | 日韩精品久久一区二区三区 | 欧美天天综合网 | 99久久九九 | 久久99久国产精品66 | 亚洲h在线观看 | 久热中文字幕在线 | 五月婷婷六月丁香 | 精品国产一区二区三区四区四 | 亚洲国产午夜片 | 久久尹人| 午夜久久精品 | 久久午夜夜伦鲁鲁片不卡 | 婷婷深爱网 | 天天干天天插天天射 | 亚洲精品国产精品国自产网站 | 男男毛片| 主站蜘蛛池模板: 蛛词}| 伊人色综合网久久天天 | 精品亚洲欧美自拍 | 五月亚洲 | 三上悠亚在线一区 | 黄色片一区二区三区 | 亚洲最大的av网站 | 变态 另类 欧美 大码 日韩 | 中文字幕超清在线免费观看 | 狠狠爱综合网 | 日本猛少妇色xxxxx猛叫 | 久久久久久久久久久国产 | 国产区精品在线观看 | 精品久久久无码中文字幕一丶 | 国产开嫩苞在线播放视频 | 国产精品一区二区在线蜜芽tv | 18黑白丝水手服自慰喷水 | 国产成人精选在线观看不卡 | 欧美精品第20页 | 丝袜 亚洲 另类 欧美 变态 | 亚洲国产欧美日韩在线 | 亚洲一区高清视频 | 久久亚洲国产五月综合网 | 激情欧美一区二区三区 | 亚洲国产日韩综合久久精品 | 国内av一区二区 | 中文有码在线观看 | 国产熟女乱子视频正在播放 | 国产女人喷潮视频在线观看 | 亚洲精品网站日本xxxxxxx | 亚洲中文字幕无码中文字在线 | 制服欧美激情丝袜综合色 | 强开小婷嫩苞又嫩又紧韩国视频 | 欧美巨大xxxx做受中文字幕 | 中文在线无码高潮潮喷在线播放 | 久久伊人成人 | 精品国产乱码久久久人妻 | 国产日韩欧美精品在线观看 | 丰满岳乱妇久久久 | 国产禁女女网站免费看 | 羞羞视频入口网站 | 精品乱码一区 | 青青草97国产精品麻豆 | 欧美激情69| 337p粉嫩大胆噜噜噜 | 国产a v高清一区二区三区 | 日韩大片av | 日本国产中文字幕 | 欧美精品久久久久久久多人混战 | 久久亚洲日韩看片无码 | 特级a视频| 色又黄又爽18禁免费网站 | 8090yy亚洲精品久久 | 狠狠色图片 | 邪恶肉肉全彩色无遮盖 | 一本久道视频无线视频 | 丰满少妇被猛烈进入高清app | 国产麻豆剧传媒精品av | 玩弄了裸睡少妇人妻野战 | 少妇色欲网 |