wincc全套脚本总结_wincc全套脚本总结
wincc全套脚本总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“wincc全套脚本总结”。
——————
1、wincc全局脚本动作-------隐藏控件——————
#include “apdefap.h” int gscAction(void){ // WINCC:TAGNAME_SECTION_START // syntax: #define TagNameInAction “DMTagName” // next TagID : 1 // WINCC:TAGNAME_SECTION_END int value;value=GetTagBit(“IM_in”);//“IM_in”为触发的变量。if(value==1){ SetVisible(“lianxi.pdl”,“按钮8”,TRUE);//lianxi.pdl为控制对象所在画面名,“按钮8”为对象名称 } else { SetVisible(“lianxi.pdl”,“按钮8”,FALSE);//lianxi.pdl } // WINCC:PICNAME_SECTION_START // syntax: #define PicNameInAction “PictureName” // next PicID : 1 // WINCC:PICNAME_SECTION_END
return 0;}
======= 说明:在触发器里选择变量IM_in
——————
2、wincc
全局脚本动作----提示框——————
#include “apdefap.h” int gscAction(void){ // WINCC:TAGNAME_SECTION_START // syntax: #define TagNameInAction “DMTagName” // next TagID : 1 // WINCC:TAGNAME_SECTION_END int value;value=GetTagBit(“IM_in”);if(value==1){ MeageBox(NULL,“请确认三厅相关门是否关好,或者请解锁。”,“提示框”,MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);} // WINCC:PICNAME_SECTION_START // syntax: #define PicNameInAction “PictureName” // next PicID : 1 // WINCC:PICNAME_SECTION_END return 0;} ============================= 说明:在触发器中选择变量触发。
——————
3、趋势面板——————————
char * str_a = NULL;int Hi;int Lo;str_a = GetTagChar(“TrendTagName1”);Lo= GetTagSWord(“TrendLo”);Hi= GetTagSWord(“TrendHi”);SetPropWord(lpszPictureName,“qushi”,“TrendIndex”,0);SetPropChar(lpszPictureName,“qushi”,“TrendTagName”,str_a);SetPropWord(lpszPictureName,“qushi”,“ValueAxisBeginValue”,Lo);SetPropWord(lpszPictureName,“qushi”,“ValueAxisEndValue”,Hi);————————————————————————
——————
4、获取位号————————
SetTagChar(“TrendTagName1”,“ProceValueArchivePT111”);//Return-Type: BOOL SetTagSWord(“TrendHi”,200);SetTagSWord(“TrendLo”,0);SetTagByte(“Trenden”,1);————————————————————————
——————
5、调用登陆函数——————
#pragma code(“useadmin.dll”)#include “PWRT_API.H” #pragma code()if(strcmp(GetTagChar(“@CurrentUser”),“”)==0){ PWRTLogin('c');}------
——————
6、时间同步——————
void SetCpuTime(){
#pragma code(“kernel32.dll”);
void GetLocalTime(SYSTEMTIME *lpst);
#pragma code();
SYSTEMTIME time
BOOL ret;
//printf(“Start function SetCpuTimern”);
GetLocalTime(&time);
ret= SetTagMultiWait(“%d%d%d%d%d%d%d”,“data_year”,time.wYear-2000,“data_month”,time.wMonth,“data_day”,time.wDay,“data_hour”,time.wHour,“data_MINUTE”,time.wMinute,“data_SECOND”,time.wSecond,“data_FLAG”,1)}
------
——————
7、对话框调用——————
BOOL A;BOOL B;HWND hwnd=NULL;int RetMsg;A=GetTagBit(“TJ_ANNIU”);//Return-Type: BOOL hwnd=FindWindow(NULL,“WinCC-运行系统”);//如语言为中文应为“WinCC 运行系统-” if(hwnd==0){printf(“rnError!WinCc Handle is %d”,hwnd);goto over;} bRet=GetCursorPos(&pPos);if(bRet==0)goto over;bRet2=GetWindowRect(hwnd,&rRec);if(bRet2==0)goto over;
lX=pPos.x-rRec.left;//鼠标 对{置
lY=pPos.y-rRec.top;//鼠标 位置
//如果为非全屏模式,需将上述数值中的高height判断减去标题栏的宽度
//printf(“The Current Cusor Pos is x:%d,y:%drn”,pPos.x,pPos.y);
//printf(“The Cusor Pos in Window is x:%d,y:%drn”,pPos.x-lLeft2,pPos.y-lTop2);lLeft=GetLeft(“NewPdl0.Pdl”,“Text1”);//ReturnType :long int lWidth=GetWidth(“NewPdl0.Pdl”,“Text1”);//ReturnType :long int if((lX>=lLeft)&&(lY>=lTop)&&(lX
SetText(“NewPdl0.Pdl”,“Text1”,szStr);//Return
——————
19、闪烁边框图片的脚本——————Flash简短描述
使用Graphics组中的函数可以修改或调用WinCC对象的图形属性。
Axes简短描述
使用Color组中的函数可以修改或调用对象的颜色属性。
1.long int GetBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定对象的背景色为数字值。
读出颜色值的实例
{
long int bk_color;
//
linkinfo.szLinkName是变量名。// linkinfo.dwCycle是更新周期 // linkinfo.LinkType是该连接的类型
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
1).读出当前背景色和bk_color中的缓冲区。
2).执行处理返回值的自定义代码。
2.long int GetBackColor2(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定棒图的颜色为数字值。
读出颜色值的实例
{
long int bk_color;
//
linkinfo.szLinkName是变量名。// linkinfo.dwCycle是更新周期 // linkinfo.LinkType是该连接的类型
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
3.long int GetBackColor3(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定棒图的背景色为数字值。
读出颜色值的实例
{
long int bk_color;
//
linkinfo.szLinkName是变量名。// linkinfo.dwCycle是更新周期 // linkinfo.LinkType是该连接的类型
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
Fill简短描述
使用Flash组中的函数可以修改或调用各种闪烁属性。
1.long int GetBackFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定取消激活状态的闪烁背景色
读出闪烁颜色的实例
{
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,“Group 1”);
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Group 1”是该对象的名称。
1).读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。
2).执行处理返回值的自定义代码。
2.long int GetBackFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定激活状态的背景闪烁颜色。
读出闪烁颜色的实例
{
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,“Group 1”);
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Group 1”是该对象的名称。
1).读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。
2).执行处理返回值的自定义代码。
3.long int GetBorderFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定取消激活状态的边框或线闪烁颜色。
读出闪烁颜色的实例
{
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,“Group 1”);
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Group 1”是该对象的名称。
4.long int GetBorderFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定激活状态的边框或线闪烁颜色。
读出闪烁颜色的实例
{
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,“Group 1”);
//自定义代码
//在那里用户可以使用返回值做某事
...}
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Group 1”是该对象的名称。
5.BOOL GetFlashBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定是否激活背景闪烁。
读出“闪烁背景激活”属性的实例
{
BOOL bflash_col;
//了解闪烁是开还是关 bflash
_col = GetFlashBackColor(lpszPictureName,“Group 1”);
if(bflash_col)
{
// 自定义代码
// 闪烁是否被激活
...}
else
{
// 自定义代码
// 闪烁是否被取消激活
...}
}
GetFlashBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Group 1”是该对象的名称。
1).读出背景色闪烁是否被激活以及bflash_col中的缓冲区。
2).根据该函数的返回值执行自定义代码。
Focus-简短描述
使用Focus组中的函数,可以设置焦点或轮询哪个对象有焦点。
1.char* Get_Focus()函数,指定当前或最后聚焦的对象的名称。
要求当前在哪一个对象上设置焦点的实例
{
char* pszValue = NULL;
char szValue[_MAX_PATH+1];
//获得具有焦点的对象 pszValue
= Get_Focus();
//复制字符串
if(pszValue!= NULL)
{
strncpy(szValue,pszValue,_MAX_PATH);