怎样利用报警记录或HORN实现报警后输出变量

我用的WINCC6.0 SP3。现在是用一模拟量报警后驱动一继电器工作。是单一变量。。我是新手,麻烦详细一点。谢谢/

问题补充:
报警和继电器输出的点,不是同一个站,用PLC程序做是不是太麻烦了?全局有几十个报警输出,用HORN好像是只要有故障就输出,我只是要把其中一个报警用继电器输出,或音响输出。又没有HORN详细设置或简单点的全局代码?

最佳答案

#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; 
以上脚本报警第一次来置位yq_alarm_out,你可以手动复位这个变量,如果要驱动q点,则可以定义外部变量yq_alarm_out,连接参数q地址输出。

提问者对于答案的评价:
可以参考

专家置评

请参考《WinCC实现声音报警的方法》:
http://www.ad.siemens.com.cn/service/elearning/course/892.html

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月28日 上午1:11
下一篇 2017年5月28日 上午1:11

相关推荐

  • 如何在WINCC用C动作比较外部变量

    WINCC设定内部双整数变量A、B、C,我想用C动作比较,A和B,当A大于B时,C=1.当A小于B时,C=0.当A=B时,C=10、我该如何编程,谢谢。 最佳答案 首先在WINCC…

    SIMATIC WinCC 2017年12月2日
  • wincc运行画面不小心关闭

    wincc画面在运行时不小心用alt+F4关闭,实际项目还是激活 的,因为它是服务器不能重启项目,请问怎样才能直接把运行画面再调出来 最佳答案 直接打开图形编辑器,打开你…

    SIMATIC WinCC 2019年6月11日
  • wincc程序出错 找不到路径打不开

    在公司用wincc软件项目复制器复制到U盘上  拿回来在自己的电脑上打不开 报: HResult Error 0x800…

    2018年3月6日
  • Wincc子画面A按钮设置子画面B名称

    感谢您垂询西门子工业客户服务中心技术支持热线。关于您的问题,在主画面A里,有子画面窗口B,C,C窗口里指向了画面D。现在用画面D里的一个按钮把一个画面指向子窗口B。SetPropC…

    SIMATIC WinCC 2017年6月10日
  • 触摸屏MP277

    触摸屏MP277里的图形怎样才可以旋转 最佳答案 使用简单图像绘制的图形可以旋转,如果使用图形视图是不能旋转的,可以使用画图做好图形,将多个图形重叠在一起,靠显示隐藏实现旋转 提问…

    SIMATIC WinCC 2019年6月11日
  • wincc运行的时候为什么没有画面

    wincc运行的时候为什么没有画面///??/?????????? 最佳答案 以前正常运行过嘛?做好运行画面并设置主画面了嘛? 提问者对于答案的评价:设置起始画面了,主画面还要另设…

    SIMATIC WinCC 2021年7月5日
  • WINCC7.4画面卡住

    我电脑用的WIN10系统,WINCC用的7.4版本,在运行wincc画面的时候,有时候会卡住不动, 过几分钟自己就又好了,也有时候就卡一下就恢复了,电脑没有杀毒软件,并且…

    2020年11月1日
  • WinCC导出问题

    我用WinCC V6.0 SP3软件如何在警报中直接导出一个PDF文档?     之前我是在警报中点打印按钮后…

    SIMATIC WinCC 2019年6月11日
  • wincc 启动一个程序

    想在wincc画面添加一个按钮,启动wincc项目外的一个程序,应该怎样实现?比如我想在wincc画面上打开“我的电脑”。 最佳答案 制作按钮并输入ProgramExecute函数…

    SIMATIC WinCC 2019年6月11日
  • wincc运行时没有到数据服务器的连接

    用户归档我取的都是内部变量,然后我用在线表格控件输出过程归档,wincc运行时没有到数据服务器的连接(我用的是变量模拟器) 最佳答案 1。首先要确认该内部变量的归档组态(Tag&n…

    SIMATIC WinCC 2019年6月11日