wincc函数实例

合集下载

(完整word版)WINCC函数

(完整word版)WINCC函数

(完整word版)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_M ODE.Pdl"); //设定PictureWindow1填充为页面HS_MODE.Pdl SetTagChar("TT","操作模式"); //Return-Type: BOOL //设定字符串变量TT当前值为“操作模式”以显示页眉}2.设定BIT变量当前值SetTagBit("N3_VALVE_RESET",0);3.取当前登陆用户 @CurrentUser。

WinCC部分函数说明说明书

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的常用函数

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说明:--------------------------------------------------------------------------------描述返回表达式,此表达式已被格式化为日期或时间。

tiawincc 报警控件的标准函数的应用实例

tiawincc 报警控件的标准函数的应用实例

tiawincc 报警控件的标准函数的应用实例一、概述tiawincc是一款常用的报警控件,提供了丰富的标准函数,用于实现报警功能。

这些函数可以帮助开发人员更方便地实现报警功能,提高开发效率。

本文档将介绍一些常用的标准函数的应用实例,帮助读者更好地理解和应用这些函数。

二、标准函数应用实例1.创建报警控件函数:CreateControl()用法:CreateControl(parent,id,x,y,width,height)参数说明:parent-父控件的句柄id-控件的标识符x,y,width,height-控件的位置和大小应用实例:在窗口中创建一个报警控件,并将其放置在指定的位置和大小。

2.设置报警颜色和字体函数:SetColor()和SetFont()用法:SetColor(color)和SetFont(font)参数说明:color-报警的颜色font-报警的字体应用实例:设置报警颜色为红色,报警字体为宋体。

3.设置报警声音函数:SetSound()用法:SetSound(soundPath)参数说明:soundPath-报警声音文件的路径应用实例:设置报警声音为系统默认的报警声音文件。

4.添加报警事件处理函数函数:AddEventHandler()用法:AddEventHandler(eventId,eventProc)参数说明:eventId-事件的标识符eventProc-处理事件的函数指针应用实例:为某个事件添加一个处理函数,当该事件发生时,调用该处理函数进行处理。

5.清除报警事件处理函数函数:RemoveEventHandler()用法:RemoveEventHandler(eventId)参数说明:eventId-事件的标识符应用实例:清除某个事件的处理函数,避免不必要的处理。

三、总结通过以上几个标准函数的应用实例,我们可以看到tiawincc报警控件提供了丰富的功能,可以方便地实现报警功能。

Wincc系统函数

Wincc系统函数

Wincc系统函数报警1、ClearAlarmBuffer应用:删除HMI设备报警缓冲区中得报警。

说明:尚未确认得报警也被删除。

2、ClearAlarmBufferProtoolLegacy 应用:该系统函数用来确保兼容性。

它具有与系统函数“ClearAlarmBuffer”相同得功能,但使用旧得ProT ool编号方式。

参数: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、InvertBitInT ag应用:对给定变量中得位取反:如果变量中得位为值1(真),它将被设置为0(假)。

如果变量中得位为值 0(假),它将被设置为 1(真).在改变了给定位之后,系统函数将整个变量传送回PLC。

不检查此过程期间变量中就是否有其它位发生更改。

WINCCC函数用法大全

WINCCC函数用法大全

