首页 上一页 1 2 下一页 尾页

难题求助:报警发声与静音 点击:1709 | 回复:22



Nickleen

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 146回
  • 年度积分:0
  • 历史总积分:186
  • 注册:2007年10月18日
发表于:2007-10-24 16:56:00
楼主
    大家好~! 小弟初学WinCC没有多久,在报警方面有个难题请教一下大家了.
    就是在组态项目中,发生了报警的情况下,需要自动播放一个音频文件来提示报警,当有人听到报警音频后,需要对此进行静音操作,请问用什么方法可以实现?以及实现的具体步骤.
    自己用midiplayer的控件实现了可以发出声音,可是存在一个问题,当设置了报警变量的具体值时,报警播放的音频文件不能完整播放,只能播放前2秒中,取消了这个设置,会一直播放这个音频文件.
    如果用C或者VBS实现 希望达人能放出具体步骤以及实现的代码,谢谢大家了~!



yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-10-26 11:26:00
1楼
使用API函数中PlaySoundA

HBZYCS

  • 精华:3帖
  • 求助:2帖
  • 帖子:50帖 | 1860回
  • 年度积分:0
  • 历史总积分:2380
  • 注册:2004年11月27日
发表于:2007-10-26 17:42:00
2楼
WINCC报警是有点麻烦,我也不会,麻烦会的说一下

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-10-27 01:24:00
3楼
建议用美国ICONICS公司GENESIS32,它本身就支持这个功能,不需要写脚本。

HBZYCS

  • 精华:3帖
  • 求助:2帖
  • 帖子:50帖 | 1860回
  • 年度积分:0
  • 历史总积分:2380
  • 注册:2004年11月27日
发表于:2007-10-27 15:32:00
4楼
楼上是做广告的

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-10-28 01:12:00
5楼
To: HBZYCS
你如果不会,就不要回贴啦!人家求问就要人帮忙,如果WINCC是不行的,有别的办法或者别的选择,我们只是提提意见,那里有错,你帮不了忙就算,不要那么说!你有办法就说出来!帮帮人家!

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-10-28 04:04:00
6楼
To Tcs:
   人家再问Wincc中怎么做,并不是说要替换,Wincc中可以采用API函数编程做,这个在Ifix,Intouch中的做法是一致的,Wincc和Ifix等知名软件一样,有Horn声音部件可以直接做。
   您的GENESIS32软件目前在论坛中您除了一再声明其画面精美就没有发布过任何关于该软件特点的信息,就连我在您的帖子中询问您该软件的实时数据库能力等问题您也未作任何回答,当您向用户推荐一组态软件时,应全面推荐,性能才是用户首先关心的问题。

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-10-28 04:46:00
7楼
To:yuanle
我只是SI,不是100%知道人家的软件,只懂75%,我不知道,所以我不会给你回答,你可以问厂家。
我不知道怎么样用WINCC做,但是有其他现成的办法,告诉他人,有什么不对,大家都知道写程序可以做,你只是说用API函数编程做,你这样说等于没有说过,这样回贴,有这么意义,如果你知道,请你把程序告诉人家,这才是帮助人,起码我告诉他有别的方案可行,他自己可以确定这么做!有什么问题?

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-10-28 05:27:00
8楼
PlaySoundA已经是具体的函数,如何具体编程要 使用者进行根据其具体要求进行编程。这个函数已经在组态手册1中附有例子,无需在编写什么例程了。这个函数属于标准的函数,在微软的API手册中已经给出了具体定义。
您说懂75%,那已经相当精通您说的那个软件了,如果您说不会回答,我觉得作为SI这样告知用户很遗憾,因为这些都属于软件的介绍范畴,并不是很深技术层次的问题。您这样就把软件推广的任务踢还给厂家,会显得您不够专业,这样用户对您推荐的软件的专业程度就会有疑问。

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-10-28 09:41:00
9楼
To:
人家写“ 如果用C或者VBS实现 希望达人能放出具体步骤以及实现的代码,谢谢大家了~!”
你知道就写给人家,专业的你,只是说东说西,人家不懂才问,你又叫人家去看手册,人家要“具体步骤以及实现的代码”啊,你这样根本是在放空枪,浪费!只是雷声大雨点小!专业的你,写给人家啦!帮人帮到底,送佛送到西!专业的你!

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-10-28 09:42:00
10楼
To: yuanle
人家写“ 如果用C或者VBS实现 希望达人能放出具体步骤以及实现的代码,谢谢大家了~!”
你知道就写给人家,专业的你,只是说东说西,人家不懂才问,你又叫人家去看手册,人家要“具体步骤以及实现的代码”啊,你这样根本是在放空枪,浪费!只是雷声大雨点小!专业的你,写给人家啦!帮人帮到底,送佛送到西!专业的你!

