三问“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日
下一篇 2017年7月26日

相关推荐

  • Operator Control and Monitoring不能选,怎么回事?

    我按网上的<<从WinCC里调用STEP 7 的变量>>这篇教程操作后,到这步,"在需要传输的变量上点击右键,从关联菜单中选择…

    SIMATIC WinCC 2019年6月11日
  • wincc画面切换脚本怎么写

    wincc全画面切换,不是子画面,按钮脚本怎么写 问题补充:openpicture怎么用,提示没有包含动作代码 最佳答案 你可以右键这个函数,选择参数。如果不想麻烦,你可以用按钮给…

    SIMATIC WinCC 2020年11月1日
  • wincc在线趋势控件曲线修改

    各位老大,我这边wincc用了在线趋势控件调用变量记录的数据。因工程需要,要修改曲线(等于修改变量记录的mdf文件),用什么方法修改?紧救啊!用脚本来改变行吗?如何修改? 最佳答案…

    SIMATIC WinCC 2019年6月11日
  • 请教画面模板

    我用变量前缀的方式在画面上做了很多阀门,按下阀门,出现对话框,对话框中有很多功能选项,阀门比较多,我不可能在一个主画面上放上50个阀门的对话框,请教各位是怎么去解决这问题的。或者能…

    SIMATIC WinCC 2019年6月11日
  • WINCC报警与DB块

    如何通过WINCC来寻找PLC程序中哪个变量对应的该报警信息?如图所示:看到报警电动阀1损坏,我如何知道在PLC中是哪个DB块中的那个地址对应的该变量 图片说明:  &n…

    2017年11月25日
  • WinCC flexible报警窗口的弹出

    请问怎么设置才使报警窗口不弹出? 最佳答案 把模板上的报警控件删了就好了 提问者对于答案的评价:谢谢,解决了

    SIMATIC WinCC 2018年3月6日
  • 精智屏数据记录求解

    我使用了 数据记录的功能,数据类型是real,可是等我到U盘查看的时候发现它的值都变成了整数。有种real数据int显示的感觉。 图片说明:    钻…

    2020年11月1日
  • WinCC数据通过脚本或者其他方式写到PLC中?

    WinCC与S7-400用MPI连接,与串口设备通过OPC连接,请问如何将OPC获得的数据通过WinCC再写入到S7-400中?    尝试…

    2020年11月1日
  • wincc的项目不能打开

    从别的地方拷过来的WINCC项目,不能打开。 最佳答案 首先要确定复制源的WINCC版本和你本地的WINCC版本,如果版本不一样,要使用WINCC自带的项目移植器先进行移植,再行拷…

    SIMATIC WinCC 2019年6月11日
  • WinCC如何禁用视窗键

    WINCC里只在属性里设置了一般的键盘按键的禁止,但是视窗键并没有设置属性。请问高手们如何设置才能使视窗键禁止掉 最佳答案 禁用Ctrl+ESC同时也就禁止了视窗键 提问者对于答案…

    SIMATIC WinCC 2019年6月11日