lpszPropertyName) {
static int x=25,y,z;//x为半径的初始值为25,y为切换变量,z为搅拌机运行状态变量 z=GetTagBit("202搅拌机运行"); //取得PLC搅拌机的运行状态 if(z!=0) {
switch(y) {
case 0: x=x-4; if(x<=0) y=1; break; default : x=x+4;
if(x>=25) y=0; break; } }
return x; }
——————13、WINCC--如何在程序中动态修改用户密码 —————— 1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(ODBC)”,打开ODBC数据源管理器
2、在用户DSN页面的用户数据源中找到与当前项目所关联的一项,其名称为“CC_项目名_项目建立日期时间”,记下该项的名称 3、在脚本中加入以下代码: #pragma code(\ #include \.H\ #pragma code()
LPCMN_ERROR err; //定义的LPCMN_ERROR型变量,在函数调用中需使用 if (PWGENConnect(\建立与数据库的联接,其中CC_ass_04-09-21_16:35:22用第二步中记下的名称取代 { if
(PWGENChangePassword(GetTagChar(\(\修改密码,user,oldpassword,password分别为存贮用户名,原密码,新密码的内部变量,类型为文本变量8位字符集 {
//密码修改成功后的操作,如给用户提示等 } }
6
PWGENDisconnect(err); //断开与数据库的联接 4、编译运行程序 5、工作完成
6、与用户管理相关的函数定义存贮在APPLIB目录下的USEGENAP.H文件中,可根据上面示例自行完成添加用户,修改权限等功能。
——————14、WinCC如何实现鼠标OnMouseOVer事件 —————— 用WINDOWAPI函数GetCusorPos获取当前鼠标位置,用GetWindowRect函数获取窗口位置,两值相减得鼠标在WINCC frame上的相对位置。用全局脚本(设定为1s定时刷新),然后获取要OnMouseOver事件的物体的位置,并与鼠标位置相比较,如一致则触发自己定义的动作。
#include \int gscAction( void ) {
#pragma code(\
BOOL GetCusorPos(POINT lpPoint); //获取鼠标的位置(绝对位置-对应屏幕分辨率) BOOL GetWindowRect(HWND hwnd,LPRECT lpRect); //获取窗体位置 #pragma code(); POINT pPos; RECT rRec; HWND hwnd; BOOL bRet,bRet2;
long lLeft,lTop,lWidth,lHeight; long lX,lY; char szStr[100];
hwnd=FindWindow(NULL,\如语言为中文应为\运行系统-\if (hwnd==0) {printf(\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(\
//printf(\ lLeft=Ge