请教wincc问题 点击:3902 | 回复:12



shibaoyou

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-03-28 21:25:00
楼主
5)SetTagPrefix(lpszPictureName,"Nav_win_top","PA1."); //Rückgabe-Typ :BOOL 
这个代码是什么意思呀?????


6)ExportArchiveIntoCSV(); //Return-Type :void 
这个代码是什么意思呀?????


7)ProgramExecute("c:\\program files\\microsoft office\\office\\excel.exe d:\\user\\book1.xls");
这句代码是执行路径c:\\program files\\microsoft office\\office\\excel.exe 的文件吗?????怎么有出来一个d:\\user\\book1.xls???是什么意思?????


8)
#include "apdefap.h"
void Click(char* lpszPictureName, char* lpszObjectName )
{

char* cmd = SysMalloc(200);
char* pp = SysMalloc(120);

pp=GetTagChar("ProjectPath");

sprintf(cmd,"GRAFEXE.EXE %sGRACS\\PA10_bld07.PDL",pp);

ProgramExecute(cmd);
}
哪位可以给我解释一下这段代码 pp=GetTagChar("ProjectPath");



9)
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

extern char szProjectFile[_MAX_PATH+1];
HWND Handle= NULL;
char* cmd = SysMalloc(120);
char *pParentPicture = GetParentPicture(lpszPictureName);
char *pInstanceField = "InstanceName";
char *pInstanceName= GetText(pParentPicture ,pInstanceField );
//Open Text File for current Object
sprintf(cmd,"NOTEPAD.EXE %sREM\\%sTXT",szProjectFile,pInstanceName);
printf ("NOTEPAD.EXE %sREM\\%sTXT\r\n",szProjectFile,pInstanceName);

Handle= FindWindow("Notepad",NULL);

if (Handle)
{
printf("Handle: %d\r\n",Handle);
SetForegroundWindow(Handle);
SetForegroundWindow(Handle);
}
else
{
ProgramExecute(cmd);
}

}

}


extern char szProjectFile[_MAX_PATH+1];_MAX_PATH是什么????
printf("Handle: %d\r\n",Handle);
printf ("NOTEPAD.EXE %sREM\\%sTXT\r\n",szProjectFile,pInstanceName);
将在何处打印输出???
FindWindow("Notepad",NULL);是什么意思????

我还有很多的问题,想请教各位,那为愿意留个联系方式。shibaoyou-1981@126.com
盼回复???
谢谢



shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-03-28 21:28:00
1楼

我是在校学生,刚刚接触wincc,十分感谢您的帮助。
哪位可以帮助我解决几个具体问题:
1)在Wincc中有一个函数ProgramExcute(),我用它进行时间在线校正
  我用的windows xp 专业版     wincc 6.0
  在按钮-->鼠标--->left click
  ProgramExcute("c:\\windows\\system32\\timedate");
  但是电击后一点反应都没有。难道是路径设置错误了???
  应该怎么找到调时间的程序。我已经找到了notepad 和 calcu
(2)能否将一个外部变量(plc的)直接与Wincc的I/O相连接输出????
 
 (3)在button1鼠标事件中  
 
SetBackColor("picture1","button1",CO_RED);
编译正确,但是点击却毫无反映,背景色未变红,为什么???
 (4)在按钮中的程序为
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
extern global_nav;

global_nav=0;

OpenHomePicture (); //Return-Type: BOOL 

}
点击完之后 ,将打开哪副画面????什么是homepicture???
哪幅是homepicture?????

  5)SetTagPrefix(lpszPictureName,"Nav_win_top","PA1."); //Rückgabe-Typ :BOOL 
这个代码是什么意思呀?????


6)ExportArchiveIntoCSV(); //Return-Type :void 
这个代码是什么意思呀?????


7)ProgramExecute("c:\\program files\\microsoft office\\office\\excel.exe d:\\user\\book1.xls");
这句代码是执行路径c:\\program files\\microsoft office\\office\\excel.exe 的文件吗?????怎么有出来一个d:\\user\\book1.xls???是什么意思?????


