分享

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

 xpxys99 2017-09-16

【引言】有小伙伴想了解一下FC105的用法,鉴于FC105和FC106实际上是一对“好基友”,所以,这里大概的探讨一下这两个块的功能与用法。

一、FC105FC106

1、FC105

FC105的块名叫“scale”,中文的意思是模拟量输入的标准化。SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:

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

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

  • 双极性BIPOLAR:假定输入整型值介于 -27648与27648之间,因此K1 = -27648.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

FC106的块名叫“unscale”,中文的意思是模拟量输出的标准化。UNSCALE功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。UNSCALE功能使用以下等式:

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

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

  • 双极性BIPOLAR:假定输出整型值介于-27648和27648之间,因此,K1 = -27648.0,K2 = +27648.0

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

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

3、FC105、FC106的函数意义

上述FC105、FC106的功能介绍在STEP7的帮助文件中能够查到。方法有多种,比如在总览框中选中FC105,再按下F1就可以弹出FC105的帮助文本(如图1所示)。FC105、FC106的详细介绍和参数表可在帮助文本中查询,就不多赘述了。这里着重谈谈FC105、FC106的函数意义。

FC105、FC106是专门处理模拟量的。在实际的工程中,各种模拟量,如:压力、温度、流量、位移等都要采用各种各样的传感器进行测量。传感器会输出标准的电压、电流、温度、电阻等信号供PLC采集,经由模拟量输入模板将这些信号转换成数字量——整型数INTEGER。但在PLC内部处理这些数据时,又需要将整型数转换成实际的压力、温度、流量等物理值,而FC105就是为了完成从整型量到实际值转换而设计的;PLC运算处理后的模拟信号为了能经由模拟输出模板传输给执行机构,首先必须将实际值转换成整型量,这一过程需要由FC106来完成。

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

二、FC105、FC106的调用

在我们自己建立的工程中,默认是没有FC105、FC106等这些逻辑块的。也就是,工程建立时,图1中的块总览框的FC块下是没有FC105和FC106的,需要我们自己把它们找出来。

我们需要从库中找到FC105、FC106,它们在“库->Standard Library->TI-S7 Converting Blocks”下,如图2所示。我们假定在OB1中调用这两个块。则只需将库中的FC105和FC106分别拖入OB1的新程序段中,即可实现对两个块的调用,在红色“???”处赋以合适的变量即可完成程序功能。同时,系统会在块预览界面生成两个块(如图3)。

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

三、例程

FC105、FC106的参数中,最难确定的是HI_LIM和LO_LIM的值,到底该取怎样的值才合适呢?这里,我们以Pt100给PLC反馈温度为例,来说明一下FC105中参数值HI_LIM和LO_LIM如何整定。

PT100的工作原理是:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成近似匀速的增长,为了方便讨论,这里我们假定其成线性关系。即:

T=k*R+b

(其中:T为温度值,R为阻值,k、b为线性关系常数)

而Pt100在0°C到120°C之间温度与阻值的对应值如下表:

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

根据表中数据,可整定出k=2.56;b=-256。

将k、b的值对应到FC105的标准化等式中(假定FC105工作于单极性模式下):

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

可以计算出HI_LIM=70522,LO_LIM=-256,将其填入程序的对应位置后,程序如下:

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

程序仿真运行结果如下:

S7 300PLC之旅——模拟量输入、输出标准化FC105、FC106

图5 FC05参数整定后的R-T对照值

将仿真运行结果带入PT100的温度阻值对照表中,发现结果出入不大,基本相符。证明HI_LIM和LO_LIM的整定值比较符合实际测量与控制需要。

FC106的参数整定方法与FC105的基本类似,这里就不赘述了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多