技术论坛

设备运行时间累计(默认约三年)可修改时间更长

作者 主题
侠圣

经验值: 2495
发帖数: 95
精华帖: 7
主题:设备运行时间累计(默认约三年)可修改时间更长
推荐帖 推荐帖


只看楼主 楼主 2016-12-27 21:48:44

程序简要:可记录设备的运行时间,并可以设置维护时间,维护时间到后发出一个报警信号并可以复位。

程序需要放在OB1中运行,且CPU时钟存储设置为2

//*****************************

//运行时间累计

//程序中的M2.5为设定的系统秒信号,需要在硬件组态中配置。

//EBC_LW 20160617

//*****************************


FUNCTION_BLOCK FB4

TITLE = 'RUN_TIME'

//

// 运行时间累计

//

VERSION: '1.0'

AUTHOR: EBC_LW

NAME: RUNTIME

FAMILY: EBC

KNOW_HOW_PROTECT

  // Statement Section

VAR_INPUT

    RUN:BOOL;//运行状态

    //SECOND:BOOL;//秒脉冲

    MAINTAIN_TIME_SET:INT;//维护时间设定(小时)

    REST_MAIN:BOOL;//维护标志位复位

    REST:BOOL;//时间复位

    

END_VAR



VAR_IN_OUT

        SET_FLAG:INT; //设定值的上一次的输入值

     NEXT_HOUR:INT;//下一次需要维护的时间

   // I/O Parameters

END_VAR





VAR_OUTPUT

    //RUN_Day:INT;

    RUN_Hour:INT;//运行的小时数

    RUN_Minite:INT;//运行的分钟数

    RUN_Sencond:INT;//运行的秒数

     MAINTAIN:BOOL;//维护标志位


END_VAR



VAR_TEMP

PN:BOOL;

GE_PN:BOOL;

END_VAR

VAR

OLD_VAL:BOOL;//边沿检测的上一次的值

 //FLAG:BOOL;

    // Temporary Variables

OLD_GE_VAL:BOOL;//边沿检测上一次的值

//TEMP2:INT;

    // Static Variables

GE_VAL:BOOL;

END_VAR

//上升沿

PN:=M2.5&(NOT OLD_VAL);

OLD_VAL:=M2.5;

//下降沿

//NN:=OLD_VAL&(NOT M2.5);

//OLD_VAL:=M2.5;




//运行时间累计

IF RUN THEN

    IF PN THEN  //系统时钟地址1S上升沿触发

       // SECOND:=0;

        RUN_Sencond:=RUN_Sencond+1;

        IF RUN_Sencond>=60 THEN

            RUN_Sencond:=0;

            RUN_Minite:=RUN_Minite+1;

            IF RUN_Minite>=60 THEN

                RUN_Minite:=0;

                RUN_Hour:=RUN_Hour+1;

                END_IF;

            END_IF;

    END_IF;


 END_IF;

//复位时间

IF REST OR RUN_Hour>=32767 THEN

REST:=0;

RUN_Sencond:=0;

RUN_Minite:=0;

RUN_Hour:=0;

NEXT_HOUR:=MAINTAIN_TIME_SET;

END_IF;


//判断输入的设定值是否为上次设定的值不是上一次的值则重新赋值

IF SET_FLAG <>MAINTAIN_TIME_SET THEN

   SET_FLAG:=MAINTAIN_TIME_SET;

   NEXT_HOUR:=SET_FLAG+RUN_Hour;

END_IF;


//新的维护时间是否到达,到达后产生一个标志位

IF RUN_Hour>= NEXT_HOUR THEN

    GE_VAL:=1;

ELSE

    GE_VAL:=0;

   //MAINTAIN:=TRUE;

   

END_IF;

//当维护时间标志位到达上升沿检测


GE_PN:=GE_VAL & (NOT OLD_GE_VAL);

OLD_GE_VAL:=GE_VAL;


IF GE_PN THEN

    MAINTAIN:=1;

    NEXT_HOUR:=SET_FLAG+RUN_Hour;

  END_IF;


//维护标志位复位

IF  REST_MAIN THEN

    //REST_MAIN:=0;

    MAINTAIN:=0;

END_IF;


     

END_FUNCTION_BLOCK

//原创程序请多交流 QQ 275578306


努力赚钱 养家糊口
推荐帖推荐理由: 有一定的实用性,值得推荐。对于SCL编程也希望楼主能够与大家多多交流互动。 (推荐人:月雨风云)
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1353589&b_id=6&s_id=0&num=9

至圣

经验值: 17965
发帖数: 2974
精华帖: 7
回复:设备运行时间累计(默认约三年)可修改时间更长
推荐帖


只看楼主 1楼 2016-12-27 21:51:40
以下是引用柳叶飘飘在2016-12-27 21:48:44的发言 >楼主

程序简要:可记录设备的运行时间,并可以设置维护时间,维护时间到后发出一个报警信号并可以复位。

程序需要放在OB1中运行,且CPU时钟存储设置为2

//*****************************

//运行时间累计

//程序中的M2.5为设定的系统秒信号,需要在硬件组态中配置。

//EBC_LW 20160617

//*****************************


FUNCTION_BLOCK FB4

TITLE = 'RUN_TIME'

//

// 运行时间累计

//

VERSION: '1.0'

AUTHOR: EBC_LW

NAME: RUNTIME

FAMILY: EBC

KNOW_HOW_PROTECT

  // Statement Section

VAR_INPUT

    RUN:BOOL;//运行状态

    //SECOND:BOOL;//秒脉冲

    MAINTAIN_TIME_SET:INT;//维护时间设定(小时)

    REST_MAIN:BOOL;//维护标志位复位

    REST:BOOL;//时间复位

    

