SetVisible函数是用来执行是否显示的函数。
lpszPictureName:表示当前画面
lpszObjectName:表示当前对象
SetVisible(lpszPictureName,lpszObjectName,0); //Return-Type :BOOL
以上面函数为例。假如你点击一个按钮,代码如上,则点击后按钮隐藏。同理,SetVisible(lpszPictureName,"@ERROR",FALSE)表示当前画面上有一个名称为"@ERROR"对象,将其隐藏。FALSE或者0都可以。
Set_Focus(lpszPictureName,"@LoginIn");次函数表示将光标重新聚焦到当前画面中,名称为“@Loginin”对象中,比如一个输入域。
修改变量前缀————SetPropChar(lpszPictureName,"PW","Tagprefix","F40708.") ;
重设画面窗口的画面名称————SetPictureName(lpszPictureName,"PW","P1_FFU.pdl");
SetVisible表示可见度———SetVisible(“画面名称”,“对象名称\画面窗口”,1或0);——利用画面窗口显示画面
1 OpenPicture("index.Pdl"); 打开“index.Pdl”画面;————(middle*为画面窗口)
SetPictureName("index.Pdl","middle","CR.Pdl"); 使“CR.Pdl”画面在“index.Pdl”中“middle”画面窗口中打开
SetPictureName("index.Pdl","middle9","lift2.Pdl");使“lift2.Pdl”画面在“index.Pdl”中“middle”画面窗口中打开
#pragma option(mbcs)
2.单个设备的控制面板(不唯一)
:P1_FFU.pdl
char*S;
SetVisible( lpszPictureName,"PW",0);表示当前画面上有一个名称为"PW"对象,将其隐藏。FALSE或0都可以
SetPropChar(lpszPictureName,"PW","Tagprefix","F40708.");在当前画面中“PW”赋值\关联“F40708”变量
SetPictureName(lpszPictureName,"PW","P1_FFU.pdl");在单前画面中“PW”中打开“P1_FFU.pdl”画面
SetVisible( lpszPictureName,"PW",1/0);表示当前画面上有一个名称为"PW"对象,将其显示/消失。
S=GetTagPrefix(lpszPictureName,"PW"); //Return-Type: void
SetTagChar ("F40708.name", "FFU_F-4-07-08"); //Return-Type: BOOL 给字符型变量“F40708.name” 赋值“FFU_F-4-07-08”
#pragma option(mbcs)
SetTagDWord("sv",1/2/3); 档位控制 SetTagDWord("onoff",0); 启停控制
4.一条回路的控制面板(唯一)
:FU-01-21C-WL-1
SetTagBit("F4_W_FFU01.ONOFF",1/0);//Return-Type: BOOL 控制“F4_W_FFU01.ONOFF/回路/电源”开/关
SetTagDWord("F41901.sv",1/2/3); 控制设备的档位 (F41901.sv代表着设备关联变量)
SetTagDWord("F41901.onoff",1/0); 控制单个设备的启/停
5.手动/自动切换,PID参数
:P1_PID.Pdl
{ BOOL bool1;
HWND Hwnd;
int iRet;
Hwnd = FindWindow(NULL,"WinCC-运行系统 - ");
if (!Hwnd) Hwnd = FindWindow(NULL,"WinCC-运行系统 - ");
if (!Hwnd) printf("\r\nGetWinCC Handle Failed!");
iRet=MessageBox(Hwnd,"是否切换为自动/手动","确认对话框",MB_YESNOCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
switch (iRet)
{
case IDYES: printf("user do YES\r\n");
SetTagBit("MA",0/1); 其中“MA”就是关联的变量(自动为0,手动为1)
break;
case IDCANCEL: printf("user do CANCEL\r\n");
break;
}
6.时间 年/月/日
time_t timer ;
struct tm *ptm;
char *p;
time(&timer);
ptm =localtime(&timer);
p =SysMalloc(9);
sprintf(p,"%04d/%02d/%02d",ptm->tm_year-100+2000,ptm->tm_mon+1,ptm->tm_mday);
return(p);
#pragma option(mbcs)
时间 时/分/秒
time_t timer ;
struct tm *ptm;
char *p;
time(&timer);
ptm =localtime(&timer);
p =SysMalloc(9);
sprintf(p,"%02d:%02d:%02d",ptm->tm_hour,ptm->tm_min,ptm->tm_sec);
return(p);
#pragma option(mbcs)
7.封面的制作
#include "apdefap.h"
void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) { OpenHomePicture();}
Open Home Picture 打开主页图片
ExitWinCC (); //Return-Type: BOOL
#pragma option(mbcs) 关闭wincc
ProgramExecute("PASSCS.exe");
#pragma option(mbcs) 打开用户配置(这只是脚本,需要在属性中设置管理授权)
#pragma code("USEADMIN.DLL")
#include "PWRT_API.H"
#pragma code()
PWRTLogin('1');
#pragma option(mbcs) 登录/登出
8.
:change_passWord.pdl
修改密码脚本(确定键):
#pragma code("UseGen.dll")
#include "USEGENAP.H"
#pragma code()
LPCMN_ERROR err;
if(strcmp(GetTagChar("@NewPassword"), GetTagChar("@ConfirmationPassword"))==FALSE)
{
if (PWGENConnect("CC_SewageDi_09_11_27_17_20_29",err) )
{
if (PWGENChangePassword(GetTagChar("@CurrentUserName"),GetTagChar("@OldPassword"),GetTagChar("@NewPassword"),err))
{
MessageBox(NULL,"密码修改成功!","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@CurrentUserName","");
SetTagChar("@OldPassword","");
SetTagChar("@NewPassword","");
SetTagChar("@ConfirmationPassword","");
}
else
{
if ((strlen(GetTagChar("@NewPassword")) <= 5)&&(strlen(GetTagChar("@OldPassword"))!=0))
{
MessageBox(NULL,"您输入的新密码个数小于6,请重新输入!","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@NewPassword","");
SetTagChar("@ConfirmationPassword","");
}
else
{
MessageBox(NULL,"用户名和密码不一致,请重新输入!","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@CurrentUserName","");
SetTagChar("@OldPassword","");
}
}
}
else
{
MessageBox(NULL,"建立联接失败!","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
}
PWGENDisconnect(err);
}
else
{
MessageBox(NULL,"两次输入的新密码不一致,请重新输入!","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@NewPassword","");
SetTagChar("@ConfirmationPassword","");
}
#pragma option(mbcs)
9.求平均值
double v1,v2,v3,v0;
v1=GetTagFloat("v1");
v2=GetTagFloat("v2");
v3=GetTagFloat("v3");
v0=(v1 + v2 + v3)/3;
SetTagFloat("v0",v0); 赋值
return(v0); 返回平均值
#pragma option(mbcs)
联系客服