WINCC C脚本的标准函数
WinCC部分函数说明说明书
WinCC部分函数说明凡是C与VB脚本函数名称一样的是实现一样的功能,只是调用环境不一样以下是部分CAPI1、int soundonce(char *src)//声音播放,仅仅播放一次,未使用src=声音文件位置2、void ccsleep(float sec) //暂停一段时间sec=时间S3、int ccGetPicStr(char *DesStr, char *SourPrefix, char *SourStrem, char *SourFomat) //生成图片的地址DesStr=生成后的地址SourPrefix=源前缀SourStrem=图片名称SourFomat=格式以下是部分VB函数说明,没有涉及到的请参照同名C函数的注释说明1、is_Correct_Pre_Visible(Byval pre_loc,Byval cur_val) ''用来修正一种情况的显示错误Pre_loc=前一轮出的牌位置Cur_loc=当前出的牌位置以下请自行参照源代码中的注释1、实现声音播放:SendSound、SendGetSound、SendUngetSound、GetSound2、实现牌面动态布局:GetGroupLeftByObj动作以及其他未涉及到函数的说明请参照源码中的注释PLC端部分函数、函数块说明(依次)1、未使用,2、产生一个随机整数3、等待一小段时间(西门子有提供标准块)(请注意该函数与硬件挂钩不基于时间单位)4、识别牌类型5、摸牌6、手牌转换成选中的牌7、判定是否是双已经连对并返回和8、判定是否是四带二并返回和(含飞机)9、判定是否是顺子并返回和10、判定是否是三带一并返回和(含飞机)11、判定是否是三不带并返回和(含飞机)12、抓牌调用了513、选中牌转换成手牌(14、选中牌转换成当前出牌15、洗牌16、排序从小到大。
Wincc界面设计——C脚本实践
Wincc界面设计——C脚本实践简介Wincc是一款用于人机界面设计的软件,通过使用C脚本,可以实现更加复杂的功能和交互。
本文将介绍如何在Wincc界面设计中实践C脚本的使用。
C脚本基础在开始使用C脚本之前,需要了解C语言的基础知识。
C脚本是一种用于编写Wincc界面逻辑的脚本语言,其语法和C语言相似。
熟悉C语言的人员可以更快地上手C脚本的编写。
C脚本实践以下是一些常见的C脚本实践示例:1. 按钮点击事件void Button_Click(){// 点击按钮后执行的代码// ...}在Wincc界面中,可以为按钮添加点击事件。
当按钮被点击时,会调用`Button_Click`函数,可以在该函数中编写相应的逻辑代码。
2. 数据处理double CalculateAverage(double[] data, int length){double sum = 0;for (int i = 0; i < length; i++){sum += data[i];}return sum / length;}在Wincc界面中,可以使用C脚本进行数据处理。
上述示例代码演示了如何计算一组数据的平均值。
可以根据实际需求编写相应的数据处理函数。
3. 界面更新void UpdateLabel(){double value = GetSensorValue();Label.SetText(value);}C脚本还可以用于更新界面元素的内容。
上述示例代码演示了如何根据传感器的值来更新标签的文本。
通过调用相应的函数或方法,可以实现界面元素的动态更新。
总结通过使用C脚本,可以在Wincc界面设计中实现更加复杂的功能和交互。
本文介绍了C脚本的基础知识以及一些常见的实践示例。
在实际应用中,可以根据需求灵活运用C脚本,提升Wincc界面的设计和交互体验。
[ZA]WINCCC脚本的标准函数029
WINCC C脚本的标准函数1--------------------------------------------------------------------------------标准函数该系统包含标准函数。
可以按需要修改这些函数。
此外,还可以自己创建标准函数。
该系统包括一个标准函数集。
一、Alarm - 简短描述Alarm组包含控制WinCC报警控件的函数。
标准函数可用于工具栏中的每一个按钮。
这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数制作WinCC报警控件的实例{//确认选择的报警记录消息AcknowledgeMessage(GetTagWord("U08i_MsgNr"));}指定待确认的消息号。
在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数制作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数制作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
WINCCC函数用法大全
函数名: stpc py功能:拷贝一个字符串到另一个用法: c har *stpcp y(cha r *de stin, char *sou rce);程序例:#inclu de <s tdio.h>#inclu de <s tring.h> intmain(void){ ch ar st ring[10];c har *str1= "ab cdefg hi";stpcp y(str ing,str1); prin tf("%s\n", stri ng);r eturn 0; }函数名: st rcat功能: 字符串拼接函数用法: cha r *st rcat(char*dest in, c har *sourc e); 程序例:#in clude <str ing.h>#i nclud e <st dio.h>i nt ma in(vo id) { char dest inati on[25]; cha r *bl ank = " ", *c = "C++", *B orlan d = "Borla nd";strcp y(des tinat ion,Borla nd);s trcat(dest inati on, b lank); strc at(de stina tion, c);print f("%s\n",desti natio n); re turn0;}函数名: str chr 功能:在一个串中查找给定字符的第一个匹配之处\用法: c har *strch r(cha r *st r, ch ar c);程序例:#incl ude <strin g.h>#inc lude<stdi o.h>int main(void){ char stri ng[15]; ch ar *p tr, c = 'r';s trcpy(stri ng, "Thisis astrin g");ptr = strc hr(st ring, c);if (p tr) pri ntf("The c harac ter %c isat po sitio n: %d\n",c, pt r-str ing); elsep rintf("The char acter wasnot f ound\n");retur n 0;} 函数名:strcm p功能: 串比较用法:int s trcmp(char *str1, ch ar *s tr2);看As ic码,s tr1>s tr2,返回值 >0;两串相等,返回0程序例:#i nclud e <st ring.h>#inclu de <s tdio.h>int m ain(v oid){ c har *buf1= "aa a", *buf2= "bb b", *buf3= "cc c"; i nt pt r;p tr =strcm p(buf2, bu f1);if (p tr >0) prin tf("b uffer 2 is grea ter t han b uffer 1\n"); el se prin tf("b uffer 2 is less than buff er 1\n"); ptr= str cmp(b uf2,buf3); if(ptr> 0) pr intf("buff er 2is gr eater than buff er 3\n");else pr intf("buff er 2is le ss th an bu ffer3\n"); re turn0;}函数名: st rncmp i功能: 将一个串中的一部分与另一个串比较, 不管大小写用法:int s trncm pi(ch ar *s tr1,char*str2, uns igned maxl en);程序例:#i nclud e <st ring.h>#inclu de <s tdio.h>int m ain(v oid){ cha r *bu f1 ="BBB", *bu f2 ="bbb"; intptr;ptr = strc mpi(b uf2,buf1); if(ptr> 0) pri ntf("buffe r 2 i s gre aterthanbuffe r 1\n"); i f (pt r < 0)p rintf("buf fer 2 is l ess t han b uffer 1\n");if (ptr == 0)p rintf("buf fer 2 equa ls bu ffer1\n"); ret urn 0;}函数名: strc py功能:串拷贝用法: char *str cpy(c har *str1, char *str2); 程序例:#in clude <std io.h>#in clude <str ing.h>i nt ma in(vo id) { ch ar st ring[10];char*str1 = "a bcdef ghi"; str cpy(s tring, str1); p rintf("%s\n", s tring); re turn0;}函数名: st rcspn功能: 在串中查找第一个给定字符集内容的段用法: in t str cspn(char*str1, cha r *st r2);程序例:#i nclud e <st dio.h>#i nclud e <st ring.h>#inclu de <a lloc.h>int m ain(v oid){ c har *strin g1 ="1234567890"; c har *strin g2 ="747D C8";int l ength; le ngth= str cspn(strin g1, s tring2); p rintf("Cha racte r whe re st rings inte rsect is a t pos ition %d\n", le ngth); re turn0;}函数名: st rdup功能: 将串拷贝到新建的位置处用法: char *str dup(c har *str);程序例:#inclu de <s tdio.h>#inclu de <s tring.h> #incl ude <alloc.h> intmain(void){char*dup_str,*stri ng ="abcd e"; dup_s tr =strdu p(str ing); prin tf("%s\n", dup_str); free(dup_str); ret urn 0;}函数名: str icmp功能: 以大小写不敏感方式比较两个串用法: i nt st ricmp(char *str1, ch ar *s tr2);程序例:#inclu de <s tring.h> #incl ude <stdio.h> intmain(void){ ch ar *b uf1 = "BBB", *b uf2 = "bbb"; int ptr; ptr= str icmp(buf2, buf1);if (ptr > 0) pr intf("buff er 2is gr eater than buff er 1\n");if (p tr <0)print f("bu ffer2 islessthanbuffe r 1\n"); i f (pt r ==0)print f("bu ffer2 equ als b uffer 1\n");re turn0;}函数名: s trerr or功能:返回指向错误信息字符串的指针用法: cha r *st rerro r(int errn um);程序例:#i nclud e <st dio.h>#i nclud e <er rno.h>i nt ma in(vo id) { char *buf fer;b uffer = st rerro r(err no);p rintf("Err or: %s\n", buff er);r eturn 0; }函数名: st rcmpi功能: 将一个串与另一个比较,不管大小写用法: in t str cmpi(char*str1, cha r *st r2);程序例:#i nclud e <st ring.h>#inclu de <s tdio.h>int m ain(v oid){ cha r *bu f1 ="BBB", *bu f2 ="bbb"; intptr;ptr = strc mpi(b uf2,buf1); if(ptr> 0) pri ntf("buffe r 2 i s gre aterthanbuffe r 1\n"); i f (pt r < 0)p rintf("buf fer 2 is l ess t han b uffer 1\n");if (ptr == 0)p rintf("buf fer 2 equa ls bu ffer1\n"); ret urn 0;}函数名: strn cmp 功能:串比较用法: int strn cmp(c har *str1, char *str2, in t max len);程序例:#inclu de <s tring.h> #incl ude <stdio.h> int main(void){char*buf1 = "a aabbb", *b uf2 = "bbb ccc", *buf3 = "ccc";int p tr; p tr =strnc mp(bu f2,bu f1,3); if (ptr > 0) prin tf("b uffer 2 is grea ter t han b uffer 1\n"); els ep rintf("buf fer 2 is l ess t han b uffer 1\n");pt r = s trncm p(buf2,buf3,3);if (p tr >0)print f("bu ffer2 isgreat er th an bu ffer3\n"); else pr intf("buff er 2is le ss th an bu ffer3\n"); ret urn(0);}函数名: s trncm pi功能:把串中的一部分与另一串中的一部分比较,不管大小写用法: in t str ncmpi(char *str1, ch ar *s tr2);程序例:#inclu de <s tring.h> #incl ude <stdio.h> intmain(void){ ch ar *b uf1 = "BBB ccc", *buf2 = "bbbcc c"; in t ptr; ptr = st rncmp i(buf2,buf1,3); if (ptr > 0) prin tf("b uffer 2 is grea ter t han b uffer 1\n");if (ptr < 0) pr intf("buff er 2is le ss th an bu ffer1\n"); if(ptr== 0) pr intf("buff er 2equal s buf fer 1\n"); retu rn 0;} 函数名: str ncpy功能: 串拷贝用法: ch ar *s trncp y(cha r *de stin, char *sou rce,int m axlen); 程序例: #inc lude<stdi o.h>#inc lude<stri ng.h>in t mai n(voi d){charstrin g[10]; char *str1 = "abcde fghi"; str ncpy(strin g, st r1, 3); str ing[3] = '\0';p rintf("%s\n", s tring); ret urn 0;}函数名: st rnicm p功能: 不注重大小写地比较两个串用法: i nt st rnicm p(cha r *st r1, c har *str2, unsi gnedmaxle n); 程序例:#in clude <str ing.h>#i nclud e <st dio.h>i nt ma in(vo id) { char *buf1 = "BBBcc c", *buf2= "bb bccc"; intptr;ptr = strn icmp(buf2, buf1, 3); if (ptr > 0) prin tf("b uffer 2 is grea ter t han b uffer 1\n");if (ptr < 0) pr intf("buff er 2is le ss th an bu ffer1\n"); if(ptr== 0) pr intf("buff er 2equal s buf fer 1\n"); retu rn 0;} 函数名:strns et功能:将一个串中的所有字符都设为指定字符用法:char*strn set(c har *str,charch, u nsign ed n);程序例:#incl ude <stdio.h> #incl ude <strin g.h>int main(void){c har *strin g = "abcde fghij klmno pqrst uvwxy z"; ch ar le tter= 'x'; pri ntf("strin g bef ore s trnse t: %s\n",strin g); st rnset(stri ng, l etter, 13); prin tf("s tring afte r st rnset: %s\n", s tring);re turn0;}函数名: s trpbr k功能: 在串中查找给定字符集中的字符用法: char *str pbrk(char*str1, cha r *st r2);程序例:#i nclud e <st dio.h>#i nclud e <st ring.h>int m ain(v oid){ cha r *st ring1 = "a bcdef ghijk lmnop qrstu vwxyz"; cha r *st ring2 = "o nm";c har *ptr;ptr = strp brk(s tring1, st ring2);if (ptr)p rintf("str pbrkfound firs t cha racte r: %c\n",*ptr); else pr intf("strp brk d idn't find char acter in s et\n");re turn0;}函数名: str rchr功能: 在串中查找指定字符的最后一个出现用法: char *str rchr(char*str, char c);程序例:#i nclud e <st ring.h>#inclu de <s tdio.h>int m ain(v oid){ cha r str ing[15]; ch ar *p tr, c = 'r';st rcpy(strin g, "T his i s a s tring"); pt r = s trrch r(str ing,c); if (ptr)p rintf("The char acter %c i s atposit ion:%d\n", c,ptr-s tring); els ep rintf("The char acter wasnot f ound\n");r eturn 0; }函数名: st rrev功能: 串倒转用法: ch ar *s trrev(char *str);程序例: #inc lude<stri ng.h>#in clude <std io.h>in t mai n(voi d){char*forw ard = "str ing"; prin tf("B efore strr ev(): %s\n", fo rward); str rev(f orwar d); pr intf("Afte r str rev(): %s\n",forwa rd);r eturn 0; }函数名: str set 功能:将一个串中的所有字符都设为指定字符用法: char *str set(c har *str,charc); 程序例:#in clude <std io.h>#in clude <str ing.h>i nt ma in(vo id) { char stri ng[10] = "123456789"; char symb ol ='c';print f("Be forestrse t():%s\n", str ing);strse t(str ing,symbo l); pr intf("Afte r str set(): %s\n",strin g); re turn0;}函数名: str spn 功能:在串中查找指定字符集的子集的第一次出现用法: in t str spn(c har *str1, char *str2); 程序例:#in clude <std io.h>#in clude <str ing.h>#i nclud e <al loc.h>i nt ma in(vo id) { char *str ing1= "1234567890";char*stri ng2 = "123DC8";int l ength; len gth = strs pn(st ring1, str ing2); prin tf("C harac ter w herestrin gs di fferis at posi tion%d\n", len gth);retur n 0;}函数名: strs tr功能:在串中查找指定字符串的第一次出现用法: c har *strst r(cha r *st r1, c har *str2);程序例:#incl ude <stdio.h> #incl ude <strin g.h>int main(void){c har *str1= "Bo rland Inte rnati onal", *st r2 ="nati on",*ptr; ptr= str str(s tr1,str2); prin tf("T he su bstri ng is: %s\n", p tr);r eturn 0; }函数名:strto d功能: 将字符串转换为doub le型值用法: dou ble s trtod(char *str, cha r **e ndptr);程序例: #inc lude<stdi o.h>#inc lude<stdl ib.h>in t mai n(voi d){charinput[80], *end ptr;d ouble valu e;pr intf("Ente r a f loati ng po int n umber:");g ets(i nput); valu e = s trtod(inpu t, &e ndptr); pri ntf("The s tring is %s the numb er is %lf\n", i nput, valu e); re turn0;}函数名: str tok 功能:查找由在第二个串中指定的分界符分隔开的单词用法:char*strt ok(ch ar *s tr1,char*str2);程序例: #inc lude<stri ng.h>#in clude <std io.h>in t mai n(voi d){charinput[16]= "ab c,d";char*p; /* str tok p laces a NU LL te rmina tor in fron t ofthe t oken, if f ound*/ p = strt ok(in put,",");if (p) p rintf("%s\n", p);/* A se condcallto st rtokusing a NU LL asthe f irstparam eterretur ns apoint er tothe c harac ter f ollow ing t he to ken */ p = strt ok(NU LL, ",");i f (p) pr intf("%s\n", p); retu rn 0;} 函数名:strto l功能: 将串转换为长整数用法:longstrto l(cha r *st r, ch ar **endpt r, in t bas e); 程序例:#in clude <std lib.h>#i nclud e <st dio.h>i nt ma in(vo id) { char *str ing = "87654321", *e ndptr; long lnum ber;/* st rtolconve rts s tring to l ong i ntege r */lnumb er =strto l(str ing,&endp tr, 10); pr intf("stri ng =%s l ong = %ld\n", s tring, lnu mber); ret urn 0;}函数名:strup r功能: 将串中的小写字母转换为大写字母用法: cha r *st rupr(char*str);程序例:#incl ude <stdio.h> #incl ude <strin g.h>int main(void){c har *strin g = "abcde fghij klmno pqrst uvwxy z", *ptr;/* co nvert s str ing t o upp er ca se ch aract ers */ ptr= str upr(s tring); pri ntf("%s\n", ptr); ret urn 0;}函数名: swab功能: 交换字节用法:voidswab(char *fro m, ch ar *t o, in t nby tes);程序例:#inclu de <s tdlib.h> #incl ude <stdio.h> #incl ude <strin g.h>cha r sou rce[15] ="rFna koBl rna d";c har t arget[15];in t mai n(voi d){swab(sourc e, ta rget, strl en(so urce)); pri ntf("Thisis ta rget: %s\n", ta rget); retu rn 0;} 。
wincc学习技巧
一、组态软件、 C 语言基础1. WINCC 中的语言Wincc 语言由C 脚本(C-script )和B 脚本(VB-script )组成。
WINCC中C脚本:(1)C动作(在画布中编辑的程序代码)。
(2)全局脚本编辑器:项目函数、标准函数和内部函数。
项目函数:自定义本项目(保护性)标准函数:编辑好供C 动作调用内部函数:(微软)自定义编辑函数在项目函数中例如:#pragma()int NEW_Add (int a; in b){int c;c=a+b;return c;}2. WINCC中的(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 二进制变量“启动”控制电机启停BOOL a;a= GetTagBit(“启动”);if(a==0)SetTagBit(启动” 1);举例2 二进制变量“启动”控制电机启停BOOL a;static int i=0;( 类似int a= GetTagBit( “启动”);if(a==0)i++;两者区别:i; i=0;)不加static 启动一次i=1 启动二次i=1 加static启动一次i=1启动二次i=2启动三次i=1 启动三次i=3启动四次i=1 启动四次i=43. WINCC 中的运算符3.WINCC 中的常用语句三、变量组态WINCC 中的变量分为:内部变量、外部变量和C 动作(函数中的变量)1. 利用变量进行增减计数步骤1:进行画面构建,需要两个按钮和一个输入输出域(属性调整-)(变量、有变化时、输出)。
WINCC C函数用法大全
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1\n");
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%s\n", string);
return 0;
}
函数名: strcat
功 能: 字符串拼接函数
{
char string[15];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strchr(string, c);
if (ptr)
printf("The character %c is at position: %d\n", c, ptr-string);
char *string2 = "747DC8";
int length;
length = strcspn(string1, string2);
printf("Character where strings intersect is at position %d\n", length);
WinCC标准函数总结
WinCC标准函数该系统包含标准函数。
可以按需要修改这些函数。
此外,还可以自己创建标准函数。
该系统包括一个标准函数集。
一、Alarm - 简短描述Alarm组包含控制WinCC报警控件的函数。
标准函数可用于工具栏中的每一个按钮。
这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数操作WinCC报警控件的实例{//确认选择的报警记录消息AcknowledgeMessage(GetTagWord("U08i_MsgNr"));}指定待确认的消息号。
在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
winccc函数用法大全(WINCCCfunctionDaquan)
wincc c函数用法大全(WINCC C function Daquan)Function name: stpcpyFunction: copy one string to anotherUsage: char, *stpcpy (char, *destin, char, *source); Procedure example:#include <stdio.h>#include <string.h>Int main (void){Char string[10];Char *str1 = "abcdefghi"";Stpcpy (string, STR1);Printf ("%s\n", string);Return 0;}Function name: strcatFunction: string concatenation functionUsage: char, *strcat (char, *destin, char, *source); Procedure example:#include <string.h>#include <stdio.h>Int main (void){Char destination[25];Char, *blank = "", *c = "C++", *Borland = "Borland""; Strcpy (destination, Borland);Strcat (destination, blank);Strcat (destination, C);Printf ("%s\n", destination);Return 0;}Function name: strchrFunction: finding the first match of a given character in a string \Usage: char, *strchr (char, *str, char, C);Procedure example:#include <string.h>#include <stdio.h>Int main (void){Char string[15];Char, *ptr, C ='r';Strcpy (string, This, is, a, string);PTR = strchr (string, C);If (PTR)Printf (The, character,%c, is, at,%d\n, position:, C,ptr-string);ElsePrintf ("The character was not found\n");Return 0;}Function name: StrCmpFunction: string comparisonUsage: int, StrCmp (char, *str1, char, *str2);Look at the Asic code, str1>str2, return value > 0; two strings equal, return 0Procedure example:#include <string.h>#include <stdio.h>Int main (void){Char, *buf1 = AAA, *buf2 = BBB, *buf3 = ccc";Int ptr;PTR = StrCmp (buf2, buf1);If (PTR > 0)Printf ("buffer 2, is, greater, than, buffer, 1\n");ElsePrintf ("buffer 2, is, less, than, buffer, 1\n");PTR = StrCmp (buf2, buf3);If (PTR > 0)Printf ("buffer 2, is, greater, than, buffer, 3\n");ElsePrintf ("buffer 2, is, less, than, buffer, 3\n");Return 0;}Function name: strncmpiFunction: compare a part of a string with another string, case or caseUsage: int, strncmpi (char, *str1, char, *str2, unsigned, maxlen);Procedure example:#include <string.h>#include <stdio.h>Int main (void){Char *buf1 = "BBB", *buf2 = "BBB"";Int ptr;PTR = strcmpi (buf2, buf1);If (PTR > 0)Printf ("buffer 2, is, greater, than, buffer, 1\n"); If (PTR < 0)Printf ("buffer 2, is, less, than, buffer, 1\n");If (PTR = 0)Printf ("buffer 2, equals, buffer, 1\n");Return 0;}Function name: strcpyFunction: String copyUsage: char, *strcpy (char, *str1, char, *str2);Procedure example:#include <stdio.h>#include <string.h>Int main (void){Char string[10];Char *str1 = "abcdefghi"";Strcpy (string, STR1);Printf ("%s\n", string);Return 0;}Function name: strcspnFunction: find the first segment of a given character set ina stringUsage: int, strcspn (char, *str1, char, *str2);Procedure example:#include <stdio.h>#include <string.h>#include <alloc.h>Int main (void){char * string1 = "1234567890";char * string2 = "747dc8";int length;length = strcspn (string1, string2);printf ("where the character strings intersect ice position% d \ n", length);return 0;}函数名: strdup功能: 将串拷贝到新建的位置处用法: char * strdup (char * str);程序例:# include stdio.h > <# include string.h > <# include alloc.h > <int main (void){char * tab _ str, * string = "abcde"; tab _ str = strdup (string);printf ("% s" n "tab _ str);free (dup _ str);return 0;}函数名: stricmp功能: 以大小写不敏感方式比较两个串用法: int stricmp (char * str1, char * str2);程序例:# include string.h > <# include stdio.h > <int main (void){char * buf1 = "bbb" * buf2 = "bbb";int ptr;ptr = stricmp (buf2, buf1);if (ptr > 0).printf ("buffer 2 is greater than buffer 1 \ n"); if (ptr < 0)printf ("buffer 2 ice less than buffer 1 \ n");if (ptr = = 0)printf ("buffer 2 equals buffer 1 \ n"); return 0;}函数名: strerror功能: 返回指向错误信息字符串的指针用法: char * strerror (int errnum);程序例:# include stdio.h > <# include errno.h > <int main (void){char * buffer;buffer = strerror (errno);printf ("error:% s% n" buffer);return 0;}函数名: strcmpi功能: 将一个串与另一个比较, 不管大小写用法: int strcmpi (char * str1, char * str2);程序例:# include string.h > <# include stdio.h > <int main (void){char * buf1 = "bbb" * buf2 = "bbb";int ptr;ptr = strcmpi (buf2, buf1);if (ptr > 0).printf ("buffer 2 is greater than buffer 1 \ n"); if (ptr < 0)printf ("buffer 2 ice less than buffer 1 \ n");if (ptr = = 0)printf ("buffer 2 equals buffer 1 \ n");return 0;}函数名: strncmp功能: 串比较用法: int strncmp (char * str1 str2, char *, int maxlen); 程序例:# include string.h > <# include stdio.h > <int main (void){char * buf1 = "aaabbb" * buf2 = "bbbccc" * buf3 = "ccc"; int ptr;ptr = strncmp (buf2, buf1,3);if (ptr > 0).printf ("buffer 2 is greater than buffer 1 \ n");elseprintf ("buffer 2 ice less than buffer 1 \ n");ptr = strncmp (buf2, buf3,3);if (ptr > 0).printf ("buffer 2 is greater than buffer 3 \ n");elseprintf ("buffer 2 ice less than buffer 3 \ n");return (0);}函数名: strncmpi功能: 把串中的一部分与另一串中的一部分比较, 不管大小写用法: int strncmpi (char * str1, char * str2);程序例:# include string.h > <# include stdio.h > <int main (void){char * buf1 = "bbbccc" * buf2 = "bbbccc";int ptr;ptr = strncmpi (buf2, buf1,3);if (ptr > 0).printf ("buffer 2 is greater than buffer 1 \ n"); if (ptr < 0)printf ("buffer 2 ice less than buffer 1 \ n"); 如果(ptr = = 0)printf(“缓冲2等于缓冲1 \n”);返回0;}函数名:strncpy功能:串拷贝用法:char * strncpy(char *德斯坦,源字符串,整数maxlen);程序例:#包括< stdio. h >#包括<字符串。
WINCC-C脚本大全
WINCC C脚本的标准函数 12009-08-06 17:04标准函数该系统包含标准函数。
可以按需要修改这些函数。
此外,还可以自己创建标准函数。
该系统包括一个标准函数集。
一、Alarm - 简短描述Alarm组包含控制WinCC报警控件的函数。
标准函数可用于工具栏中的每一个按钮。
这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数操作WinCC报警控件的实例{//确认选择的报警记录消息AcknowledgeMessage(GetTagWord("U08i_Msg Nr"));}指定待确认的消息号。
在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPi ctureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Contro l1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPic tureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Contro l1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
WINCC C脚本
Geometry -简短描述使用Geometry组中的函数可以修改或调用对象的大小、位置和其它几何属性。
1. long int GetActualPointLeft(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定多边形或折线中当前位置的X轴数值。
读出对象位置的实例{long lPos;//获得对象的X轴位置lPos= GetLeft(lpszPictureName,"WinCCLogo");//自定义代码//在那里用户可以使用返回值做某事...}GetLeft函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“WinCCLogo”是该对象的名称。
1).读出对象的当前X轴位置以及lPos中的缓冲区。
2).执行处理返回值的自定义代码。
2. long int GetActualPointTop(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定多边形或折线中当前顶点的Y轴数值。
读出对象位置的实例{long lPos;//获得对象的Y轴位置lPos= GetTop(lpszPictureName,"WinCCLogo");//自定义代码//在那里用户可以使用返回值做某事...}GetTop函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“WinCCLogo”是该对象的名称。
3. long int GetBoxCount(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定复选框和单选框的数字域。
参数lpszPictureName画面名lpszObjectName4. long int GetDirection(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指出棒图的方向。
关于Wincc的C函数(6)
关于Wincc的C函数(6)关于Wincc的C函数(6)二、内部函数内部函数用来画图形对象和使归档动态化,并用于项目函数、标准函数和全局脚本动作中。
在整个项目中都识别内部函数。
既不能创建新的内部函数,也不能修改已存在的内部函数。
1. allocate保留和释放工作存储器空间的函数void SysFree(void* lpFree)函数,通过SysMalloc函数释放保留的存储器区域。
参数lpFree,指向通过SysMalloc函数保留的存储器区域的指针。
2. void* SysMalloc(unsigned long int size)函数,为动作保留存储器空间。
存储器区域被分配给该动作。
已完成动作和已传送结果时,系统再次释放存储器。
SysFree函数可用来过早释放保留的存储器空间。
参数size,按字节计算的存储器区域的大小。
3. c_bib函数组c_bib包含来自C库的C函数Graphics - 简短描述使用Graphics组中的函数可以修改或调用WinCC对象的图形属性。
Axes - 简短描述Axes组中的函数仅用于棒图对象。
该函数可用来修改或调用各种棒图对象属性。
1. BOOL GetAlignment(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指明文本在棒图的左面还是右面。
读出棒图对象的布尔型属性的实例{BOOL bscaling;//获得标尺状态 bscaling= GetScaling(lpszPictureName,"Bar1");if (bscaling){// 自定义代码// 棒图对象有一个附加的标尺...}else{// 自定义代码// 棒图对象没有附加的刻度...}}GetScaling函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“Bar1”是该对象的名称。
wincc标准函数
wincc标准函数该系统包含标准函数。
可以按需要修改这些函数。
此外,还可以自己创建标准函数。
该系统包括一个标准函数集。
一、Alarm - 简短描述Alarm组包含控制WinCC报警控件的函数。
标准函数可用于工具栏中的每一个按钮。
这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数操作WinCC报警控件的实例{//确认选择的报警记录消息AcknowledgeMessage(GetTagWord("U08i_MsgNr"));}指定待确认的消息号。
在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
WINCC几个常用C语言编程
WINCC几个常用C语言编程全局脚本编程(按钮连续增减)说明:1、建立全局脚本函数2、建立全局动作C脚本3、在启动画面的打开画面中调用全局脚本函数4、在计算机的启动选项中选中全局脚本?全局脚本函数InitAction ()extern char tagname[30] =" ";extern SHORT count = 0;extern FLOAT low = 0;extern FLOAT high = 0;extern FLOAT step = 0;void InitAction()?按钮左键按下连续增加extern char tagname[30];extern SHORT count;extern FLOAT low;extern FLOAT high;strcpy(tagname,"S32i_varia_but_04"); count = 1;low = 0;high =1400;step =;?按钮左键按下连续减少extern char tagname[30];extern SHORT count;extern FLOAT low;extern FLOAT high;extern FLOAT step;strcpy(tagname,"S32i_varia_but_04"); count = 2;low = 0;high =1400;step =;?按钮左键松开停止增减count=0;???????全局动作C脚本()#include""int gscAction( void ) {extern char tagname[30]; extern SHORT count;extern FLOAT high;extern FLOAT step;?FLOAT value;if((count==1)||(count==2)) {//get current valuevalue = GetTagFloat (tagname);if(count==1){ //incvalue = value+step;if(value>high) (value=high); //high limit }//ifif(count==2){ //dec?value = value-step;if(value<low) (value=low); //low limit }//ifSetTagFloat (tagname,value);}//if?return(0);}?全局脚本函数(InitAction)文件:C脚本()文件:按钮左键连续增加文件:按钮左键松开文件:??C脚本编程(按钮按击增减)1、直接调用C动作方式实现:#include""void OnLButtonDown(char* lpszPictureName,char* lpszObjectName,char* lps zPropertyName,UINT nFlags,int x,int y){FLOAT value;value=GetTagFloat("S32i_varia_but_00"); //get tag valueif(value>1300) (value=1400); //check limitelse value=value+100; //inc valueSetTagFloat("S32i_varia_but_00",value); //set new value?2、调用函数方式实现(incdecvalue):FLOAT value;value=GetTagFloat ("S32i_varia_but_04");IncDecValue(&value,0,1400,100,1);SetTagFloat ("S32i_varia_but_04",value);?项目函数(incdecvalue)void IncDecValue(FLOAT *value,FLOAT low,FLOAT high,FLOAT step,DWORD a) {FLOAT v;v=*value; //get current valueswitch(a){case0: {if(v<step) (v=0); //low limitelse v=v-step; //decrement} //case 0break;case1:{if(v>(high-step))(v=high); //high limitelse v=v+step; //increment}//case 1break;}//switch*value=v; //return}项目函数(incdecvalue)文件:??C脚本编程(按钮切换开关):#include ""void OnLButtonDown(char* lpszPictureName,char* lpszObjectName,char* lps zPropertyName,UINT nFlags,int x,int y){BOOL state; //flip tagstate = !GetTagBit("BINi_varia_but_16"), SetTagBit("BINi_varia_but_16",(SHORT)state); }按钮切换开关文件:。
Wincc常用C脚本及常用功能
Wincc常用C脚本及常用功能打开用户管理器ProgramExecute("Passcs.exe"); 取消激活#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - "); //获得句柄iRet=MessageBox(hwnd,"是否取消激活?","Deactivate",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DeactivateRTProject (); //Return-Type: BOOL}关闭计算机#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hwnd,"是否关闭计算机?","ShutDown",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DMExitWinCCEx(DM_SDMODE_SYSTEM); }==================================================================== ==登陆代码:#pragma code(“useadmin.dll”)#include <pwrt_api.h>#pragma code()PWRTLogin (…e?);==================================== 取消激活(Deactivate)DeactivateRTProject();====================================== Wincc变量操作GetTagDWord(“变量名称”); 获取Wincc变量值SetTagDWord(“变量“,设定值); 设置Wincc变量对文本读写操作写操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)FILE* lpFile;char *shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"};char* lpszStr;int i,j;lpszStr=SysMalloc(60); //Return-Type: void*lpFile = fopen("D:\\test.txt", "w+");for(i=0;i<6;i++){lpszStr=GetTagChar(shuzhu[i]); strcat(lpszStr,"\r\n");if(lpFile == NULL){ printf("can not open file\r\n"); return;}fprintf(lpFile, lpszStr); }SysFree(lpszStr);fclose(lpFile);}读操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)char* shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"}; char tmp[255];int i=0;int ChrNumLine=38;FILE *fp;fp=fopen("D:\\test.txt","r"); if (fp==NULL){return;}else{rewind(fp);while(!feof(fp)){fgets(tmp,ChrNumLine,fp);SetTagChar(shuzhu[i],tmp);i++;}}fclose(fp);}画面窗口显示界面切换SetPictureName(lpszPictureName,"PicWindow_button","produce_manage_bu tton.pdl");SetVisible(lpszPictureName,"PicWindow_button",1);注:PicWindow_button是画面窗口名称;produce_manage_button.pdl是要显示的子画面。
Wincc界面制作:C脚本的实际操作
Wincc界面制作:C脚本的实际操作概述本文档介绍了在Wincc界面制作中使用C脚本的实际操作。
通过使用C脚本,您可以实现更复杂的逻辑和功能,提升Wincc界面的灵活性和交互性。
C脚本的基本语法C脚本是一种编程语言,用于控制Wincc界面的行为和响应。
以下是C脚本的基本语法:- 代码块使用花括号({})包围。
- 使用分号(;)表示语句的结束。
- 使用双斜杠(//)表示注释,注释的内容将被忽略。
在Wincc界面中使用C脚本在Wincc界面制作中,您可以将C脚本与各种控件和事件关联,以实现特定的功能和行为。
以下是一些常见的C脚本应用示例:控件事件响应您可以为控件(如按钮、文本框等)添加事件响应函数,以实现用户交互时的相应操作。
例如,当用户点击按钮时,可以触发相应的事件处理函数。
数据处理与逻辑控制通过C脚本,您可以对Wincc界面中的数据进行处理和控制。
例如,您可以编写代码来验证用户输入的数据是否合法,并根据结果做出相应的处理。
界面切换与导航使用C脚本,您可以实现界面之间的切换和导航功能。
例如,当用户点击某个按钮时,可以通过编写代码来切换到另一个界面。
数据库和文件操作通过C脚本,您可以实现对数据库和文件的读写操作。
例如,您可以编写代码来从数据库中检索数据,并将其显示在Wincc界面上。
实际操作示例以下是一个简单的实际操作示例,展示了如何使用C脚本实现一个简单的功能:// 定义一个变量,用于存储按钮点击次数int clickCount = 0;// 按钮点击事件处理函数void OnButtonClick(){// 每次点击增加计数clickCount++;// 更新界面上的文本显示SetText("label1", "按钮点击次数:" + clickCount);}在上述示例中,我们定义了一个变量`clickCount`,并在按钮点击事件处理函数`OnButtonClick`中对其进行增加,并通过`SetText`函数更新界面上的文本显示。
WinCC-VBscript常用函数
WinCC-VBscript常用函数WinCC VBscript常用函数1.数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根 num>0int(num): 取整 int(99.8)=99; int(-99.2)=100fix(num): 取整 fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2log(num): 取以e为底的对数 num>0exp(n): 取e的n次幂通常用 num^nsin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num);tan(num); atn(num)2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符 1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出 Exit Function 中途跳出End Sub StrFunName=Value 返回值End Function[call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函数子程序和自定义函数可以递归调用;ASP六大对象常用语句示范:Response:Response.write StrVar/"String":向网页写出参数值或字符串等同于在Html 标记中嵌入<%=StrVar/"String"%>Response.End:停止页面编译,并将已经编译内容输出到浏览器Response.Buffer=True|False:页面编译时是否使用缓存的设置,一般在页面头部设置Response.Flush:强制输出页面已编译部分内容Response.Clear:将缓冲区内的数据清除Response.Redirect URL:停止页面编译或输出,转载指定所需页面Response.IsClientConnected:返回True|False,检测用户是否还处于连接状态Response.Charset(CharsetName):设置页面编码类型,即<metahttp-equiv="Content-Type" content="text/html; charset=gb2312"> Response.ContentType [= ContentType ]:设置页面文件类型,同上Response.Expires [= number]:设置页面失效时间,单位分钟Response.ExpiresAbsolute [= [date] [time]]:设置页面失效的绝对时间Response.Status = StatusDescription:设置页面状态描述Request:Request("PassStrName"):读取网页传递值,包括表单及以?PassStrName=value&PassStrName_n=value_n形式Request[.collection|property|method](variable)Request.querystring("PassStrName"):读取Get方法传递的表单值和?PassStrName=valueRequest.QueryString(Varible)[(Index).Count]Request.form("PassStrName"):读取Post方法传递的纯表单域的值Request.Form(Parameter)[(Index).Count]Request.ServerVaribles(Server Environment Variable):读取客户端系统环境变量,详见参考Request.BinaryRead(Count):读取指定字节数的传送值Request.TotalBytes:查询体的长度,以字节为单位,只读注:同名表单如:CheckBox如有多项值,传递形式如右,StrName=value1,value2,...需要用Split函数分割各项值Multiple的Select表单与CheckBox类似,TextArea的值可包含换行字符,用Replace转为<br>,以满足格式需要Session:(用户全局变量)Session("SesName")=value:存储Session变量值,也可读取该值Session("SesName")=Empty:判断Session值是否存在的两种方法IsEmpty(Session("SesName"))=True|False:判断Session值是否存在的两种方法Session.TimeOut=num:设置Session变量的存在时效,单位分钟Session.Abandon:清除所有Session变量值Session.SessionID:Session变量的ID序列号,只读Application:(应用程序全局变量)Application("AppName")=value:存储Application变量值,也可读取该值Application("AppName")=Empty:判断Application值是否存在的两种方法IsEmpty(Application("AppName"))=True|False:判断Application值是否存在的两种方法Application.Lock:Application变量值锁定,防止同时更改变量值Application.UnLock:Application变量值解锁,允许更改变量值注:Session与Application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application变量Global.asa文件的结构:<% @language="VBscript"%><% Sub Application_OnStart ...End SubSub Application_OnEnd ... End SubSub Session_OnStart ...End SubSub Session_OnEnd ... End Sub%>Server:Server.MapPath("FileUrl"):映射文件名的服务器站点绝对地址,Path=Server.MapPath(./)可以得到虚拟目录根路径Server.HtmlEncode("string"):转换为可以直接显示带Html格式的字符串,如:<,>等Server.URLEncode( "string"):转换为浏览器地址编码set Var=Server.CreatObject("ObjName"):创建对象变量Server.ScriptTimeout = NumSeconds:ASP程序页面执行时限,以秒为单位Cookies: 存储在用户本机的临时变量,每个Cookie的最大字节4KB,最多可以有300个Cookie 1.2MBResponse.cookies("StrCookieName")=value:存储Cookie变量值,也可读取该值Response.cookies("StrCookieName")="":判断是否为空Response.cookies("StrCookieName").Expires=Date:变量有效期,以天为单位,小于当前时间立即失效Response.Cookies(Cookie[(key).Attribute]):标准语法ObjectContext 控制ASP的事务处理ObjectContext.OnTransactionAbort:由放弃的事务处理事件激发,在脚本完成处理后发生ObjectContext.OnTransactionCommit:由成功的事务处理事件激发,在脚本完成处理后发生ObjectContext.SetAbort:显式的放弃一次事务处理ObjectContext.SetComplete:覆盖前面任何调用ObjectContext.SetAbort方法的调用Msgbox "string"/StrName:VBscript提示框表单的Onsubmit事件:在同一页面写入 Function FormName_onsubmit()..FormName_onsubmit=True/False..end Function,页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。
WINCC C脚本
Geometry -简短描述使用Geometry组中的函数可以修改或调用对象的大小、位置和其它几何属性。
1. long int GetActualPointLeft(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定多边形或折线中当前位置的X轴数值。
读出对象位置的实例{long lPos;//获得对象的X轴位置lPos= GetLeft(lpszPictureName,"WinCCLogo");//自定义代码//在那里用户可以使用返回值做某事...}GetLeft函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“WinCCLogo”是该对象的名称。
1).读出对象的当前X轴位置以及lPos中的缓冲区。
2).执行处理返回值的自定义代码。
2. long int GetActualPointTop(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定多边形或折线中当前顶点的Y轴数值。
读出对象位置的实例{long lPos;//获得对象的Y轴位置lPos= GetTop(lpszPictureName,"WinCCLogo");//自定义代码//在那里用户可以使用返回值做某事...}GetTop函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“WinCCLogo”是该对象的名称。
3. long int GetBoxCount(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定复选框和单选框的数字域。
参数lpszPictureName画面名lpszObjectName4. long int GetDirection(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指出棒图的方向。
wincc函数标准
wincc函数标准WinCC函数标准。
WinCC是西门子公司开发的一款用于监控和数据采集的软件平台。
在WinCC 中,函数是非常重要的一部分,通过函数的使用,我们可以实现各种各样的功能。
本文将介绍WinCC函数标准的相关内容,包括函数的定义、使用方法以及一些常见的函数示例。
函数的定义。
在WinCC中,函数是一段封装好的代码,可以接受输入参数并返回一个值。
函数的定义包括函数名、参数列表、返回值类型和函数体。
在使用函数之前,我们需要先定义函数,然后才能在其他地方调用它。
函数的使用方法。
在WinCC中,我们可以通过VBScript或C Script来定义和调用函数。
在VBScript中,函数的定义格式如下:Function 函数名(参数列表)。
函数体。
函数名 = 返回值。
End Function。
在C Script中,函数的定义格式如下:返回值类型函数名(参数列表)。
{。
函数体。
return 返回值;}。
在定义好函数之后,我们可以在其他地方通过函数名和参数列表来调用函数,并获取返回值。
通过使用函数,我们可以将一些常用的功能封装起来,提高代码的复用性和可维护性。
常见的函数示例。
下面我们将介绍一些在WinCC中常见的函数示例,以便大家更好地理解函数的使用方法。
1. 计算两个数的和。
Function Add(a, b)。
Add = a + b。
End Function。
在这个示例中,我们定义了一个名为Add的函数,它接受两个参数a和b,然后返回它们的和。
2. 判断一个数是否为偶数。
Function IsEven(num)。
If num Mod 2 = 0 Then。
IsEven = True。
Else。
IsEven = False。
End If。
End Function。
在这个示例中,我们定义了一个名为IsEven的函数,它接受一个参数num,然后判断这个数是否为偶数,并返回相应的布尔值。
3. 获取当前时间。
wincc常用C脚本功能
.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();按钮变三种颜色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统- ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:",MB_YESNO |MB_SYSTEMMODAL);if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_ SYSTEMMODAL) == 6){ SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_ SYSTEMMODAL) == 6){ SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统- "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow=FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow=FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow,SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("rn SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WINCC C脚本的标准函数1--------------------------------------------------------------------------------标准函数该系统包含标准函数。
可以按需要修改这些函数。
此外,还可以自己创建标准函数。
该系统包括一个标准函数集。
一、Alarm - 简短描述Alarm组包含控制WinCC报警控件的函数。
标准函数可用于工具栏中的每一个按钮。
这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数操作WinCC报警控件的实例{//确认选择的报警记录消息AcknowledgeMessage(GetTagWord("U08i_MsgNr"));}指定待确认的消息号。
在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
4.BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数外部消息窗口操作,该函数显示先前所选消息的注释。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
5.BOOL AXC_OnBtnEmergAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
6.BOOL AXC_OnBtnHornAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认蜂鸣器信号。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
7.BOOL AXC_OnBtnInfo(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数显示信息文本。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
7.BOOL AXC_OnBtnLock(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置锁定”对话框。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
8.BOOL AXC_OnBtnLockUnlock(char* lpszPictureName, char* pszMsgWin),函数,该函数锁住在消息窗口中选择的消息。
之后,不再归档该消息。
该函数释放在锁定列表中选择的消息。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
9.BOOL AXC_OnBtnLockWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作.该函数调用锁定列表。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
10.BOOL AXC_OnBtnLoop(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数触发所选消息的“报警回路”函数。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
11.BOOL AXC_OnBtnMsgFirst(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的开始处。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
12.BOOL AXC_OnBtnMsgLast(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的结束处。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的最后一条消息AXC_OnBtnMsgLast("gs_alarm_00","Control1");}AXC_OnBtnMsgLast函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
13.BOOL AXC_OnBtnMsgNext(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的下一条消息。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
14.BOOL AXC_OnBtnMsgPrev(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的前一条消息。
使用标准函数操作WinCC报警控件的实例{// 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
15.BOOL AXC_OnBtnMsgWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数调用过程消息窗口。