WINCC不同變量結(jié)構(gòu)使用同一窗口實現(xiàn)畫面切換
1. 新建畫面
2. 建立變量
3. 連接變量
1. 新建畫面
使用同一個畫面窗口利用按鈕切換不同變量前綴的內(nèi)容畫面,并實現(xiàn)不同系統(tǒng)之間的切換。
首先新建兩個子畫面(電機(jī),風(fēng)機(jī))內(nèi)容包括一個小標(biāo)題,兩個按鈕,兩個狀態(tài)顯示。
然后建立一個彈窗畫面用來切換子畫面包括兩個切換按鈕,兩個畫面窗口,實現(xiàn)電機(jī)和風(fēng)機(jī)的切換。
建立一個主畫面用來調(diào)用彈窗畫面,實現(xiàn)系統(tǒng)的切換。
2. 建立變量
3. 連接變量
#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { int n; SetTagBit("Temp_motor",1); //打開電機(jī)畫面 SetTagBit("Temp_ventilator",0); //關(guān)閉風(fēng)機(jī)畫面 n = GetTagWord("temp"); //獲取主畫面系統(tǒng)編號的賦值 if (n==0) //根據(jù)1號系統(tǒng)編號分配變量前綴 { SetTagChar("Prefix_motor","1_Motor_");//Prefix_motor是電機(jī)的變量前綴的中間變量,1_Motor_是變量前綴 SetTagChar("XBT_motor","1號電機(jī)");//XBT_motor是電機(jī)畫面的標(biāo)題變量,1號電機(jī)是要顯示的內(nèi)容 } if (n==1) //根據(jù)2號系統(tǒng)編號分配變量前綴 { SetTagChar("Prefix_motor","2_Motor_"); SetTagChar("XBT_motor","2號電機(jī)"); }
#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { int n; SetTagBit("Temp_ventilator",1); SetTagBit("Temp_motor",0); n = GetTagWord("temp"); if (n==0) { SetTagChar("Prefix_ventilator","1_ventilator_"); SetTagChar("XBT_ventilator","1號風(fēng)機(jī)"); } if (n==1) { SetTagChar("Prefix_ventilator","2_ventilator_"); SetTagChar("XBT_ventilator","2號風(fēng)機(jī)"); }
#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { SetTagWord("X_彈窗",180);//彈窗畫面窗口的位置 SetTagWord("Y_彈窗",180);//彈窗畫面窗口的位置 SetTagBit("Temp_彈窗",0);//關(guān)閉上一個彈窗畫面窗口 SetTagChar("BT_彈窗","1號系統(tǒng)");//BT_motor是1號彈窗畫面窗口的標(biāo)題變量 SetTagBit("Temp_彈窗",1);//打開彈窗彈窗畫面窗口 SetTagWord("temp",0);//識別系統(tǒng)編號賦值便于給彈窗畫面的變量前綴 SetTagBit("Temp_motor",1); //默認(rèn)打開電機(jī) SetTagBit("Temp_ventilator",0); //默認(rèn)關(guān)閉風(fēng)機(jī) SetTagChar("Prefix_motor","1_Motor_"); //給當(dāng)前1號系統(tǒng)的電機(jī)分配前綴 SetTagChar("XBT_motor","1號電機(jī)");//給彈窗畫面中的標(biāo)題分配內(nèi)容 }
#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { SetTagWord("X_彈窗",180);//彈窗畫面窗口的位置 SetTagWord("Y_彈窗",240);//彈窗畫面窗口的位置 SetTagBit("Temp_彈窗",0);//關(guān)閉上一個彈窗畫面窗口 SetTagChar("BT_彈窗","2號系統(tǒng)");//BT_motor是1號彈窗畫面窗口的標(biāo)題變量 SetTagBit("Temp_彈窗",1);//打開彈窗彈窗畫面窗口 SetTagWord("temp",1);//識別系統(tǒng)編號賦值便于給彈窗畫面的變量前綴 SetTagBit("Temp_motor",1); //默認(rèn)打開電機(jī) SetTagBit("Temp_ventilator",0); //默認(rèn)關(guān)閉風(fēng)機(jī) SetTagChar("Prefix_motor","2_Motor_"); //給當(dāng)前1號系統(tǒng)的電機(jī)分配前綴 SetTagChar("XBT_motor","2號電機(jī)");//給彈窗畫面中的標(biāo)題分配內(nèi)容 }
#include "apdefap.h" void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) { SetTagBit("Temp_彈窗",0); SetTagBit("Temp_motor",0); SetTagBit("Temp_ventilator",0); }