首页 wincc学习技巧

wincc学习技巧

举报
开通vip

wincc学习技巧一、组态软件二、C语言基础中的语言Wincc语言由C脚本(C-script)和B脚本(VB-script)组成。WINCC中C脚本:(1)C动作(在画布中编辑的程序代码)。(2)全局脚本编辑器:项目函数、标准函数和内部函数。项目函数:自定义本项目(保护性)标准函数:编辑好供C动作调用内部函数:(微软)自定义编辑函数在项目函数中例如:#pragma()intNEW_Add(inta;inb){intc;c=a+b;returnc;}中的(Tag)变量------程序使用的变量(书上P31--35)变量:C变量、WIN...

wincc学习技巧
一、组态软件二、C语言基础中的语言Wincc语言由C脚本(C-script)和B脚本(VB-script)组成。WINCC中C脚本:(1)C动作(在画布中编辑的程序代码)。(2)全局脚本编辑器:项目函数、 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 函数和内部函数。项目函数:自定义本项目(保护性)标准函数:编辑好供C动作调用内部函数:(微软)自定义编辑函数在项目函数中例如:#pragma()intNEW_Add(inta;inb){intc;c=a+b;returnc;}中的(Tag)变量------程序使用的变量(书上P31--35)变量:C变量、WINCC变量C变量:int(数值型)、char(字符型)、BOOL(布尔型)---也就是二进制(为常用)WINCC变量:word(数值型)、char(字符型)、Bit(布尔型)(为常用)常用变量如下:布尔型:SetTagBit(参数1,参数2)、GetTagBit(参数)数值型:SetTagWord(参数1,参数2)、GetTagWord(参数)字符型:SetTagChar(参数1,参数2)、GetTagChar(参数)参数1:变量名。参数2:具体要求。例如参数1为液位,参数2为a举例1二进制变量“启动”控制电机启停BOOLa;a=GetTagBit(“启动”);if(a==0)SetTagBit(“启动”,1);举例2二进制变量“启动”控制电机启停BOOLa;staticinti=0;(类似inti;i=0;)a=GetTagBit(“启动”);if(a==0)i++;两者区别:不加static加static启动一次i=1启动一次i=1启动二次i=1启动二次i=2启动三次i=1启动三次i=3启动四次i=1启动四次i=4中的运算符中的常用语句三、变量组态WINCC中的变量分为:内部变量、外部变量和C动作(函数中的变量)1.利用变量进行增减计数步骤1:进行画面构建,需要两个按钮和一个输入输出域(属性调整-)(变量、有变化时、输出)。新建内部变量,命名为“计数”,属性为无符16位。如下图所示;步骤2:在名字为“启动增加”的按钮中-----属性----事件---鼠标左键C动作:unsignedshorta;a=GetTagWord("计数");a++;SetTagWord("计数",a);步骤3:在名字为“启动减少”的按钮中-----属性----事件---鼠标左键C动作:unsignedshorta;a=GetTagWord("计数");a--;SetTagWord("计数",a);2.利用变量进行增减计数(带有步长控制),可定义步长步骤1:进行画面构建,需要两个按钮和两个输入输出域(属性调整-)(变量为计数、有变化时、输出)步长对应的输入输出域(属性调整-)(变量为步长、有变化时、输入)。新建2个内部变量,命名为“计数”和“步长”,属性为无符16位。如下图所示;步骤2:在名字为“启动增加”的按钮中-----属性----事件---鼠标左键C动作:unsignedshorta;unsignedshortb;a=GetTagWord("计数1");b=GetTagWord("步长");a=a+b;SetTagWord("计数1",a);步骤3:在名字为“启动减少”的按钮中-----属性----事件---鼠标左键C动作:unsignedshorta;unsignedshortb;a=GetTagWord("计数1");b=GetTagWord("步长");a=a-b;SetTagWord("计数1",a);步骤4:如果调整步长,可直接输入3.利用变量进行电机启动新建内部变量,命名为“起停”,属性为无符16位。在名字为“启停”的按钮中-----属性----事件---鼠标左键C动作:BOOLa;a=GetTagWord("起停");if(a==0)SetTagWord("起停",1);if(a==1)SetTagWord("起停",0);4.利用变量进行windows窗口对象的修改四、画面组态5.画面的切换方法1:利用直接连接切换单个画面,即为在下图中“单击鼠标改变画面”的部分点击链接到所要去的画面。组态完毕后,点击按钮即可达到。方法2:通过对象名称和画面名称的变量连接打开画面。在书上P101方法3:通过内部函数打开画面。在按钮属性中事件中鼠标左键中C动作利用软件内部函数输入程序如下:OpenPrevPicture("画面名称"); 6.利用画面窗口显示画面方法:SetVisible("画面名称","对象名称",1或0);SetVisible 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示可见度;画面名称表示画面的名字,例如等;对象名称表示“画面窗口n”,“画面窗口n”在智能对象中;1或0表示可见或不可见。步骤:第一步:新建三个画面,、、。目的将、在中通过按钮的控制显示出来;第二步:分别在、中组态一个目标物;第三步:在中组态两个按钮和两个画面窗口控件(名称为画面窗口1、画面窗口2),在智能对象中找到“画面窗口”,更改画面窗口属性(属性----几何----宽度为246,高度为129;属性---其它---边框改为是,显示改为否,画面名称添加或);第四步:将、画面的大小调整为和两个画面窗口一样大;第五步:进行按钮组态,在按钮属性中事件中鼠标左键中C动作中编写程序如下:按钮1:SetVisible("","画面窗口1",1);SetVisible("","画面窗口2",0);按钮2:SetVisible("","画面窗口1",0);SetVisible("","画面窗口2",1);7.画面窗口属性-----时控显示这个技巧功能是对上一个的继承,最终结果就是将三个画面循环显示。步骤:第一步:新建四个画面,、、、。目的将、、在中通过按钮的时间控制显示出来;(这里并非按钮按下显示,系统运行自动显示)第二步:分别在、、中组态一个目标物;第三步:在中组态一个按钮和三个画面窗口控件(名称为画面窗口1、画面窗口2、画面窗口3),在智能对象中找到“画面窗口”,更改画面窗口属性(属性----几何----宽度为246,高度为129;属性----其它----边框改为是,显示改为否,画面名称添加或或);第四步:将、、画面的大小调整为和三个画面窗口一样大;第五步:进行按钮组态,在按钮属性中几何中宽度中(假如宽度为70)C动作中编写程序如下:staticinta=0;a++;if(a==1){SetVisible("","画面窗口3",1);SetVisible("","画面窗口4",0);SetVisible("","画面窗口5",0);}if(a==2){SetVisible("","画面窗口3",0);SetVisible("","画面窗口4",1);SetVisible("","画面窗口5",0);}if(a==3){SetVisible("","画面窗口3",0);SetVisible("","画面窗口4",0);SetVisible("","画面窗口5",1);a=0;}return70;触发器调整为1S中,即为间隔1S闪烁显示。8.动画旋转组态(例如风扇转动)这个技巧是为了组态一个旋转的动画,例如工业上的搅拌机等。举例如下:步骤1:组态基本画面,可以在显示库中寻找,也可以自己绘制。显示库:从显示库中调用,若使用,首先将元件导出(注意保存),然后将元件删掉,然后再导入(插入)这个元件,便可以进行调整(折开、组装、编组)注意,编组时必须至少两个一组。自己绘制:例如矩形、圆等(注意属性的调整)全选编组。例如编为4个组:组1、组2、组3、组4步骤2:程序的编写-------在画布属性---几何---宽度(如果此时宽度为800)---C动作:staticinta=0;a++;if(a==1){SetVisible("","组1",1);SetVisible("","组2",0);SetVisible("","组3",1);SetVisible("","组4",0);}if(a==2){SetVisible("","组1",0);SetVisible("","组2",1);SetVisible("","组3",0);SetVisible("","组4",1);a=0;}return800;步骤3:触发器的调整,标准周期,250MS9.动态化------------颜色改变颜色改变是最基本的动态化的技巧,就是动态对话框的基本功能,利用颜色的变化来完成一个部件的动作或结束。例如,画布属性---颜色-----动态对话框(事件名称也就是触发器的调整、表达式的填充或者变量、选择表达式结果的展现形式(布尔型或者其它调整颜色))。10.动态化------------闪烁组态(元件闪烁)此技巧主要是针对于元件库中的元件来讲。例如,随便调出一个元件(属性----控件属性-----闪烁样式(4种选择,包括不闪烁-0、不可见-1、阴影-2、实心-3))。点击后面的灯泡标志,选择动态对话框-----闪烁颜色------布尔型等。此技巧元件可单独作用,亦可由按钮控制。11.动态化------------动态填充组态动态填充组态就是控制元件的动态填充。例如,新建一个内部变量(命名为level、无符号16位、上限100、下限0、起始值0)、调出一个元件或绘制一个矩形(属性----动态填充改为“是”、填充量改为“0”、点击填充量后面的灯泡标志,直接连接变量level)。在矩形---几何---宽度(假设宽度为100)----C动作:(注意触发器调整250毫秒)(1)填充增加staticinta=0;if(a>=100)a=0;SetTagWord("level",a);a++;return100;(2)填充减少staticinta=100;if(a==100)a=100;SetTagWord("level",a);a——;return100;(3)填充增减结合(先增加、再减少)staticinta=0;staticintb=0;(方向控制)if(b==0){if(a>=100){b=1;}a++;}if(b==1){if(a<=0){b=0;}a——;}SetTagWord("level",a);return100;12.动态化------------对象的移动对象的移动就是控制元件在画布上水平左右或者垂直上下的移动,亦或沿对角线移动,也可以综合性的各方向的移动。以小车移动为例进行步骤分析如下:步骤一:选中元件----属性----几何(选择位置X、位置Y)----灯泡标志(C动作):特别注意:计算移动的距离范围,选出一个起点和一个终点(如果双向起点和终点和互换的)。计算两点之间的距离。如果水平移动,计算X之间的距离;如果垂直移动,计算Y之间的距离。例如,起点X的坐标为500,终点X的坐标为20,那么距离为480。(水平移动就是不断增加或者不断减少x)步骤二:下面以水平移动为例,进行C动作分析:(1)水平左移(不断减少x)staticinta=500;if(a<=0)a=480;elsea=a-4;(每次移动的距离,可以自动调整)return20+a;(2)水平右移(不断增加x)staticinta=0;if(a>=500)a=0;elsea=a+4;(每次移动的距离,可以自动调整)return20+a;(3)水平左右移动(双向移动)staticinta=500;staticintb=0;(方向控制)if(b==0){if(a<=0){b=1;(调整方向)}a=a-4;(每次移动的距离,可以自动调整)}if(b==1){if(a>=500){b=0;(调整方向)}a=a+4;(每次移动的距离,可以自动调整)}SetTagWord("level",a);return20+a;步骤三:触发器调整250毫秒注意:位置X------水平(左右)移动位置Y------垂直(上下)移动高度---------放大或者缩小(上下)宽度--------拉伸或缩短(左右)13.动态化------------复杂动画设计复杂动画设计是动态化画面的主要特色,也是工业画面组态主要部分。本技巧的展现以混合液的控制系统为例进行论述。(1)管道中液体流动步骤一:在元件库中调用管道。管道在plantElemer-----pipes-----2270(弯管道)、2206(横放管道)、2180(纵放管道)中寻找。画出液体流动的三种状态,第一种状态为原始状态,就是没有任何液体流动;第二种和第三中为液体流动的两种不同状态。三种状态画好并导出到桌面,画好一个就导出一个。分别命名(0、1、2)(3次)步骤二:新建一个变量,命名为“进水”,为无符号16位。步骤三:在智能对象中-----状态显示------组态对话框(变量为“进水”、有变化时、增加三页(0、1、2)将三个画面状态拖入0、1、2下面,相对应)。步骤四:在状态显示控件-----几何-----宽度(假设宽度为100)---C动作:staticinta=0;11-16-20132013-11-16期与时间的设置--------两个时间求差值此技巧是对上一个技巧的承接,用于实现在线时长显示的功能。注意:字符不能相加减;显示 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 (字符显示):时间1:09:45:30时间209:45:45时长:00:00:15。画面布局如图所示;步骤一:新建内部变量:shijian1和shijian2和shijian3(格式为文本8位字符集),新建对应的输入输出域(变量(shijian1和shijian2和shijian3)、有变化时、输出)。注意:输入/输出域属性调整(输出格式:字符串)步骤二:程序时间1程序:在时间1对应的输入输出域中---属性---事件---鼠标左键----C动作:chara[20];char*p;p=GetTagChar("time");strcpy(a,p);SetTagChar("shijian1",a);时间2程序:在时间2对应的输入输出域中---属性---事件---鼠标左键----C动作:chara[20];char*p;p=GetTagChar("time");strcpy(a,p);SetTagChar("shijian2",a);时间差程序:在时间差对应的输入输出域中---属性---事件---鼠标左键----C动作:第一部分:定义变量chara[20],b[20];char*p;charaa[10],bb[10],cc[10];inti;intval1,val2,val3;intval4,val5,val6;intval7,val8,val9;longsum1,sum2,temp;第二部分:将shijian1由字符转换为数值p=GetTagChar("shijian1");、、、、、、、、、采集时间1strcpy(a,p);for(i=0;i<2;i++){aa[i]=a[i];、、、、、、、、、小时bb[i]=a[i+3];、、、、、、、分钟cc[i]=a[i+6];、、、、、、、秒}aa[2]='\0';bb[2]='\0';cc[2]='\0';val1=atoi(aa);、、、、、、、、字符转数值val2=atoi(bb);val3=atoi(cc);第三部分:将shijian2由字符转换为数值(同上)p=GetTagChar("shijian2");strcpy(a,p);for(i=0;i<2;i++){aa[i]=a[i];bb[i]=a[i+3];cc[i]=a[i+6];}aa[2]='\0';bb[2]='\0';cc[2]='\0';val4=atoi(aa);val5=atoi(bb);val6=atoi(cc);第四部分:求差值sum1=val1*3600+val2*60+val3;、、、、、、、、、、计算时间1共多少秒sum2=val4*3600+val5*60+val6;、、、、、、、、、、计算时间2共多少秒temp=sum2-sum1;、、、、、、、、、、、、、、、、、、、、、、秒值相减temp=abs(temp);、、、、、、、、、、、、、、、、、、、、、、、取绝对值第五部分:将得出数值temp转换为(时、分、秒)-----一分为三(仍为数值)val7=temp/3600;、、、、、、、、、、、、、、、、、数值除3600取整为小时val8=(temp%3600)/60;、、、、、、、、、、、、余下数值除60取整为分钟val9=temp%60;、、、、、、、、、、、、、、、、、、余下数值除60取余为秒值第六部分:将各数值转换为字符(0的ASCII码为48)b[0]=val7/10+48;、、、、、、、、、、、、、、、、、十位-----时b[1]=val7%10+48;、、、、、、、、、、、、、、、、个位b[2]=':';、、、、、、、、、、、、、、、、、、、、、、、、、冒号b[3]=val8/10+48;b[4]=val8%10+48;b[5]=':';b[6]=val9/10+48;b[7]=val9%10+48;b[8]='\0';、、、、、、、、、、、、、、、、、、、、、、、字符串结束标志SetTagChar("shijian3",b);、、、、、、、、、、输出结果项目总图14.全局脚本(了解)将事先编好的程序在全局脚本中编辑成函数形式(项目函数)------在C动作中直接调用。以可以保护函数。举例 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 :以上一技巧中的时间差函数为例;步骤:全局脚本-----C-Editor----项目函数------新建-----在特定的形式中输入要编的程序,如下所示:#pragmaoption(mbcs)voidNew_Function()\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\此为函数名字(可以自己起名){输入要编写的程序}最后的程序如下:#pragmaoption(mbcs)voidNew_Function(){chara[20],b[20];char*p;charaa[10],bb[10],cc[10];inti;intval1,val2,val3;intval4,val5,val6;intval7,val8,val9;longsum1,sum2,temp;p=GetTagChar("shijian1");strcpy(a,p);for(i=0;i<2;i++){aa[i]=a[i];bb[i]=a[i+3];cc[i]=a[i+6];}aa[2]='\0';bb[2]='\0';cc[2]='\0';val1=atoi(aa);val2=atoi(bb);val3=atoi(cc);p=GetTagChar("shijian2");strcpy(a,p);for(i=0;i<2;i++){aa[i]=a[i];bb[i]=a[i+3];cc[i]=a[i+6];}aa[2]='\0';bb[2]='\0';cc[2]='\0';val4=atoi(aa);val5=atoi(bb);val6=atoi(cc);sum1=val1*3600+val2*60+val3;sum2=val4*3600+val5*60+val6;temp=sum2-sum1;temp=abs(temp);val7=temp/3600;val8=(temp%3600)/60;val9=temp%60;b[0]=val7/10+48;b[1]=val7%10+48;b[2]=':';b[3]=val8/10+48;b[4]=val8%10+48;b[5]=':';b[6]=val9/10+48;b[7]=val9%10+48;b[8]='\0';SetTagChar("shijian3",b);}加密:菜单栏中----编辑----信息----(创建者:冯晨曦;口令:123456),以后每次输入都得登录正确的口令才可以登录;加密后,在C动作中只显示函数名,不显示函数 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 ;15.关于文件的操作(对WINCC的扩展)(1)文件指针格式*txt*dat(打不开,存放登录过的密码)(2)文件操作①打开文件②操作文件(复杂)③关闭文件(3)打开文件(首先定义文件指针)FILE*fp;fp=fopen(“C:\\”,“r”);打开文件方式:r-----表示只读:如文件不存在或者路径错误,返回NULL(空指针)w----表示写入:如文件不存在或者路径错误,则新建用于清空某个文件。a------表示写:为追加,写时不会删除原有文件。以r、a使用最多。(4)关闭文件Fclose(fp);\\\\\\\\\\\\\\\\\\\\\\\\\\\f表示file,中文为“文件”;(5)操作文件①写数据fputs(字符,文件指针);字符为常量或者数组举例:fputs(china,fp);chara[20];strcpy(a[20],fp);②读数据fgets(,数组名,n,文件指针);作用是从文件中读取n-1个字符放入数组中;16.项目-----班级数据录入借助本项目巩固文件操作技巧,本项目就是对一个班级信息的记录(姓名、班级、学号)。步骤一:新建三个内部变量:分别命名为“name”、“class”、“number”,并建立相应的输入输出域,注意:输入/输出域属性调整(输出格式:字符串),如下图所示:步骤二:新建两个按钮,分别命名为“写入一次信息”、“写入信息”。任务一:在按钮“写入一次信息”中---属性----事件----鼠标左键----C动作:FILE*fp;fp=fopen("E:\\","a");fputs("冯晨曦",fp);fputs("1001自动化",fp);fputs("15",fp);fputs("\r\n",fp);fclose(fp);任务二:在按钮“写入信息”中---属性----事件----鼠标左键----C动作:FILE*fp;、、、、、、、、、、、、、、、、、、、、、、、、、文件指针chara[20];charb[20];charc[20];char*p;、、、、、、、、、、、、、、、、、、、、、、、、、、字符指针目----------------对文件的综合处理(未完)本项目是对文件处理的综合运用,是对组态系统人员登录的统计和记录。总体布局如下图所示;项目步骤如下:步骤一:完成下图图形的构建和脚本程序的编写,方法如上;(1)新建三个内部变量,分别命名“name”“class”“number”,分别连接相应的输入输出域(组态对话框:该变量、有变化时、类型为I/O域)。注意:输入/输出域属性调整(输出格式:字符串)。(2)在名字为“写入文件”的按钮中---属性---事件----C动作:FILE*fp;chara[20];charb[20];charc[20];char*p;inti;p=GetTagChar("name");strcpy(a,p);p=GetTagChar("class");strcpy(b,p);p=GetTagChar("number");strcpy(c,p);//if(strlen(a)==4)、、、、、、、、、、、、、、、、、、、、、蓝色和红色部分功能一致,选用一个即可//strcat(a,"");//if(strlen(a)==6)//strcat(a,"");//if(strlen(a)==8)//strcpy(a);for(i=strlen(a);i<8;i++);、、、、、、、、、、、、、、、蓝色和红色部分功能一致,选用一个即可strcat(a,"");fp=fopen("E:\\","a");fputs(a,fp);fputs(b,fp);fputs(c,fp);fputs("\r\n",fp);fclose(fp);步骤二:完成下图图形的构建和属性的调整;(1)智能对象-----控件(选择ListViewcontrolsp6)----拉大控件----双击(显示属性)-----在General(常规)中修改View(选择3-lvwreport)(报表输出);------在ColumHeader(列标题)----(点击insertColum(增加一列)index为列号(text:姓名;Width(列宽):80;)-----二次点击insertColum(增加一列)index为列号(text:班级;Width(列宽):80;)----三次点击insertColum(增加一列)index为列号(text:学号;Width(列宽):80;);)------点击应用-----点击确定。(2)选中属性---控制属性----GridLines----改“是”为“否”。步骤三:完成下图图形的构建和脚本程序的编写;(1)新建4个按钮和1个输入输出域,注意:输入/输出域属性调整(输出格式:字符串)。如上图所示;新建内部变量:命名“search”,文本8位字符集;(2)在按钮名为“显示数据”中----属性----事件----鼠标左键----C动作:#defineGetObjectGetObject__object*pdl=NULL;、、、、、、、、、、、、、指向当前运行系统(NULL为空值、初始化)__object*pic=NULL;、、、、、、、、、、、、、指向当前系统激活画面__object*obj=NULL;、、、、、、、、、、、、、指向画面中的某个对象__object*item=NULL;、、、、、、、、、、、、对象中对行的操作inti;charaa[10];chara[20],b[20],c[20];FILE*fp;fp=fopen("E:\\","r");if(fp==NULL)、、、、、、、、如果打不开,指向下面判断路径是否正确{HWNDhwnd=NULL;、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、指针hwnd=FindWindow(NULL,"WinCC-运行系统-");、、、、、、、、指针MessageBox(hwnd,"文件打开出错","警告",MB_OK|MB_ICONSTOP);、、、系统函数弹出对话框(可能是XP系统中的。WIN7不弹出)return;、、、、、、、、、、、、、、、、、、、、、返回空指针}打开文件:pdl=__object_create("PDLRuntime");、、、、、指向当前运行系统中的激活画面pic=pdl->GetPicture("");obj=pic->GetObject("控件1");//d=GetTagChar("sousuo");////////////strcpy(dd,d);///////////obj->ListItems->Clear();、、、、、调用函数为对象清零obj->view=3;、、、、、、、、、、、、、、对控件1操作所有的行rewind(fp);、、、、、、、、、、、、、、、、对文件操作,光标定位函数for(i=1;feof(fp)==0;)、、、、、蓝色部分为文件尾判断函数(0:光标不到尾;1光标到尾)、、、、、、、、、、、、、、、、、、、、、、只要光标不到尾,此段程序始终循环{fgets(a,9,fp);、、、、、、、、读取8个字符放入a中a[9]='\0';、、、、、、、、、、、结束符if(feof(fp)!=0)、、、、、、、如果不等于0,说明光标到尾,执行跳出break;fgets(b,11,fp);、、、、、、、读取10个字符放入b中fgets(c,11,fp);、、、、、、、读取10个字符放入c中b[11]='\0';、、、、、、、、、、、结束符c[11]='\0';、、、、、、、、、、、结束符fgets(aa,3,fp);、、、、、、、、读取3个字符放入aa中,\r\n回车换行是两个字符;目的是跳过第一行,去读第二行item=obj->ListItems->Add();、、、、、、、、、、、、、、、、、obj->ListItems->Item(i)->Text=a;、、、、、、、、、、、、、将a写入控件第一行第一列obj->ListItems->Item(i)->ListSubItems->Add(1,"First",b);、、、、增加一列写bobj->ListItems->Item(i)->ListSubItems->Add(2,"Second",c);、、、、增加一列写ci++;、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、进入下一行,光标定位到第二行}fclose(fp);、、、、、、、、、、、、、、、、、、、、关闭文件__object_delete(item);、、、最后四行为销毁指针,否则占用内存,从里往外销毁;__object_delete(obj);__object_delete(pic);__object_delete(pdl);(3)在按钮名为“搜索”中----属性----事件----鼠标左键----C动作:#defineGetObjectGetObject__object*pdl=NULL;__object*pic=NULL;__object*obj=NULL;__object*item=NULL;inti;char*d;charaa[10];chara[20],b[20],c[20],dd[20],ee[20];FILE*fp;fp=fopen("E:\\","r");if(fp==NULL){HWNDhwnd=NULL;hwnd=FindWindow(NULL,"WinCC-运行系统-");MessageBox(hwnd,"文件打开出错","警告",MB_OK|MB_ICONSTOP);return;}pdl=__object_create("PDLRuntime");pic=pdl->GetPicture("");obj=pic->GetObject("控件1");搜索功能////////////////////////////////////////////////////////d=GetTagChar("search");、、、、、、、、、、、、读取strcpy(dd,d);//////////////////////////////////////////////////////////同上,选其1//d=GetTagChar("sousuo");//strcpy(dd,d);//////////////////////////////////////////////////////////obj->ListItems->Clear();obj->view=3;rewind(fp);for(i=1;feof(fp)==0;){fgets(a,9,fp);a[9]='\0';if(feof(fp)!=0)break;搜索功能//////////////////////////////////////////////////////strcpy(ee,a);ee[strlen(dd)]='\0';、、、、、、、、、、、、、把数组ee字符的内容限制限制与输入内容一样if(strcmp(ee,dd)!=0)、、、、长度相同,信息不同,长度相同才能比较大小(冯与冯晨曦){fseek(fp,23L,1);、、、、、、、、、、、、、、、当光标定位到下一行continue;、、、、、、、、、、、、、、、、、、、、、、跳出当前循环进入下一次//////////////////////////////////////////////////////////////}fgets(b,11,fp);fgets(c,11,fp);b[11]='\0';c[11]='\0';fgets(aa,3,fp);item=obj->ListItems->Add();obj->ListItems->Item(i)->Text=a;obj->ListItems->Item(i)->listSubItems->Add(1,"Tuesday",b);obj->ListItems->Item(i)->listSubItems->Add(2,"Wednesday",c);i++;}fclose(fp);__object_delete(item);__object_delete(obj);__object_delete(pic);__object_delete(pdl);步骤四:完成下图图形的构建和脚本程序的编写;(1)新建三个内部变量:分别命名“姓名”“班级”“学号”;分别连接相应的输入输出域;(2)在控件属性----事件----对象事件----Dblclick----C动作:(就是双击控件中的信息内容,所点击的内容就会出现在相应的输入输出域中)。#defineGetObjectGetObject__object*pdl=NULL;__object*pic=NULL;__object*obj=NULL;inti;chara[20],b[20],c[20];pdl=__object_create("PDLRuntime");pic=pdl->GetPicture("");obj=pic->GetObject("控件1");i=obj->SelectedItem->Index;strcpy(a,obj->ListItems->Item(i)->Text);strcpy(b,obj->ListItems->Item(i)->ListSubItems(1));strcpy(c,obj->ListItems->Item(i)->ListSubItems(2));SetTagChar("姓名",a);SetTagChar("班级",b);SetTagChar("学号",c);__object_delete(obj);__object_delete(pic);__object_delete(pdl);14.项目----------------完成用户登录信息记录(练习)15.
本文档为【wincc学习技巧】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
Z333777
暂无简介~
格式:doc
大小:5MB
软件:Word
页数:0
分类:工学
上传时间:2020-03-26
浏览量:7