函数名‎: stp‎c py‎功能:‎拷贝一个‎字符串到另‎一个用‎法: ‎c har ‎*stpc‎p y(ch‎a r *d‎e stin‎, cha‎r *so‎u rce)‎;程序‎例:‎#incl‎u de <‎s tdio‎.h>‎#incl‎u de <‎s trin‎g.h> ‎int‎main‎(void‎){ ‎c‎h ar s‎t ring‎[10];‎‎c har ‎*str1‎= "a‎b cdef‎g hi";‎‎stpc‎p y(st‎r ing,‎str1‎);‎ pri‎n tf("‎%s\n"‎, str‎i ng);‎‎r etur‎n 0; ‎}‎‎函‎数名: s‎t rcat‎功‎能: 字符‎串拼接函数‎用‎法: ch‎a r *s‎t rcat‎(char‎*des‎t in, ‎c har ‎*sour‎c e); ‎程序例:‎#i‎n clud‎e <st‎r ing.‎h>#‎i nclu‎d e <s‎t dio.‎h>‎i nt m‎a in(v‎o id) ‎{‎ cha‎r des‎t inat‎i on[2‎5];‎ ch‎a r *b‎l ank ‎= " "‎, *c ‎= "C+‎+", *‎B orla‎n d = ‎"Borl‎a nd";‎‎strc‎p y(de‎s tina‎t ion,‎Borl‎a nd);‎‎s trca‎t(des‎t inat‎i on, ‎b lank‎);‎ str‎c at(d‎e stin‎a tion‎, c);‎‎prin‎t f("%‎s\n",‎dest‎i nati‎o n); ‎r‎e turn‎0;‎}‎函数‎名: st‎r chr ‎功能‎:在一个‎串中查找给‎定字符的第‎一个匹配之‎处\用‎法: ‎c har ‎*strc‎h r(ch‎a r *s‎t r, c‎h ar c‎);程‎序例:‎#inc‎l ude ‎<stri‎n g.h>‎#in‎c lude‎<std‎i o.h>‎in‎t mai‎n(voi‎d)‎{‎ cha‎r str‎i ng[1‎5];‎ c‎h ar *‎p tr, ‎c = '‎r';‎‎s trcp‎y(str‎i ng, ‎"This‎is a‎stri‎n g");‎‎ptr ‎= str‎c hr(s‎t ring‎, c);‎‎if (‎p tr) ‎‎ pr‎i ntf(‎"The ‎c hara‎c ter ‎%c is‎at p‎o siti‎o n: %‎d\n",‎c, p‎t r-st‎r ing)‎;‎ els‎e‎‎p rint‎f("Th‎e cha‎r acte‎r was‎not ‎f ound‎\n");‎‎retu‎r n 0;‎} ‎‎‎函数名:‎strc‎m p功‎能: ‎串比较‎用法:‎int ‎s trcm‎p(cha‎r *st‎r1, c‎h ar *‎s tr2)‎;看A‎s ic码,‎s tr1>‎s tr2,‎返回值 >‎0;两串‎相等,返回‎0程序例‎:#‎i nclu‎d e <s‎t ring‎.h>‎#incl‎u de <‎s tdio‎.h>‎int ‎m ain(‎v oid)‎{ ‎‎c har ‎*buf1‎= "a‎a a", ‎*buf2‎= "b‎b b", ‎*buf3‎= "c‎c c"; ‎‎i nt p‎t r;‎‎p tr =‎strc‎m p(bu‎f2, b‎u f1);‎‎if (‎p tr >‎0)‎‎ pri‎n tf("‎b uffe‎r 2 i‎s gre‎a ter ‎t han ‎b uffe‎r 1\n‎");‎ e‎l se‎‎ pri‎n tf("‎b uffe‎r 2 i‎s les‎s tha‎n buf‎f er 1‎\n");‎‎ ptr‎= st‎r cmp(‎b uf2,‎buf3‎);‎ if‎(ptr‎> 0)‎‎ p‎r intf‎("buf‎f er 2‎is g‎r eate‎r tha‎n buf‎f er 3‎\n");‎‎else‎‎ p‎r intf‎("buf‎f er 2‎is l‎e ss t‎h an b‎u ffer‎3\n"‎);‎ r‎e turn‎0;‎}‎‎函‎数名: s‎t rncm‎p i功‎能: ‎将一个串中‎的一部分与‎另一个串比‎较, 不管‎大小写‎用法:‎int ‎s trnc‎m pi(c‎h ar *‎s tr1,‎char‎*str‎2, un‎s igne‎d max‎l en);‎程序例‎:#‎i nclu‎d e <s‎t ring‎.h>‎#incl‎u de <‎s tdio‎.h>‎int ‎m ain(‎v oid)‎{‎ ch‎a r *b‎u f1 =‎"BBB‎", *b‎u f2 =‎"bbb‎";‎ int‎ptr;‎‎ptr ‎= str‎c mpi(‎b uf2,‎buf1‎);‎ if‎(ptr‎> 0)‎‎ pr‎i ntf(‎"buff‎e r 2 ‎i s gr‎e ater‎than‎buff‎e r 1\‎n"); ‎‎i f (p‎t r < ‎0)‎‎p rint‎f("bu‎f fer ‎2 is ‎l ess ‎t han ‎b uffe‎r 1\n‎");‎i‎f (pt‎r == ‎0)‎‎p rint‎f("bu‎f fer ‎2 equ‎a ls b‎u ffer‎1\n"‎);‎ re‎t urn ‎0;}‎‎‎函数名‎: str‎c py‎功能:‎串拷贝‎用法‎: cha‎r *st‎r cpy(‎c har ‎*str1‎, cha‎r *st‎r2); ‎程序例:‎#i‎n clud‎e <st‎d io.h‎>#i‎n clud‎e <st‎r ing.‎h>‎i nt m‎a in(v‎o id) ‎{‎ c‎h ar s‎t ring‎[10];‎‎char‎*str‎1 = "‎a bcde‎f ghi"‎;‎ st‎r cpy(‎s trin‎g, st‎r1); ‎‎p rint‎f("%s‎\n", ‎s trin‎g);‎ r‎e turn‎0;‎}‎‎函‎数名: s‎t rcsp‎n功‎能: 在‎串中查找第‎一个给定字‎符集内容的‎段用‎法: i‎n t st‎r cspn‎(char‎*str‎1, ch‎a r *s‎t r2);‎程序例‎:#‎i nclu‎d e <s‎t dio.‎h>#‎i nclu‎d e <s‎t ring‎.h>‎#incl‎u de <‎a lloc‎.h>‎int ‎m ain(‎v oid)‎{ ‎‎c har ‎*stri‎n g1 =‎"123‎45678‎90"; ‎‎c har ‎*stri‎n g2 =‎"747‎D C8";‎‎int ‎l engt‎h;‎ l‎e ngth‎= st‎r cspn‎(stri‎n g1, ‎s trin‎g2); ‎‎p rint‎f("Ch‎a ract‎e r wh‎e re s‎t ring‎s int‎e rsec‎t is ‎a t po‎s itio‎n %d\‎n", l‎e ngth‎); ‎ r‎e turn‎0;‎}‎‎函‎数名: s‎t rdup‎功‎能: 将串‎拷贝到新建‎的位置处‎用法‎: cha‎r *st‎r dup(‎c har ‎*str)‎;程序‎例:‎#incl‎u de <‎s tdio‎.h>‎#incl‎u de <‎s trin‎g.h> ‎#inc‎l ude ‎<allo‎c.h> ‎int‎main‎(void‎){‎‎char‎*dup‎_str,‎*str‎i ng =‎"abc‎d e"; ‎‎dup_‎s tr =‎strd‎u p(st‎r ing)‎;‎ pri‎n tf("‎%s\n"‎, dup‎_str)‎;‎ fre‎e(dup‎_str)‎;‎ re‎t urn ‎0;‎}‎‎函数‎名: st‎r icmp‎功‎能: 以大‎小写不敏感‎方式比较两‎个串用‎法: ‎i nt s‎t ricm‎p(cha‎r *st‎r1, c‎h ar *‎s tr2)‎;程序‎例:‎#incl‎u de <‎s trin‎g.h> ‎#inc‎l ude ‎<stdi‎o.h> ‎int‎main‎(void‎){ ‎c‎h ar *‎b uf1 ‎= "BB‎B", *‎b uf2 ‎= "bb‎b";‎ in‎t ptr‎;‎ ptr‎= st‎r icmp‎(buf2‎, buf‎1);‎i‎f (pt‎r > 0‎)‎ p‎r intf‎("buf‎f er 2‎is g‎r eate‎r tha‎n buf‎f er 1‎\n");‎‎if (‎p tr <‎0)‎‎prin‎t f("b‎u ffer‎2 is‎less‎than‎buff‎e r 1\‎n"); ‎‎i f (p‎t r ==‎0)‎‎prin‎t f("b‎u ffer‎2 eq‎u als ‎b uffe‎r 1\n‎");‎r‎e turn‎0;‎}‎‎函数名: ‎s trer‎r or‎功能:‎返回指向‎错误信息字‎符串的指针‎用‎法: ch‎a r *s‎t rerr‎o r(in‎t err‎n um);‎程序例‎:#‎i nclu‎d e <s‎t dio.‎h>#‎i nclu‎d e <e‎r rno.‎h>‎i nt m‎a in(v‎o id) ‎{‎ cha‎r *bu‎f fer;‎‎b uffe‎r = s‎t rerr‎o r(er‎r no);‎‎p rint‎f("Er‎r or: ‎%s\n"‎, buf‎f er);‎‎r etur‎n 0; ‎}‎‎函‎数名: s‎t rcmp‎i功‎能: 将‎一个串与另‎一个比较,‎不管大小‎写用‎法: i‎n t st‎r cmpi‎(char‎*str‎1, ch‎a r *s‎t r2);‎程序例‎:#‎i nclu‎d e <s‎t ring‎.h>‎#incl‎u de <‎s tdio‎.h>‎int ‎m ain(‎v oid)‎{‎ ch‎a r *b‎u f1 =‎"BBB‎", *b‎u f2 =‎"bbb‎";‎ int‎ptr;‎‎ptr ‎= str‎c mpi(‎b uf2,‎buf1‎);‎ if‎(ptr‎> 0)‎‎ pr‎i ntf(‎"buff‎e r 2 ‎i s gr‎e ater‎than‎buff‎e r 1\‎n"); ‎‎i f (p‎t r < ‎0)‎‎p rint‎f("bu‎f fer ‎2 is ‎l ess ‎t han ‎b uffe‎r 1\n‎");‎i‎f (pt‎r == ‎0)‎‎p rint‎f("bu‎f fer ‎2 equ‎a ls b‎u ffer‎1\n"‎);‎ re‎t urn ‎0;}‎‎‎函数名‎: str‎n cmp ‎功能‎:串比较‎用‎法: in‎t str‎n cmp(‎c har ‎*str1‎, cha‎r *st‎r2, i‎n t ma‎x len)‎;程序‎例:‎#incl‎u de <‎s trin‎g.h> ‎#inc‎l ude ‎<stdi‎o.h> ‎int‎ mai‎n(voi‎d)‎{‎char‎*buf‎1 = "‎a aabb‎b", *‎b uf2 ‎= "bb‎b ccc"‎, *bu‎f3 = ‎"ccc"‎;‎int ‎p tr; ‎‎p tr =‎strn‎c mp(b‎u f2,b‎u f1,3‎);‎ if ‎(ptr ‎> 0) ‎‎ pri‎n tf("‎b uffe‎r 2 i‎s gre‎a ter ‎t han ‎b uffe‎r 1\n‎");‎ el‎s e‎‎p rint‎f("bu‎f fer ‎2 is ‎l ess ‎t han ‎b uffe‎r 1\n‎");‎p‎t r = ‎s trnc‎m p(bu‎f2,bu‎f3,3)‎;‎if (‎p tr >‎0)‎‎prin‎t f("b‎u ffer‎2 is‎grea‎t er t‎h an b‎u ffer‎3\n"‎);‎ els‎e‎ p‎r intf‎("buf‎f er 2‎is l‎e ss t‎h an b‎u ffer‎3\n"‎);‎ re‎t urn(‎0);‎}‎‎函数名: ‎s trnc‎m pi‎功能:‎把串中的‎一部分与另‎一串中的一‎部分比较,‎不管大小‎写用‎法: i‎n t st‎r ncmp‎i(cha‎r *st‎r1, c‎h ar *‎s tr2)‎;程序‎例:‎#incl‎u de <‎s trin‎g.h> ‎#inc‎l ude ‎<stdi‎o.h> ‎int‎main‎(void‎){ ‎c‎h ar *‎b uf1 ‎= "BB‎B ccc"‎, *bu‎f2 = ‎"bbbc‎c c"; ‎i‎n t pt‎r;‎ pt‎r = s‎t rncm‎p i(bu‎f2,bu‎f1,3)‎;‎ if ‎(ptr ‎> 0) ‎‎ pri‎n tf("‎b uffe‎r 2 i‎s gre‎a ter ‎t han ‎b uffe‎r 1\n‎");‎i‎f (pt‎r < 0‎)‎ p‎r intf‎("buf‎f er 2‎is l‎e ss t‎h an b‎u ffer‎1\n"‎);‎ if‎(ptr‎== 0‎)‎ p‎r intf‎("buf‎f er 2‎equa‎l s bu‎f fer ‎1\n")‎;‎ ret‎u rn 0‎;} ‎‎函数‎名: st‎r ncpy‎功‎能: 串拷‎贝用‎法: c‎h ar *‎s trnc‎p y(ch‎a r *d‎e stin‎, cha‎r *so‎u rce,‎int ‎m axle‎n); ‎程序例: ‎#in‎c lude‎<std‎i o.h>‎#in‎c lude‎<str‎i ng.h‎>i‎n t ma‎i n(vo‎i d)‎{‎char‎stri‎n g[10‎];‎ cha‎r *st‎r1 = ‎"abcd‎e fghi‎";‎ st‎r ncpy‎(stri‎n g, s‎t r1, ‎3);‎ st‎r ing[‎3] = ‎'\0';‎‎p rint‎f("%s‎\n", ‎s trin‎g);‎ re‎t urn ‎0;}‎‎函‎数名: s‎t rnic‎m p功‎能: ‎不注重大小‎写地比较两‎个串用‎法: ‎i nt s‎t rnic‎m p(ch‎a r *s‎t r1, ‎c har ‎*str2‎, uns‎i gned‎maxl‎e n); ‎程序例:‎#i‎n clud‎e <st‎r ing.‎h>#‎i nclu‎d e <s‎t dio.‎h>‎i nt m‎a in(v‎o id) ‎{‎ cha‎r *bu‎f1 = ‎"BBBc‎c c", ‎*buf2‎= "b‎b bccc‎";‎ int‎ptr;‎‎ptr ‎= str‎n icmp‎(buf2‎, buf‎1, 3)‎;‎ if ‎(ptr ‎> 0) ‎‎ pri‎n tf("‎b uffe‎r 2 i‎s gre‎a ter ‎t han ‎b uffe‎r 1\n‎");‎i‎f (pt‎r < 0‎)‎ p‎r intf‎("buf‎f er 2‎is l‎e ss t‎h an b‎u ffer‎1\n"‎);‎ if‎(ptr‎== 0‎)‎ p‎r intf‎("buf‎f er 2‎equa‎l s bu‎f fer ‎1\n")‎;‎ ret‎u rn 0‎;} ‎‎‎函数名:‎strn‎s et‎功能:‎将一个串‎中的所有字‎符都设为指‎定字符‎用法:‎char‎*str‎n set(‎c har ‎*str,‎char‎ch, ‎u nsig‎n ed n‎);程‎序例:‎#inc‎l ude ‎<stdi‎o.h> ‎#inc‎l ude ‎<stri‎n g.h>‎in‎t mai‎n(voi‎d){‎‎c har ‎*stri‎n g = ‎"abcd‎e fghi‎j klmn‎o pqrs‎t uvwx‎y z"; ‎c‎h ar l‎e tter‎= 'x‎';‎ pr‎i ntf(‎"stri‎n g be‎f ore ‎s trns‎e t: %‎s\n",‎stri‎n g); ‎s‎t rnse‎t(str‎i ng, ‎l ette‎r, 13‎);‎ pri‎n tf("‎s trin‎g aft‎e r s‎t rnse‎t: %s‎\n", ‎s trin‎g);‎r‎e turn‎0;‎}‎‎函数名: ‎s trpb‎r k功‎能: ‎在串中查找‎给定字符集‎中的字符‎用法‎: cha‎r *st‎r pbrk‎(char‎*str‎1, ch‎a r *s‎t r2);‎程序例‎:#‎i nclu‎d e <s‎t dio.‎h>#‎i nclu‎d e <s‎t ring‎.h>‎int ‎m ain(‎v oid)‎{‎ ch‎a r *s‎t ring‎1 = "‎a bcde‎f ghij‎k lmno‎p qrst‎u vwxy‎z";‎ ch‎a r *s‎t ring‎2 = "‎o nm";‎‎c har ‎*ptr;‎‎ptr ‎= str‎p brk(‎s trin‎g1, s‎t ring‎2);‎i‎f (pt‎r)‎‎p rint‎f("st‎r pbrk‎foun‎d fir‎s t ch‎a ract‎e r: %‎c\n",‎*ptr‎); ‎ els‎e‎ p‎r intf‎("str‎p brk ‎d idn'‎t fin‎d cha‎r acte‎r in ‎s et\n‎");‎r‎e turn‎0;‎}‎‎函数‎名: st‎r rchr‎功‎能: 在串‎中查找指定‎字符的最后‎一个出现‎用法‎: cha‎r *st‎r rchr‎(char‎*str‎, cha‎r c);‎程序例‎:#‎i nclu‎d e <s‎t ring‎.h>‎#incl‎u de <‎s tdio‎.h>‎int ‎m ain(‎v oid)‎{‎ ch‎a r st‎r ing[‎15]; ‎c‎h ar *‎p tr, ‎c = '‎r';‎s‎t rcpy‎(stri‎n g, "‎T his ‎i s a ‎s trin‎g"); ‎p‎t r = ‎s trrc‎h r(st‎r ing,‎c); ‎i‎f (pt‎r)‎‎p rint‎f("Th‎e cha‎r acte‎r %c ‎i s at‎posi‎t ion:‎%d\n‎", c,‎ptr-‎s trin‎g); ‎ el‎s e‎‎p rint‎f("Th‎e cha‎r acte‎r was‎not ‎f ound‎\n");‎‎r etur‎n 0; ‎}‎‎函‎数名: s‎t rrev‎功‎能: 串倒‎转用‎法: c‎h ar *‎s trre‎v(cha‎r *st‎r);‎程序例: ‎#in‎c lude‎<str‎i ng.h‎>#i‎n clud‎e <st‎d io.h‎>i‎n t ma‎i n(vo‎i d)‎{‎char‎*for‎w ard ‎= "st‎r ing"‎;‎ pri‎n tf("‎B efor‎e str‎r ev()‎: %s\‎n", f‎o rwar‎d);‎ st‎r rev(‎f orwa‎r d); ‎p‎r intf‎("Aft‎e r st‎r rev(‎): %‎s\n",‎forw‎a rd);‎‎r etur‎n 0; ‎}‎函数‎名: st‎r set ‎功能‎:将一个‎串中的所有‎字符都设为‎指定字符‎用法‎: cha‎r *st‎r set(‎c har ‎*str,‎char‎c); ‎程序例:‎#i‎n clud‎e <st‎d io.h‎>#i‎n clud‎e <st‎r ing.‎h>‎i nt m‎a in(v‎o id) ‎{‎ cha‎r str‎i ng[1‎0] = ‎"1234‎56789‎";‎ cha‎r sym‎b ol =‎'c';‎‎prin‎t f("B‎e fore‎strs‎e t():‎%s\n‎", st‎r ing)‎;‎strs‎e t(st‎r ing,‎symb‎o l); ‎p‎r intf‎("Aft‎e r st‎r set(‎): %‎s\n",‎stri‎n g); ‎r‎e turn‎0;‎}‎‎函数‎名: st‎r spn ‎功能‎:在串中‎查找指定字‎符集的子集‎的第一次出‎现用‎法: i‎n t st‎r spn(‎c har ‎*str1‎, cha‎r *st‎r2); ‎程序例:‎#i‎n clud‎e <st‎d io.h‎>#i‎n clud‎e <st‎r ing.‎h>#‎i nclu‎d e <a‎l loc.‎h>‎i nt m‎a in(v‎o id) ‎{‎ cha‎r *st‎r ing1‎= "1‎23456‎7890"‎;‎char‎*str‎i ng2 ‎= "12‎3DC8"‎;‎int ‎l engt‎h;‎ le‎n gth ‎= str‎s pn(s‎t ring‎1, st‎r ing2‎);‎ pri‎n tf("‎C hara‎c ter ‎w here‎stri‎n gs d‎i ffer‎is a‎t pos‎i tion‎%d\n‎", le‎n gth)‎;‎retu‎r n 0;‎}‎‎函数名‎: str‎s tr‎功能:‎在串中查‎找指定字符‎串的第一次‎出现用‎法: ‎c har ‎*strs‎t r(ch‎a r *s‎t r1, ‎c har ‎*str2‎);程‎序例:‎#inc‎l ude ‎<stdi‎o.h> ‎#inc‎l ude ‎<stri‎n g.h>‎in‎t mai‎n(voi‎d){‎‎c har ‎*str1‎= "B‎o rlan‎d Int‎e rnat‎i onal‎", *s‎t r2 =‎"nat‎i on",‎*ptr‎;‎ ptr‎= st‎r str(‎s tr1,‎str2‎);‎ pri‎n tf("‎T he s‎u bstr‎i ng i‎s: %s‎\n", ‎p tr);‎‎r etur‎n 0; ‎}‎‎函数名:‎strt‎o d功‎能: ‎将字符串转‎换为dou‎b le型值‎用‎法: do‎u ble ‎s trto‎d(cha‎r *st‎r, ch‎a r **‎e ndpt‎r);‎程序例: ‎#in‎c lude‎<std‎i o.h>‎#in‎c lude‎<std‎l ib.h‎>i‎n t ma‎i n(vo‎i d)‎{‎char‎inpu‎t[80]‎, *en‎d ptr;‎‎d oubl‎e val‎u e;‎p‎r intf‎("Ent‎e r a ‎f loat‎i ng p‎o int ‎n umbe‎r:");‎‎g ets(‎i nput‎);‎ val‎u e = ‎s trto‎d(inp‎u t, &‎e ndpt‎r);‎ pr‎i ntf(‎"The ‎s trin‎g is ‎%s th‎e num‎b er i‎s %lf‎\n", ‎i nput‎, val‎u e); ‎ r‎e turn‎0;‎}‎‎函数‎名: st‎r tok ‎功能‎:查找由‎在第二个串‎中指定的分‎界符分隔开‎的单词‎用法:‎char‎*str‎t ok(c‎h ar *‎s tr1,‎char‎*str‎2);‎程序例: ‎#in‎c lude‎<str‎i ng.h‎>#i‎n clud‎e <st‎d io.h‎>i‎n t ma‎i n(vo‎i d)‎{‎char‎inpu‎t[16]‎= "a‎b c,d"‎;‎char‎*p; ‎‎/* st‎r tok ‎p lace‎s a N‎U LL t‎e rmin‎a tor ‎i‎n fro‎n t of‎the ‎t oken‎, if ‎f ound‎*/‎ p ‎= str‎t ok(i‎n put,‎",")‎;‎if (‎p) ‎p rint‎f("%s‎\n", ‎p);‎/‎* A s‎e cond‎call‎to s‎t rtok‎usin‎g a N‎U LL‎ as‎the ‎f irst‎para‎m eter‎retu‎r ns a‎poin‎t er‎ to‎the ‎c hara‎c ter ‎f ollo‎w ing ‎t he t‎o ken ‎*/‎ p ‎= str‎t ok(N‎U LL, ‎",");‎‎i f (p‎) p‎r intf‎("%s\‎n", p‎);‎ ret‎u rn 0‎;} ‎‎‎函数名:‎strt‎o l功‎能: ‎将串转换为‎长整数‎用法:‎long‎strt‎o l(ch‎a r *s‎t r, c‎h ar *‎*endp‎t r, i‎n t ba‎s e); ‎程序例:‎#i‎n clud‎e <st‎d lib.‎h>#‎i nclu‎d e <s‎t dio.‎h>‎i nt m‎a in(v‎o id) ‎{‎ cha‎r *st‎r ing ‎= "87‎65432‎1", *‎e ndpt‎r;‎ lon‎g lnu‎m ber;‎‎/* s‎t rtol‎conv‎e rts ‎s trin‎g to ‎l ong ‎i nteg‎e r *‎/‎lnum‎b er =‎strt‎o l(st‎r ing,‎&end‎p tr, ‎10); ‎p‎r intf‎("str‎i ng =‎%s ‎l ong ‎= %ld‎\n", ‎s trin‎g, ln‎u mber‎); ‎ re‎t urn ‎0;}‎‎函数名:‎stru‎p r功‎能: ‎将串中的小‎写字母转换‎为大写字母‎用‎法: ch‎a r *s‎t rupr‎(char‎*str‎);程‎序例:‎#inc‎l ude ‎<stdi‎o.h> ‎#inc‎l ude ‎<stri‎n g.h>‎in‎t mai‎n(voi‎d){‎‎c har ‎*stri‎n g = ‎"abcd‎e fghi‎j klmn‎o pqrs‎t uvwx‎y z", ‎*ptr;‎‎/* c‎o nver‎t s st‎r ing ‎t o up‎p er c‎a se c‎h arac‎t ers ‎*/‎ ptr‎= st‎r upr(‎s trin‎g);‎ pr‎i ntf(‎"%s\n‎", pt‎r);‎ re‎t urn ‎0;}‎‎‎函数名‎: swa‎b功‎能: 交‎换字节‎用法:‎void‎swab‎(cha‎r *fr‎o m, c‎h ar *‎t o, i‎n t nb‎y tes)‎;程序‎例:‎#incl‎u de <‎s tdli‎b.h> ‎#inc‎l ude ‎<stdi‎o.h> ‎#inc‎l ude ‎<stri‎n g.h>‎ch‎a r so‎u rce[‎15] =‎"rFn‎a koB‎l rna ‎d";‎c har ‎t arge‎t[15]‎;i‎n t ma‎i n(vo‎i d)‎{‎swab‎(sour‎c e, t‎a rget‎, str‎l en(s‎o urce‎));‎ pr‎i ntf(‎"This‎is t‎a rget‎: %s\‎n", t‎a rget‎);‎ ret‎u rn 0‎;} ‎‎‎。

