回复:如何在wincc显示step 7计时器的时间和次数

已锁定

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2021-05-31 10:04:20

2楼

step 7定时器定时60秒,重复八次,怎样才能在wincc中显示定时器剩余时间和次数

即使  60*8 =480 秒   现在要显示倒计时间  和剩余次数。 

那么初始指  时间   480秒   初始 次数  8 次,每间隔 60秒 ,次数减1.

FUNCTION_BLOCK FB63


TITLE = 'Block Title'


CONST

unit:=60;      //换算率

Initial_TIME:=480;    //初始时间 480秒

Initial_times:= 8 ;   //初始次数 8次

END_CONST

VAR

Impls_1Sec_Aux:BOOL;

Impls_1Sec:BOOL;

pos1,pos2,pos3:BOOL;

act_times:INT;

END_VAR


  


VAR_INPUT

    // Input Parameters

Input_Condition:BOOL:=false;   //允许计时

FP_1Sec:BOOL;                  //单位时基 秒

reset:BOOL;                    //计时复位

END_VAR




VAR_OUTPUT

    // Output Parameters

act_second:INT:=0;

act_min:INT:=0;

act_hour:INT:=0;

Time_remaining:INT;            //剩余实际

Times_remaining:INT;           //剩余次数

END_VAR



Impls_1Sec:= FP_1Sec AND (NOT Impls_1Sec_Aux); 

Impls_1Sec_Aux:= FP_1Sec;

IF NOT reset THEN

    IF  Input_Condition AND Impls_1Sec AND NOT pos1  THEN

    act_second:= act_second + 1;    pos1:=true;

    ELSE

    pos1:=false;

    END_IF;  

    IF (act_second >= unit) AND NOT pos2  THEN

        act_min:= act_min + 1;   act_times:= act_times + 1;  act_second:=0;

        pos2:=true;

    ELSE

        pos2:=false;

    END_IF;

    

    IF (act_min >= unit) AND NOT pos3  THEN

        act_hour:=act_hour + 1;   act_min:=0;    pos3:=true;

    ELSE

        pos3:=false;

    END_IF;

ELSE

    act_second:=0;    act_min:=0;   act_hour:=0;   act_times:=0;

END_IF;

Time_remaining:= Initial_TIME - (act_min* 60 + act_second);

Times_remaining:= Initial_times -  act_times ;  

END_FUNCTION_BLOCK




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

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54777条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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