WINCC如何用计算机的蜂鸣器作声音报警?

没有音响,就不能使用Signal assingment选项页的Sound中选择.wav声音文件播放了,可不可以直接用pc上的蜂鸣器发声,脚本应该怎么编写?补充:报警变量是模拟量,怎么编脚本转换成布尔型变量用来报警?新手上路请高人指点

问题补充:
又有问题了,假如在PLC里把模拟量转换成了开关量horn作为报警变量,想组态一个报警,并编一个C脚本当报警消息来时报警,蜂鸣器发声,确认报警后,蜂鸣器声音停止。
(1)用wincc编C全局脚本:
#pragma option(mbcs)
void New_Function()
{
DWORD value;
value=GetTagDWord("horn");
while(value)
   {
    Beep(1000,100);  //蜂鸣器 频率:1000 Hz,指定蜂鸣声的持续时长100 ms
    }

}

(2)在图形编辑器的画面上加个按钮,C动作触发上面的New_Function()函数:#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
New_Function();
}


(3)在报警记录中组态一个报警消息,message tag 为horn。
(4)在图形编辑器的画面上加个“输入/输出域”,选择变量“horn”,模拟报警信号输入。

运行:点击按钮,改变“输入/输出域”的horn值为1
结果:蜂鸣器长鸣,解除报警(horn置1)不能关闭蜂鸣器。。。。。。
是程序脚本编错了?陷入死循环了么?

最佳答案

是你的脚本用错了,不要用while,否则是死循环,改为if。

其触发条件也不应该放到按钮的事件中触发,应该放到全局脚本中,触发周期选1S。

提问者对于答案的评价:
嗯,多谢哈,照你的方法实现了,没用if ,在while里又加了一条语句也ok
while(value)
   {
   value=GetTagDWord("horn");
    Beep(1000,100);  
    }

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • 客户机/服务器问题

    我用客户机/服务器模式做项目.先在服务器上做多用户项目.然后在客户机上做一个客户项目并装载服务器数据包,设置隐含更新和标准服务器.最后在客户机项目上设置服务器上的项目中的画面和菜单…

    SIMATIC WinCC 2019年6月11日
  • 项目激活时运行到Tag Loggingtuntime 时卡住

    项目激活时运行到Tag Loggingtuntime 时卡住弹出窗口“系统检测到有其他进程正在运行,请点击切换到该进程”。那位大大能帮帮忙啊,我都重装系统四五次…

    SIMATIC WinCC 2019年6月11日
  • 如何通过脚本实现另一个窗体画面的弹出

    如何在wincc脚本里面通过一个按钮的动作实现另一个画面的弹出,同时按钮所在的画面消失啊   最佳答案 这个其实很简单啊,根本不需要写脚本啊,你可以直接连接画面…

    SIMATIC WinCC 2019年6月11日
  • 如何更改保存数据路径

    我厂的工控机突然不好使了(WINCC V6.0),点任何按钮设备都没有反应,经过检查是C盘已经满了,(前两天工控机总是提示虚拟内存不足)好像是保存数据路径在C盘,我该如何…

    SIMATIC WinCC 2019年6月11日
  • 求助:WINCC WEB发布的具体设置

    求助:WINCC WEB发布的具体设置,小弟QQ号11343695 .邮箱dongni5214@126.com 问题补充:问题补充:教材中说的不是很详细,我也是…

    SIMATIC WinCC 2019年6月11日
  • wincc 10幅同工艺主画面,用一幅主画面能否实现

    有十台,冶炼炉,每台工艺一样,按以往思路,要做十幅主画面图,要是用一幅主画面来实現,怎么样解决,各位大神 钻石用户推荐最佳答案 可以的,比如使用结构变量加变量前缀的功能、间接寻址的…

    SIMATIC WinCC 2021年7月5日
  • 请教用户归档

    请教高人,用户归档中的"控制变量"是干什么的 具体怎么用哟 比如:ID, 指令,域,值 问题补充:在归档属性里边看得到 最佳答案 …

    SIMATIC WinCC 2019年6月11日
  • WINCC7.4 SP1与GE-PLC通信的方案?

    WINCC7.4 SP1与GE-PLC通信的方案?是什么?opc?modbus tcpip? 最佳答案 请见同类问题的答案:http://www.ad.siem…

    SIMATIC WinCC 2021年7月5日
  • wincc中怎样实现导航(不是用按钮)

    看了手册,也看了你个资料,只是知道原来的一个版本可以做导航,现在,V6.2版本的不知道能不能做.怎么做呢?还请不吝赐教!!! 最佳答案 用按钮的你会做吗?如果会做,那么就用按钮。我…

    SIMATIC WinCC 2019年6月11日
  • wincc 历史数据删除,导致数据不更新了。

    文件夹ArchiveManager中TagLoggingSlow文件夹的内容我删除了2011年以前的文件。再运行程序结果数据不再更新,请问是什么原因?这个方法是否有问题呢? 问题补…

    SIMATIC WinCC 2018年12月14日