两个仪表(模拟量)二选一输出 选择输出模式型

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    195

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

两个仪表(模拟量)二选一输出 选择输出模式型

1534

5

2016-12-27 23:00:26

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

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

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

FUNCTION FC60: VOID

TITLE =   'TWO_SL_ONE'

{                            

S7_m_c:=      'true';        

S7_alarm_ui:= '1'            // Setting for PCS 7 message dialog ('0'=standard message dialog)

}

AUTHOR:   EBC_LW

NAME:     TWOSLONE

VERSION:      '0.01'

FAMILY:   EBC

KNOW_HOW_PROTECT



VAR_INPUT

    

 IN1

 

  : STRUCT

      VALUE : REAL;

      ST : BYTE;

  END_STRUCT;//输入值1

  

   IN2

  : STRUCT

       VALUE : REAL;

      ST : BYTE;

  END_STRUCT;//输入值2

 

 SelMode:INT; //选择输入参数0:参数选择1:最小值2:最大值3:平均值

 Sel_In2 : STRUCT

       VALUE :BOOL;

      ST : BYTE;

  END_STRUCT;//选择模式:0:IN1输出1:IN2输出



END_VAR


VAR_IN_OUT

 

END_VAR



VAR_OUTPUT

    

In2Selected: STRUCT

       VALUE : BOOL;

      ST : BYTE;

  END_STRUCT;//选定的输入参数

OUT: STRUCT

       VALUE : REAL;

      ST : BYTE;

  END_STRUCT;//模拟过程值 



END_VAR




VAR_TEMP

    

END_VAR

VAR



END_VAR


 // 判断值是否正常

 IF  (IN1.ST =B#16#80) &(IN2.ST=B#16#80) THEN  //如果两个值都正常则判断选择模式

     CASE SelMode OF

        0 :   //按照选择参数选择输出

         IF Sel_In2.ST = B#16#80 THEN

            IF Sel_In2.VALUE=1 THEN

             OUT:=IN2;

              ELSE

             OUT:=IN1;

            END_IF;

    


        END_IF;

       OUT.ST:=B#16#80;

      1 ://选择最小值

           OUT.VALUE:=MIN(IN1:=IN1.VALUE,IN2:=IN2.VALUE);

           OUT.ST:=B#16#80;

      2 :// 选择最大值

           OUT.VALUE:=MAX(IN1:=IN1.VALUE,IN2:=IN2.VALUE);

           OUT.ST:=B#16#80;

      3 ://取平均值

            OUT.VALUE:=(IN1.VALUE+IN2.VALUE)/2;

            OUT.ST:=B#16#80;

      ELSE

       IF IN1.ST =B#16#80 THEN

          OUT:=IN1;

          ELSE

          OUT:=IN2;

       END_IF;

 

END_CASE;

END_IF;

END_FUNCTION

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

两个仪表(模拟量)二选一输出 选择输出模式型 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54715条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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