wincc按鈕畫面調(diào)用參數(shù)連接
劉玉蓉
發(fā)布于2014-11-12 17:39
6
0
標簽:
問題:
1、wincc主畫面多設備調(diào)用同一按鈕畫面,按鈕畫面中有啟動和停止按鈕。
通過C語言設置變量:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#define PW_FP "Top"
#define FP "1FM"
#define TagPrefix "DJ01"
if (y>512)
SetTop(lpszPictureName,PW_FP,y-10);
else
SetTop(lpszPictureName,PW_FP,y-10);
SetTagPrefix(lpszPictureName,PW_FP,TagPrefix);
SetPictureName(lpszPictureName,PW_FP,FP);
if (x<640)
SetLeft(lpszPictureName,PW_FP,x-20);
else
SetLeft(lpszPictureName,PW_FP,x-300);
SetPropChar(lpszPictureName,PW_FP,"CaptionText",GetPropChar(lpszPictureName,lpszObjectName,"ObjectName"));
SetVisible(lpszPictureName,PW_FP,1);
SetText(FP,"StaticTopic",TagPrefix);
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
和畫面中按鈕直接連接變量:_OpenValve1開閥;_CloseValve1關閥
即實現(xiàn)通過變量DJ1__OpenValve1開閥和DJ1_CloseValve1關閥,
好像沒有問題?!
2、現(xiàn)在的問題是:現(xiàn)在想采用被調(diào)用的畫面中如果只通過設置一個按鈕置位和復位來控制開閥和關閥,按鈕畫面中按鈕如何用C語言實現(xiàn)變量連接:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
BOOL Z;
Z=GetTagBit("TAG");
if(Z==0) SetTagBit("TAG",1);
else
SetTagBit("TAG",0);
中TAG如何設置?需要添加那些語句函數(shù)?
問題補充:
關于問題2中,被調(diào)用按鈕有3個,
第1組調(diào)用對應變量:m1_start_stop;m2_start_stop;m3_start_stop
第2組調(diào)用對應變量:m4_start_stop;m5_start_stop;m6_start_stop
第3組調(diào)用對應變量:m7_start_stop;m8_start_stop;m9_start_stop
如何實現(xiàn)變量傳送?
佳答案
這個,有兩種方法可以實現(xiàn)。
1、建立項目函數(shù),并在項目函數(shù)里面建立全局變量,實現(xiàn)變量參數(shù)的傳遞。這個比較麻煩,不再詳述。
2、這個方法是通過建立一個內(nèi)部8位文本型變量Tag1,用來傳遞變量參數(shù),這個比較容易實現(xiàn)。具體步驟如下:
a、在打開需要調(diào)用的畫面的按鈕里面加上以下腳本:SetTagChar("Tag1","Start_Stop"); Start_Stop是變量名稱,即為控制閥門開啟和關閉的BOOL變量名稱。現(xiàn)在變量Tag1的內(nèi)容是“Start_Stop”;
2、在公共畫面中建立一個按鈕,寫上如下腳本:
char *st;
int a;
st=GetTagChar("Tag1");
a=GetTagBit(st);
a=!a;
SetTagWord(st,a);
該腳本即可實現(xiàn)變量“Start_Stop”的翻轉(zhuǎn)。
注意:再點擊煩閥門彈出控制畫面之前,務必按照步驟1將該閥門的實際變量寫到Tag1中去。此外,需要注意的是,此畫面不再需要變量前綴。
補充說明:如果變量不多的的話,完全可以參考上述方法,建立三個內(nèi)部字符型變量,然后將你需要操作的三個變量名稱寫進這三個內(nèi)部變量里面就可以了!