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

相关推荐

  • WinCC错误码7002、7006

    你好,请教一个问题,WinCC中使用过程中遇到一个情况。原来安装WinCC的系统是英文系统,运行正常,后安装汉化包,投用一段时间(2天)WinCC画面上就变暗了,ping一下是通的…

    SIMATIC WinCC 2019年6月11日
  • WINCC与VC数据交换

    现在有一台装有WINCC的主控计算机与一台无WINCC的工控机利用以太网通讯。如果工控机利用VC编程监控界面,那么此能否实现?如何实现主控计算机与工控机如何实现数据的交换? 专家建…

    SIMATIC WinCC 2020年11月1日
  • wincc脚本问题实现点击一个按钮对多个点置位或复位

    现在有一个问题,一个按钮是用c脚本设置了多个不同网段plc的点置位或者复位,发现点击按钮老是会有某些点不能实现,请问有什么办法改一下脚本可以实现所有的点都能置位或者复位呢?有没有可…

    SIMATIC WinCC 2021年7月5日
  • 关于WINCC授权

    通过项目移植把V5.1项目移植为V6.2项目,但运行后提示授权过期,变为演示模式,经过查看“详情”发现没有安装“A9WSEC0602” ,安装该授权后,不出现提示框,但仍…

    SIMATIC WinCC 2019年6月11日
  • 请问大家wincc的变量读写用spreadshee怎么做好?

    之前我用做了一张参数表格,然后用spreadsheet把这些参数和wincc做读写,但是读写的速度太慢,尤其是读要一分多钟,所以我用下载和下载键,不知道wincc本身读写PLC变量…

    SIMATIC WinCC 2020年11月1日
  • wincc中关于字算变量的比较

    我在wincc中建有字符型变量C_Code,我在C脚本中要判断C_Code是不是为空,具体脚本如下:char* code;    …

    SIMATIC WinCC 2021年7月5日
  • 用户归档的授权

    我的WINCC在运行了几个小时后,就弹出来一个对话框,要授权,后来查明是要“用户归档授权”。请问这个授权是要花钱买吗?是A9WARC0602 ,说我没安装 最佳答案 Wi…

    SIMATIC WinCC 2019年6月11日
  • wincc6.0升级7.0后C脚本的变量触发器不执行了

    前几天把系统的6.2版本wincc升级到了wincc7.0 sp1 结果发现 所有C脚本的变量触发器都不执行了。例如我有一个阀门 在画面上用…

    SIMATIC WinCC 2019年6月11日
  • WINCC中当PLC执行了某个条件后就在输出域中输出电脑的系统时间

    WINCC运行中,当PLC执行了某个条件后(如PLC输出了Q0.0后),在WINCC输出域中输出电脑的系统时间。 最佳答案 wincc用上升沿的概念,用一个变量tag连接q0.0,…

    SIMATIC WinCC 2019年6月10日
  • 标尺在趋势窗口中移动方式

    趋势中的标尺能不能实现鼠标点一下就到相应的位置,而不是拖动到相应的位置,如何实现? 最佳答案 那个是本身在曲线窗口都做好了的供使用,要单独对这个标尺组态是由难度的,甚至对使用者是做…

    SIMATIC WinCC 2019年6月11日