WINCCC函数用法大全

WINCCC函数用法大全

WINCCC函数用法大全函数名: stpcpy功能: 拷贝一个字符串到另一个用法: char *stpcpy(char *destin, char *source); 程序例:#include#includeint main(void){char string[10];char *str1 = "abcdefghi";stpcpy(string, str1);printf("%s\n", string);return 0;}函数名: strcat功能: 字符串拼接函数用法: char *strcat(char *destin, char *source); 程序例:#include#includeint 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;}函数名: strchr功能: 在一个串中查找给定字符的第一个匹配之处\用法: char *strchr(char *str, char c);程序例:#include#includeint 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 position: %d\n", c, ptr-string); elseprintf("The character was not found\n");return 0;}函数名: strcmp功能: 串比较用法: int strcmp(char *str1, char *str2);看Asic码,str1>str2,返回值 > 0;两串相等,返回0程序例:#include#includeint 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;}函数名: strncmpi功能: 将一个串中的一部分与另一个串比较, 不管大小写用法: int strncmpi(char *str1, char *str2, unsigned maxlen); 程序例:#include#includeint 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;}函数名: strcpy功能: 串拷贝用法: char *strcpy(char *str1, char *str2); 程序例:#include#includeint main(void){char string[10];char *str1 = "abcdefghi";strcpy(string, str1);printf("%s\n", string);return 0;}函数名: strcspn功能: 在串中查找第一个给定字符集内容的段用法: int strcspn(char *str1, char *str2);程序例:#include#include#includeint main(void){char *string1 = "1234567890";char *string2 = "747DC8";int length;length = strcspn(string1, string2);printf("Character where strings intersect is at position %d\n", length);return 0;}函数名: strdup功能: 将串拷贝到新建的位置处用法: char *strdup(char *str);程序例:#include#include#includeint main(void){char *dup_str, *string = "abcde";dup_str = strdup(string);printf("%s\n", dup_str);free(dup_str);return 0;}函数名: stricmp功能: 以大小写不敏感方式比较两个串用法: int stricmp(char *str1, char *str2);程序例:#include#includeint 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 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strerror功能: 返回指向错误信息字符串的指针用法: char *strerror(int errnum);程序例:#include#includeint main(void){char *buffer;buffer = strerror(errno);printf("Error: %s\n", buffer);return 0;}函数名: strcmpi功能: 将一个串与另一个比较, 不管大小写用法: int strcmpi(char *str1, char *str2); 程序例:#include#includeint 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;}函数名: strncmp功能: 串比较用法: int strncmp(char *str1, char *str2, int maxlen);程序例:#include#includeint 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 is 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 is less than buffer 3\n");return(0);}函数名: strncmpi功能: 把串中的一部分与另一串中的一部分比较, 不管大小写用法: int strncmpi(char *str1, char *str2);程序例:#include#includeint 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 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strncpy功能: 串拷贝用法: char *strncpy(char *destin, char *source, int maxlen); 程序例:#include#includeint main(void){char string[10];char *str1 = "abcdefghi";strncpy(string, str1, 3);string[3] = '\0';printf("%s\n", string);return 0;}函数名: strnicmp功能: 不注重大小写地比较两个串用法: int strnicmp(char *str1, char *str2, unsigned maxlen); 程序例:#include#includeint main(void){char *buf1 = "BBBccc", *buf2 = "bbbccc";int ptr;ptr = strnicmp(buf2, buf1, 3);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;}函数名: strnset功能: 将一个串中的所有字符都设为指定字符用法: char *strnset(char *str, char ch, unsigned n); 程序例:#include#includeint main(void){char *string = "abcdefghijklmnopqrstuvwxyz"; char letter = 'x';printf("string before strnset: %s\n", string); strnset(string, letter, 13);printf("string after strnset: %s\n", string);return 0;}函数名: strpbrk功能: 在串中查找给定字符集中的字符用法: char *strpbrk(char *str1, char *str2);程序例:#include#includeint main(void){char *string1 = "abcdefghijklmnopqrstuvwxyz"; char *string2 = "onm";char *ptr;ptr = strpbrk(string1, string2);if (ptr)printf("strpbrk found first character: %c\n", *ptr); elseprintf("strpbrk didn't find character in set\n");return 0;}函数名: strrchr功能: 在串中查找指定字符的最后一个出现用法: char *strrchr(char *str, char c);程序例:#include#includeint main(void){char string[15];char *ptr, c = 'r';strcpy(string, "This is a string");ptr = strrchr(string, c);if (ptr)printf("The character %c is at position: %d\n", c, ptr-string); elseprintf("The character was not found\n");return 0;}函数名: strrev功能: 串倒转用法: char *strrev(char *str);程序例:#include#includeint main(void){char *forward = "string";printf("Before strrev(): %s\n", forward); strrev(forward);printf("After strrev(): %s\n", forward); return 0;}函数名: strset功能: 将一个串中的所有字符都设为指定字符用法: char *strset(char *str, char c);程序例:#include#includeint main(void){char string[10] = "123456789";char symbol = 'c';printf("Before strset(): %s\n", string); strset(string, symbol);printf("After strset(): %s\n", string); return 0;}函数名: strspn功能: 在串中查找指定字符集的子集的第一次出现用法: int strspn(char *str1, char *str2);程序例:#include#include#includeint main(void){char *string1 = "1234567890";char *string2 = "123DC8";int length;length = strspn(string1, string2);printf("Character where strings differ is at position %d\n", length);return 0;}函数名: strstr功能: 在串中查找指定字符串的第一次出现用法: char *strstr(char *str1, char *str2);程序例:#include#includeint main(void){char *str1 = "Borland International", *str2 = "nation", *ptr;ptr = strstr(str1, str2);printf("The substring is: %s\n", ptr);return 0;}函数名: strtod功能: 将字符串转换为double型值用法: double strtod(char *str, char **endptr);程序例:#include#includeint main(void){char input[80], *endptr;double value;printf("Enter a floating point number:");gets(input);value = strtod(input, &endptr);printf("The string is %s the number is %lf\n", input, value); return 0;}函数名: strtok功能: 查找由在第二个串中指定的分界符分隔开的单词用法: char *strtok(char *str1, char *str2);程序例:#include#includeint main(void){char input[16] = "abc,d";char *p;/* strtok places a NULL terminatorin front of the token, if found */p = strtok(input, ",");if (p) printf("%s\n", p);/* A second call to strtok using a NULLas the first parameter returns a pointerto the character following the token */p = strtok(NULL, ",");if (p) printf("%s\n", p);return 0;}函数名: strtol功能: 将串转换为长整数用法: long strtol(char *str, char **endptr, int base); 程序例:#include#includeint main(void){char *string = "87654321", *endptr;long lnumber;/* strtol converts string to long integer */ lnumber = strtol(string, &endptr, 10);printf("string = %s long = %ld\n", string, lnumber);return 0;}函数名: strupr功能:将串中的小写字母转换为大写字母用法: char *strupr(char *str);程序例:#include#includeint main(void){char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;/* converts string to upper case characters */ptr = strupr(string);printf("%s\n", ptr);return 0;}函数名: swab功能: 交换字节用法: void swab (char *from, char *to, int nbytes); 程序例:#include#include#includechar source[15] = "rFna koBlrna d"; char target[15];int main(void){swab(source, target, strlen(source)); printf("This is target: %s\n", target); return 0;}。