HBZYCS

  • 精华:3帖
  • 求助:2帖
  • 帖子:50帖 | 1860回
  • 年度积分:0
  • 历史总积分:2380
  • 注册:2004年11月27日
发表于:2007-10-29 10:31:00
11楼

Nickleen

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 146回
  • 年度积分:0
  • 历史总积分:186
  • 注册:2007年10月18日
发表于:2007-10-31 11:31:00
12楼
 谢谢你们啊 可是HORN变量我不会用 不过可以考虑那个API函数的 谢谢大家了啊

ranranplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 382回
  • 年度积分:0
  • 历史总积分:773
  • 注册:2005年9月27日
发表于:2007-10-31 16:14:00
13楼
以下是我的播放声音的项目函数
void PlaySound(char* szWave,DWORD dwFlag)
{
#pragma code("Winmm.dll") 
BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag); 
#pragma code() 
 
 

                 sndPlaySoundA(szWave,dwFlag); 
}

ranranplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 382回
  • 年度积分:0
  • 历史总积分:773
  • 注册:2005年9月27日
发表于:2007-10-31 16:17:00
14楼
在按钮的鼠标事件中加入:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
/********************************按键声音***********************************/
       char szProjectPath[_MAX_PATH];
       char szSoundPath[_MAX_PATH];

       GetProjectPath(szProjectPath);
       sprintf(szSoundPath,"%swav\\button1.wav",szProjectPath);
       PlaySound(szSoundPath,0x0);
/***************************************************************************/
       OpenPicture("Online_curve.PDL");
}

ranranplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 382回
  • 年度积分:0
  • 历史总积分:773
  • 注册:2005年9月27日
发表于:2007-10-31 16:21:00
15楼
/*       char szProjectPath[_MAX_PATH];
       char szSoundPath[_MAX_PATH];

       GetProjectPath(szProjectPath);
       sprintf(szSoundPath,"%swav\\button1.wav",szProjectPath);*/这个部分不要管他是我要获得当前路径.

播放声音      PlaySound("C:\WINDOWS\Media\recycle.wav",0x0);

HBZYCS

  • 精华:3帖
  • 求助:2帖
  • 帖子:50帖 | 1860回
  • 年度积分:0
  • 历史总积分:2380
  • 注册:2004年11月27日
发表于:2007-10-31 16:22:00
16楼
不知道楼上的这个兄弟写的脚本程序试运行吗,能不能达到要求

ranranplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 382回
  • 年度积分:0
  • 历史总积分:773
  • 注册:2005年9月27日
发表于:2007-10-31 16:30:00
17楼
这个是我的项目中的部分代码

HBZYCS

  • 精华:3帖
  • 求助:2帖
  • 帖子:50帖 | 1860回
  • 年度积分:0
  • 历史总积分:2380
  • 注册:2004年11月27日
发表于:2007-10-31 16:33:00
18楼
楼上的厉害,改天我把你的代码复制到我的电脑里试试,多谢了

HBZYCS

  • 精华:3帖
  • 求助:2帖
  • 帖子:50帖 | 1860回
  • 年度积分:0
  • 历史总积分:2380
  • 注册:2004年11月27日
发表于:2007-10-31 16:43:00
19楼
刚在网上查到这个,我也试过能用,但是要怎么写一个按钮能停止声音呢,一直响不是个办法啊,请教 ranranplay: 兄弟了
建一个全局脚本,时基为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 

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-11-01 01:02:00
20楼
好了,说不懂的人“ WINCC报警是有点麻烦,我也不会,麻烦会的说一下”现在又说懂了,终于出手了,把脚本写出来!奇怪,人总是这样做的! 以下是GENESIS32“创世纪32”的简单组态,就可以实现你的要求,你可以试试看。

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页