wincc組合框腳本
❶ 怎麼學習wincc C腳本求建議
其實這個想法是可以實現的,但是大部分人不會這樣搞。你可以這么做:
創建一個全局腳本,一個中間變數D。
全局腳本判斷A的值,然後根據不同情況把B或者C的值給D
IO域連接D的值就行了。
還有一種方法:
使用Setlink函數可以動態的連接IO域的輸出。我們嘗試過
❷ WINCC 腳本高手進。。。。。。
SetVisible(lpszPictureName,"PIC",0);
給你說下原理吧
公用一個畫面窗口,建立一個
公用一個比如電機啟停畫面,建立一個
在電機啟停畫面裡面的變數只填後綴
你說的情況為 復制按鈕只需改變標題名就能彈出相應的電機畫面
這種情況下,腳本大體思路為,讀取本對象(按鈕)的標題(或文字)賦給畫面窗口的「畫面」屬性或變數前綴,你這個的畫面窗口名是PIC不需要賦,直接賦給「變數前綴」屬性
❸ wincc中腳本代碼問題
延時一般都用空循環完成,不過好像時間太長會出問題。你說的這個問題好像不是延時能解決的,你應該用一個全局變數bool型的作為標志,最先執行的那個c動作里將語音播放完畢後,該全局變數置位,其他後來發生的報警觸法的C動作才執行播放語音的代碼。
❹ WINCC畫面編輯器的組合框(不是復選框)用C腳本實現下面功能:選擇不同的項,賦予同一個變數不同的值。
BOOL a;
a=GetTagBit("db8.dbx0.0"); //db8.dbx0.0須換成變數表的原變數.
if (a=0)
{
if(MessageBox(NULL,"真的要轉換到暫存罐嗎?","操作提示",MB_YESNO|CONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) ==6)
{SetTagBit("db8.dbx0.0",1);}
}
else
{
if(MessageBox(NULL,"真的關閉到暫存罐嗎?","操作提示",MB_YESNO|CONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) ==6)
{SetTagBit("db8.dbx0.0",0);}
}
}
1.組合框不同的項賦予同一個變數
❺ wincc 中C腳本
char buf[255];
sprintf(buf,"%f",GetTagFloat("Float_Input")); //Return-Type: float
SetTagChar("Char_Input",buf); //Return-Type: BOOL
❻ 用wincc組合框調用變數顯示數據
用我的不太簡潔的辦法試一下吧,見笑了!
輸出用以下C腳本
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
#define TAG_1 "testINT"
#define TAG_2 "testREAL"
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
if (TAG_1 ==1){
return (1.2); //Return-Type: BOOL
}
if (TAG_1 ==2){
return (2.2); //Return-Type: BOOL
}
if (TAG_1 ==4){
return (3.2); //Return-Type: BOOL
}
if (TAG_1 ==8){
return (4.2); //Return-Type: BOOL
}
}
或者用下面的
if (TAG_1 ==1){
SetTagFloat(TAG_2 ,1.2); //Return-Type: BOOL
}
if (TAG_1 ==2){
SetTagFloat(TAG_2 ,2.2); //Return-Type: BOOL
}
if (TAG_1 ==4){
SetTagFloat(TAG_2 ,3.2); //Return-Type: BOOL
}
if (TAG_1 ==8){
SetTagFloat(TAG_2 ,4.2); //Return-Type: BOOL
}
return (TAG_2); //Return-Type: BOOL
}
testINT 是組合框連接的變數內部無符號1位;
testREAL是31位浮點數
1.2替換成你的變數第一個壓力值
2.2替換成你的變數第二個壓力值
3.2替換成你的變數第三個壓力值
4.2替換成你的變數第三個壓力值
我測試過了可以編譯過
❼ wincc怎麼打開新窗口
方法1:工程框架:通過【組合框】實現多畫面切換主要控制項:ABC.PDLOPP.PDLMAIN.PDL組合框畫面窗口在main.pdl中添加【組合框】,【畫面窗口】;右擊【組合框】》屬性》其他》選定框、選定文本(修改成1-ABC,2-OPP);》事件》其他》選定文本》直接連接》畫面窗口的【窗口名稱】激活運行,就可以了。方法2:用腳本實現:VBS:DimzhkSetshk=screenitems(「組合框」)IfZhk.seltxt=」選項1文字」ThenHMIRuntime.BaseScreenName=」畫面名稱」Endif
❽ 關於WINCC中的一個腳本解釋
DWORD
j;
//定義一個DWORD變數
J
j=GetTagWord("Tag3");
//註:Tag3=DB10.DBW4,將DB10.DBW4的值送入J
if((j&0x1)==0x1)SetTagBit("P9run",1);
//如果J的第一位等於1,那麼P9run=1,否則P9run=0
else
SetTagBit("P9run",0);
DBW的16個位通過(j&0x1)==0x1)這句語句來定位,通過與1,2,4,8,16……作與操作來判斷每個位的狀態。
❾ 如何在WinCC中調用腳本程序
wincc的腳本程序分兩種:
局部腳本,針對控制項或對象的某個屬性的腳本,寫在控制項的屬性中。
全局腳本,作為背景程序運行。在全局腳本編輯器中編寫,需要指定觸發器。
❿ wincc腳本自動運行
要背後自動運行,那麼在全局腳本中添加,要輸入輸出域中執行,那麼在輸入輸出的事件屬性中添加。