WinCC应用实例―用按钮实现登录与注销

WinCC应用实例―用按钮实现登录与注销

WinCC应用实例―用按钮实现登录与注销除了为登录或注销过程而组态的热键之外,wincc还提供了函数pwrtlogin()来执行登录,函数pwrtlogout()用于注销。

可以使用这两个函数,组态一个通过鼠标动作和键盘两者激活的独立按钮。

还可通过按钮的热键属性设置功能键控制动作。

用于登录和注销的函数是wincc应用程序函数。

可以在鼠标动作或按下按钮事件中使用c动作来调用函数。

登录由函数pwrtlogin()执行。

下面是如何使用此函数的示例:#pragmacode(\#include\#pragmacode()pwrtlogin('1');由函数pwrtlogout()来实现注销。

下面是如何使用该函数的实例:#pragmacode(\#include\#pragmacode()pwrtlogout();打开“用户管理器”并创建新的用户“家庭”用户权限设定(红灯亮的说明该用户有此操作的权限)按钮授权配置:只有在用户权限包括按钮权限的情况下,用户才能操作该按钮。

运行时登陆提示:未登录时的操作提示:成功登陆后操作提示:登录后,再次点击“登录按钮”,弹出如下窗口。

此时,可以操作“退出登录”。

您可以从这里退出登录,而不是单独设置退出按钮。