8)
#include "apdefap.h"
void Click(char* lpszPictureName, char* lpszObjectName )
{

char* cmd = SysMalloc(200);
char* pp = SysMalloc(120);

pp=GetTagChar("ProjectPath"); 

sprintf(cmd,"GRAFEXE.EXE %sGRACS\\PA10_bld07.PDL",pp);

ProgramExecute(cmd);
}
哪位可以给我解释一下这段代码 pp=GetTagChar("ProjectPath");



9)
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

extern char szProjectFile[_MAX_PATH+1];
HWND Handle= NULL;
char* cmd = SysMalloc(120);
char *pParentPicture = GetParentPicture(lpszPictureName); 
char *pInstanceField = "InstanceName";
char *pInstanceName= GetText(pParentPicture ,pInstanceField );
//Open Text File for current Object
sprintf(cmd,"NOTEPAD.EXE %sREM\\%sTXT",szProjectFile,pInstanceName);
printf ("NOTEPAD.EXE %sREM\\%sTXT\r\n",szProjectFile,pInstanceName);

Handle= FindWindow("Notepad",NULL);

if (Handle)
{
printf("Handle: %d\r\n",Handle);
SetForegroundWindow(Handle);
SetForegroundWindow(Handle);
}
else
{
ProgramExecute(cmd); 
}

}

}


extern char szProjectFile[_MAX_PATH+1];_MAX_PATH是什么????
printf("Handle: %d\r\n",Handle);
printf ("NOTEPAD.EXE %sREM\\%sTXT\r\n",szProjectFile,pInstanceName);
将在何处打印输出???
FindWindow("Notepad",NULL);是什么意思????

我还有很多的问题,想请教各位,那为愿意留个联系方式。shibaoyou-1981@126.com
盼回复???
谢谢

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2006-03-29 14:16:00
2楼
回答1:你应该使用如下程序来完成你这个功能
#pragma code("kernel32.dll")
#pragma code()
WinExec ("RunDLL32.exe Shell32.dll,Control_RunDLLTimeDate.cpl,0", SW_SHOWNORMAL);
回答2:可以,使用GetTagxxxWait和SetTagxxxWait函数,其中xxx代表数据类型:如Byte
回答3:我这里测试下来能正确运行,测试环境:wincc6 sp1
回答4:打开存储的画面,详情请参照wincc帮助
回答5,6:参照wincc帮助
回答7:该命令启动Execl程序并打开Book1这个工作簿文件
回答8:得到字符变量
回答9:MAX_PATH为定义的符号常量,将在记事本的标题上输出,FindWindow是寻找窗体函数,请查看相关的API手册.

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-03-29 21:11:00
3楼
 5)SetTagPrefix(lpszPictureName,"Nav_win_top","PA1."); 
9)MAX_PATH为定义的符号常量,有具体的值吗??
 如何保证不超过限制。

 
  着两句代码是什么意思????
  GetParentPicture(lpszPictureName);
  HWND Handle= NULL;


这句代码是获取textbox的文本吗???
textbox从那找,我制发现了:静态文本和文本列表。
char *pInstanceName= GetText(pParentPicture ,pInstanceField );

 
我使用了帮助但是,系统提示我”不能打开c:\siemens\wincc\chinese\screens\..."
我业没有手册请您帮助我解释一下好吗。

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-03-29 21:34:00
4楼
我过几天给您发封邮件,想您请教几个关于您下载的PPP项目的问题吧.我用的是wincc 6.0的但是不能运行.只可以打开单副的画面.
您注意看一下您的EMAIL吧.
谢谢.

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2006-03-29 22:13:00
5楼
我没有下载PPP项目,下载时提示下载错误,如果项目小于10M的话,你打包成RAR文件后作为附件发送过来好了。

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-03-31 19:25:00
6楼
好的PPP项目压缩后8M.

十分感谢您的帮助.

我还有几个问题向您请教.

1.pp=GetTagChar("ProjectPath");
  ProjectPath是内部的固定的变量吗????
   user,password,是内部的固定的变量
    还是 @user,@password,是内部的固定的变量
