两个仪表优选输出(自动)

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    194

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

两个仪表优选输出(自动)

474

3

2016-12-28 12:49:03

上次发的那个二选一程序是自己编写给PCS7用的,没有判断数值的正确与否,这个程序尽量考虑了各种情况,网友在问有没有  这里给出程序供大家参考


该程序可以再优化一下就是把线性转换加上,也就不必读了通道又去读转换后的值。

源程序如下

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

// 两个传感器二选一输出

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

FUNCTION FC78: VOID

TITLE =   'TWO_SL_ONE'

AUTHOR:   EBC_LW

NAME:     TWOSLONE

VERSION:      '0.01'

FAMILY:   EBC

KNOW_HOW_PROTECT



VAR_INPUT

 PV1:WORD;   

 PV2:WORD;  

 PV1_REAL:REAL;

 PV2_REAL:REAL;

 PV_DEV_SET:REAL;

 ERR_MAN_SET:REAL;

END_VAR


VAR_IN_OUT

 

END_VAR



VAR_OUTPUT

PV:REAL;

PV1_FAIL:BOOL;

PV2_FAIL:BOOL;

PV_DEV:REAL;


END_VAR




VAR_TEMP

    

END_VAR

VAR



END_VAR


 // 判断值是否正常

// TEMP1:=WORD_TO_INT(PV1);

 IF  (WORD_TO_INT(PV1) <-1) OR (WORD_TO_INT(PV1) >27649) THEN  //低于正常或者高于正常则通道标志位置1

   PV1_FAIL:=1;

ELSE

   PV1_FAIL:=0;

END_IF;

IF (WORD_TO_INT(PV2) <-1) OR (WORD_TO_INT(PV2) >27649)  THEN   //低于正常或者高于正常则通道标志位置1

    PV2_FAIL:=1;

ELSE

    PV2_FAIL:=0;

END_IF;

 // 计算偏差 

 PV_DEV:=ABS(PV1_REAL-PV2_REAL);

 

 

  // 若偏差大于设定值且无通道故障则采用平均值,若其中有一个有问题就采用正常的那个数值

IF (PV_DEV < PV_DEV_SET ) AND (PV1_FAIL=0) AND (PV2_FAIL=0)   THEN

    PV:=(PV1_REAL+PV2_REAL)/2;

       

ELSE

        //

        

        

        

        

    IF (PV1_FAIL=1)AND(PV2_FAIL=1) THEN

        PV:=ERR_MAN_SET;//若两个传感器都出现故障则采用预先设定的值

    ELSE

        //

        IF ABS(PV1_REAL-ERR_MAN_SET)>=ABS(PV2_REAL-ERR_MAN_SET) THEN //若两个表没有故障则判断两个表的值接近设定值的那个表的值优先输出

            PV:=PV2_REAL;

            ELSE

            PV:=PV1_REAL;

        END_IF;

        

                  

            

        

           //

     END_IF;

     //  

END_IF;



END_FUNCTION

//原创程序 欢迎交流 QQ275578306


关于为什么判断那样是有问题的仪表看看下面的表格



两个仪表优选输出(自动) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54620条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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