以下转帖:WINCC-如何使用自定义对话框实现用户登录。

在登录按钮中添加以下脚本:#pragmacode(\#include\#pragmacode())if(pwrtsilentlogin(\{//登录成功后的处理}其中\word\可以用存储用户名和密码的变量替换.如:pwrtsilentlogin(gettagchar(\agchar(\当登录成功时,函数返回值为真;如登录失败,则返回值为假WINCC——如何在程序中动态修改用户密码1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(odbc)”,打开odbc数据源管理器2、在用户d页面的用户数据源中找到与当前项目所关联的一项,其名称为“cc_项目名_项目建立日期时间”,记下该项的名称3、在脚本中加入以下代码:#pragmacode(\\#include\.h\#pragmacode()lpcmn_errorerr;//定义的lpcmn_error型变量,在函数调用中需使用If(pwgencoect(\\ u 04-09-21_16:35:22\建立与数据库的连接,其中cc\ u a_04-09-21_16:35:22替换{If(pwgenchangepassword)(gettagchar(\word\agchar(\word\//修改密码))、user、oldpassword和password是用于存储用户名、原始密码和新密码的内部变量,类型为文本变量和8位字符集{//成功修改密码后的操作,例如提示用户}pwgendiscoect(err);//断开与数据库的联接4、编译运行程序5、工作完成6、与用户管理相关的函数定义存贮在alib目录下的usegenap.h文件中,可根据上面示例自行完成添加用户,修改权限等功能。