这样的还有什么??

2.这句代码是什么意思????
  GetParentPicture(lpszPictureName);
例如建立画面ex_1.pdl,在ex_1.pdl中建立画面窗口,命名为window_1,window_1的画面名称为ex_2.pdl.
GetParentPicture(lpszPictureName);
是得到ex_1.pdl还是ex_2.pdl的名称??????
这句代码应该在何处,ex_1.pdl还是ex_2.pdl????
若在ex_1.pdl中引用画面窗口window_1的时候是怎样的形式??
是否为ex_1.window_1,若是引用画面窗口window_1里面的Objcet怎么引用??

这个问题困扰我很久了,请指教.

3.这句代码是获取textbox的文本吗???
textbox从那找,我制发现了:静态文本和文本列表。
char *pInstanceName= GetText(pParentPicture ,pInstanceField );



4.SetTagPrefix(lpszPictureName,"Nav_win_top","PA1."); 
是什么意思??


5.激情如火的帖子《WINNT/2000下Wincc与Excel通过netdde通讯的设置》中EXCEL做客户端的设置:=\\网络机器名\wincc|工程路径名!tagname
Excel通过netdde和wicc进行数据交换时,作为客户机在excel中如何设置???

请指教.谢谢

十分感谢您一直帮助我.

谢谢您yuanle

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-03-31 20:00:00
7楼

我还有一段代码不懂

BOOL value;
LINKINFO plink;
PDLRTGetPropEx(0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,NULL,0,NULL,NULL);
if(value) value =FALSE;
else value = TRUE;

PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL); //Rückgabe-Typ :BOOL 

if (plink.LinkType >2) return;
else SetTagBit (plink.szLinkName,(short int) value);  

以上兰色的我不懂您能解释一下吗

请指教.谢谢

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2006-04-02 09:06:00
8楼
1 ProjectPath是指变量名,而不区分是内部变量还是外部变量的,变量名前带@代表是系统变量
2 该函数返回当前窗口的画面名称,也就是说,如果在ex_1.pdl调用,那么返回ex_1.pdl的名称,如果在ex_2.pdl中调用,那么返回ex_2.pdl的画面名称。
3 就是起到用来获取静态文本的作用
4 SetTagPrefix用于设置变量的前缀
5 这篇文章没有看过,不知道,只知道通过网络DDE通讯性能是非常差的
6 没有看见蓝色的字符,不知道你是啥意思

 

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-04-02 11:48:00
9楼
谢谢您的解答。
不好意思,我忘了加颜色了。
BOOL value;
[color=#008000][color=#808000][color=#0000FF][color=#808000][color=#008000]LINKINFO plink;
PDLRTGetPropEx[/color][/color][/color][/color][/color](0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,NULL,0,NULL,NULL);
if(value) value =FALSE;
else value = TRUE;

PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL); //Rückgabe-Typ :BOOL 

if (plink.LinkType >2) return;
else SetTagBit (plink.szLinkName,(short int) value);  


4 SetTagPrefix用于设置变量的前缀有什么用啊??

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-04-02 11:56:00
10楼
我正帮老师做项目,要求切换到自动时,wincc 程序会自动循环
,我使用了一个二进制变量来标志循环,但是程序仅仅执行了一个周期就不循环了,请问您有什么办法吗?触发周期循环,而且,切换到手动时,循环停止。
PLC的程序是该不了了。
盼回复。
谢谢!

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-04-02 20:38:00
11楼
我有把二进制在程序的最后复位了,这会成了死循环了,
应该怎么控制编程.
盼回复

shibaoyou

  • 精华:1帖
  • 求助:0帖
  • 帖子:97帖 | 346回
  • 年度积分:0
  • 历史总积分:633
  • 注册:2005年11月27日
发表于:2006-04-03 12:16:00
12楼
yuanle您好:
      您如果看到了帖子,给我发一个您的电话号码吧。
我晚上给您打过去,向您请教一下。周期控制的方法。
shibaoyou-1981@126.com


盼回复回复

热门招聘
相关主题

官方公众号

智造工程师