wincc 报警 C脚本

在自己笔记本上wincc 全局脚本中新建以下程序,变量满足条件这么没声音,现场拷贝过来的,我自己建了内部变量a测试,不行!请帮我做个测试吧。
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;
MSRTGetMsgQuit(&alarmunack,errorunack);

SetTagDWord("number",alarmunack);

MSRTGetMsgActual(&alarmsum,errorsum);

SetTagDWord("sum",alarmsum);

if (alarmsum==0)

sndPlaySoundA(NULL,SND_ASYNC);

else

{

if (GetTagFloat("PumpLevelY.Value")>7.1)


sndPlaySoundA("D:\\SXWSN\\Sound\\Sound2.WAV",SND_ASYNC|SND_LOOP);

else

sndPlaySoundA(NULL,SND_ASYNC);

}
return 1;

最佳答案

#include "apdefap.h"
int gscAction( void )
{
#pragma code("Winmm.dll")
void WINAPI PlaySoundA(char* pszSound ,char* hmode,DWORD dwFlag);
#pragma code()
 DWORD A1,A2,A3,A4,A5,A6,A7;
 DWORD B1,B2,B3,B4,B5,B6,B7;
A1=GetTagDWord("YQ_ALARM_1");
A2=GetTagDWord("YQ_ALARM_2");
A3=GetTagDWord("YQ_ALARM_3");
A4=GetTagDWord("YQ_ALARM_4");
A5=GetTagDWord("YQ_ALARM_5");
A6=GetTagDWord("YQ_ALARM_6");
A7=GetTagDWord("COMM_ALARM");
B1=GetTagDWord("YQ_ALARM_SAVE_1");
B2=GetTagDWord("YQ_ALARM_SAVE_2");
B3=GetTagDWord("YQ_ALARM_SAVE_3");
B4=GetTagDWord("YQ_ALARM_SAVE_4");
B5=GetTagDWord("YQ_ALARM_SAVE_5");
B6=GetTagDWord("YQ_ALARM_SAVE_6");
B7=GetTagDWord("COMM_ALARM_SAVE");
if(
 ((A1^B1)&A1)|
 ((A2^B2)&A2)|
 ((A3^B3)&A3)|
 ((A4^B4)&A4)|
 ((A5^B5)&A5)|
 ((A6^B6)&A6)|
 ((A7^B7)&A7)
)
SetTagBit("yq_alarm_out",1);
if (GetTagBit("yq_alarm_out"))
PlaySoundA("c:\\winnt\\Media\\chord.wav",NULL,1);
SetTagDWord("YQ_ALARM_SAVE_1",A1);
SetTagDWord("YQ_ALARM_SAVE_2",A2);
SetTagDWord("YQ_ALARM_SAVE_3",A3);
SetTagDWord("YQ_ALARM_SAVE_4",A4);
SetTagDWord("YQ_ALARM_SAVE_5",A5);
SetTagDWord("YQ_ALARM_SAVE_6",A6);
SetTagDWord("COMM_ALARM_SAVE",A7);
return 0; 
}
用这个

提问者对于答案的评价:
谢谢啊

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc255796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月10日 下午8:41
下一篇 2019年6月10日 下午8:41

相关推荐

  • 请问winccflexible2008的兼容性要求?

    请问WINCCFLEXIBLE2008软件是免费使用吗?我记得以前是授权的。还有这个软件对系统和电脑配置有什么要求呢?谢谢! 最佳答案 需要授权的,授权随安装盘提供,自己安装即可。…

    SIMATIC WinCC 2021年7月5日
  • wincc勾选变量记录或报警记录无法运行?

    正常运行监控两年多的WINCC5.1,今天突然不能监控运行了,后来去除掉变量记录和报警记录,能正常运行.何因? 最佳答案 归档数据库出问题了,你考虑下面几个方面: 1.项…

    SIMATIC WinCC 2019年6月11日
  • 1个WINCC和2套冗余PLC通讯

    依照以下方法做的,但实际运行中PLC(A)自动切换到PLC(B),WINCC和PLC(A)通讯正常,不能自动切换到PLC(B),请教有没有解决的办法? PLC(B)自动切…

    SIMATIC WinCC 2019年6月11日
  • 两个wincc与s7400,变频器通讯

    两个一样的wincc分别放在两台电脑上,使这两台电脑同时能控制s7-400及变频器。变频器用通讯与其连接。请问怎么实现?都需要什么硬件与软件?新手不盛感激! 最佳答案 你的变频器应…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible 2008 sp4重置后,中文菜单出现英文,如何恢复成中文!

    正常使用wincc flexible 2008 sp4时,电脑不小心蓝屏了,重启打开软件,再次编辑时无属性选项 ,最后进行了重置wincc&…

    2017年6月18日
  • 在excel中显wincc和s7的变量

    我现在想在excel中显示wincc中的一个变量的变化和在excel中显示s7中一个地址值的变化,请问应该怎么做,麻烦讲详细一点。 最佳答案 下载相关资料参考! &nbs…

    SIMATIC WinCC 2019年6月11日
  • WinCC如何添加字体

    WinCC里面默认字体是宋体。业主说太丑。。。能不能添加别的字体? 最佳答案 WinCC flexible打开后,在左侧目录树里找到:项目--设备--画面--设备设置--…

    SIMATIC WinCC 2018年1月1日
  • wincc 6.0 安装步骤

    不怕大家笑话,有一段时间没有玩这个东西了,也不知道最新的版本是什么,希望有人能给我讲一下。 1、系统要求是英文2000还是英文xp,如果是xp中文版的行吗?对系统的字体有…

    SIMATIC WinCC 2019年6月11日
  • WINCC2008打开项目的问题

    打开wncc fiex….2008时出现错误,如何解决 最佳答案 重新安装WINcc FLEX2008 提问者对于答案的评价:重装是最好的办法

    SIMATIC WinCC 2019年6月11日
  • Wincc flexible smart V3 无法编译,传送

    Wincc flexible smart V3 无法编译,传送,新建项目可以,把老项目移动到新项目上面也不行,所有按钮都是绿色可以按,按了以…

    SIMATIC WinCC 2020年11月1日