WinCC中使用脚本实现报警
- 格式:doc
- 大小:60.00 KB
- 文档页数:12
WinCC中使用脚本实现报警wincc 2009-01-19 14:30:04 阅读99 评论0 字号:大中小在6.2里,新建一个画面,两个按钮,一个开始播放声音(循环播放)按钮,一个停止播放按钮(没次按钮将循环播放,退出wincc同样在播放),试验成功了,就是第一次反应很慢,第一次成功报警后,之后在调用就快了。
开始播放按钮代码。
#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);#pragma code()DWORD SND_ASYNC=0x0001;DWORD SND_LOOP=0x0008;//循环播放sndPlaySoundA("d:\\致爱丽丝.wav",SND_ASYNC|SND_LOOP);停止播放按钮代码。
#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);#pragma code()DWORD SND_ASYNC=0x0001;DWORD SND_LOOP=0x0008;//停止播放sndPlaySoundA(NULL,SND_ASYNC);00000000000000000000000000000000000000000000000000积累—WinCC报警实例wincc 2009-01-19 14:33:28 阅读458 评论0 字号:大中小这是网友给的实际工程中的例子,以后做项目使用时可以仔细研究一下,再次感谢那位热心的网友,我贴出来供大家学习:在WinCC全局脚本编辑器中完成,达到了语言报警的预期效果。
具体步骤如下:A.监控系统所在项目创建文件夹Voices,所有的语音报警文件存储在该文件夹。
通过C脚本代码获取通用路径。
实现脚本如下:B.实现的具体C脚本代码如下:#include "apdefap.h"int gscAction( void ){//引用API语音函数#pragma code ("winmm.dll");VOID WINAPI PlaySoundA(char * pszSound,char * hmode,DWORD dwFlag);#pragma code();char PrjDir[_MAX_PATH+1];char ProjectDir01[_MAX_PATH+1];char ProjectDir02[_MAX_PATH+1];DM_DIRECTORY_INFO DMINFO;CMN_ERROR error;//项目公用路径//项目名称应注意大小写DMGetProjectDirectory("CDQ",PrjDir,&DMINFO,&error);//对应于wincc语音报警序号//修改对应的声音文件//总共2个声音文件strcat(ProjectDir01,DMINhnldlg_gwp 11:12:38FO.szProjectDir);strcat(ProjectDir01,"Voice\\01.wav");strcat(ProjectDir02,DMINFO.szProjectDir);strcat(ProjectDir02,"Voice\\02.wav");/ Q对应于本台计算机机器名称//如果条件满足,触发循环报警,直到给定条件消失if ( strcmp(GetTagChar("@LocalMachineName"), "CDQ") == NULL ){//对应于wincc语音报警序号//01 排焦温度:高报200(大于200触发语音报警)if ((GetTagBit("winccENplay01")==1)&&(GetTagFloat("TT4105.PV")>=200)){PlaySoundA(ProjectDir01,NULL,0);}//02 排焦温度:高报200(大于200触发语音报警)if ((GetTagBit("winccENplay02")==1)&&(GetTagFloat("TT4106.PV")>=200)){PlaySoundA(ProjectDir02,NULL,0);}return 0;}0000000000000000000000000000000000000000000000000000000000000000000 WinCC中实现在a画面设置b画面中画面窗口显示c画面在a画面的按钮中加入如下代码:SetPictureName("b.Pdl","画面窗口名称","c.PDL");如:SetPictureName("人员综合分析.Pdl","tsgzpxfx","特殊工种培训分析.PDL");000000000000000000000000000000000000000000000000000000000000000000 VBS字符串函数vbs 2009-03-24 12:03:59 阅读25 评论0 字号:大中小1. Split(expression, delimiter, count, compare)返回基于0 的一维数组,其中包含指定数目的子字符串。
expression:必选。
字符串表达式,包含子字符串和分隔符。
如果expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。
delimiter:可选。
用于标识子字符串界限的字符。
如果省略,使用空格(" ") 作为分隔符。
如果delimiter 为零长度字符串,则返回包含整个expression 字符串的单元素数组。
count:可选。
被返回的子字符串数目,-1 指示返回所有子字符串。
compare:可选。
compare 参数可以有以下值:0 执行二进制比较;1 执行文本比较;2 执行基于数据库(在此数据库中执行比较)中包含的信息的比较。
2. Replace(expression, find, replacewith, compare, count, start)返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。
expression:必选。
字符串表达式,包含要替换的子字符串。
find:必选。
被搜索的子字符串。
replacewith:必选。
用于替换的子字符串。
start:可选。
expression 中开始搜索子字符串的位置。
如果省略,默认值为1。
count:可选。
执行子字符串替换的数目。
如果省略,默认值为-1,表示进行所有可能的替换。
compare:可选。
参数值同上。
3. Mid(string, start, length)从字符串中返回指定数目的字符。
string:字符串表达式,从中返回字符。
如果string 包含Null,则返回Null。
start:string 中被提取的字符部分的开始位置。
如果start 超过了string 中字符的数目,Mid 将返回零长度字符串("")。
length:要返回的字符数。
如果省略或length 超过文本的字符数(包括start 处的字符),将返回字符串中从start 到字符串结束的所有字符。
4. LTrim(string), RTrim(string), Trim(string)返回不带前导空格(LTrim)、后续空格(RTrim) 或前导与后续空格(Trim) 的字符串副本。
string:参数是任意有效的字符串表达式。
如果string 参数中包含Null,则返回Null。
5. InStr(start, string1, string2, compare)(InstrRev(start, string1, string2, compare))返回某字符串在另一字符串中从头部出现的位置(返回某字符串在另一字符串中从结尾出现的位置)。
start:可选。
数值表达式,用于设置每次搜索的开始位置。
如果省略,将从第一个字符的位置开始搜索。
如果start 包含Null,则会出现错误。
如果已指定compare,则必须要有start 参数。
string1:必选。
接受搜索的字符串表达式。
string2:必选。
要搜索的字符串表达式。
compare:可选。
参数值同上。
6. String(number, character)返回具有指定长度的、重复字符组成的字符串。
number:返回字符串的长度。
如果number 参数包含Null,则返回Null。
character:指定字符或字符串表达式的字符代码,其中字符串表达式的第一个字符用于组成返回的字符串。
如果character 参数包含Null,则返回Null。
7. Space(number)返回由指定数目的空格组成的字符串。
number:参数为字符串中用户所需的空格数。
8. Left(string, length), Right(string, length)返回指定数目的从字符串的左边(右边)算起的字符。
string:字符串表达式,其最左边(右边)的字符被返回。
如果string 参数中包含Null,则返回Null。
length:数值表达式,指明要返回的字符数目。
如果是0,返回零长度字符串("");如果大于或等于string 参数中的字符总数,则返回整个字符串。
9. Len(string | varname)返回字符串内字符的数目,或是存储一变量所需的字节数。
string:任意有效的字符串表达式。
如果string 参数包含Null,则返回Null。
varname:任意有效的变量名。
如果varname 参数包含Null,则返回Null。
10. Asc(string)返回与字符串的第一个字母对应的ANSI 字符代码。
string:参数是任意有效的字符串表达式。
如果string 参数未包含字符,则将发生运行时错误。
11. Chr(charcode)返回与指定的ANSI 字符代码相对应的字符。
charcode:参数是可以标识字符的数字。
从0 到31 的数字表示标准的不可打印的ASCII 代码。