END_VAR



VAR_IN_OUT

        SET_FLAG:INT; //设定值的上一次的输入值

     NEXT_HOUR:INT;//下一次需要维护的时间

   // I/O Parameters

END_VAR





VAR_OUTPUT

    //RUN_Day:INT;

    RUN_Hour:INT;//运行的小时数

    RUN_Minite:INT;//运行的分钟数

    RUN_Sencond:INT;//运行的秒数

     MAINTAIN:BOOL;//维护标志位


END_VAR



VAR_TEMP

PN:BOOL;

GE_PN:BOOL;

END_VAR

VAR

OLD_VAL:BOOL;//边沿检测的上一次的值

 //FLAG:BOOL;

    // Temporary Variables

OLD_GE_VAL:BOOL;//边沿检测上一次的值

//TEMP2:INT;

    // Static Variables

GE_VAL:BOOL;

END_VAR

//上升沿

PN:=M2.5&(NOT OLD_VAL);

OLD_VAL:=M2.5;

//下降沿

//NN:=OLD_VAL&(NOT M2.5);

//OLD_VAL:=M2.5;




//运行时间累计

IF RUN THEN

    IF PN THEN  //系统时钟地址1S上升沿触发

       // SECOND:=0;

        RUN_Sencond:=RUN_Sencond+1;

        IF RUN_Sencond>=60 THEN

            RUN_Sencond:=0;

            RUN_Minite:=RUN_Minite+1;

            IF RUN_Minite>=60 THEN

                RUN_Minite:=0;

                RUN_Hour:=RUN_Hour+1;

                END_IF;

            END_IF;

    END_IF;


 END_IF;

//复位时间

IF REST OR RUN_Hour>=32767 THEN

REST:=0;

RUN_Sencond:=0;

RUN_Minite:=0;

RUN_Hour:=0;

NEXT_HOUR:=MAINTAIN_TIME_SET;

END_IF;


//判断输入的设定值是否为上次设定的值不是上一次的值则重新赋值

IF SET_FLAG <>MAINTAIN_TIME_SET THEN

   SET_FLAG:=MAINTAIN_TIME_SET;

   NEXT_HOUR:=SET_FLAG+RUN_Hour;

END_IF;


//新的维护时间是否到达,到达后产生一个标志位

IF RUN_Hour>= NEXT_HOUR THEN

    GE_VAL:=1;

ELSE

    GE_VAL:=0;

   //MAINTAIN:=TRUE;

   

END_IF;

//当维护时间标志位到达上升沿检测


GE_PN:=GE_VAL & (NOT OLD_GE_VAL);

OLD_GE_VAL:=GE_VAL;


IF GE_PN THEN

    MAINTAIN:=1;

    NEXT_HOUR:=SET_FLAG+RUN_Hour;

  END_IF;


//维护标志位复位

IF  REST_MAIN THEN

    //REST_MAIN:=0;

    MAINTAIN:=0;

END_IF;


     

END_FUNCTION_BLOCK

//原创程序请多交流 QQ 275578306

使用SFC2、SFC3和SFC4不就可以了吗?


 
以下网友喜欢您的帖子:

  
至圣

经验值: 69029
发帖数: 12259
精华帖: 59
回复:设备运行时间累计(默认约三年)可修改时间更长
推荐帖


只看楼主 2楼 2016-12-27 22:14:30

高手驾到啊

以后SCL的问题得向您请教哈


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
至圣

经验值: 10630
发帖数: 2355
精华帖: 10
回复:设备运行时间累计(默认约三年)可修改时间更长
推荐帖


只看楼主 3楼 2016-12-27 22:15:44

这可是个好东西,前几天还有朋友在找这方面的案例,这下无心插柳柳成荫了,分享的不错。


学无止境
以下网友喜欢您的帖子:

  
侠圣

经验值: 3723
发帖数: 486
精华帖: 1
回复:设备运行时间累计(默认约三年)可修改时间更长
推荐帖


只看楼主 4楼 2017-01-19 14:21:32

高手,好贴。


永无止境!
以下网友喜欢您的帖子:

  
侠圣

经验值: 3804
发帖数: 500
精华帖: 3
回复:设备运行时间累计(默认约三年)可修改时间更长


只看楼主 5楼 2017-03-06 09:21:44

谢谢楼主分享,好贴啊。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 37446
发帖数: 5133
精华帖: 47
回复:设备运行时间累计(默认约三年)可修改时间更长


只看楼主 6楼 2017-03-06 09:46:09

 感谢分享!收藏了!


工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
侠士

经验值: 1709
发帖数: 93
精华帖: 0
回复:设备运行时间累计(默认约三年)可修改时间更长


只看楼主 7楼 2017-07-25 21:42:51

很实用,运行时间现在用的很多,多谢分享


学无止境,多多请教
以下网友喜欢您的帖子:

  
至圣

经验值: 30293
发帖数: 4511
精华帖: 26
回复:设备运行时间累计(默认约三年)可修改时间更长


只看楼主 8楼 2017-07-26 05:56:57
这段程序一旦加密将会是一个大杀器啊,可以用于讨要质保金工程余款的,不错!
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1776
发帖数: 310
精华帖: 0
回复:设备运行时间累计(默认约三年)可修改时间更长


只看楼主 9楼 2017-08-02 13:29:43
以前做过一个相同功能的程序,但没楼主这个完善,感谢楼主分享
人若无名,专心练剑
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
设备运行时间累计(默认约三年)可修改时间更长
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。