新手总结报警的经验,大家要鼓励哦

已锁定

wangstand

  • 帖子

    84
  • 精华

    0
  • 被关注

    1

论坛等级:游民

注册时间:2004-03-17

普通 普通 如何晋级?

新手总结报警的经验,大家要鼓励哦

1387

13

2006-09-19 22:32:31

小弟准本做第一个WINCC项目,今天花了一天的时间来研究报警的问题,并从坛子的各位高人的经验中得到几点体会,并作了一些修改,先说说声音报警的几种方法。
1、PLC做报警监测,将变量发送到WINCC,WINCC通过变量触发报警,报警可用以下简短语句,
#pragma code ("Winmm.dll ")

VOID WINAPI PlaySoundA ( char* pszSound, char* hmode, DWORD dwflag );

#pragma code()

PlaySoundA("D:\\baojin.wav",NULL,1);
当然,如果想连续报警可将1改为0x0001 0x0008;
2、通过全局脚本实现。
BOOL GMsgFunction( char* pszMsgData)
{
MSG_RTDATA_STRUCT mRT;
if (mRT.dwMsgState==MSG_STATE_COME)//报警到达,开始报警

{
#pragma code ("Winmm.dll ")
VOID WINAPI PlaySoundA ( char* pszSound, char* hmode, DWORD dwflag );
#pragma code()
PlaySoundA("D:\\baojin.wav",NULL,0x0001 0x0008 );
}

if (mRT.dwMsgState==MSG_STATE_GO mRT.dwMsgState==MSG_STATE_QUIT)//报警离开或确认后,停止报警
{
#pragma code ("Winmm.dll ")
VOID WINAPI PlaySoundA ( char* pszSound, char* hmode, DWORD dwflag );
#pragma code()
PlaySoundA("NULL",NULL,1 );//播放空文件
}

return( TRUE );
}
这种方法要在报警设置中勾上“触发一个动作”,连接到GMsgFunction函数
3、在全局变量中对每个监测变量进行比较,达到报警值触发一个变量,再写一段程序,发声即可。这种方法工作量较多。
4 用PROGRAMEXCUTE函数
在函数中写发声程序,同1中,当报警发生时触发该程序即可,但是如何触发它还有待测试,我今天测试有时行,有时不行,不知为何?
关于声音报警的目前知道的就这些了。
5、报警消息中的计算机名、用户名、报警变量、消息文本等都不能直接得到,但是可以通过用户文本块中添加块来实现,因为这几个量都可以通过文本的形式从其它的地方得到或者自己针对每个报警号设置,实现对报警的一些解释。
6、报警限值、当前值可以通过过程块中添加块来实现,具体的动手试一下就知道了。
7、消息类别中的+ -,可以通过修改属性改成中文的“报警到达、报警离开,报警确认”等,便于现场的人识别。
上面几条都是我亲自测试过的,还有几个小问题没有解决,解决了再和大家探讨。
希望高手给点拨点拨,有利于新人们茁壮成长,^_^

新手总结报警的经验,大家要鼓励哦 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。