三问“sleep(500)”

WinCC中启动按钮的组态程序如下:
#include "apdetap.h"
void OnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlays,intx,inty)
{

#pragma code("keme132.dll")
VOID Sleep(time);

SetTagBit("H_BC1A_MStart",1);
Sleep(500);
SetTagBit("H_BC1A_MStart",0);

}

操作人员按动启动按钮,WinCC将"H_BC1A_MStart"信号传给Step7项目,从而启动设备。但是,当操作人员连击或者多次击启动按钮后,"H_BC1A_MStart"信号就保持长导通,在后一级设备一启动,本级设备也跟着动起来,多次险些酿成事故。我在Step7中增加下面的程序以求解决问题:
A   M   103.0
=   L        0.0
A   L        0.0
AN    T    103
=   M    104.0
A   L        0.0
BLD     102
L    S5T#500MS
SD   T  103

用M104.0代替M103.0(M103.0就是WinCC里的"H_BC1A_MStart"),安全问题不会发生了,但是,根本性的"H_BC1A_MStart"问题还是存在,操作人员如果不对启动按钮进行再击的话,设备无法启动,请问大侠们,如果只是改动WinCC而不改动Step7项目,怎么改为好?谢谢!

最佳答案

同楼上,用MessageBox函数确认就可以取消掉长时间点住按钮或者多次点击按钮,让你不能连点鼠标..

另外时间要求不严格的话还可以把SetTagBit("H_BC1A_MStart",1)写到点击鼠标左键事件,把SetTagBit("H_BC1A_MStart",0)写到释放鼠标左键事件去. 这样的话点击鼠标左键发出动作信号,释放左键的时候切断动作信号,不管点多少次鼠标都能执行SetTagBit("H_BC1A_MStart",0).

提问者对于答案的评价:
谢谢!两种方案都可以,都能达到目的。为安全起见,在点击启动按钮后报警器响,要延时15S才能启动设备,操作工没等设备动起来就乱点而造成问题。再次谢谢指导。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年7月26日 上午2:26
下一篇 2017年7月26日 上午2:26

相关推荐

  • 如何查看WINCC的变量记录情况?

    当前有wincc项目文件2枚,需要看到其中两个压力值变化情况。有类似趋势记录那样的查看方式么?其他的也行。请不吝赐教,关于细节可以联系我。 问题补充:感谢大家的帮忙,我还是想知道具…

    SIMATIC WinCC 2019年6月10日
  • 开关量丢失时,在WINCC-RUNTIME界面弹出一对话框

    想实现如下功能:在GHAPHIC DESIGER 画了一个静态文本框,当现场一开关量丢失时,在WINCC-RUNTIME界面弹出一对话框。以便提醒操作员及时通知…

    SIMATIC WinCC 2019年6月11日
  • wincc报警列表和操作员消息能分开么?

    用wincc7.2的报警控件Wincc AlmControl做了一个报警列表,这里的报警显示和操作员消息是混杂在一起的,操作员消息能单独显示么?把报警列表和操作员消息列表…

    2021年7月5日
  • 更新WINCC上位机问题

    现在有三台工控机,以前装的均是WINCC5.1 RT版的,均为服务器,现在由于工控机有问题,想换工控机,同时也将系统升级为WINXP SP3,WINCC7.0&…

    SIMATIC WinCC 2019年6月11日
  • wincc不能运行

    wincc运行时卡在加载组态数据的进度上,是什么原因? 谢谢! 最佳答案 以下几个地方不要使用中文: 1、计算机名称 2、项目名称 3、项目…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible smart v3 版本问题

    触摸屏的厚始画面,通过∪盘保存,经过其它软件无效打开后,再用另一台电脑wincc flexible smart v3打开,就打不开,显示以前打开的版本…

    SIMATIC WinCC 2021年7月5日
  • wincc flexible 协调区域指针

    协调区域指针打开后,仿真时发现其地址值不变化 最佳答案 这个好像是用来和PLC进行时钟同步的,有可能不支持仿真参考:Smart屏时间同步问题合集http://www.ad.siem…

    SIMATIC WinCC 2020年11月1日
  • wincc通过C如何获取消息类别

    用户消息块能够获取,消息类别是怎么获取的呀?(现在通过GMsgFunction能获取用户消息块,然后保存到其它数据库,用于自定义的分析) 问题补充:例如获取 状态&nbs…

    2017年5月28日
  • wincc通过两个网卡与一个plc组成环网通讯

    wincc工作站通过两个网卡分别连两个交换机,两个交换机分别连同一个plc的两个网口(注:plc加了一个以太网模块,所以两个网口),这样的环网,wincc这边改怎么设置才能实现环网…

    SIMATIC WinCC 2021年7月5日
  • wincc v13 HMI界面

    在wincc v13中创建一个HMI该怎样在操作界面上设计按钮、旋钮、数显等部件,关键还有关于I/O域的问题。具体的操作步骤有谁能帮我讲解一下,请尽量详细一点。谢谢 最佳…

    SIMATIC WinCC 2017年6月1日