在實(shí)際的項(xiàng)目應(yīng)用中,某些關(guān)鍵數(shù)據(jù)的輸入需要提示操作人員確認(rèn)無(wú)誤后才能進(jìn)行。如下圖所示:
圖1
當(dāng)在輸入/輸出域中輸入數(shù)值99并回車后,數(shù)據(jù)并不立即輸入到變量里,而是彈出一個(gè)確認(rèn)的信息窗口。這時(shí)候如果選擇“是”那么數(shù)據(jù)將輸入到相應(yīng)的變量,如果選擇“否”相應(yīng)的變量會(huì)保持原來(lái)的值不變。下面就介紹如何使用wincc的輸入/輸出域?qū)崿F(xiàn)這種功能。
1. 前提條件
創(chuàng)建兩個(gè)數(shù)據(jù)類型相同的變量 displayvalue和tempvalue,其中displayvalue是實(shí)際需要控制的變量,tempvalue作為臨時(shí)變量使用。如下圖所示:
圖2
2. 輸入/輸出域的屬性設(shè)置
在畫面中新建一個(gè)輸入/輸出域,打開屬性對(duì)話框。選擇屬性輸出/輸入輸出值,在動(dòng)態(tài)部分點(diǎn)擊鼠標(biāo)右鍵,如下圖所示:
圖3
打開動(dòng)態(tài)對(duì)話框。選擇需要控制的變量(本例中變量為:displayvalue),并配置數(shù)據(jù)類型。如下圖所示:
圖4
3. 輸入/輸出域的事件設(shè)置
3.1更改動(dòng)作設(shè)置
選擇同一個(gè)輸入/輸出域,打開屬性對(duì)話框。選擇事件屬性主題輸出/輸入輸入值,在更改動(dòng)作部分點(diǎn)擊鼠標(biāo)右鍵,如下圖所示:
圖5
打開直接連接對(duì)話框。來(lái)源部分保持默認(rèn)設(shè)置,目標(biāo)部分選擇直接連接到臨時(shí)變量(本例中為:tempvalue )。如下圖所示:
圖6
3.2鍵盤釋放動(dòng)作設(shè)置
選擇同一個(gè)輸入/輸出域,打開屬性對(duì)話框。選擇事件鍵盤釋放,在動(dòng)作部分點(diǎn)擊鼠標(biāo)右鍵,如下圖所示:
圖7
打開c動(dòng)作編輯器。編寫用于判斷操作人員是否輸入完畢并按下回車的代碼。如下圖所示:
圖8
詳細(xì)代碼如下:
int tempvalue=gettagword(tempvalue);
char szbuffer[20];
sprintf( szbuffer,input number:%d,tempvalue);
if ( nchar==13 )//if press enter
{
int xret = messagebox(null,szbuffer,確認(rèn)窗口,mb_yesno|mb_iconquestion|mb_systemmodal);//message
if ( xret == idyes )//confirm operate
{
settagword(displayvalue,tempvalue);// set data
}
}
當(dāng)系統(tǒng)運(yùn)行后,一旦在該輸入/輸出域中檢測(cè)到回車信號(hào),系統(tǒng)就會(huì)彈出如圖1所示的確認(rèn)窗口。
4.附加說(shuō)明:
以上內(nèi)容的測(cè)試環(huán)境:windows xp professional sp2+wincc v 7.0 sp1 asia。關(guān)于messagebox函數(shù)的詳細(xì)說(shuō)明請(qǐng)參考microsoft的相關(guān)文檔。