在實際的項目應用中,某些關鍵數據的輸入需要提示操作人員確認無誤后才能進行。如下圖所示:
圖1
當在輸入/輸出域中輸入數值99并回車后,數據并不立即輸入到變量里,而是彈出一個確認的信息窗口。這時候如果選擇“是”那么數據將輸入到相應的變量,如果選擇“否”相應的變量會保持原來的值不變。下面就介紹如何使用WinCC的輸入/輸出域實現這種功能。
1. 前提條件
創建兩個數據類型相同的變量 DisplayValue和TempValue,其中DisplayValue是實際需要控制的變量,TempValue作為臨時變量使用。如下圖所示:
圖2
2. 輸入/輸出域的屬性設置
在畫面中新建一個輸入/輸出域,打開屬性對話框。選擇屬性輸出/輸入輸出值,在動態部分點擊鼠標右鍵,如下圖所示:
圖3
打開動態對話框。選擇需要控制的變量(本例中變量為:DisplayValue),并配置數據類型。如下圖所示:
圖4
3. 輸入/輸出域的事件設置
3.1更改動作設置
選擇同一個輸入/輸出域,打開屬性對話框。選擇事件屬性主題輸出/輸入輸入值,在更改動作部分點擊鼠標右鍵,如下圖所示:
圖5
打開直接連接對話框。來源部分保持默認設置,目標部分選擇直接連接到臨時變量(本例中為:TempValue )。如下圖所示:
圖6
3.2鍵盤釋放動作設置
選擇同一個輸入/輸出域,打開屬性對話框。選擇事件鍵盤釋放,在動作部分點擊鼠標右鍵,如下圖所示:
圖7
打開C動作編輯器。編寫用于判斷操作人員是否輸入完畢并按下回車的代碼。如下圖所示:
圖8
詳細代碼如下:
int TempValue=GetTagWord("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
{
SetTagWord("DisplayValue",TempValue);// set data
}
}
當系統運行后,一旦在該輸入/輸出域中檢測到回車信號,系統就會彈出如圖1所示的確認窗口。
4.附加說明:
以上內容的測試環境:Windows XP professional SP2+WinCC V 7.0 SP1 ASIA。關于MessageBox函數的詳細說明請參考Microsoft的相關文檔。
























粵公網安備 44030402000745號