收藏 分销(赏)

WinCC语音报警说明.doc

上传人:天**** 文档编号:2670653 上传时间:2024-06-04 格式:DOC 页数:16 大小:1.10MB 下载积分:8 金币
下载 相关 举报
WinCC语音报警说明.doc_第1页
第1页 / 共16页
WinCC语音报警说明.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
(完整版)WinCC语音报警说明 WinCC语音报警说明 1、 需要建立一个语音数据库,用来保存需报警的语音文件名,打开SQL的“Enterprise Manager”,如下图所示: 新建一个数据库,名为“comm”,如下图所示: 2、修改comm数据库的属性,将Model改为Simple,勾选Auto Shrink,如下所示: 3、新建一张数据表sound,如下图所示: 表的结构如下所示: 保存,名为“sound”,如下图所示: 关闭Sql。 4、打开 Windows的控制面板 —〉 管理工具 -〉 数据源(ODBC),如下图所示: 点击“添加"按钮: 选中SQL Server,点击“完成"。 在名称中输入comm,在服务器中选择本机的WinCC,然后点击“下一步”: 默认选择,点击“下一步”: 选中“更改默认的数据库为",选择comm数据库,点击“下一步”: 默认选择,点击“完成”: 点击“测试数据源按钮”: 出现“测试成功!”时,说明ODBC数据源添加OK,点击“确定”即可: 5、 打开WinCC的报警记录,将需要报警的项选中“触发一个动作”,如果想让变量在下降沿报警,就还要选中“是在下降沿创建”,如下图所示: 6、打开WinCC的全局脚本,添加一个项目函数AddSoundToDatabase,代码如下: void AddSoundToDatabase(char* DatabaseName,char* TableName,char* Text) { __object *db, *rs; char sql[500]; db = __object_create("ADODB。Connection”); rs = __object_create("ADODB.Recordset"); if(db!=NULL) { sprintf(sql,"DSN=%s”,DatabaseName); db->Open(sql); if(db—>State!=0) { sprintf(sql,”INSERT %s VALUES (1,’%s')",TableName,Text); rs—>Open(sql,db,1); } } db-〉Close(); __object_delete(rs); __object_delete(db); } 如下图所示: 7、 当变量“aaa"由0变成1时,就会触发一个动作,执行WinCC内部的GMsgFunction,我们需要修改这个脚本.打开WinCC的全局脚本,如下图所示: 然后将下面的GMsgFunction的代码覆盖原代码: #include ”apdefap。h" BOOL GMsgFunction( char* pszMsgData) { MSG_RTDATA_STRUCT mRT; char SQLString[128]; memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) ); if( pszMsgData != NULL ) { sscanf( pszMsgData, ”%ld,%ld", &mRT.dwMsgNr, // Meldungsnummer &mRT。dwMsgState); // Status MSG_STATE_COME, .。_GO, .._QUIT, 。._QUIT_SYSTEM // &mRT.stMsgTime。wYear, // Tag // &mRT.stMsgTime。wMonth, // Monat // &mRT。stMsgTime。wDay, // Jahr // &mRT。stMsgTime。wHour, // Stunde // &mRT.stMsgTime。wMinute, // Minute // &mRT.stMsgTime.wSecond, // Sekunde // &mRT.stMsgTime.wMilliseconds, // Millisekunde // &mRT.dwTimeDiff, // Zeitdauer der anstehenden Meldung // &mRT.dwCounter, // Interner Meldungsz?hler // &mRT.dwFlags, // Flags( intern ) // &mRT。wPValueUsed, // &mRT.wTextValueUsed // Prozesswerte lesen, falls gew????????????????????????nscht } if(mRT.dwMsgState==1) { sprintf(SQLString,”d:\\test\\sound\\%d。wav”,mRT.dwMsgNr); AddSoundToDatabase("comm",”sound”,SQLString); SetVisible(”","Alarm_push",1); } return 1; } 修改后的GMsgFunction如下图所示: 其中选中的文本就是语音文件所在的目录,可根据需要进行修改,图中所示语音文件所在的目标为d:\test\sound. 8、将Playwav.exe复制至d:\test目录下,语音文件1.wav复制至d:\test\sound目录下: 9、打开WinCC的计算机属性: 添加D:\test\playwav.exe至“附加的任务/应用程序”: 点击“确定”即可,让Playwav。exe随WinCC自动启动. 10、运行WinCC。当变量“aaa”由0变成1时,就会自动播放1。wav两遍。 程序原理如下: 当变量“aaa"由0变成1时,就会自动触发动作“GMsgFunction”,此动作将会在comm数据库中的sound表中添加一条记录,记录的格式为“d:\test\sound\1。wav",Playwav。exe就会不停的查询此数据库,当发现有记录时,就会将记录读出,按照记录中的路径播放语音文件,在播放了两遍之后,将此记录删除. 16
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服