模拟量编程资料求助 点击:300 | 回复:3



hassan_1

    
  • 精华:0帖
  • 求助:12帖
  • 帖子:34帖 | 102回
  • 年度积分:0
  • 历史总积分:215
  • 注册:2004年12月19日
发表于:2013-10-23 22:45:57
楼主

谁能提供一套模拟量编程的详细讲解资料啊,包括以下内容:

1、工程量的转换;

2、数据类型的转换;

3、FC105、FC106的详细用法讲解。

 

不甚感激!




领域

  • 精华:8帖
  • 求助:80帖
  • 帖子:481帖 | 3926回
  • 年度积分:915
  • 历史总积分:140763
  • 注册:2008年2月29日
发表于:2013-10-24 08:08:33
1楼

先回答你第三个问题:FC105、FC106的详细用法讲解。


1、FC105

SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:

OUT = [ ((FLOAT (IN) -K1)/(K2-1)) * (HI_LIM-O_LIM)] + LO_LIM

常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置。

BIPOLAR:假定输入整型值介于 7648与27648之间,因此K1 = -7648.0,K2 = +27648.0

UNIPOLAR:假定输入整型值介于0和27648之间,因此K1 = 0.0,K2 = +27648.0

如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。

通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。


2、FC106

UNSCALE功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。

UNSCALE功能使用以下等式:

OUT = [ ((IN-O_LIM)/(HI_LIM-O_LIM)) * (K2-1) ] + K1,并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。

BIPOLAR:假定输出整型值介于 ?7648和27648之间,因此,K1 = -7648.0,K2 = +27648.0

UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0

如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。


简要来说,FC105模拟量输入的标准化,FC106模拟量输出的标准化。

举个例子:
在OB1里调用FC105计算压力,压力地址为PIW320,范围0~10Kpa,传输信号为4~20mA,实时压力保存在DB1.DBD0里。
  CALL  "SCALE"
      IN     :=PIW320  //压力在PLC里的输入地址
      HI_LIM :=10.0 //压力范围上限
      LO_LIM :=0.0  //压力范围下限
      BIPOLAR:=FALSE  //极性选择,此处为单极性
      RET_VAL:=MW0 //错误信息
      OUT    :=DB1.DBD0  //实时压力


领域

  • 精华:8帖
  • 求助:80帖
  • 帖子:481帖 | 3926回
  • 年度积分:915
  • 历史总积分:140763
  • 注册:2008年2月29日
发表于:2013-10-24 08:12:24
2楼

看了这个你也许就明白了前两个问题                

hassan_1

  • 精华:0帖
  • 求助:12帖
  • 帖子:34帖 | 102回
  • 年度积分:0
  • 历史总积分:215
  • 注册:2004年12月19日
发表于:2013-10-24 13:04:36
3楼

十分十分感谢,能否告知您的QQ或者微信,象您这样热心、耐心的老师很想长河您联系,向您学习,谢谢!


热门招聘
相关主题

官方公众号

智造工程师