Wincc系统函数.doc
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中使用vbs的常用函数
wincc中使用vbs的常用函数1.函数array()功能:创建一个数组变量格式:array(list)参数:list为数组变量中的每个数值列,中间用逗号间隔例子:<%i=array(“1”,”2”,”3”)%>结果:i被赋予为数组2.函数Cint()功能:将一表达式/其它类型的变量转换成整数类型(int)格式:Cint(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%f=”234”response.write cINT(f)+2%>结果:236函数Cint()将字符”234”转换成整数234.如果表达式为空,或者无效时,返回值为0;3.函数:Creatobject()功能:创建及返回一个ActiveX对象.格式:Creatobject(obname)参数bname是对象的名称例子:<%Set con=Server.CreateObject(“ADODB.Connection”)%>结果:4.函数Cstr()功能:将一表达式/其它类型的变量转换成字符类型(string)格式:Cstr(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%s=3+2response.write”The result is:”&cStr(s)%>结果:函数Cstr()将整数5转换成字符”5”.5.函数Date()功能:返回当前系统(server端)的日期格式:Date()参数:无例子<%date()%>结果:05/10/006.函数Dateadd()功能:计算某个指定的时间和格式:dateadd(timeinterval,number,date)参数:timeinterval是时间单位(月,日..);number是时间间隔值,date是时间始点.例子:<%currentDate=#8/4/99#newDate=DateAdd(“m”,3,currentDate)response.write newDate%><%currentDate=#12:34:45PM#newDate=DateAdd(“h”,3,currentDate)response.write newDate%>结果:11/4/993:34:45PM其中“m”=”month”;“d”=”day”;如果是currentDate格式,则,“h”=”hour”;“s”=”second”;7.函数Datediff()功能:计算某量个指定的时间差格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])参数:timeinterval是时间单位;date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear是任意选项.例子:<%fromDate=#8/4/99#toDate=#1/1/2000#response.write”There are”&_DateDiff(“d”,fromDate,toDate)&_“days to millenium from8/4/99.”%>结果:There are150days to millenium from8/4/99.8.函数day()功能:返回一个整数值,对应于某月的某日格式:day(date)参数:date是一个有效的日期表达式;例子<%=date(#8/4/99#)%>结果:49.函数formatcurrency()功能:转换成货币格式格式:formatcurrency(expression[,digit[,leadingdigit[,paren[,groupdigit]]]])参数:expression是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit 是任意选项.例子<%=FormatCurrency(34.3456)%>结果34.3510.函数Formatdatetime()功能:格式化日期表达式/变量格式:formatdatetime(date[,nameformat])参数:date为有效的日期表达式/变量;nameformat是指定的日期格式常量名称.例子<%=formatdatetime(“08/04/99”,vblongdate)%>结果:Wednesday,August04,1999说明:--------------------------------------------------------------------------------描述返回表达式,此表达式已被格式化为日期或时间。
WinCC flexible2008系统内部函数
说明:如果要使用该函数,则必须在浏览结构中使用画面更改。
5、ActivateRightScreen 应用:将画面切换到与激活画面同一层级的右侧的画面。 如果当前画面的右侧没有其它画面,则不发生画面切换。 说明:必须已经在“画面浏览”编辑器中组态了一个浏览ห้องสมุดไป่ตู้构。
6、ActivateRootScreen 应用:将画面切换到定义为起始画面的画面。 如果所显示的画面是根画面,则不会发生画面切换。 说明:必须已经在“画面浏览”编辑器中组态了一个浏览结构。
不要使用循环事件或递归事件或具有外部变量的系统函数。 在画面中创建一个开关。该开关连接到外部布尔类型变量“Tag1”。将系统函数“InvertBitInVariable”分配给“更改”事件。 该系统函数连接到外部变量“Tag1”。 在运行期间,这会导致无法预料的行为。
3、ResetBit 应用:将“Bool”型变量的值设置为 0(假)。
2.、SetScreenKeyboardMode 允许或禁止 HMI 设备上屏幕键盘的自动显示。 说明:要在 HMI 设备而不是触摸面板设备上启用系统函数“SetScreenKeyboardMode”(“SetScreenKeyboardMode”),请 在设备设置的“运行系统设置”对话框中选择“使用画面键盘”复选框。 该系统函数也可用于避免显示画面键盘,因为外部键盘已连接到操作员设备。 参数 Mode 确定隐藏还是显示屏幕键盘: 0 (hmiOff) = 关:隐藏屏幕键盘 1 (hmiOn) = 开:显示屏幕键盘
报警
1、ClearAlarmBuffer 应用:删除 HMI 设备报警缓冲区中的报警。 说明:尚未确认的报警也被删除。
2、ClearAlarmBufferProtoolLegacy 应用:该系统函数用来确保兼容性。 它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的 ProTool 编号方式。 参数: Alarm class number 将要删除其消息的报警类别号: -1 (hmiAllProtoolLegacy) = 所有报警/事件 0 (hmiAlarmsProtoolLegacy) = 错误 1 (hmiEventsProtoolLegacy) = 警告 2 (hmiSystemProtoolLegacy) = 系统事件 3 (hmiS7DiagnosisProtoolLegacy) = S7 诊断事件
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函数手册
wincc函数手册(最新版)目录1.WinCC 函数手册概述2.WinCC 函数手册的内容3.WinCC 函数手册的应用4.WinCC 函数手册的优点5.WinCC 函数手册的未来发展正文1.WinCC 函数手册概述WinCC 函数手册是一款由西门子公司开发的人机界面(HMI)软件,主要用于工业自动化领域。
它提供了丰富的函数库,可以帮助工程师快速、高效地开发和设计人机界面。
2.WinCC 函数手册的内容WinCC 函数手册包含了众多功能强大的函数,主要分为以下几个类别:(1)数据访问:这类函数主要用于访问和操作数据库,例如 SQL 查询、修改和删除数据等。
(2)图形绘制:这类函数主要用于绘制各种图形,例如折线图、柱状图、饼图等。
(3)文本处理:这类函数主要用于处理和显示文本信息,例如字符串操作、文本格式化等。
(4)界面布局:这类函数主要用于设计人机界面的布局,例如窗口、对话框、按钮等。
(5)其他功能:这类函数包括日期时间处理、数学计算、文件操作等实用功能。
3.WinCC 函数手册的应用WinCC 函数手册在工业自动化领域的应用十分广泛,例如:(1)监控和控制系统:用于监控生产过程中的数据,如温度、压力、速度等,并通过图形化界面进行显示和控制。
(2)数据采集与处理:用于采集现场设备的数据,并进行处理、分析和存储。
(3)人机交互:用于实现操作员与设备之间的交互,例如报警、故障诊断、参数设置等。
4.WinCC 函数手册的优点WinCC 函数手册具有以下优点:(1)易于学习和使用:提供了丰富的函数库,工程师可以快速上手并进行开发。
(2)功能强大:涵盖了工业自动化领域的各种需求,可以应对复杂的应用场景。
(3)灵活性高:可以根据实际需求进行灵活配置,以满足不同工程项目的需要。
(4)稳定性好:经过了长期的实际应用和优化,具有较高的稳定性和可靠性。
5.WinCC 函数手册的未来发展随着工业自动化领域的不断发展,WinCC 函数手册也将不断完善和升级,以满足更高的性能和功能需求。
Wincc系统函数.doc
报警1、ClearAlarmBuffer应用:删除HMI设备报警缓冲区中的报警。
说明:尚未确认的报警也被删除。
2、ClearAlarmBufferProtoolLegacy应用:该系统函数用来确保兼容性。
它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。
参数:Alarm class number将要删除其消息的报警类别号:-1(hmiAllProtoolLegacy)=所有报警/事件0(hmiAlarmsProtoolLegacy)=错误1(hmiEventsProtoolLegacy)=警告2(hmiSystemProtoolLegacy)=系统事件3(hmiS7DiagnosisProtoolLegacy)=S7诊断事件3、SetAlarmReportMode应用:确定是否将报警自动报告到打印机上。
4、ShowAlarmWindow应用:隐藏或显示HMI设备上的报警窗口。
5、ShowSystemAlarm应用:将已传递参数的值显示为HMI设备上的系统报警。
编辑位1、InvertBit应用:对给定的“Bool”型变量的值取反。
如果变量具有值1(真),它将被设置为0(假)。
如果变量具有值0(假),它将被设置为1(真)。
说明:不要使用循环事件或递归事件或具有外部变量的系统函数。
在画面中创建一个开关。
该开关连接到外部布尔类型变量“Tag1”。
将系统函数“InvertBit”分配给“更改”事件。
该系统函数连接到外部变量“Tag1”。
在运行期间,这会导致无法预料的行为。
2、InvertBitInTag应用:对给定变量中的位取反:如果变量中的位为值1(真),它将被设置为0(假)。
如果变量中的位为值0(假),它将被设置为1(真)。
在改变了给定位之后,系统函数将整个变量传送回PLC。
不检查此过程期间变量中是否有其它位发生更改。
在变量被传送回PLC之前,操作员和PLC对变量具有只读访问权限。
WinCC flexible2008系统涵数
WinCC flexible系统涵数简介下列表格显示了按组排列的可用系统函数。
在WinCC flexible 中,下列名称惯例应用于系统函数:以动词(例如“Start”或“Activate”)开头的系统函数可以用在脚本中。
以“Get”开头的系统函数用于读取值,例如从变量中读取。
以“Set”或“Write”开头的系统函数用于写入值,例如写入到变量中。
以ActiveX 控件的名称(例如HTMLBrowser)开头的系统函数不能在脚本中使用。
在脚本中使用系统函数请在脚本中使用系统函数的英文名称。
如果该系统函数可以在脚本中使用,那么该系统函数的英文名称也可以找到,例如:GetPassword (Tag)报警1、ClearAlarmBuffer应用:删除HMI设备报警缓冲区中的报警。
说明:尚未确认的报警也被删除。
2、ClearAlarmBufferProtoolLegacy应用:该系统函数用来确保兼容性。
它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。
参数:Alarm class number将要删除其消息的报警类别号:-1 (hmiAllProtoolLegacy) = 所有报警/事件0 (hmiAlarmsProtoolLegacy) = 错误1 (hmiEventsProtoolLegacy) = 警告2 (hmiSystemProtoolLegacy) = 系统事件3 (hmiS7DiagnosisProtoolLegacy) = S7 诊断事件3、SetAlarmReportMode应用:确定是否将报警自动报告到打印机上。
4、ShowAlarmWindow应用:隐藏或显示HMI 设备上的报警窗口。
5、ShowSystemAlarm应用:将已传递参数的值显示为HMI 设备上的系统报警。
编辑位1、InvertBit应用:对给定的“Bool”型变量的值取反。
wincc - 函数
wincc - 函数在WinCC的全局脚本里有几种函数专门是用来提取(GetTag 函数)和设置函数值(SetTag 函数)的。
这里的列表给出了不同的函数及它们的功能: SetTag 函数:SetTagxxx此函数给作业赋予一个值去写,然后立即返回到调用函数。
它并不等到值实际写好后再返回。
该调用的明显特点是:? ? ?此调用比较快。
调用函数并不清楚这个值实际是在何时写的。
该函数也不提供写作业状态的有关信息。
SetTagxxxWait此函数给作业赋予一个值去写,但是只有当值已经写好后才返回到调用函数。
该调用的明显特点是:? ? ?该调用慢于SetTagxxx。
其实际速度取决于通道和PLC的其它因素。
调用后值已经实际写好。
该函数不提供写作业状态的有关信息。
SetTagxxxState此函数具有SetTagxxx相同的特点。
另外,SetTagxxxState函数还提供写作业的状态的信息。
由于状态永远是内部提供的,故相比于SetTagxxx性能上没有什么差别。
SetTagxxxStateWait此函数具有与SetTagxxxWait相同的特点。
但是SetTagxxxStateWait函数还提供了写作业的状态信息。
由于状态永远是内部提供的,故相比于SetTagxxxWait性能上没有什么差别。
SetTagxxxStateWait与SetTagxxxState这两个函数间的差别与 SetTagxxxWait与SetTagxxx这两个函数间的差别相对应。
注意:当写过程结束时只能给出某些状态。
SetTagMultiWait此函数的特点与SetTagxxxWait相同。
但是它也提供在一个作业里发出多个写作业的选件。
GetTag 函数:GetTagxxx当此函数被调用时变量被注册下来。
然后变量受到PLC的周期性请求。
注册的周期取决于触发器(参看下面的叙述)。
使用GetTagxxx调用,提供了WinCC中的可用值。
WINCC函数
1.切换画面按钮 (2)2.设定BIT变量当前值 (2)3.取当前登陆用户 (2)4.取硬盘剩余容量 (3)5.以图像模式显示(灯、钮)等 (5)6.自定义对象 (6)7.OK返回值 (19)8.小键盘 (19)9.PID传递页面C脚本 (23)10.将变量B的值赋给变量A(无符号16位) (25)11.乒乓键 (26)12.C脚本、脉冲延时 (27)13.CONFIGURATION TOOOL (28)14.用“笔组”实现一张页面做趋势 (28)15.滑竿,SLIDER CONTROL的使用 (34)16.切换语言 (35)1.切换画面按钮#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) {SetPictureName(lpszPictureName,"PictureWindow1","HS_MODE.Pdl"); //设定PictureWindow1填充为页面HS_MODE.Pdl SetTagChar("TT","操作模式"); //Return-Type: BOOL //设定字符串变量TT当前值为“操作模式”以显示页眉}2.设定BIT变量当前值SetTagBit("N3_VALVE_RESET",0);3.取当前登陆用户 @CurrentUser4.取硬盘剩余容量5.以图像模式显示(灯、钮)等智能对象\状态显示选透明颜色6.自定义对象C动作#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) {Valve(lpszPictureName,lpszObjectName); //Return-Type: void}全局脚本\项目函数void Valve(char *lpszPictureName, char *lpszObjectName){char* Tagname = GetPropChar(lpszPictureName, lpszObjectName, "ObjectName");//设TAGNAME当前值为N3_HS_Achar* TitleName = GetPropChar(lpszPictureName, lpszObjectName, "TITLE");//设TITLENAME当前值为热风炉自动char* Name = GetPropChar(lpszPictureName, lpszObjectName, "PICNAME");//设NAME当前值为QD_BUTTONchar* DIS = GetPropChar(lpszPictureName, lpszObjectName, "DIS");//设DIS是否显示,本变量空用于下面的阀函数static BOOL visble; //声明BOOL量VISBLElong lLeft ; //声明常整数1LEFT,用于弹出框的左上角long lTop;BOOL Bool=TRUE; //声明BOOL量BOO1为真LINKINFO linkinfo; //Structure definition结构定义visble=TRUE; //设VISBLE当前值为真//lLeft =599;//lTop=327;lLeft =GetLeft(lpszPictureName,lpszObjectName)+50; //1LEFT当前值为当前页面的当前对象的左坐标+50,注意不是VALUE的值而是当前对象按钮“热风炉自动”lTop=GetTop(lpszPictureName,lpszObjectName); //1TOP当前值为当前页面的当前对象的上坐标if (lLeft <20) //限制坐标范围{lLeft =20;}if (lLeft >1240){lLeft =1240;}if (lTop>200){lTop=200;}if (lTop<20){lTop=20;}SetLeft(lpszPictureName,"value",lLeft); //设定当前页面中画面窗口VALUE的左上角坐标SetTop(lpszPictureName,"value",lTop);SetPictureName(lpszPictureName,"value",".PDL"); //设定当前页面中画面窗口VALUE填充页面为.PDLPDLRTSetPropEx(0,lpszPictureName,"value","Visible",VT_BOOL,&visble,NULL,NULL,0,NULL,NULL); //设定 VALUE的一些属性,帮助里未查到,待查SetPropChar(lpszPictureName,"value","CaptionText",TitleName); //设定VALUE的CAPTION TEXT为热风炉自动SetPropChar(lpszPictureName,"value","TagPrefix",Tagname); //为VALUE中所有变量增加前缀N3_HS_ASetPropChar(lpszPictureName,"value","PictureName",Name); //为VALUE填充页面为QD_BUTTONSetPropChar(Name,"text","Text",Tagname);//为当前页面名字叫TEXT的TEXT属性设定为TAGNAME的当前值,本项目用于阀函数SetPropChar(Name,"Button4","Visible",DIS);//为当前页面名字叫BUTTON4的VISIBLE属性设定为DIS的当前值,本项目用于阀函数,下同SetPropChar(Name,"Button5","Visible",DIS);SetPropChar(Name,"Button10","Visible",DIS);SetPropChar(Name,"Button11","Visible",DIS);}画面窗口定义如下:QD_BOTTON页面定义如下:其中确定按钮定义如下:动作按下置1,抬起置0取下按钮为关闭当前窗口阀门自定义对象C脚本#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) {Valve(lpszPictureName,lpszObjectName); //Return-Type: void}页面VALVE_FUNCTION_STAME如下其中设备名称定义为TEXT,取的即为OBJECTNAME,本例中为N3_SV101 其中远程等状态灯显示为结构变量后缀 .XXX其中打开、关闭等按钮(未知是否需要确定取消),本例中是这样实现的,以打开按钮为例:实际上本例中打开按钮有2个重叠在一起下面的打开按钮(黑色边框)控制实际的IO后缀:上面的打开按钮的可见性由DIS变量的当前值确定,若DIS为真,则蓝色边框打开按钮可见,蓝打开按钮(BOTTON4)控制PIC1可见8 PIC1填充为OPEN页面OPEN页面如下:其中确定按钮为BOTTON8,因所有变量前缀已赋值,则确定按钮仍连接实际IO后缀,同黑色打开按钮。
wincc中使用vbs的常用函数
例子<%=FormatCurrency(34.3456)%>
结果34.35
10.函数Formatdatetime()
功能:格式化日期表达式/变量
其中
“m” = ”month”;
“d” = ”day”;
如果是currentDate 格式,则,
“h” = ”hour”;
“s” = ”second”;
7.函数Datediff()
功能:计算某量个指定的时间差
格式: datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])
格式: isobject(expression)
参数: expression 是任意的变量.
例子:
<%
set con =server.creatobject(“adodb.connection”)
response.write isobject(con)
%>
结果: true
格式:month(time)
参数:time是日期变量
例子<% =month(#08/09/99) %>
结果:9
[color=#1E90FF]21.函数monthname()[/color]
功能:返回月份的字符串(名称).
格式:Monthname(date [,abb])
格式: dateadd(timeinterval,number,date)
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系统函数
报警1、ClearAlarmBuffer应用:删除HMI设备报警缓冲区中得报警。
说明:尚未确认得报警也被删除。
2、ClearAlarmBufferProtoolLegacy 应用:该系统函数用来确保兼容性。
它具有与系统函数“ClearAlarmBuffer”相同得功能,但使用旧得ProTool编号方式。
参数:Alarm class number将要删除其消息得报警类别号:-1 (hmiAllProtoolLegacy) =所有报警/事件 0 (hmiAlarmsProtoolLegacy)=错误1 (hmiEventsProtoolLegacy)=警告2 (hmiSystemProtoolLegacy)=系统事件3 (hmiS7DiagnosisProtoolLegacy) = S7诊断事件3、SetAlarmReportMode应用:确定就是否将报警自动报告到打印机上。
4、ShowAlarmWindow应用:隐藏或显示 HMI 设备上得报警窗口。
5、ShowSystemAlarm应用:将已传递参数得值显示为HMI 设备上得系统报警。
编辑位1、InvertBit应用:对给定得“Bool”型变量得值取反。
如果变量具有值 1(真),它将被设置为0(假).如果变量具有值 0(假),它将被设置为1(真)。
说明:不要使用循环事件或递归事件或具有外部变量得系统函数。
在画面中创建一个开关.该开关连接到外部布尔类型变量“Tag1".将系统函数“InvertBi t”分配给“更改”事件.该系统函数连接到外部变量“Tag1”.在运行期间,这会导致无法预料得行为。
2、InvertBitInTag应用:对给定变量中得位取反:如果变量中得位为值 1(真),它将被设置为0(假)。
如果变量中得位为值 0(假),它将被设置为 1(真).在改变了给定位之后,系统函数将整个变量传送回PLC。
不检查此过程期间变量中就是否有其它位发生更改。
WinCC 函 数
WinCC函数2009-10-10 17:27:26| 分类:默认分类| 标签:|字号大中小订阅GetFontSize函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
1). 读出当前字体大小和fontsize中的缓冲区。
2). 执行处理返回值的自定义代码。
2. long int GetAlignmentTop(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义垂直文本对齐(上对齐、居中、下对齐)。
读出字体大小的实例{long int fontsize;//获得实际字体大小fontsize= GetFontSize(lpszPictureName,"Static Text 1");//自定义代码//在那里用户可以使用返回值做某事...}GetFontSize函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
3. BOOL GetFontBold(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义字体样式是否为“粗体字”。
读出静态文本域的布尔型属性的实例{BOOL bbold;//了解文本是否是粗体字bbold= GetFontBold(lpszPictureName,"Static Text 1");if(bbold){// 自定义代码// 字体是否是粗体字...}else{// 自定义代码// 字体是否不是粗体字...}GetFontBold函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
4. char* GetText(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,为对象,例如静态文本、复选框和单选框,指定“文本”属性的数值。
wincc函数手册
wincc函数手册摘要:1.引言2.WinCC 函数手册简介3.WinCC 函数手册的使用方法4.WinCC 函数手册的功能模块5.WinCC 函数手册的应用案例6.总结正文:WinCC 是西门子公司开发的一款用于工业自动化领域的监控和控制软件。
WinCC 函数手册是该软件的一个配套参考资料,为用户提供了丰富的函数库,方便用户进行各种复杂的工程应用。
一、WinCC 函数手册简介WinCC 函数手册详细介绍了WinCC 软件中提供的各种函数,包括数据类型、变量、运算符、流程控制、过程调用等。
手册以PDF 格式提供,用户可以方便地在计算机上查看和搜索。
二、WinCC 函数手册的使用方法1.打开WinCC 软件,进入对应的项目。
2.在项目树中找到“函数库”,双击打开。
3.在函数库中,用户可以找到所需的函数,并双击查看函数说明。
4.根据函数说明,编写相应的程序代码。
三、WinCC 函数手册的功能模块1.数据类型:包括整型、浮点型、字符型、日期时间类型等。
2.变量:包括全局变量、局部变量、静态变量等。
3.运算符:包括算术运算符、关系运算符、逻辑运算符等。
4.流程控制:包括条件语句(if-else)、循环语句(for、while)等。
5.过程调用:包括子程序调用、函数调用等。
四、WinCC 函数手册的应用案例以实现一个简单的温度控制程序为例:1.定义一个全局变量,用于存储目标温度。
2.使用WinCC 提供的温度传感器函数,读取现场温度传感器数据。
3.编写控制算法,根据目标温度和现场温度计算出控制输出。
4.使用WinCC 的过程控制函数,实现对控制输出的实时调整。
五、总结WinCC 函数手册是WinCC 软件的重要组成部分,为用户提供了丰富的函数库和详细的函数说明。
WINCC标准函数集2
#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#define PIC_0 "w_start"SetBackColor("w_left.pdl","Button1",0xd8e9ec); //Return-Type: BOOLSetBackColor("w_left.pdl","Button2",0xd8e9ec); //Return-Type: BOOLSetBackColor("w_left.pdl","Button3",0xcfe8cc); //Return-Type: BOOLSetBackColor("w_left.pdl","Button4",0xd8e9ec); //Return-Type: BOOLSetBackColor("w_left.pdl","Button5",0xd8e9ec); //Return-Type: BOOLSetBackColor("w_left.pdl","Button6",0xd8e9ec); //Return-Type: BOOLSetBackColor("w_left.pdl","Button7",0xd8e9ec); //Return-Type: BOOLSetBackColor("w_left.pdl","Button8",0xd8e9ec); //Return-Type: BOOL} SetPictureName(PIC_0,"画面窗口5","pic_yuchuli_xigeSan");WinCC标准函数集(二)注:该篇文档包含用户函数集Graphics、Report、Taglog、WinCC、Execute Program篇,介绍与WinCC编程图形、报表打印、表格趋势控件、WinCC系统函数、调用其他程序有关的函数。
wincc中使用vbs的常用函数
wincc中使用vbs的常用函数1.函数array()功能:创建一个数组变量格式:array(list)参数:list为数组变量中的每个数值列,中间用逗号间隔例子:<%i=array(“1”,”2”,”3”)%>结果:i被剥夺为数组2.函数cint()功能:将一表达式/其它类型的变量转换成整数类型(int)格式:cint(expression)参数:expression就是任何有效率的表达式/其它类型的变量例子:<%f=”234”response.writecint(f)+2%>结果:236函数cint()将字符”234”转换成整数234.如果表达式为空,3.函数:creatobject()功能:建立及回到一个activex对象.格式:creatobject(obname)参数bname就是对象的名称例子:<%setcon=server.createobject(“adodb.connection”)%>结果:4.函数cstr()功能:将一表达式/其它类型的变量转换成字符类型(string)格式:cstr(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%s=3+2response.write”theresultis:”&cstr(s)%>结果:函数cstr()将整数5转换成字符”5”.5.函数date()功能:返回当前系统(server端)的日期或者违宪时,返回值为0;格式:date()参数:并无例子<%date()%>结果:05/10/006.函数dateadd()功能:排序某个选定的时间和格式:dateadd(timeinterval,number,date)参数:timeinterval就是时间单位(月,日..);number就是时间间隔值,date就是时间始点.例子:<%currentdate=#8/4/99#newdate=dateadd(“m”,3,currentdate)response.writenewdate%><%currentdate=#12:34:45pm#newdate=datead d(“h”,3,currentdate)response.writenewdate%>结果:11/4/993:34:45pm其中“m”=”month”;“d”=”day”;如果是currentdate格式,则,“h”=”hour”;“s”=”second”;7.函数datediff()功能:排序某量个选定的时间差格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])参数:例子:<%fromdate=#8/4/99#todate=#1/1/2000#response.write”thereare”&_datediff(“d”,fromdate,todate)&_“daystomillenium from8/4/99.”%>结果:thereare150daystomilleniumfrom8/4/99.8.函数day()功能:返回一个整数值,对应于某月的某日格式:day(date)timeinterval是时间单位;date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear就是任一选项.参数:date是一个有效的日期表达式;例子<%=date(#8/4/99#)%>结果:49.函数formatcurrency()功能:转换成货币格式格式:formatcurrency(expression[,digit[,leadingdigit[,paren[,groupdigit]]]])参数:expression就是有效率的数字表达式;digit则表示小数点后的位数;leadingdigit,paren,groupdigit就是任一选项.例子<%=formatcurrency(34.3456)%>结果34.3510.函数formatdatetime()功能:格式化日期表达式/变量格式:formatdatetime(date[,nameformat])参数:date为有效率的日期表达式/变量;nameformat就是选定的日期格式常量名称.例子<%=formatdatetime(“08/04/99”,vblongdate)%>结果:wednesday,august04,1999表明:--------------------------------------------------------------------------------描述回到表达式,此表达式已被格式化为日期或时间。
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.数据类型转换函数:Cint(str):转换正数 True -1;False 0;日期距离1899/12/31天数;时间上午段 0;下午段 1;Cstr(str):日期输出格式 yyyy/mm/dd;时间输出格式 Am/Pm hh:mm:ss Clng(str):与Cin()类似Cbool(num):num不为零 True;反之 FalseCdate(str):转换日期格式 0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值 Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)DateValue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false 则取不包含的元素Join(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize 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):设置页面编码类型,即<meta http-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函数总结(最新版)
第一部分 标准函数一、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报警控件的对象名。
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. 获取当前时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报警1、ClearAlarmBuffer应用:删除HMI设备报警缓冲区中的报警。
说明:尚未确认的报警也被删除。
2、ClearAlarmBufferProtoolLegacy应用:该系统函数用来确保兼容性。
它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。
参数:Alarm class number将要删除其消息的报警类别号:-1(hmiAllProtoolLegacy)=所有报警/事件0(hmiAlarmsProtoolLegacy)=错误1(hmiEventsProtoolLegacy)=警告2(hmiSystemProtoolLegacy)=系统事件3(hmiS7DiagnosisProtoolLegacy)=S7诊断事件3、SetAlarmReportMode应用:确定是否将报警自动报告到打印机上。
4、ShowAlarmWindow应用:隐藏或显示HMI设备上的报警窗口。
5、ShowSystemAlarm应用:将已传递参数的值显示为HMI设备上的系统报警。
编辑位1、InvertBit应用:对给定的“Bool”型变量的值取反。
如果变量具有值1(真),它将被设置为0(假)。
如果变量具有值0(假),它将被设置为1(真)。
说明:不要使用循环事件或递归事件或具有外部变量的系统函数。
在画面中创建一个开关。
该开关连接到外部布尔类型变量“Tag1”。
将系统函数“InvertBit”分配给“更改”事件。
该系统函数连接到外部变量“Tag1”。
在运行期间,这会导致无法预料的行为。
2、InvertBitInTag应用:对给定变量中的位取反:如果变量中的位为值1(真),它将被设置为0(假)。
如果变量中的位为值0(假),它将被设置为1(真)。
在改变了给定位之后,系统函数将整个变量传送回PLC。
不检查此过程期间变量中是否有其它位发生更改。
在变量被传送回PLC之前,操作员和PLC对变量具有只读访问权限。
说明:如果PLC支持BOOL型变量,不要使用该系统函数。
而是使用“InvertBit”系统函数。
不要使用循环事件或递归事件或具有外部变量的系统函数。
在画面中创建一个开关。
该开关连接到外部布尔类型变量“Tag1”。
将系统函数“InvertBitInVariable”分配给“更改”事件。
该系统函数连接到外部变量“Tag1”。
在运行期间,这会导致无法预料的行为。
3、ResetBit应用:将“Bool”型变量的值设置为0(假)。
4、ResetBitInTag应用:将给定变量中的一个位设置为0(假)。
在改变了给定位之后,系统函数将整个变量传送回PLC。
不检查此过程期间变量中是否有其它位发生更改。
在指示的变量被传送回PLC之前,操作员和PLC对变量具有只读访问权限。
说明:如果PLC支持BOOL型变量,不要使用该系统函数。
而使用系统函数“ResetBit”。
5、SetBit应用将“Bool”型变量的值设置为1(真)。
6、SetBitInTag应用:将给定变量中的一个位设置为1(真)。
在改变了给定位之后,系统函数将整个变量传送回PLC。
不检查变量中的其它位是否同时发生了改变,在变量传送回PLC之前,操作员和PLC只能读取该变量。
说明:如果PLC支持BOOL型变量,不要使用该系统函数。
而使用系统函数“SetBit”。
7、ShiftAndMask应用:此系统函数将源变量的输入位组合格式转换成目标变量的输出位组合格式。
这包括移动位和掩码位。
说明:如果源变量为有符号的整型数据类型,即带有符号“-”,则最左侧位为“1”。
符号位向右侧移动后,该位将由“0”填充。
符号变为“+”。
如果源变量和目标变量具有不同的位数,则要确保目标变量中的值未超出值的范围。
打印1、PrintReport应用:通过连接到HMI设备的打印机来打印给定的报表。
说明:报表将按HMI设备上所设置的语言进行打印。
2、PrintScreen应用:通过连接到HMI设备的打印机来打印当前显示在HMI设备上的画面。
同时打印已打开的窗口。
说明:从Windows操作系统的当前设置中获取打印机设置。
3、SetAlarmReportMode应用:确定是否将报警自动报告到打印机上。
画面1、ActivateFirstChildScreen应用:将画面切换到位于子层最左侧的画面。
如果活动画面没有任何子画面,则不执行画面更改说明:如果要使用该函数,则必须在“画面浏览”编辑器中组态浏览结构。
2、ActivateLeftScreen应用:将画面切换到与激活画面同一层级的左侧的画面。
如果当前画面的左侧没有其它画面,则不发生画面切换说明:必须已经在“画面浏览”编辑器中组态了一个浏览结构。
3、ActivateParentScreen应用:将画面切换到激活画面的父画面。
如果活动画面没有任何子画面,则不执行画面更改。
说明:如果要使用该函数,则必须在“画面浏览”编辑器中组态浏览结构。
4、ActivatePreviousScreen应用:将画面切换到在当前画面之前激活的画面。
如果先前没有激活任何画面,则画面切换不执行。
最近调用的10个画面被保存。
当切换到不再保存的画面时,会输出系统事件。
说明:如果要使用该函数,则必须在浏览结构中使用画面更改。
5、ActivateRightScreen应用:将画面切换到与激活画面同一层级的右侧的画面。
如果当前画面的右侧没有其它画面,则不发生画面切换。
说明:必须已经在“画面浏览”编辑器中组态了一个浏览结构。
6、ActivateRootScreen应用:将画面切换到定义为起始画面的画面。
如果所显示的画面是根画面,则不会发生画面切换。
说明:必须已经在“画面浏览”编辑器中组态了一个浏览结构。
7、ActivateScreen应用:将画面切换到指定的画面。
使用“ActivateScreenByNumber”系统函数可以从根画面切换到永久性窗口,反之亦然。
8、ActivateScreenByNumber应用:根据变量值将画面切换到另一画面。
画面由其画面号标识计算1、DecreaseValue应用:从变量值中减去给定的值。
X=X - a说明:系统函数使用同一变量作为输入和输出值。
当该系统函数用于转换数值时,必须使用帮助变量。
可使用系统函数“SetValue”将变量值分配给帮助变量。
如果在报警事件中组态了函数但变量未在当前画面中使用,则无法确保在PLC中使用实际的变量值。
通过设置“连续循环”采集模式可以改善这种情况。
2、IncreaseValue应用:将给定值添加到变量值上。
X=X+a说明系统函数使用同一变量作为输入和输出值。
当该系统函数用于转换数值时,必须使用帮助变量。
可使用系统函数“SetValue”将变量值分配给帮助变量。
如果在报警事件中组态了函数但变量未在当前画面中使用,则无法确保在PLC中使用实际的变量值。
通过设置“连续循环”采集模式可以改善这种情况。
3、InverseLinearScaling应用:使用线性函数X=(Y - b)/a,将通过给定变量Y的值计算得出的数值赋给变量X。
变量X和Y不能相同。
与此函数相反的系统函数是“LinearScaling”。
说明:变量X和Y不能相同。
如果要将变量转换为其自身,必须使用一个帮助变量。
可用系统函数“SetValue”将要转换变量的值分配给帮助变量。
4、LinearScaling应用:为变量Y赋值,该变量通过线性函数Y=(a*X)+b利用给定变量X的值计算得出。
与此函数相反的系统函数是“InverseLinearScaling”。
说明:变量X和Y不能相同。
如果要将变量转换为其自身,必须使用一个帮助变量。
可用系统函数“SetValue”将要转换变量的值分配给帮助变量。
5、SetValue应用:将新值赋给给定的变量。
说明:该系统函数可用于根据变量类型分配字符串和数字。
记录1、ArchiveLogFile应用:此函数将记录移至或复制到其它存储位置作长期归档。
使用Audit Trails时,请始终使用“移动”(hmiMove)模式,否则将在复制存储的数据方面违反FDA准则。
在使用此系统函数之前,请始终运行“CloseAllLogs”系统函数请在执行此系统函数后,运行“OpenAllLogs”函数。
在“复制记录”模式中,只有在成功复制了记录或在复制过程中发生超时的情况下,才会重新打开记录。
在“移动记录”模式中,将重命名要移动的记录,并且会立即打开新记录2、ClearLog应用:删除给定日志中的所有数据记录。
3、CloseAllLogs应用:断开WinCC flexible与所有记录之间的连接。
说明:在关闭记录前,必须首先在记录中停止记录功能。
使用系统函数“StopLogging”。
4、CopyLog应用:将日志的内容复制到其它日志中。
变量值只能复制到其它数据日志中,而报警只能复制到其它报警日志中。
“StopLogging”函数可用来终止记录操作说明:如果使用“CopyLog”系统函数复制记录,则外部应用程序有可能无法读取记录副本的已记录消息文本中的某些特定国家/地区的特殊字符。
WinCC flexible Runtime不会受此影响。
WinCC flexible Runtime可以准确无误地读取复制的记录文件5、LogTag应用:将给定变量的值保存在给定的数据日志中。
该系统函数用于归档特定时刻的过程值。
6、OpenAllLogs应用:重新建立WinCC flexible和记录之间的连接。
可继续记录。
说明:运行系统函数“StartLogging”以重新开始记录7、StartLogging应用:在指定记录中启动对数据或报警的记录。
可通过使用“StopLogging”系统函数在运行系统时中断记录。
8、StartSequenceLog应用:停止对给定记录进行数据或报警的记录。
在为指定记录所组态的分段的环形记录的下一个记录中继续进行记录。
如果没有为指定记录组态分段的环形记录,则该系统函数无效。
9、StopLogging应用:在指定记录中停止对过程值或报警的记录。
系统函数“StartLogging”用于在运行系统时恢复记录。
说明:当记录停止时,WinCC flexible与记录文件或记录数据库之间的连接仍将存在。
使用系统函数“CloseAllLogs”可断开此连接。
键盘1、OpenScreenKeyboard应用:隐藏或显示屏幕键盘。
屏幕键盘保持打开直到它被明确关闭。
这样,屏幕键盘也可用于其它应用程序。
参数:Display mode指定使用屏幕键盘打开的窗口是最小化还是最大化:0(hmiScreenKeyboardMinimized)=最小化1(hmiScreenKeyboardMaximized)=最大化2.、SetScreenKeyboardMode允许或禁止HMI设备上屏幕键盘的自动显示。