wincc6.0-的horn声音报警的使用.doc_第1页
wincc6.0-的horn声音报警的使用.doc_第2页
wincc6.0-的horn声音报警的使用.doc_第3页
wincc6.0-的horn声音报警的使用.doc_第4页
wincc6.0-的horn声音报警的使用.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

wincc 的horn声音报警的使用 悬赏分:20 - 解决时间:2009-5-2217:14 在horn中,我用一个报警类触发一个变量,用这个变量触发声音文件,但是报警类最多定义16个,我报警有50个,怎么做啊?我又不能直接用报警变量触发声音文件,因为这样如果报警存在,是复位不掉的,声音一直响,请问应该怎么做啊,是不是我理解错了 问题补充:问题是如果用PLC的变量触发,上位机复位,你复位按钮怎么知道现在复位的报警是那个报警啊?问题ID: 36379提问者:炜 - 资深学长第3级最佳答案1.WinCCV6.0可以用Horn组态实现声音报警,不用编程。打开Horn,在Messageassignment选项页选定MessageClass为Error,定义一个Bool型的Tag;在Signalassingment选项页选定Tag为刚才定义的Bool型的Tag,在Sound中选择要播放的.wav声音文件。运行时,只要Error类别的报警触发,则Bool型的Tag置位,.wav声音循环播放;在报警控件中确认报警,.wav声音中止,也可以将Bool型的Tag复位,.wav声音中止。Horn是基本过程控制(BPC)的组件,标准安装是不会安装的。安装WinCC时选择“自定义安装”,已经安装了就选择“安装卸载组件”,组件栏中选择“选项”,右边栏子选项选择“BasicProcessControl”安装即可。 2.自定义两个内部32位变量stat1和stat1_save,然后在报警记录里面消息位使用外部变量,状态位为stat1中的位。然后在脚本中:定义两个DWord变量A1、B1连接stat1和stat1_save。#pragmacode(Winmm.dll)voidWINAPIPlaySoundA(char*pszSound,char*hmode,DWORDdwFlag);#pragmacode()A1=GetTagDWord(stat1);B1=GetTagDWord(stat1_save);if(A1B1)&A1)SetTagBit(ok_1,1);if(GetTagBit(ok_1)PlaySoundA(C:winntmusic06.wav,NULL,1);SetTagDWord(stat1_save,A1);回答者: 满 - 高级工程师第11级 2009-5-2207:45提问者对于答案的评价:多谢30天内的投票结果: 好100% (1)不好 0% (0)其他回答可以再plc中,几个报警触发一个变量让他置位。上升沿触发变量,复位按钮让他复位。然后再弄到wincc中。声音与变量连接,复位时它也能复位回答者: qingzi - 中级技术员第6级 2009-5-2121:15可以再plc中,几个报警触发一个变量让他置位。上升沿触发变量,复位按钮让他复位。然后再弄到wincc中。声音与变量连接,复位时它也能复位.首先在变量管理器的外部变量里建立一个变量例如:HMI_ALARM_RESET,地址位100.1,在画面中插入报警控件,编写脚本确认信息:#includeapdefap.hvoidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)AXC_OnBtnSinglAckn(lpszPictureName,alarm1);SetTagBit(HMI_ALARM_RESET,1);/Return-Type:BOOL/返回类型:BOOL/WINCC:TAGNAME_SECTION_START/syntax:#defineTagNameInActionDMTagName/nextTagID:1/WINCC:TAGNAME_SECTION_END/WINCC:PICNAME_SECTION_START/syntax:#definePicNameInActionPictureName/nextPicID:1/WINCC:PICNAME_SECTION_ENDWinCC 报警发声简单方法可以利用WinCC 软件自带的组件HORN来实现,具体使用方法可以通过-帮助-进行学习,十分方便,如果组件HORN自带的WAV文件没有合适的,可以自己进行添加.另一种方法通过C脚本编写,如下:全局脚本,时基为2S#includeapdefap.hintgscAction(void)#pragmacode(Winmm.dll)VOIDWINAPIPlaySoundA(char*pszSound,char*hmode,DWORDdwFlag);#pragmacode()if(GetTagByte(TAG)=1)或if(GetTagByte(TAG)500)PlaySoundA(d:ringout.wav,NULL,1);return0;用以上程序就可以实现单个变量报警,开关量为1或模似量大于500都可以报警,用户可以根据自己的情况改变以上数值,如果有多个变量可以增加多个if用户要求项目的任何一个阀门或泵出现故障后,都要有声音报警。我在S7-300中把这些故障(60多个)都集中到了一个开关量上。我点击WINCC的Horn后出现的对话框里面Messageclass下面只有3个选项:错误。系统,需要确认。系统,无确认。我应当选哪一个呢?另外,我那个开关量,例如M1.0,应当放在哪一列?是Tag吗? 1.HORN编辑器中有两个选项页,第一页指定报警类型(至于是否确认,那要看你的要求了)和报警TAG,也就是要指定TAG的报警类型;2.第二页指定报警声音,也就是报警TAG对应相应的报警声音,这个声音文件是WAV类型的;3.HORN组态起来还是很方便的。先在alarmlogging里把报警分类打开自定义的报警类属性有3项statustaglocktagacknowledgetag后两个没用在statustag里添加一个byte格式的tagA然后你可以试验一下有报警了A为0x1f确认后为0x01然后Cscript编一下须要编一下了if(GetTagByte(OS1_ALARM)&0xf0)cc_playsound(A.wav);return1;此外还需要cc_playsound()和GetProjectPath()两个函数我有现成了把这两个函数复制到项目library里编译一下脚本就行了对了声音文件*.wav放在项目sound下没有的自己建一个。你不就是想在音箱里播放报警吗?这么用最简单:#pragmacode(Winmm.dll)VOIDWINAPIPlaySoundA(char*pszSound,char*hmode,DWORDdwflag);#pragmacode()PlaySoundA(E:Projects-zrjWinccStandardzrjAlarmMp3alarm2.wav,NULL,1);/*PlaySoundA函数的说明:参数char*pszSound:指定声音文件(*.wav文件)的全路径。参数char*hmode:总为0。参数DWORDdwflag:SND_SYNC=0x0000:声音文件播放一次,该脚本一直等到播放结束SND_ASYNC=0x0001:声音文件播放一次,同时并行处理该脚本SND_NODEFAULT=0x0002:如果未找到该声音文件,则不播放默认值,而是什么也不播放。SND_LOOP=0x0008:重复该声音文件直到下个PlaySoundA调用(只能通过0x0001)=总是指定0x0009。这些参数也可通过逐位逻辑或进行组合(如:SND_ASYNC|SND_LOOP)实现步骤:1、先建立个内部二进制变量,如:Horn_Alarm2、打开Horn,具体配置如图3、点击完成,搞定! 汽化冷去操作画面增加声音报警的方法为了保证春节期间的稳定运行,现在汽化冷却的操作画面的声音报警已经增加完毕。由于原来的声音报警画面没有备份,这次重新添加,发现存在几个要点需要注意,增加声音报警的步骤总结如下:1、先确认计算机上安装的声卡驱动是否正常,确认方法,可以通过直接播放计算机内的音频文件,是否能正常播放。另外在声音和音频设备属性卡里是否有默认设备图1声音和音频设备属性页2、汽化冷却系统的操作画面是基于WINCC软件制作的,在WINCC上增加声音报警通常有两种方法:一种是通过C语言编程的方式在WINCC里的全局脚本中增加相应的程序段,实现声音报警的功能;另一种是通过wincc中的HORN声音报警控件实现报警,由于在安装程序时没有安装相关的控件软件,所以我选择了第一种用C语言编译的方法来实现。3、在WINCC项目界面中找到全局脚本选项,有C-Editor和VBS-Editor两个选项卡,如图2,打开C-Editor,本次要进行做的声音报警,可以通过动作中的全局动作来实现,新建一个全局动作,如图3。图2WINCC项目主界面图3全局动作编辑界面4,在程序编辑界面中,按照要求编辑入逻辑程序。编辑结束以后点击编译键,如果编译成果会在下边提示“0warning,0error”,然后点击保存。保存为声音报警.pas,附录1为现在最新编辑的程序。在编辑程序过程中创建了一个WINCC内部变量,用来控制声音报警开启和暂停,用于画面上操作用。5、编辑完成后,还要设定触发方式和周期,单击编译键左边的信息和触发键,会打开一个相关的对话框,点击到触发页。分为周期触发和变量触发,两种方法都可以,这里我选用的是周期触发,设定周期为5秒,如图4所示。图4触发器编辑界面6、由于使用的全局脚本在WINCC软件中为独立的系统,所以需要在WINCC里计算机属性中的启动选项中将全局脚本系统选中,然后再重新激活运行。这样声音报警就能投入运行了。7、在操作画面上创建一个控件,连接到已经创建的在全局动作中使用的内部变量上,这样单击控件按钮就可以实现开启和暂停功能的效果,如图5。图5开启功能和关闭功能时的显示以上就是增加声音报警方法,另外,需要一个准备好的音频文件,放在相应的文件夹中,以便于调用。具体使用是否合适,还需要进一步调试。附录:使用中的程序#includeapdefap.hintgscAction(void)#pragmacode(winmm.dll)BOOLPlaySound(LPCTSTRlpszSound,HMODULEhmodule,DWORDdwsound);BOOLss=(GetTagBit(S11.8)=1|GetTagBit(S12.8)=1|GetTagBit(S11.7)=1|GetTagBit(S11.6)=1|GetTagB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论