技术论坛

 按钮的延时功能

返回主题列表
作者 主题
xiatianyun
侠圣

经验值:4857
发帖数:735
精华帖:10
楼主    2021-09-11 15:43:04
主题:按钮的延时功能 精华帖 

想用一个按钮来控制PLC的一个bool变量,实现复位功能:按下Set,抬起Reset。

一开始用取反的直接变量连接,发现不能用(或是我不知道如何取反)。后来做了两个按钮来暂时替代测试,之后当然还是回到一个按钮的实现来。

用两个事件来实现,效果不能正确,原因当然是通讯的延时问题,不能检测到短暂的按下释放并有效传输到PLC。当然可以用脚本来实现,不过我感觉太麻烦了。


论坛搜到了2016年万版主的旧贴:

【万泉河】在WINCC中如何单击按钮发出一个脉冲信号?-技术论坛-工业支持中心-西门子中国 (siemens.com.cn)

http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1276061&b_id=82


有点意思,我研究了一下,还没仔细看,不过解决了我昨天的问题:可以借用控件的属性动态来做和属性无关的周期动作,这个万版主也是这么做的,看来我的没问题。


我认真思考了这个按钮延时问题。

按钮发指令给PLC,为了可靠,需要做成延时一段时间再off。这个我现在觉得如果只是用来发指令的话其实还是采用PLC接受到信号1后由PLC复位这个信号比较合适。原因是就算WinCC发的是短时脉冲,PLC能够可靠接受到信号,PLC还是需要做沿检测的,这样PLC反而多了一些沿检测程序,多了一个静态变量来存储信号状态,不如PLC接受到信号后由PLC复位来得简单。

西门子提供的例程BST里也是这么处理的,看来确实有道理。


不过WinCC按钮实现脉冲自复位的功能还是有使用的空间的,比如这次我需要临时调试,不太可能在PLC中增加复位信号的程序,就只能由WinCC来做脉冲信号了。


问题是如何实现呢?万版主的原来的实现确实好,借助按钮的填充动态来1s周期执行计数,这样就可以实现延时了。

不过填充动态还是需要不停地执行,无论这个脉冲功能已经使用还是正在使用。总之需要不停地劳累。

问题1:普通周期动作有没有像动画触发一样有激活和灭活的功能,这样需要动态时就激活,不用时就不让触发。(也许可以在按钮填充动态使用动画触发)

问题2:如果要简单使用,不费劲编程,当然使用面板比较合适。这样按钮控制的变量也可以做成属性供用户直接改写,不用在程序中来改写。


手机用户20180604694547
侠圣

经验值:3813
发帖数:730
精华帖:3
1楼    2021-09-11 19:16:46
精华帖  主题:回复:按钮的延时功能

最好的方法还是在PLC中进行复位,实在想在wincc中实现的话VBS有一个延时的指令用起来比较烦但封装在项目函数中重复调用也还是不错的,可能唯一的缺点就是在延时期间不能执行其他脚本,这个可能是wincc的脚本机制导致的。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。