小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

畫面顯示問題

 sncun 2011-08-19

畫面顯示問題


分類: WinCC
我有3個圖片,要求當一個二進制數(shù)a等于1,并且一個8位無符號整數(shù)b等于1、2、3時,分別顯示1號、2號、3號圖片,同時要求8位無符號整數(shù)b每固定 時間間隔從1--2--3--1進行循環(huán)變化,實現(xiàn)3個圖片的交替顯示。希望回答的把c語言的語句,回答準確些,謝謝了,急。
問題補充:我說的變量a,實際上是一個反饋點,我想做的是當反饋有信號時,圖片就顯示,同時變量b是一個中間變量,時時的從 1--2--3---1變化,對應3個圖片的顯示,也就是說,我想要3圖片的顯示是分別滿足a==1且b==1,和a==1且b==2,a==1且 b==3。用動態(tài)對話框,只能滿足一個條件,所以我想用c語言編寫,但是不會。

RE 有誰共鳴
首先我要顯示的是圖片,不是畫面,在有就是我最基本的要求就是3個圖片的顯示是2個變量“與”的關系,所以在圖片的“顯示”動態(tài)屬性那用動態(tài)對話框無法實 現(xiàn),如果用c語言編寫,那里根本就不讓用SetVisible(lpszPictureName,pic,1)這個函數(shù),所以我才頭疼。

============================================

你可以使用腳本來實現(xiàn) (if a=1 then (b=b+1 if b=3 then b=1)?。澹欤螅濉。猓剑?
 也可以在PLC里面實現(xiàn)
 然后將3個畫面的顯示條件為b=1、2、3

采用時間觸發(fā) 其切換時間可以自己定 不會出現(xiàn)顯示不清楚的

回答者: liwenqun - 助理工程師  第8級  2007-6-13 08:55

補充:樓上這樣做,三個圖片是不是切換的很快,間隔時間就沒法控制了。圖片切換過快我懷疑更本看不清。
可以在PLC中做循環(huán),間隔時間可以控制,上位機1號圖片顯示的條件為a=1 b=1;2號圖片的顯示條件為:a=1& b=2 ;3 號圖片的顯示條件為a=1 &b=3;

回答者: xsxzc - 初級技術員  第5級  2007-6-13 13:28

你先在主畫面上放上三個“畫面窗口”Pic1、Pic2、Pic3然后在把三個要循環(huán)顯示的“畫面”分別連接到三個畫面窗口中,然后做個全局動作循環(huán)時間 為10秒,等等,如果你的循環(huán)顯示的周期是固定的話,讓腳本周期性掃描變量的值,然后再顯示相應的畫面窗口,這樣不就OK了,參考下面的腳本就可以了
if (GetTagBit("A")==1)
{

if (GetTagByte("B")==1)
{
SetVisible(lpszPictureName,"Pic1",TRUE);
SetVisible(lpszPictureName,"Pic2",FALSE);
SetVisible(lpszPictureName,"Pic3",FASLE);
SetTagByte("B",2);
}
else
{
      if (GetTagByte("B")==2)
      {
        SetVisible(lpszPictureName,"Pic1",FALSE);
        SetVisible(lpszPictureName,"Pic2",TRUE);
        SetVisible(lpszPictureName,"Pic3",FASLE);
        SetTagByte("B",3);
       }
       else
       {
        if (GetTagByte("B")==3)
             {
               SetVisible(lpszPictureName,"Pic1",FALSE);
               SetVisible(lpszPictureName,"Pic2",FALSE);
               SetVisible(lpszPictureName,"Pic3",TRUE);
               SetTagByte("B",1);
               }
        }
 

}
return 0;

=============================================

a為布爾變量,b為雙整數(shù)。
方法一:
    你可以在全局腳本里添加代碼,如下:
BOOL a;
DWORD b;
a=GetTagBit("a"); 
b=GetTagWord("b"); 
b=b+1;
SetTagDouble("b",b); 
if (b>=4) 
SetTagDouble("b",1); 
if (a==1&b==4)
{
SetVisible("NewPdl0.Pdl","one",1); 
}
else
SetVisible("NewPdl0.Pdl","one",0);  
if (a==1&b==2)
{
SetVisible("NewPdl0.Pdl","GraphicObject2",1); 
}
else
SetVisible("NewPdl0.Pdl","GraphicObject2",0); 
if (a==1&b==3)
{
SetVisible("NewPdl0.Pdl","GraphicObject3",1); 
}
else
SetVisible("NewPdl0.Pdl","GraphicObject3",0); 
    其中NewPdl0.Pdl為畫面名稱,GraphicObject1、2、3分別為圖片名稱,觸發(fā)時間可根據(jù)需要設定。

方法二:
   在畫面中添加控件Status Display(Smart Objects目錄下),在其屬性---state---Current Status中連接變量b,在Static中分別輸入1、2、3,在Basic Picture中分別對應著你要顯示的三張圖片,在其他---顯示---中添加動態(tài)連接,用變量a控制其顯示,1為顯示,0位不顯示,然后保存畫面。
在全局腳本中添加如下代碼:
BOOL a;
DWORD b;
a=GetTagBit("a"); 
b=GetTagWord("b"); 
b=b+1;
SetTagDouble("b",b); 
if (b>=4) 
SetTagDouble("b",1); 
   觸發(fā)時間同樣可根據(jù)自己的需要選定,我試的時候用的2S。

    我已經(jīng)試過了,這兩種方法都可行,區(qū)別是第一種方法的三張圖片可以放在不同的位置,而第二種方法的三張圖片在同一個位置。

========================================

1、首先建兩個全局變量:a、b
2、寫一個腳本,腳本使用時間做觸發(fā)器,要多長時間根據(jù)需要改!
if(b>=3||b<1),則b=1;if(b==1),則b=2;if(b==2),則b=3;
3、在三個圖片的顯示屬性中,將條件公式寫為
   A、a==1&&b==1
     B、a==1&&b==2
      C、a==1&&b==3

回答者: 未盡 - 學長  第2級  2007-6-19 17:27

在第一個畫面顯示屬性里 用動態(tài)對話框表示:A+3*B  =4
在第二個畫面顯示屬性里 用動態(tài)對話框表示:A+3*B  =7
在第三個畫面顯示屬性里 用動態(tài)對話框表示:A+3*B  =10

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多