WINCC7.0组态报警声音演示过程
- 格式:doc
- 大小:4.35 MB
- 文档页数:12
wincc7.0中如何用上升沿触发音频输出,起到报警的作用想在工控机上装音响,设备停机就报警,这个该如何做?问题补充:不想用报警控件来触发让音响报警,除了这个之外还有别的办法吗?重点是在软件上如何编写指令使连接在工控机上的音响发声。
最佳答案其实不用horn报警器也是做出来。
上次试了试完全没有问题。
用wincc的全局脚本,做语音报警,1:用周期性1s做触发器2:当变量”报警”置1时,语音报警一直持续。
当变量”报警”置0时,语音报警停止继续。
程序如下:#include”apdefap.h”intgscaction(void){#pragmacode(“winmm.dll”)voidwinapiplaysounda(char*pszsound,char*hmode,dworddwfla g);#pragmacode()if(gattagbit(“报警”))playsounda(“c:\winnt.400\media\tada.wav”,null,0x1);return0;}注意:1:音乐地址为c:\winnt.400\media\tada.wav。
为\。
是不行的。
2:0x1也可以写成0x8.playsounda函数的说明:参数char*pszsound:指定声音文件(*.wav文件)的全路径。
参数char*hmode:总为0。
参数dworddwflag:snd_sync=0x0000:声音文件播放一次,该脚本一直等到播放结束snd_async=0x0001:声音文件播放一次,同时并行处理该脚本snd_nodefault=0x0002:如果未找到该声音文件,则不播放默认值,而是什么也不播放。
snd_loop=0x0008:重复该声音文件直到下个playsounda 调用(只能通过0x0001)=>总是指定0x0009。
#include "apdefap.h"int gscAction( void ){#pragma code("Winmm.dll")VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag);#pragma code( )if (GetTagByte("TI101")>100){PlaySoundA("C:\\\\Program Files\\\\Windows NT\\\\Pinball\\\\SOUND36.WAV",NULL,1);} return 0;}报警可以用以下两种实现方法:1、建一个全局脚本,时基为2S#include "apdefap.h"int gscAction( void ){#pragma code("Winmm.dll")VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag);#pragma code( )if (GetTagByte("TAG")==1) 或if (GetTagByte("TAG")>500) {PlaySoundA("d:\\ringout.wav",NULL,1);}return 0;}用以上程序就可以实现单个变量报警,开关量为1或模似量大于500都可以报警,用户可以根据自己的情况改变以上数值,如果有多个变量可以增加多个if .2、通过报警记录,先在报警记录中组态好报警记录建一个全局脚本,时基为2S#include "apdefap.h"int gscAction( void ){MSG_RTDATA_STRUCT mRT;int i;char* pszToken;//Now is my code#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);#pragma code()DWORD SND_ASYNC=0x0001;DWORD SND_LOOP=0x0008;DWORD alarmsum,alarmunack;LPCMN_ERROR errorunack,errorsum;#pragma code("msrtcli.dll")#pragma code()LPDWORD lpdwServiceID;MSG_SERVICE_NOTIFY_PROC lpfnNotifyProc;LPMSG_FILTER_STRUCT lpMsgFilter;DWORD dwNotifyMask;LPVOID lpvUser;LPCMN_ERROR lpError;BOOL n1;n1=MSRTGetMsgQuit(&alarmunack,errorunack);SetTagDWord("number",alarmunack);MSRTGetMsgActual(&alarmsum,errorsum);SetTagDWord("sum",alarmsum);if (alarmsum==0)sndPlaySoundA(NULL,SND_ASYNC);else{if (alarmunack>0)sndPlaySoundA("C:\\Program Files\\WindowsNT\\Pinball\\SOUND36.WAV",SND_ASYNC|SND_LOOP);elsesndPlaySoundA(NULL,SND_ASYNC);//sndPlaySoundA("C:\\windows\\media\\office97\\laser.wav",SND_ASYNC|SND_LOOP); }return 1;}这个可以实现报警记录中只要有报警发生,那么就触发声音报警。
带你全面认识一下WinCC报警消息组态界面WinCC通过报警给操作员提供了有关过程故障和错误的信息。
它们有助于尽早检测重要情况和避免停机时间。
在WinCC中可以用画面和声音的形式报告、记录消息事件:•画面:在画面中以'文本'的形式,显示报警信息;•声音:以'声音'的形式,提示报警。
也可以以'语音'的形式播报报警信息,语音需要提前录制好的。
在中双击'报警记录',即可打开'消息'的组态界面,如图1所示。
所有对'消息'的组态工作都在这个界面中实现。
在学习'消息'组态之前,我们必须对消息组态界面做一个系统的认识。
消息组态分为4个大的内容:(1)消息块;(2)消息类型;(3)组消息;(4)归档组态,,如图2所示。
一、消息块'消息块'是指一条消息中所包含的内容。
其在运行系统中是以表格的形式显示的。
在【消息块】中可以组态我们要在画面中显示的内容,如:编号、时间日期、消息文本、过程值等。
【消息块】中又分为3个子类:1、系统块。
即系统提供的信息,它包括由消息系统提供的系统数据,如日期、时间、消息ID号等。
系统还提供了其他系统数据,可根据需要自行添加,如图3所示。
2、用户文本块。
由用户自由定义,提供消息的文本信息。
最多可添加10个用户文本块。
3、过程值块。
当某个消息产生时,可记录当前时刻的过程值。
最多可记录10个过程值。
二、消息类别对消息进行分类,不同类别的消息可以设置成不同的属性。
WinCC中可将消息分成16个类别,每个类别的消息下还可以定义16种消息类型。
系统预定义了3种消息类别。
消息类别和消息类型用于划分消息的级别。
一般,中小型的项目,采用系统默认的消息类别就足够了。
三、组消息把消息分组,以对整组的消息进行统一的操作,如对某一组的消息同时进行'消息确认'。
单个消息可以组合成两种不同的组消息(如图7所示):创建一个新的消息类别时,也从包含的所有消息中创建相关的组消息。
Wincc软件报警声音的触发和确认
通过wincc内部变量的Horn变量组,报警记录,报警器,实现触发报警声音
第一步:打开wincc变量管理器,选中内部变量,在Horn变量组新建几个内部变量,本例中新建HORN_ALM,数据格式定无符号的值,8位,16位,32位都可以,本例中定义为32位,新建HORN1,HORN2,HORN3,数据格式为二进制变量
第二步:打开报警记录,在消息下面可以新建消息,本例中创建了三个消息组,按报警的等级创建了一级报警,二级报警,三级报警,等级的划分看项目上是否有要求,没有就不用划分
第三步:将HORN_ALM变量在添加到三个消息组中,消息位不能重复,HORN_ALM定位32位值,消息位可以从0-31中任意选择
第四步:打开报警器,在消息分配中将三个报警等级选上,消息类别对应的变量为新建内部变量的HORN1,HORN2,HORN3
第五步:在信号分配中,组态HORN1,HORN2,HORN3,对应报警声音文件
总共五步步骤可以实现通过Horn变量组,报警记录,报警器,触发报警声音
报警声音的确认:使用wincc AlarmControl报警控件,当报警消息到达后,会出现报警栏中,通过报警栏上的单个确认按钮或全部确认按钮确认到达的报警条目,当报警消息确认后报警声音停止。
一、使用Horn报警器WINCC软件“帮助”中有报警器用法的详细说明Horn有关的系统变量@RestartHorn@Horn TriggeringSingalsActive 禁止或者运行播放声音文件@HornSettingTagsActive@HornReset 可以用来确认报警,停止报警声音开始组态创建两个信号变量在图形编辑器下报警记录下完成打开报警器组态消息分配组态信号分配(需要提前下载WAW格式的报警声音文件)二、用C脚本播放WAV文件组态:启动按钮字体-文本-启动效果-全局颜色方案-否颜色-背景颜色-绿色停止按钮字体-文本-停止效果-全局颜色方案-否颜色-背景颜色-红色为了监视程序运行,要插入智能对象组态启动按钮C动作#include”apdefap.h”#pragma code(”Winmm.dll”)VOID WINAPI PlaySoundA(char*pszSound,char*hmode,DWORD dwflag); #pragma code()printf(“Start\r\n”);PlaySoundA(“C:\\WINDOWS\\Media\\ALARM8.WAV”,NULL,0);printf(“End\r\n”);组态启动按钮的SetTagBit组态停止按钮的SetTagBit三、用C脚本触发PC蜂鸣器#include”apdefap.h”#pragma code(”Kernel32.dll”)BOOL Beep(DWORD dwFreq,DWORD dwDuration); #pragma code()BOOL Beep(1000,100);。
WinCC组态报警作业指导书一、打开报警记录编辑器1、在WinCC项目管理器左边的浏览窗口中,右击“报警记录”组件。
“报警记录”2、从快捷菜单中选择“打开”菜单项,打开报警记录编辑器,如下图所示浏览窗口数据窗口表格窗口二、启动报警记录的系统向导系统向导可以自动生成报警,简化了建立报警系统的方法。
1、单击报警记录编辑器的主菜单“文件”>“选择向导”,启动报警的系统向导。
2、打开“选择向导”对话框中双击“系统向导”3、打开“系统向导”对话框,单击“下一步”4、在“系统向导:选择消息块”对话框中,选中“系统块”中的“日期,时间,编号”,选中“用户文本块”中的“消息文本,错误位置”,对于“过程值块”选中“无”。
选择完毕,单击“下一步”。
5、打开“系统向导:预设值类别”对话框,选中“带有报警,故障和警告的类别错误(进入的确认)”,单击“下一步”。
6、最后出现的一个对话框是对前面所做选择的描述,如果想做修改可单击“返回”按钮,否则单击“完成”按钮。
三、组态报警消息和报警消息文本在这一步中,将在报警记录编辑器的表格窗口中组态消息。
1、更改用户文本块总“消息文本”和“错误点”的文本长度1)在报警记录编辑器的浏览窗口中单击“消息块”前面的图标2)在浏览窗口中单击“用户文本块”3)在数据窗口中右击“消息文本”4)从快捷菜单中选择“属性”菜单项5)打开“消息块”对话框,更改“长度”文本框中的值。
单击“确定”按钮,关闭对话框。
6)在数据窗口中右击“错误点”7)在打开的对话框中更改“长度”文本框中的值。
单击“确定”按钮,关闭对话框。
2、组态第一个报警消息1)在表格窗口的第一行,双击“消息变量”列2)在打开的对话框中选择变量,并单击“确定”按钮3)双击表格窗口第一行中的“消息位”列4)输入值并回车5)点击表格窗口的水平滚动条直到“消息文本”出现在窗口中,双击第一行的“消息文本”列,输入文本内容6)双击第一行的“错误点”列,输入文本内容3、组态第二个报警消息1)在表格窗口的第一列,右击数字12)从快捷菜单中选择“添加新行”菜单项3)双击第二行后重复组态第一个报警消息的步骤四、组态报警消息的颜色在运行系统各种个,不同各类型消息的不同状态可以表示为不同的颜色,以便快速地识别出报警的类型和状态。
2017年8月16日15:05:27如何在WINCC 中做单个报警触发对应单个报警声音如某个电机故障报警,就发出“某某电机故障报警”起到警示作用 一、首先安装一个文字转语音的软件!并打开软件!二、在软件里输入报警内容,如“P001收尘风机电机故障”三、点击生成MP3四、指定存放文件的路径,最好是存放在所要实现该功能的WINCC项目在网上邻居上的路径下的Horn下,这样到后面的组态就方便很多。
在WINCC项目在本电脑被正确打开后就会在网上邻居存放有WINCC项目和路径。
以上就是刚刚生成的报警声音所在的路径的报警声音文件,但它们格式只是MP3格式,不是WINCC系统所要求的WAV 格式,所以要下载的格式转换软件,将刚刚生成的MP3格式转换成WAV格式才行。
利用这个格式转换软件将MP3转换成WAV格式,再次将文件存放在刚刚的路径中来。
方便后面的组态。
打开WINCC项目,新建一个二进制变量内部变量Error打开WINCC报警器组件在报警器组态的对话框中的消息分配中设置如上图所示内容,意思就是当报警记录中的错误类别有报警触发时就置位刚刚新建的内部变量Error。
然后在报警器组态的信息分配中组态最关键的内容4的意思即使有很多报警同时触发时,也只能有一个声音报警响起,5组态触发声音报警的变量,6组态触发声音报警变量所对应的报警声音。
此处选择触发的报警变量此处选择报警触发变量所对应的报警声音至此报警器组态工作完成。
五、然后在WINCC项目的主画面组态能打开和关闭报警声音的按钮功能所用的报警的内部系统自动的变量如下:其内部变量对应的功能如上图所示它在WINCC项目的位置如下:六、在WINCC主画面中新建一个打开声音报警功能的按钮组件:它的属性如下:几何属性颜色属性样式属性字体属性主要是在文本中输入“报警音关”内容闪烁属性如下不开闪烁功能其它功能如下主要是想组态当报警声音被关闭的时候显示该按钮填充属性如下画面属性如下效果属性如下然后就在事件选项中组态意思就是当在按钮组件上释放左键时就将常数1赋值给@HornTriggeringSignalsActive,打开声音报警功能七、再新建一个取消声音报警功能的按钮组件该按钮的属性如下几何属性如下颜色属性如下:样式属性如下:字体属性如下:关键是在文本里输入“报警音开”字体闪烁属性如下:闪烁功能不开其它属性如下:意思是当报警声音开时显示该按钮组件填充属性如下:画面属性如下:效果属性如下:下面组态事件意思当鼠标在该按钮有鼠标动作时有如下C动作1、会弹出一个对话框,让你选择是进行取消报警声音的操作,并进行操作提示“请确认是否取消报警声音”2、同时赋值0给@HornTriggeringSignalsActive和@HornRese完成后将两个按钮重叠在一起并在画面中合适的位置上!C脚本如下:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_END// WINCC:PICNAME_SECTION_START// syntax: #define PicNameInAction "PictureName"// next PicID : 1if( MessageBox(NULL,"请确认是取消报警声音","报警声音取消操作提示!!",MB_OKCANCEL )== IDOK){SetTagBitWait("@HornTriggeringSignalsActive",0); //Return-Type: BOOLSetTagBitWait("@HornReset",0); //Return-Type: BOOL}// WINCC:PICNAME_SECTION_END //Return-Type: BOOL// WINCC:PICNAME_SECTION_START// syntax: #define PicNameInAction "PictureName"// next PicID : 1// WINCC:PICNAME_SECTION_END}至此整个组态工作完成以上的这种消除报警声音的方法只要取消报警声音按钮按下,即使系统再有报警出现也不会发出报警,除非再次点击“报警音开”打开报警音功能,此时若再有报警出现才会有报警声音出现。
WINCC 声音报警设置办法
1、建立一个WINCC的内部变量,例如建立内部变量―――state。
2、修改“全局脚本”条目下的“标准函数”条目下的“Alarm”目录下的
“GmsgFunction”这个WINCC自带函数的内容,在其中添加―――
“ SetTagBit(“state”,1 ); ”这条语句并保存退出。
3、组态“报警记录”,在“模拟量报警”目录下添加需要报警的变量消息行,右
击该消息行,打开该变量消息行的“属性”对话框,把“触发一动作”前的选项框选中,保存。
4、组态“全局脚本”条目下的“全局动作”,建立一个用于发出声音的全局动作
脚本(例如叫“报警.PAS”,可以复制别的现有项目中的现成脚本来修改得到),在该脚本里面主要是编写有根据“state”变量的“1”或“0”状态来执行一条播发声音文件的语句;再建立一个用于“自动定时消除声音”的全局脚本(例如叫“消音.PAS”),在该脚本里面主要是有使变量“state”进行复位(置“0”)的语句。
一、使用Horn报警器
WINCC软件“帮助”中有报警器用法的详细说明
Horn有关的系统变量
@RestartHorn
@Horn TriggeringSingalsActive 禁止或者运行播放声音文件@HornSettingTagsActive
@HornReset 可以用来确认报警,停止报警声音
开始组态
创建两个信号变量
在图形编辑器下报警记录下完成
打开报警器组态消息分配
组态信号分配(需要提前下载WAW格式的报警声音文件)
二、用C脚本播放WAV文件
组态:启动按钮字体-文本-启动效果-全局颜色方案-否颜色-背景颜色-绿色停止按钮字体-文本-停止效果-全局颜色方案-否颜色-背景颜色-红色为了监视程序运行,要插入智能对象
组态启动按钮C动作
#include”apdefap.h”
#pragma code(”Winmm.dll”)
VOID WINAPI PlaySoundA(char*pszSound,char*hmode,DWORD dwflag); #pragma code()
printf(“Start\r\n”);
PlaySoundA(“C:\\WINDOWS\\Media\\ALARM8.WAV”,NULL,0);
printf(“End\r\n”);
组态启动按钮的SetTagBit
组态停止按钮的SetTagBit
三、用C脚本触发PC蜂鸣器
#include”apdefap.h”
#pragma code(”Kernel32.dll”)
BOOL Beep(DWORD dwFreq,DWORD dwDuration);
#pragma code()
BOOL Beep(1000,100);
(资料素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)。