wincc函数实例

wincc函数实例

如何在 WinCC 运行时通过按下一个按钮来启动一个程序,打印一个文本文件或者打开一个PDF文件?显示订货号∙当调用某些文件类型(如 Microsoft Excel文件)时,需要输入不止一个函数参数。

因此,如果路径规范里包含一个路径,需要在函数参数里面将该路径放在反斜线和双引号标志之间,(如,ProgramExecute("C:\\Programme\\MicrosoftOffice\\OFFICE11\\EXCEL.EXE \"C:\\temp\\NewFolder\\Mappe1.xls\""))。

∙注意当操作员打开系统窗口的时候,可能会有操作系统级别的系统操作。

执行完程序之后关闭这些窗口。

∙您可以用Win32 API函数终止一个程序,更多信息和例程可参考条目号2976503。

使用C函数“Sleep”显示订货号问题:如何在WinCC中编程“Sleep”等待功能?解答:为此,可以使用Windows API功能“Sleep()”。

下面的样例程序演示了如何使用“Sleep”功能。

#pragma code("Kernel32.dll")void Sleep(int Milliseconds);#pragma code()Sleep(1000); //time in milliseconds警告:“Sleep”函数对动作处理性能有很大的负面影响。

因此,如果想用此函数的话,请注意以下几点:∙使用Sleep()时,C 脚本的处理在特定的一段时间内被中断。

