网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
如何实现wincc的声音报警
作者:管理员    发布于:2015-05-31 15:18:52    文字:【】【】【
 本人想做一个诸如液位报警之类的程序,即,液位高报、低报,在wincc有数据颜色变化,同时有报警声音输出,我用的是v6.2版本。请麻烦说明具体操作编程步骤,参看的资料是“报警记录”吗,请大家赐教。
 另外,程序中有一个变量,前段时间,有报警时,还有声音,最近据反映,光有画面报警,没有声音报警,请问原因
 答:可以调用WINDOW API函数PLAYSOUND(),或MESSAGEBEEP();
最简单的方法是直接调用MIDI播放器,通过变量状态修改播放器当前播放文件的名称和路径,报警产生时赋值正常名称和路径,报警消失时赋值错误的名称.
 
将需要报警的声音文件拷贝到WINCC运行项目下的horn目录下,以便供报警变量调用声音文件;
 打开WINCC编辑窗口,双击打开horn编辑窗口,选择“signal assignment”
 
组态完声音报警后,需要重新启动WINCC项目,有时还需要重启计算机才能生效.
 
 
1使用horn配置报警变量和声音
2、字节写脚本:
#include "apdefap.h"
 int gscAction( void )
 {
 #pragma code("Winmm.dll")
 void WINAPI PlaySoundA(char* pszSound ,char* hmode,DWORD dwFlag);
 #pragma code()
  DWORD A1,A2,A3,A4,A5,A6,A7;
  DWORD B1,B2,B3,B4,B5,B6,B7;
 A1=GetTagDWord("YQ_ALARM_1");
 A2=GetTagDWord("YQ_ALARM_2");
 A3=GetTagDWord("YQ_ALARM_3");
 A4=GetTagDWord("YQ_ALARM_4");
 A5=GetTagDWord("YQ_ALARM_5");
 A6=GetTagDWord("YQ_ALARM_6");
 A7=GetTagDWord("COMM_ALARM");
 B1=GetTagDWord("YQ_ALARM_SAVE_1");
 B2=GetTagDWord("YQ_ALARM_SAVE_2");
 B3=GetTagDWord("YQ_ALARM_SAVE_3");
 B4=GetTagDWord("YQ_ALARM_SAVE_4");
 B5=GetTagDWord("YQ_ALARM_SAVE_5");
 B6=GetTagDWord("YQ_ALARM_SAVE_6");
 B7=GetTagDWord("COMM_ALARM_SAVE");
 if(
  ((A1^B1)&A1)|
  ((A2^B2)&A2)|
  ((A3^B3)&A3)|
  ((A4^B4)&A4)|
  ((A5^B5)&A5)|
  ((A6^B6)&A6)|
  ((A7^B7)&A7)
 )
 SetTagBit("yq_alarm_out",1);
 if (GetTagBit("yq_alarm_out"))
 PlaySoundA("c:\\winnt\\Media\\chord.wav",NULL,1);
 SetTagDWord("YQ_ALARM_SAVE_1",A1);
 SetTagDWord("YQ_ALARM_SAVE_2",A2);
 SetTagDWord("YQ_ALARM_SAVE_3",A3);
 SetTagDWord("YQ_ALARM_SAVE_4",A4);
 SetTagDWord("YQ_ALARM_SAVE_5",A5);
 SetTagDWord("YQ_ALARM_SAVE_6",A6);
 SetTagDWord("COMM_ALARM_SAVE",A7);
 return 0;
 }
浏览 (100) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人:管理员
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们