發布日期:2022-04-27 點擊率:1047 品牌:西門子_Siemens
在實際的項目應用中,某些關鍵數據的輸入需要提示操作人員確認無誤后才能進行。如下圖所示:
圖1
當在輸入/輸出域中輸入數值99并回車后,數據并不立即輸入到變量里,而是彈出一個確認的信息窗口。這時候如果選擇“是”那么數據將輸入到相應的變量,如果選擇“否”相應的變量會保持原來的值不變。下面就介紹如何使用WinCC的輸入/輸出域實現這種功能。
1.前提條件
創建兩個數據類型相同的變量Display Value和Temp Value,其中Display Value是實際需要控制的變量,TempValue作為臨時變量使用。如下圖所示:
圖2
2.輸入/輸出域的屬性設置
在畫面中新建一個輸入/輸出域,打開屬性對話框。選擇屬性?輸出/輸入?輸出值,在動態部分點擊鼠標右鍵,如下圖所示:
圖3
打開動態對話框。選擇需要控制的變量(本例中變量為:Display Value),并配置數據類型。如下圖所示:
圖4
3.輸入/輸出域的事件設置
3.1更改動作設置
選擇同一個輸入/輸出域,打開屬性對話框。選擇事件?屬性主題?輸出/輸入?輸入值,在更改動作部分點擊鼠標右鍵,如下圖所示:
圖5
打開直接連接對話框。來源部分保持默認設置,目標部分選擇直接連接到臨時變量(本例中為:TempValue)。如下圖所示:
圖6
3.2鍵盤釋放動作設置
選擇同一個輸入/輸出域,打開屬性對話框。選擇事件?鍵盤?釋放,在動作部分點擊鼠標右鍵,如下圖所示:
圖7
打開C動作編輯器。編寫用于判斷操作人員是否輸入完畢并按下回車的代碼。如下圖所示:
圖8
詳細代碼如下:
int TempValue=GetTagWor("TempValue");
char szBuffer[20];
sprintf( szBuffer,"Input number:%d",TempValue);
if ( nChar==13 )//if press enter
{
int xRet = MessageBox(NULL,szBuffer,"確認窗口",MB_YESNO|MB_IConQUESTION|MB_SYSTEMMODAL);//message
if ( xRet == IDYES )//confirm operate
{
SetTagWor("DisplayValue",TempValue);// set data
}
}
當系統運行后,一旦在該輸入/輸出域中檢測到回車信號,系統就會彈出如圖1所示的確認窗口。
4.附加說明:
以上內容的測試環境:Windows XP professional SP2+ WinCCV7.0SP1ASIA。關于MessageBox函數的詳細說明請參考Microsoft的相關文檔。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV