回复:老外的计时程序

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2017-04-13 14:25:43

37楼

这个概念并不是老外自己去做,而是理解了S7系统控制

我也这样做,例如

VAR_INPUT

//ODT   

Input_Condition:BOOL:=false;//允许定时器工作

FP_1Sec:BOOL;               //脉冲时基为1S

reset:BOOL;                 //定时器复位

Timer_Setpoint:INT:=0;      //设定时间 30 为30S 90为1分半 等等 

END_VAR

VAR_IN_OUT    

   Impls_1Sec_Aux:BOOL;   

END_VAR

VAR_OUTPUT

Impls_1Sec:BOOL;    

Output_Delay:BOOL:=false;    //通电延时,时间到输出

Timer_Actual:INT:=0;         //已经经过的时间

END_VAR


//通电延时,不带保持

Impls_1Sec:= FP_1Sec AND (NOT Impls_1Sec_Aux); 

Impls_1Sec_Aux:= FP_1Sec;

IF NOT reset THEN

    IF (NOT Input_Condition) THEN 

    Timer_Actual:= 0; 

    Output_Delay:= 0; 

    ELSE 

    IF (Impls_1Sec  AND NOT Output_Delay)  THEN 

        Timer_Actual:= Timer_Actual +1; 

    END_IF;

     Output_Delay:= Timer_Actual >= Timer_Setpoint;

END_IF;

ELSE

    Impls_1Sec:=false;

    Timer_Actual:= 0; 

    Output_Delay:= false;

END_IF;          

END_FUNCTION

同理可以制作其他类型定时器。利用了计数器叠加。而老外的程序是利用与OB1的扫描时间去判断。

然后做减法。

需要多少就做多少个。想说的这个不是重点,思路才是重点,外国人不比咱们中国人有多聪明。

还有大部分自动化系统程序的执行一般都在150MS内,如果S7自带的定时器够用,为何不用,简单,易读,稳定才是基本。

个人意见。

大家同行,you ok ? me !
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54715条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

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