WinCC -- 组态报警和消息 -- 声音报警和消息
WINCC实现声音报警
在WINCC中实现声音报警2009-02-06 20:13先在alarm logging里把报警分类打开自定义的报警类属性有3项 "status tag" "lock tag" "acknowledge tag" 后两个没用在status tag里添加一个byte格式的tag "A"然后你可以试验一下有报警了A为0x1f 确认后为0x01然后C s cript编一下须要编一下了if(GetTagByte("OS1_ALARM") &0xf0){cc_playsound("A.wav");return 1;}此外还需要cc_playsound()和GetProjectPath()两个函数我有现成了把这两个函数复制到项目library里编译一下脚本就行了对了声音文件*.wav放在项目sound下没有的自己建一个//Project Function GetProjectPath()BOOL GetProjectPath(char* lpstrProjectPath){BOOL bRet = FALSE;char szProjectFile[_MAX_PATH+1];char* psz = NULL;CMN_ERROR Error;bRet = DMGetRuntimeProject(szProjectFile,_MAX_PATH+1,&Error);if (bRet == FALSE){return FALSE;}psz = strrchr(szProjectFile,'\');if (psz ==NULL){return FALSE;}*(psz+1) = 0;strcpy(lpstrProjectPath, szProjectFile);return TRUE;}//Project Function CC_PlaySound()#include "apdefap.h"void cc_playsound(char* lpszSoundFile){#pragma code("winmm.dll")BOOL PlaySound(LPCTSTR lpszSound, HMODULE hModule,DWORD dwSound); #define SND_FILENAME 0x00020000L#define SND_ASYNC 0x0001#define SND_LOOP 0x0008#pragma code()BOOL bRet = FALSE;char szProjectPath[_MAX_PATH];char szSoundPath[_MAX_PATH];if (lpszSoundFile == NULL){bRet=PlaySound(NULL,NULL,SND_FILENAME|SND_ASYNC);}else{GetProjectPath(szProjectPath);sprintf(szSoundPath,"%sSound%s", szProjectPath, lpszSoundFile); bRet=PlaySound(szSoundPath,NULL,SND_FILENAME|SND_ASYNC);}if (bRet == FALSE){MessageBeep((WORD)-1);}}报警可以用以下两种实现方法: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: ingout.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 FilesWindowsNTPinballSOUND36.WAV",SND_ASYNC|SND_LOOP);elsesndPlaySoundA(NULL,SND_ASYNC);//sndPlaySoundA("C:windowsmediaoffice97laser.wav",SND_ASYNC|SND_LOOP) ;}return 1;}这个可以实现报警记录中只要有报警发生,那么就触发声音报警。
WinCC实现声音报警的方法
#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声音报警实现方法
else
sndPlaySoundA(NULL,SND_ASYNC);
//sndPlaySoundA("C:\\windows\\media\\office97\\laser.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;
DWORD alarmsum,alarmunack;
#pragma code( )
if (GetTagByte("TAG")==1) 或 if (GetTagByte("TAG")>500)
{PlaySoundA("d:\\ringout.wav",NULL,1);}
return 0;
}
用以上程序就可以实现单个变量报警,开关量为1或模似量大于500都可以报警,用户可以根据自己的情况改变以上数值,如果有多个变量可以增加多个if .
MSRTGetMsgActual(&alarmsum,errorsum);
SetTagDWord("sum",alarmsum);
if (alarmsum==0)
sndPlaySoundA(NULL,SND_ASYNC);
else
WINCC 声音报警设置办法
WINCC 声音报警设置办法
1、建立一个WINCC的内部变量,例如建立内部变量―――state。
2、修改“全局脚本”条目下的“标准函数”条目下的“Alarm”目录下的
“GmsgFunction”这个WINCC自带函数的内容,在其中添加―――
“ SetTagBit(“state”,1 ); ”这条语句并保存退出。
3、组态“报警记录”,在“模拟量报警”目录下添加需要报警的变量消息行,右
击该消息行,打开该变量消息行的“属性”对话框,把“触发一动作”前的选项框选中,保存。
4、组态“全局脚本”条目下的“全局动作”,建立一个用于发出声音的全局动作
脚本(例如叫“报警.PAS”,可以复制别的现有项目中的现成脚本来修改得到),在该脚本里面主要是编写有根据“state”变量的“1”或“0”状态来执行一条播发声音文件的语句;再建立一个用于“自动定时消除声音”的全局脚本(例如叫“消音.PAS”),在该脚本里面主要是有使变量“state”进行复位(置“0”)的语句。
WinCC实现声音报警的方法
//next PidD:1
//WlNCCFICNAMEeSECTIONeEND
^include,⅛pdefap h"
^PrSgmaCOde("Winmrn.dll,,)
VOlD WlNAPl PleySOUndA (CharfcPSZSOUnd,ChGL广hmode, DWORD dυvflag);
#Pragma code(
PlaySOUndA(
}
PlaySOUndA ι⅛数的说啊=
姿数char* PSZSoUndt
指定声音文件r.wav ±ftj的全S⅛径G
篆武CharThmodθf为NLILL.
参数DWoRD Clvxflag:
SND,SYNC = OXOOOOf津首文件播取一次J诙脚本一宜尊到播歆结朿
^pragmaOPtiOn(mbcs)
//WIN ∞:TAGNAME-BSECTlONeSTART
// syntax: #define TQgNameInAetion "DMTagName11
//nextTQglD:1
//WIN CC:TAGNAME_S ECTIONLEND
/∕WIN∞PICNAME-SECTION-START
在WirlCC中实现声音报警功能
内容介绍;
1、C脚本播放WaV文件
2、C脚本触发Pe蜂鸣器
3、VBS脚本调用媒体播放器
3、报警器HORN的使用
C脚本播放WaV文杵
ffinclude "aρdefap.h
VOid OnCliCk(Char
ffpragma COde ('Winmrτι.dll
WinCC flexible ES -- 创建HMI组态 -- 组态报警和消息
z Counts up one for each alarm message that arrives z Counts down one for each alarm message that goes z Is zero when all the errors messages arrived have gone again.
/CN/llisapi.dll/21976869?func=ll&objId=21976... 2009-12-1
Siemens - Industry Automation and Drive Technologies - Service& Support - Automa... Page 4 of 35
The message indicator has two states:
z Flashing: as soon as at least one unacknowledged message is present. z Static: when all alarm messages have been acknowledged, but at least one of them has not yet gone.
显示订货号
描述: 如下 FAQ 描述了如何直接在面板上显示变频器的错误消息和报警。
请参照附件1的PDF文件中的说明。
附件1: 29522676_Fehlermeldungen_Warnungen_darstellen_e.pdf ( 1176 KB ) 附件和下载:
1. 错误列表参见条目 ID: 31906972.
Siemens - Industry Automation and Drive Technologies - Service& Support - Automa... Page 2 of 35
wincc6.0-的horn声音报警的使用
wincc 的horn声音报警的使用•悬赏分:20•- 解决时间:2009-5-22 17:14在horn中,我用一个报警类触发一个变量,用这个变量触发声音文件,但是报警类最多定义16个,我报警有50个,怎么做啊?我又不能直接用报警变量触发声音文件,因为这样如果报警存在,是复位不掉的,声音一直响,请问应该怎么做啊,是不是我理解错了问题补充:问题是如果用PLC的变量触发,上位机复位,你复位按钮怎么知道现在复位的报警是那个报警啊?问题ID: 36379提问者:炜- 资深学长第3级最佳答案1.WinCC V6.0可以用Horn组态实现声音报警,不用编程。
打开Horn,在Message assignment选项页选定Message Class为Error,定义一个Bool型的Tag;在Signal assingment选项页选定Tag为刚才定义的Bool型的Tag,在Sound中选择要播放的.wav声音文件。
运行时,只要Error类别的报警触发,则Bool型的Tag置位,.wav声音循环播放;在报警控件中确认报警,.wav声音中止,也可以将Bool型的Tag复位,.wav声音中止。
Horn是基本过程控制(BPC)的组件,标准安装是不会安装的。
安装WinCC时选择“自定义安装”,已经安装了就选择“安装卸载组件”,组件栏中选择“选项”,右边栏子选项选择“Ba sic Process Control”安装即可。
2.自定义两个内部32位变量stat1和stat1_save,然后在报警记录里面消息位使用外部变量,状态位为stat1中的位。
然后在脚本中:定义两个DWord变量A1、B1连接stat1和stat1_save。
#pragma code("Winmm.dll")void WINAPI PlaySoundA(char* pszSound ,char* hmode,DWORD dwFlag);#pragma code()A1=GetTagDWord("stat1");B1=GetTagDWord("stat1_save");if((A1^B1)&A1)SetTagBit("ok_1",1);if(GetTagBit("ok_1"))PlaySoundA("C:\\winnt\\music\\06.wav",NULL,1);SetTagDWord("stat1_save",A1);回答者:满- 高级工程师第11级2009-5-22 07:45提问者对于答案的评价:多谢30天内的投票结果:好100% (1)不好0% (0)其他回答可以再plc中,几个报警触发一个变量让他置位。
WinCC的声音报警(通过HORN控件和脚本分别实现)
WinCC的声音报警对于组态软件WinCC中的声音报警,也有不少的朋友在讨论这个话题,在这里写的是我在出差期间,需要在项目中用到的声音报警,并且实现自动触发,按钮关闭声音,再次自动触发的循环声音报警代码.1.采用代码实现首先,这是一个全局脚本(在全局脚本中创建一个项目函数,然后调用此函数),可以放在当前显示的画面的任何元素中,并对代码进行如下的添加:建个变量(Bit)“AlarmSound”有报警的时候为“1”,没有报警的时候“0”,写个全局脚本触发器里选择变量触发“AlarmSound”(脚本触发变量为内部变量,若是外部变量则使其与一内部变量关联)int gscAction( void ){#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);#pragma code()if(GetTagBit("AlarmSound")!=0)sndPlaySoundA("c:\\win2003\\system32\\ALSNDMGR.WAV",0X1|0X8);elsesndPlaySoundA(NULL,0X0);return 0;}即可实现在肩控画面中出现报警的同时启动声音文件.在停止的时候用按钮控制,其中事件代码为:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);#pragma code()sndPlaySoundA(NULL,0X0);}对上述代码中:关于windows API函数sndPlaySoundA(char* szWave,DWORD dwFlag);char* szWave是声音文件的路径DWORD dwFlag是标识常量0x0:播放WAV文件,播放完毕后将控制转移回你的应用程序中。
WINCC实现有声报警的方法
WinCC实现声音报警的方法#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\\Windows NT\\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声⾳报警显⽰订货号站配置声卡或信号模块。
该实例描述了如何组态报警设备的报警和警告事件类来触发语⾳信号。
下述内容包括了⼯程站的所有组态(包括冗余服务器和OS客户端组态及消息确认)。
1.按照PCS 7 V6.0组态⼿册在SIMATIC Manager中组态所有单站、服务器、冗余服务器和客户OS站。
2.在⼯程站上通过WinCC Explorer打开 SIMATIC PCS 7 单站或服务器OS站。
3.切换到WinCC Explorer中的“内部变量”管理,在“Horn”变量组中分别为报警和警告事件类创建内部变量(也可以创建/选择新的变量组)。
图 01:报警设备编辑器中为后续连接创建内部变量4.注意事项:该程序仅⽤于在连接的OS客户站上进⾏组确认的情况下。
这时,需要其他的变量。
在同⼀组中创建该内部变量并确保对这些变量设置为“项⽬范围更新”。
图 02:通过“项⽬范围更新”定义的变量属性对话框5.双击WinCC Explorer中的Horn图标打开报警编辑器。
在“信号分配”标签中的事件类的下拉菜单中选择“报警”,下⼀⾏选择“警告”。
插⼊需要的其他事件类。
图 03:在“信号分配”标签中为报警编辑器组态和选择事件类。
6.通过“变量”栏中的变量选择对话框选择内部变量,该变量先前已被创建⽤于报警和警告事件类。
在后⾯通过这些变量的赋值过程控制声信号的触发。
图 04:在“信号分配”标签中选择报警编辑器的内部变量7.在“信号分配”标签中可从下拉菜单中使应⽤⽤户权限设置,并且此处必须按优先级激活事件变量。
您可以在⽂本末列出的⽂档中找到更多信息。
8.在该例的报警编辑器中组态“信号分配”标签,如下图所⽰。
图 05:报警编辑器中组态“信号分配”标签9.打开“信号分配”标签。
该标签中,先前选择的变量与信号模块的输出相连接(输出1、2或3),或者,如实例所⽰,通过声卡为信号的声输出选择语⾳⽂件(*.WAV)。
在每⾏中选择两个内部变量⽤于报警和警告;通过变量选择对话框的“Tag”栏选择。
详细介绍WinCC报警记录(理论+实操图示)
6.1.2消息及确认
1.单个消息和组消息 2.2. 单个确认和组确认 3. 事件分为二进制事件和监控事件 4. 初始值消息和新值消息 5. 消息 6. 消息类型、消息类别 7. 消息块 8. 消息事件、消息状态
9. 消息窗口 10. 消息变量 11. 消息的操作步骤 12. 消息行 13. 报表 14. 确认离开的方法 15. 确认变量 16. 状态变量
第6章 报警记录
WinCC中的报警记录编辑器主要用来采集、 显示和归档运行信息及由过程数据状态导致的报警 消息。
本章将介绍如何组态报警以及报警显示界面。
6.1组态报警的相关概念 6.2组态报警 6.3 组态报警显示 6.4 WinCC报警控件标准函数的使用
6.1 组态报警的相关概念
6.1.1归档
根据消息级别,消息状态中发生的变化被写入可 组态的消息归档。消息归档可以分为长期归档和 短期归档。 长期归档:归档的大小要由归档的消息时间跨度 确定。长期归档可以是连续归档或顺序归档。在 连续归档中,达到归档消息的最大数量以后,最 早的消息被覆盖。 短期归档:归档大小要由消息数量确定。短期归 档只能创建为连续归档。在短期归档中最多可存 储10000个消息状态改变。如果已经达到归档消 息的最大数量,最早的消息将被覆盖。
6.2.2 组态报警消息文本
在报警记录编辑器浏览窗口选中“消息 块”下的“用户文本块”,右键单击“消 息文本”选择属性,如图所示:
6.2.3 组态报警消息 在表格窗口中 设置如上图的第一条消息
可通过“视图→添加/删除列”打开对话框如 下,可选择所需要的列
还可以通过属性对话框组态报警消息。在第 一行报警消息中单击鼠标右键选择“属性” 打开单个消息的属性对话框,如图:
6.2.5 组态模拟量报警
Wincc报警
报警记录在Wincc中可以组态事件的报警,组态事件报警基本上可以分为两个步骤。
1.在报警编辑器中设置报警的各种类别,包括上限下限值触发的模拟量报警,还有通过消息变量触发的报警例如:开关量的报警。
2.通过对报警控件的设置实现报警显示。
在画面编辑器中插入报警记录控件,报警控件具有很多的功能。
包括报警显示,对报警的确认,报警的自动归档,报警的查询等等。
首先组态一个模拟量报警,并通过此实例来说明状态变量,确认变量的定义及用法。
在下一个实例中说明消息变量的使用。
模拟量报警新建个项目命名为alarmtext点击创建按扭打开报警记录编辑器,我们可以看到报警记录的主画面,包括消息块,消息类别,组消息,和归档组态。
首先组态报警。
组态报警就是设置报警消息的一些内容,包括时间,日期。
报警地点,报警消息,产生报警的当前值以及报警的类别!报警消息的时间,日期对应消息块中的系统块。
报警地点,报警消息对应消息块的用户文本块。
当前值对应过程值块。
故障报警对应消息类别。
所以我们开始建立组态。
一.添加系统快。
在消息块的系统快点击右击添加/删除添加系统快我们可以看到系统已将编号,日期,时间选中。
我们还可以添加左侧的系统快。
但我们只使用编号,日期,时间选项。
点击确定按钮。
我们看到所选的系统快已经显示出来二.添加用户文本块。
用户文本块采用同样的方法添加所需的块。
我们采取默认选择的错误点和消息文本.点击确定订按钮。
为了能使报警信息显示更多内容修改消息文本和错误点的字符长度改为30.双击消息文本,错误点修改。
三.添加过程值块将过程值块中的过程值1,过程值2,过程值3添加到右侧如图。
点击确定按钮。
我们可以成功的添加过程值1. 过程值2. 过程值3.四.在消息类别中设置报警消息的颜色!设置报警的进入,离开,已确认的文本颜色,与背景颜色。
我们设置的颜色如图所示。
点击确定这样我们已经组态好了一个报警。
我们也可以使用系统向导来组态报警由于操作简单这里就不加诉说了。
WinCC实现声音报警的方法
内料介绍:C 脚本播放wav 艾件 C 脚木触发PC 蜂鸣器 VBS 脚木调用媒休播放器 报警器HORN 的使用、、、〕._j C:\WIHDOWS\Media、x 名称大才Q Config 亠(Sljonest^p. mi d40 39 3-91 _J CursorsXP 关键性终止.WWXp 电话拨入wav@1 Dowiiloade& Frogrsiii lil^s+ 二 Driver Cacheehome鬥 Fonts 田亡j HelpIIS Temporary Compressed Files ime in£InstallerowsWindows @L|Win ^WindowsWindows ^Jrecycle, w l±lX 首先请记录声音文件所 存放的路径名及文件名 (脚本当中需要填写) j125chemas MediaMicrosoft. HETiris agent crisapps rriuinetwork diagnostic + 因Offline Web Pa.ges +: _j pchoalth;3 Fe^rNet,J Prefetch^Windows X (g^flonri sh. (gjwindovs XFWindows XF town.(Tii iWindows XPWindows XPe]Windows XF(£]Windoys XF 込Ji-ingim wav^Windows XF^^jringout. waWindows XPWindows XFg ijilstart. wav请单击继续电 .wav av .wav .wav .wav 单命令川葩 23 23 22 22 20 20 17 10 7 6 3 2 2 205首先创建一个模拟水泵运行状 态的Bool 型变量“ Pump i ”濟抽电直X f W SE M 舒3舍局库E-C ] Displays + _J Op er at i CRB + 口 FlantELem ents⑥曰 _______ + 口 Symb ols 电SiemensHTAI ■库 D: \TESTPRJ\raCC\ELearning\0®总/电皂X 囤|》注ffii [画&-»—Q-& —M A$¥J -Ky J -?ra IS 曲如如符设管处、员Mf ns D HT昭跟A 全形科暖作规 (Tler AS AS AS Is 安泵变材采操常□□口□口 Hl rr l i ..砂t r r a ^^H M 冷却泵简易立式泵2 口离心泵1[®fil离心泵3 离心泵4离心泵2■对象属性扈性事件SymbolLibrary Cont roll打开泵对象的属性窗口进行属性设置■ Symb olLi brary i几何其它拄岸屁性Pi cture伸展符号翻转对象闪烁速度静态动?原本・0中-500添加泵的湄/停‘控制按钮在画面中插入诊断窗口(使于检验脚本执行过程D■对象冒性11形按钮园形按钮1十-1双点划线线宽二E 智能对象□画面窗口 0控件OLE 元素 筍入/辐出域应用程序窗口 对鎳展性GSC Diagnostics&翠玄应用程厚窗口融示勰翅框题IA斥显可可边标_冒前应用鸟窗口 1是是是是是是是否□匣園函=国形对象 伏态显示厘性爭件划启动/停止“按钮组态事件在以下情况下执行释放左键 按右键 释放右键动作动作边… E直接连接@)・.・ 总册]除鬼)^include •'apdefap -h" void OrtCIick(chIp§zPictureName, char^IpszObjectName, char* IpszPropertyName) { ^pragma option(mbcs)//WINCC:TAGNAME_SECTION_START// syntax:卡define TagNameInAction "DhCTsgMsme" //nextTsglD : 1//WIN CQTAGNAME.S ECTION 上 ND〃 WIN CCPICNAM E_SECTION_START// syntax: #define PicN&melnAction ''PictureName" //next PicID: 1/./WIN CCPICNAM E.SECTION.END ^include "apdefap.h"fKpragmacode ("Winmm.dll '*)VOID WINAPI PlaySoundA (char* pszSound, char^hmode, DWORD dwflag); #pragmacodeO printfC Start V\n H );PlaySoundA(,,C :WINDOWSWedia\VXLARM8.WAV ,,z NULLO); printf(,,End\rAn ,,)J T}t^pragma option (mbes)// WINCCTAG NAME.S E CTION^START//syntax: #define TagNameInAction "DMTagName" //next Tag ID : 1// WINCCTAG NAME_S E CTION.END圖SetTagBit3 SetTagByte 蜀 SetTagChar 圃 SetTagJouble 窗 SetTagDWord ►3SetTagfloa.t 圃 SetTagRaw 圃 SetTagSByte :...3 SetTagSDWord ; (3)SetTagSWord :蜀 SetTag :ViLu.e •““ 畐 SetTagWord.•♦-目 wince启动按钮C 脚本&匸空都崖欽►2Jallocate c_bibgraphics13邑曲 Sgset£1S Q state wait^include "apdefap.h"void OnCli ck(ch IpszPictureName, chs.^ IpszObjectName, char* IpszPropertyName) #pragm a option (m b cs)// WIN CC:TAG NAME^S E CTION_START// syntax: ^define TagNameInActi o n "DMTagName"//nextTagID : 1// WIN CC:TAG NAME.S E CTIO N_END// WIN CC:PICNAME_S ECTION_START// syntax: #define PicNameInAction "PictureName"//next PicID : 1//WINCC:PICNAME_SECTION_END尹in elude "apdefaph"^pragmacode ("Winmm.dll')VOID WIN API PlaySoundACchar" pszSound, char^hmode, DWORD dwflag);#pragmacodeQprintff Start \r\n n):PlaySoundAC'CA^INDOWS^MedisX^L^RMSWAV^N UIXO); printfCEndW1);^etTagBitfPumpI"J); //Return-Type:BOOL^)停止按钮C脚本include "apdefap-h11void OnClick(char^ IpszPictureName, char^ IpszObjectName, chat^ IpszPropertyN ame) {#pragma option(mbcs)//WINCC:TAGNAME_SECTION.START// syntax: #deline TagNamelnAction "DMTagName"//nextTagID : 1//WINCC:TAGNAME_SECTION_END//WINCCFICNAME.SECTION.START// syntax: #deline PicName InAction "PictureName"//nextPiclD:1//WINCC:PICNAME_SECTION_END#include "apdefap.h"#pragma code ("Winmm.dll '*)VOID WIN API PlaySoundA (char^ pszSound, char^ hmode z DWORD dwflag);# pragma codeOprintfCStart^n11);PlaySoundAC'OWINDOWS^Media^LARMS.WAV'LNU 丄0); printfC'End^n'1);SetTagBitC'Pumpl'lO); //Return-Type: BOOL注意:Flag =0x0000,该脚本独占C脚本线程,其它C脚本在此期间无法执行。
wincc6.0-的horn声音报警的使用
wincc 的horn声音报警的使用•悬赏分:20•- 解决时间:2009-5-22 17:14在horn中,我用一个报警类触发一个变量,用这个变量触发声音文件,但是报警类最多定义16个,我报警有50个,怎么做啊?我又不能直接用报警变量触发声音文件,因为这样如果报警存在,是复位不掉的,声音一直响,请问应该怎么做啊,是不是我理解错了问题补充:问题是如果用PLC的变量触发,上位机复位,你复位按钮怎么知道现在复位的报警是那个报警啊?问题ID: 36379提问者:炜- 资深学长第3级最佳答案1.WinCC V6.0可以用Horn组态实现声音报警,不用编程。
打开Horn,在Message assignment选项页选定Message Class为Error,定义一个Bool型的Tag;在Signal assingment选项页选定Tag为刚才定义的Bool型的Tag,在Sound中选择要播放的.wav声音文件。
运行时,只要Error类别的报警触发,则Bool型的Tag置位,.wav声音循环播放;在报警控件中确认报警,.wav声音中止,也可以将Bool型的Tag复位,.wav声音中止。
Horn是基本过程控制(BPC)的组件,标准安装是不会安装的。
安装WinCC时选择“自定义安装”,已经安装了就选择“安装卸载组件”,组件栏中选择“选项”,右边栏子选项选择“Ba sic Process Control”安装即可。
2.自定义两个内部32位变量stat1和stat1_save,然后在报警记录里面消息位使用外部变量,状态位为stat1中的位。
然后在脚本中:定义两个DWord变量A1、B1连接stat1和stat1_save。
#pragma code("Winmm.dll")void WINAPI PlaySoundA(char* pszSound ,char* hmode,DWORD dwFlag);#pragma code()A1=GetTagDWord("stat1");B1=GetTagDWord("stat1_save");if((A1^B1)&A1)SetTagBit("ok_1",1);if(GetTagBit("ok_1"))PlaySoundA("C:\\winnt\\music\\06.wav",NULL,1);SetTagDWord("stat1_save",A1);回答者:满- 高级工程师第11级2009-5-22 07:45提问者对于答案的评价:多谢30天内的投票结果:好100% (1)不好0% (0)其他回答可以再plc中,几个报警触发一个变量让他置位。
最全文档wincc的声音报警
最全文档wincc的声音报警WinCC的声音报警工控Siemens WinC 2007-11-07 12:33:36 阅读592 评论1 字号:大中小订阅对于组态软件WinCC中的声音报警,也有不少的朋友在讨论这个话题,在这里写的是我在出差期间,需要在项目中用到的声音报警,并且实现自动触发,按钮关闭声音,再次自动触发的循环声音报警代码.在这之前我也不会用这一方面的报警,毕竟C语言对我来说,我只能说了解而不是精通,下面的代码实现过程是我从其他地方咨询了多次找来的可行的解决办法.首先,这是一个全局脚本,可以放在当前显示的画面的任何元素中,并对代码进行如下的添加:建个变量(Bit)“AlarmSound”有报警的时候为“1”,没有报警的时候“0”,写个全局脚本触发器里选择变量触发“AlarmSound”int gscAction( void ){#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag); #pragma code() if(GetTagBit("AlarmSound")!=0)sndPlaySoundA("c:\\win2003\\system32\\ALSNDMGR.WAV",0X1|0X8);elsesndPlaySoundA(NULL,0X0);return 0;}即可实现在肩控画面中出现报警的同时启动声音文件.在停止的时候用按钮控制,其中事件代码为:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code("Winmm.dll")BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag); #pragma code() sndPlaySoundA(NULL,0X0);}对上述代码中:关于windows API函数sndPlaySoundA(char* szWave,DWORD dwFlag); char* szWave 是声音文件的路径DWORD dwFlag 是标识常量0x0:播放WAV 文件,播放完毕后将控制转移回你的应用程序中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/CN/llisapi.dll/24740744?func=ll&objId=24740... 2008-3-19
/CN/llisapi.dll/24740744?func=ll&objId=24740... 2008-3-19
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 6 of 24
消息的声音输出能够在WinCC服务器和WinCC客户端执行。“Horn”需要在每一WinCC工作站单独配 置。
“Horn”编辑器允许您使用确认变量或者一个确认组来配置一个多重确认。使用确认组的多重确认选件将从 WinCCV6.2以后可以获得。在这里,“Horn”确认可应用于在被设置为相同的确认组的WinCC工作站。确 认组是一个简单的,实现客户端,服务器和冗余服务器器的声音信号输出的多重确认的方法 ,推荐使用一 个确认组的来实现多重确认。
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 2 of 24
“0”。
z 通过用户自定义逻辑设置/重设信号变量 信号变量的值没有必要必须连接到消息级别的报警状态。设置/重设信号变量的逻辑同样也可以在用 户指定逻辑中编程。
显示订货号 如何设置带有声音的信号消息?
说明: "Horn"编辑器用来配置与报警相关事件信号模板和PC声卡的输出。Horn编辑器是WinCC选件“基本过程控 制”的一个组件,自WinCC V6.0版本以后,“基本过程控制”不需要任何附加的授权,默认获得。
关于“Horn”主题的信息可以通过以下方式获得
/CN/llisapi.dll/24740744?func=ll&objId=24740... 2008-3-19
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 7 of 24
图 5:报警编辑器中组态“信号分配”标签 9. 打开“信号分配”标签。该标签中,先前选择的变量与信号模块的输出相连接(输出1、2或3),或 者,如实例所示,通过声卡为信号的声输出选择语音文件 (*.WAV)。在每行中选择两个内部变量用 于报警和警告;通过变量选择对话框的“Tag”栏选择。然后在“Sound”栏中点击声音文件的选择对 话框。可根据需要,选择标准PCS 7声音文件或者您自己的语音WAV文件。 注意事项: 如果选择语音文件的绝对路径(例如C:\SIEMENS\WinCC\Sound\Horn.wav),记得在装载项目时目标 PC中需要有同样的路径。我们推荐将文件保存在自己的项目路径中。这样就可以在保存项目的同时 保存语音文件,从而路径始终正确。
注意: 只有在内部系统变量“@HornTriggeringSignalsActive”是“1”的情况下,输出才会被执行或WAV文件被 播放,在默认的情况下,这个值在变量管理器中作为初始值被置位。
在运行模式中用两种不同的途径使一个变量被赋值。
z 信号变量 在运行模式中,一个信号变量的值能够直接连接到一个配置消息的报警状态。将信号变量赋值到消息 可以在“Horn”编辑器中的“Message assignment”菜单中配置。这个参数对话框提供了连接一个信 号变量到指定的报警状态的不同的过滤标准(消息类别,优先级,数据源,范围,事件,允许)。
z WinCC帮助系统下“Options > Options for Process Control > Horn” z 配置手册“SIMATIC Process Control System PCS 7 V7.0 Operator Station”。 该手册可在条目ID
24449737.下获得。
配置horn 在WinCC变量管理编辑器中,您创建几个或几个数据类型为二进制的信号变量,在“Horn”编辑器中,每一 个信号变量被指派到一个信号模板或者“WAV”文件。信号模板的输出能够被连接到一个喇叭或者另外的信 号转送装置。如果在运行模式中一个信号变量的值为“1”,则相对应于该信号变量的信号模板输出或者配 置的WAV文件将被播放。
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 4 of 24
5. 双击WinCC Explorer中的Horn图标打开报警编辑器。在“信号分配”标签中的事件类的下拉菜单中 选择“报警”,下一行选择“警告”。插入需要的其他事件类。
部变量(也可以创建/选择新的变量组)。
/CN/llisapi.dll/24740744?func=ll&objId=24740... 2008-3-19
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 3 of 24
{ "@HornReset" 通过组确认实现的多重确认 在这样的情况下,变量的被设置为不变。经过点击“acknowledge horn”按钮确认 “Horn”后,变量“@HornReset”被直接重置为“0”,然后被迅速的再次设置为“1”。
z 如果信号变量经过在报警控件中确认所有相关报警被重置或者脚本直接重置变量,在这样的操作下 计算机的声音信号被确认(关闭),但是在这种情况下“@HornReset”不会被设置为“0”。 这样, 在某一台计算机,为了实现多重确认的计算机配置收不到信号已经被确认的信息。在这样的情况 下,为多重确认配置的计算机的信号传输不能够被确认(关闭)。多重确认只能在分别点击 “acknowledge horn” 按钮后起作用。
在SIMATIC PCS 7 / WinCC V6.x下如何组态单站、服务器、冗余服务器和客户OS站的Horn编辑器?
说明: 下列组态过程基于SIMATIC PCS 7 V6.0版本。因此,适用于所有的PCS 7 V6.0 和WinCC V6.0以上的版 本。
注意: 从PCS 7 V7或WinCC V6.2开始,系统增加了一些功能。附录中详细介绍了这些附加功能。 在SIMATIC PCS 7 V6.0中,通过Horn编辑器为单站、服务器、冗余服务器和客户OS站配置声卡或信号模 块。该实例描述了如何组态报警设备的报警和警告事件类来触发语音信号。下述内容包括了工程站的所有 组态(包括冗余服务器和OS客户端组态及消息确认)。
图 1:报警设备编辑器中为后续连接创建内部变量 4. 注意事项: 该程序仅用于在连接的OS客户站上进行组确认的情况下。这时,需要其他的变量。在同一组中创建 该内部变量并确保对这些变量设置为“项目范围更新”。
图i.dll/24740744?func=ll&objId=24740... 2008-3-19
图 3:在“信号分配”标签中为报警编辑器组态和选择事件类。 6. 通过“变量”栏中的变量选择对话框选择内部变量,该变量先前已被创建用于报警和警告事件类。 在后面通过这些变量的赋值过程控制声信号的触发。
/CN/llisapi.dll/24740744?func=ll&objId=24740... 2008-3-19
主意: 在运行模式,信号变量自动拥有已配置消息类别的报警状态,只要内部系统变量
“@HornSettingTagsActive” 的值为“1”,默认的情况,这个值在变量管理器中被初值化为1。 如果,例如,系统变量的值从“0”设置为“1”并且此刻已经有消息到达,这样将引起一个声音输出, 信号变量没有被立即置位,因此声音输出将不会被立即触发。信号变量和声音输出只有在一个消息
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 5 of 24
图 4:在“信号分配”标签中选择报警编辑器的内部变量 7. 在“信号分配”标签中可从下拉菜单中使应用用户权限设置,并且此处必须按优先级激活事件变 量。您可以在文本末列出的文档中找到更多信息。 8. 在该例的报警编辑器中组态“信号分配”标签,如下图所示。
1. 按照PCS 7 V6.0组态手册在SIMATIC Manager中组态所有单站、服务器、冗余服务器和客户OS 站。
2. 在工程站上通过WinCC Explorer打开 SIMATIC PCS 7 单站或服务器OS站。 3. 切换到WinCC Explorer中的“内部变量”管理,在“Horn”变量组中分别为报警和警告事件类创建内
{ 设置信号变量 当符合过滤标准的消息到来时,信号变量的状态从“0”变到“1”。
{ 重置消息变量 当所有的按照预先设置信号变量的过滤标准配置的消息被确认后,信号变量的状态从“1”改 变为“0”。当经过“acknowledge horn”按钮,“Horn”被分别确认后,信号变量同样会给重
置。
. 在运行模式,在基本过程控制的按钮设置后,这个按钮能够使用。
Siemens - Automation and Drives - Service& Support - Automation Service, Automat... Page 1 of 24
返回列表
WinCC -- 组态报警和消息 -- 声音报警和消息