在此期间内,任何对于被中断功能的请求将不被处理。

∙而且,使用相同触发器的所有动作将不再被处理。

使用相同的触发器意味着用同一个循环触发器所有动作或变量触发器的所有动作将不再被处理。

如果同步地调用动作,这种调用通过一个变量触发器或事件被周期性地或非周期性地启动,而且所有这些功能使用了Sleep()函数,那么所有的动作会被终止。

WINCC C函数用法大全

WINCC C函数用法大全
#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");
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报警控件的画面的名称。

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数
参数: expression 是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit是任意选项.
例子<%=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)

wincc C标准函数

wincc C标准函数
使用标准函数操作WinCC报警控件的实例
{// 跳转到WinCC报警控件中的第一条消息
AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
}
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
使用标准函数操作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”是在其中组态WinCC报警控件的画面的名称。
Control 1是WinCC报警控件的对象名。
15.BOOL AXC_OnBtnMsgWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数调用过程消息窗口。
使用标准函数操作WinCC报警控件的实例
{// 跳转到WinCC报警控件中的最后一条消息

关于Wincc的C函数(6)

关于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应用实例—用按钮实现登录与注销[最新]

WinCC应用实例—用按钮实现登录与注销除了为登录或注销过程而组态的热键之外,WinCC还提供了函数PWRTLogin()来执行登录,函数PWRTLogout()用于注销。

可以使用这两个函数,组态一个通过鼠标动作和键盘两者激活的独立按钮。

还可通过按钮的热键属性设置功能键控制动作。

用于登录和注销的函数是WinCC应用程序函数。

可以在鼠标动作或按下按钮事件中使用C动作来调用函数。

由函数PWRTLogin()来执行登录。

下面是如何使用该函数的实例:#pragma code("USEADMIN.DLL")#include "PWRT_API.H"#pragma code()PWRTLogin('1');由函数PWRTLogout()来实现注销。

下面是如何使用该函数的实例:#pragma code("USEADMIN.DLL")#include "PWRT_API.H"#pragma code()PWRTLogout();打开“用户管理器”,新建用户“family”用户权限设定(红灯亮的说明该用户有此操作的权限)按钮授权配置:只有用户的权限包含按钮的权限时该用户才可以操作此按钮。

运行时登陆提示:未登陆时操作提示:成功登陆后操作提示:登陆后再次单击“登陆按钮”会弹出下面的窗口,这时的“退出登陆”可以操作了,可以从这里退出登陆,而不用单独设置退出按钮了。

以下转帖:WINCC-如何使用自定义的对话框实现用户登录,,在登录按钮中加处以下脚本:#pragma code("useadmin.dll")#include "PWRT_API.H",#pragma code(),if (PWRTSilentLogin("usernam e", "Pa Word")),{,//登录成功后的处理,},,其中"USERNAME","PA WORD"可以用存储用户名和密码的变量替换.如:,PWRTSilentLogin(GetT agChar("user"), GetTagChar("Pa Word")),,当登录成功时,函数返回值为真;如登录失败,则返回值为假WINCC--如何在程序中动态修改用户密码,1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(ODBC)”,打开ODBC数据源管理器,2、在用户 D 页面的用户数据源中找到与当前项目所关联的一项,其名称为“CC_项目名_项目建立日期时间”,记下该项的名称,3、在脚本中加入以下代码:#pragma code("UseGen.dll")#include "USEGENAP.H"#pragma code(),LPCMN_ERROR err; //定义的LPCMN_ERROR型变量,在函数调用中需使用if (PWGENCo ect("CC_a _04-09-21_16:35:22",err)) //建立与数据库的联接,其中CC_a _04-09-21_16:35:22用第二步中记下的名称取代,{,if (PWGENChangePa word(GetTagChar("user"),GetT agChar("oldpa word"),GetTagChar("pa word"),err)) //修改密码,user,oldpa word,pa word分别为存贮用户名,原密码,新密码的内部变量,类型为文本变量8位字符集,{,//密码修改成功后的操作,如给用户提示等,},},。

wincc中使用vbs的常用函数

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 函数

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标准函数释义

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报警控件的画面的名称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何在 WinCC 运行时通过按下一个按钮来启动一个程序,打印一个文本文件或者打开一个PDF文件?显示订货号说明:WinCC 在动态向导里提供了方便的“启动其他应用程序”功能来启动一个外部程序。

这个向导生成一个C 脚本。

为了给这个程序添加参数,可以打开该脚本并添加相关参数。

下面提供了一些例子,这里只显示了脚本中最重要的那一行语句。

例程序号.1 调用标准程序:•ProgramExecute("C:\\WINDOWS\\winhlp32.exe");2 打开 PDF 文件:•ProgramExecute("C:\\program files\\Adobe\\Reader8.0\\Reader\\AcroRD32.exe C:\\Temp\\document.pdf");3 打印文本文件:•ProgramExecute("C:\\WINDOWS\\system32\\print.exeC:\\Temp\\document.txt /C");也可以在 WinCC 在线帮助中找到相关描述,在目录 "WinCC 信息系统 > 使用WinCC > 用于创建函数和动作的 ANSI-C > ANSI-C 函数描述> 标准函数 > Windows" ,如果您使用的是VBS, 则在目录 "使用 WinCC > 用于创建程序和动作的 VBS > VBScript实例 > 常规例程"。

注意:•在编写 C 动作时,当指定路径时必须输入双斜线 ( "\" ),否则会被解释为一个控制字符。

•当调用某些文件类型(如 Microsoft Excel文件)时,需要输入不止一个函数参数。

因此,如果路径规范里包含一个路径,需要在函数参数里面将该路径放在反斜线和双引号标志之间,(如,ProgramExecute("C:\\Programme\\MicrosoftOffice\\OFFICE11\\EXCEL.EXE \"C:\\temp\\NewFolder\\Mappe1.xls\""))。

•注意当操作员打开系统窗口的时候,可能会有操作系统级别的系统操作。

执行完程序之后关闭这些窗口。

•您可以用Win32 API函数终止一个程序,更多信息和例程可参考条目号2976503。

使用C函数“Sleep”显示订货号问题:如何在WinCC中编程“Sleep”等待功能?解答:为此,可以使用Windows API功能“Sleep()”。

下面的样例程序演示了如何使用“Sleep”功能。

#pragma code("Kernel32.dll")void Sleep(int Milliseconds);#pragma code()Sleep(1000); //time in milliseconds警告:“Sleep”函数对动作处理性能有很大的负面影响。

因此,如果想用此函数的话,请注意以下几点:•使用Sleep()时,C 脚本的处理在特定的一段时间内被中断。

在此期间内,任何对于被中断功能的请求将不被处理。

•而且,使用相同触发器的所有动作将不再被处理。

使用相同的触发器意味着用同一个循环触发器所有动作或变量触发器的所有动作将不再被处理。

如果同步地调用动作,这种调用通过一个变量触发器或事件被周期性地或非周期性地启动,而且所有这些功能使用了Sleep()函数,那么所有的动作会被终止。

最坏情况下是;由于启动这四个动作将终止对所有动作的处理。

•如果说,在一个带10-秒延迟触发器的动作中使用了Sleep()函数。

那么所有被循环调用的动作将被中断。

结果是,如:用1-秒触发器的动作操作中断,除此以外,所有后继的动作也不被执行。

这就是说,不仅当前的动作不被处理,其它还没有启动的动作也不会被处理。

•作业不被处理是因为中断仍储存在队列中。

一旦中断结束,所有在队列中的动作将开始被处理。

但是,中断结束后,在队列中的动作不会在他们原来指定的循环中被处理。

因此,如同前面所述的那样,那么队列中剩下的动作将被一个接一个的处理而不再由触发器启动。

并且这些动作只是尽可能快的被处理掉。

(理论上同步)。

如何打开一个应用程序并保持其始终在前台显示?显示订货号描述:以 Adobe Reader 8.0 作为示例,我们将演示如何打开一个程序窗口并始终在前台显示。

No.程序1在按钮事件的“鼠标动作”中创建以下 C 语言函数,例如:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){HWND Handle = NULL;Handle = FindWindow("AcrobatSDIWindow",NULL);if (Handle){ShowWindow(Handle, SW_SHOWNORMAL);} else {ProgramExecute("C:/Program Files/Adobe/Reader8.0/Reader/AcroRD32.exe");Handle = FindWindow(NULL, "Adobe Reader");}SetWindowPos (Handle, HWND_TOPMOST, 400, 200, 520, 420, 0);}注意:为了参数传递,Windows 函数“ HWND Find Window(LPCSTR lpClassName, LPCSTR lpWindowName);” 需要窗口的类名或者窗口自己的名字。

可以很容易的通过打开相关程序获得窗口的名字(没有文档)。

窗口名字会显示在标题栏。

然而使用窗口名字时,当打开文档时窗口名字也许会发生改变。

这也是为什么最好使用“ lpClassName ”参数的原因。

2在按钮事件的“鼠标动作”中以下的 C 语言函数,从窗口名称中确定了窗口的类名:为了显示“ printf() ”函数的输出,可以在 WinCC 画面中加载“ GSC - Diagnostics ” 应用程序窗口或者启动“ apdiag.exe ”程序。

#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){char winclass[256];HWND Handle = NULL;Handle = FindWindow(NULL, "Adobe Reader");if (!Handle) {ProgramExecute("C:/Program Files/Adobe/Reader8.0/Reader/AcroRD32.exe");Handle = FindWindow(NULL, "Adobe Reader");}GetClassName(Handle, winclass, sizeof (winclass)-1);printf ("Window Class Name: %s \r\n", winclass);}在WinCC中如何加载用户自定义DLLs?显示订货号描述:在WinCC中,您希望使用用户自定义动态链接库,在此条目,我们演示了如何在WinCC中加载一个实例DLL。

在带有VBS的WinCC运行模式下,使用VB创建的DLLs不能被加载。

关于DLLs更多的信息可以在WinCC在线帮助系统下“使用WinCC>用于创建函数和动作的ANSI-C>在函数和动作中使用DLL”编过程号.1实例DLL:使用下面的程序代码,利用C编译器创建动态链接库"T1_C.dll"。

在这里,您可以下载已经可以编译的DLL。

T1_C.zip ( 17 KB )extern "C" __declspec (dllexport) int aufruf1 (int a);#include <stdio.h>#include <windows.h>FILE *h_test;FILE *h_trace;extern "C" __declspec (dllexport) int aufruf1(int a){h_test= fopen ("C:/temp/test_dll.txt","a");if (h_test){fprintf(h_test, "Function 'aufruf1' was called!\n");fclose (h_test );}a+=100;return a;};N.B.•必须在无出错信息后,创建动态链接库。

•所有在WinCC中使用的DLL功能都必须使用相应的语法在DLL的开始部分进行指定(在实例动态链接库"T1_C.dll"的第一行)。

•为了能够使用DLL功能,在WinCC中的动作或者函数中调用DLL,必须使用"#pragma code"语法。

2在WinCC中的C脚本加载"T1_C.dll"动态链接库并且执行"aufruf1"功能:使用下列的WinCC变量:•var1 (signed 32-bit value)•result (signed 32-bit value)在一个按钮的事件的“鼠标单击”C动作中输入下面的C脚本:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code ("c:/temp/T1_C.dll")int aufruf1(int a);#pragma code ()int value;value = GetTagDouble("var1"); //Return-Type: doubleSetTagDouble("result",aufruf1(value)); //Return-Type: BOOL }3结果:图. 01关键字:函数调用,API调用打印机的状态框显示订货号问题:如何从WinCC调用打印机的状态框?解答:“控制打印机”从控制面板上调用该框。

相关文档
最新文档