回复:西门子1200

周杰伦

西门子1847工业学习平台

  • 帖子

    2014
  • 精华

    16
  • 被关注

    143

论坛等级:至圣

注册时间:2011-04-19

黄金 黄金 如何晋级?

发布于 2016-05-03 12:15:37

1楼

FUNCTION "模拟量输入" : Void

{ S7_Optimized_Access := 'TRUE' }

VERSION : 0.1

   VAR_INPUT 

      IW : Word;

      ID : Int;

      max : Real;

      min : Real;

   END_VAR


   VAR_OUTPUT 

      "TEST_Current/Voltage" : Real;

      Sensor_error : Bool;

   END_VAR


   VAR_IN_OUT 

      REAL_out : Real;

   END_VAR


   VAR_TEMP 

      iw_real : Real;

   END_VAR



BEGIN

#iw_real := INT_TO_REAL(WORD_TO_INT(#IW));

IF (#ID=1) THEN  //4-20ma

   #"TEST_Current/Voltage" := (16 * #iw_real) / 27648 + 4;

   #REAL_out := (#max - #min) * NORM_X_REAL(MIN :=0, VALUE := #iw_real, MAX := 27648);

END_IF;

IF (#ID = 2) THEN//0-10v

   #"TEST_Current/Voltage" := #iw_real*10/27648 ;

   #REAL_out := (#max - #min) * NORM_X(MIN := 0, VALUE := #iw_real, MAX := 27648);

END_IF;

IF (#IW = 16#ffff OR #IW=16#7fff OR #IW=16#8000) THEN

   #Sensor_error := 1;

   #REAL_out := 0;

   #"TEST_Current/Voltage" := 0;

   

ELSE

   #Sensor_error := 0;

  

END_IF;

END_FUNCTION




FUNCTION "模拟量输出" : Void

{ S7_Optimized_Access := 'FALSE' }

VERSION : 0.1

   VAR_INPUT 

      Per_In : Int;

      max : Int;

      min : Int;

   END_VAR


   VAR_OUTPUT 

      QW : Word;

   END_VAR


   VAR_TEMP 

      Error_Word : Word;

      Q_INT : Int;

      T_int : Int;

   END_VAR



BEGIN

#T_int:= LIMIT(MN := #min, IN := #Per_In, MX :=#max);

#QW := INT_TO_WORD(SCALE_X(MIN := #min, VALUE := #T_int, MAX := #max));

END_FUNCTION


工控毁我青春!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15112条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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