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日
下一篇 2019年6月10日

相关推荐

  • step7 5.4升级到step7 5.6 复制项目

    以前有个XP系统下 安装  step7 5.4 (做了个项目)   在它下面集成了一个wincc项目…

    SIMATIC WinCC 2020年11月1日
  • WINCC 的信息触发疑问

    有一个疑问,我的C动作采用信息触发 ,比如说设定时间是 250ms  但是我这个C动作执行完成(既C程序运行时间不止250ms),是不是就会…

    SIMATIC WinCC 2019年6月11日
  • 问个选项组的问题

    我要用选项组做个项目,但画了一个上面只有3个选项,再怎么增大画面都只有3个选择,我如何做才能增加选项数目呢?另外,我怎么把选项组上我选择的项读出来,请用C语言写个范例.最后&nbs…

    SIMATIC WinCC 2019年6月11日
  • 关于WINCC的用户管理是怎样设置

    wincc  做好之后,点击首页进入用户管理,然后根据你输入的用户名和密码决定你的权限大小。请问这个怎么设置。 最佳答案 参考:http://www.ad.si…

    SIMATIC WinCC 2021年7月5日
  • 如何用脚本控制wincc趋势图按时间翻阅

    请问如何实现对按钮编程,使趋势图按设定的时间翻阅,我找不到对应的函数。(注:不想用工具栏上的时间选择) 最佳答案 1. 新建两个内部变量,分别为Begin_Time和En…

    SIMATIC WinCC 2019年6月11日
  • WINCC与S7-300PLC的以太网通讯

    请问:一个项目要求一个S7-300PLC通过以太网模块连接到交换机上,然后把数据送到两个上位机上,上位机也是通过网线和交换机相连,请问网线怎么做?其中一台上位机做操作员站,另一台做…

    SIMATIC WinCC 2019年6月11日
  • WinCC 7.3 能支持符号寻址吗

    WinCC 7.3 能支持符号寻址吗?如果能,还请高手,指点如何配置~ 如果不能,那哪个版本的WinCC 能支持符号寻址? 最佳答案 支持对…

    SIMATIC WinCC 2021年7月5日
  • 如何将报警数据归档

    如何将报警数据归档 我知道有控件可以实现将报警的数据归档起来, 在电脑里模拟时可以实现该功能,并自动新健了EXCEL文件在E盘,但将程序下载到MP277就不可以…

    SIMATIC WinCC 2019年6月11日
  • 如何用按钮在画面窗口中弹出指定画面

    现在假设有一个画面A.pdl,里面含一个画面窗口,这个画面窗口显示的是画面:A1.pdl,画面A中有一个按钮,现在点击这个按钮,让画面窗口A1跳至画面B1,请问应该怎么实现呢? 最…

    SIMATIC WinCC 2019年6月11日
  • wincc如何做出试用期提示及输入密码界面?

    我想在WINCC项目中做一个软件试用期弹出窗口提示,用户输入正确的密码后才可以正常继续使用,但我又不会用VBS脚本,哪位高手可以帮帮我吗?谢谢了。 问题补充:谢谢CHEN11120…

    SIMATIC WinCC 2019年6月11日