久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

畫面顯示問題

 sncun 2011-08-19

畫面顯示問題


分類: WinCC
我有3個圖片,,要求當(dāng)一個二進制數(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語言的語句,回答準(zhǔn)確些,,謝謝了,,急。
問題補充:我說的變量a,,實際上是一個反饋點,,我想做的是當(dāng)反饋有信號時,圖片就顯示,,同時變量b是一個中間變量,時時的從 1--2--3---1變化,,對應(yīng)3個圖片的顯示,,也就是說,,我想要3圖片的顯示是分別滿足a==1且b==1,和a==1且b==2,,a==1且 b==3,。用動態(tài)對話框,只能滿足一個條件,,所以我想用c語言編寫,,但是不會。

RE 有誰共鳴
首先我要顯示的是圖片,,不是畫面,,在有就是我最基本的要求就是3個圖片的顯示是2個變量“與”的關(guān)系,所以在圖片的“顯示”動態(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 - 初級技術(shù)員  第5級  2007-6-13 13:28

你先在主畫面上放上三個“畫面窗口”Pic1、Pic2,、Pic3然后在把三個要循環(huán)顯示的“畫面”分別連接到三個畫面窗口中,,然后做個全局動作循環(huán)時間 為10秒,等等,,如果你的循環(huán)顯示的周期是固定的話,,讓腳本周期性掃描變量的值,然后再顯示相應(yīng)的畫面窗口,,這樣不就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ù)需要設(shè)定。

方法二:
   在畫面中添加控件Status Display(Smart Objects目錄下),,在其屬性---state---Current Status中連接變量b,在Static中分別輸入1,、2、3,,在Basic Picture中分別對應(yīng)著你要顯示的三張圖片,,在其他---顯示---中添加動態(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

回答者: 未盡 - 學(xué)長  第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)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多