欢迎光临安徽进取自动化科技有限公司! 技术资料 | 在线订购 | 联系我们

    最新发表

    企业信息

      0551-64681800

      安徽进取自动化科技有限公司

      合肥市瑶海区长江东大街277号闽商国贸中心A座606室

      cahxmz@126.com

    模拟量精度及量程转换

    作者:安徽进取 日期:2021-08-02 点击:372
    一键分享

    模拟量精度及量程转换

     模拟量转换的分辨率

     模拟量转换的基本误差

     STEP7 V5.x中模拟量输入输出的编程

     TIA Portal中模拟量输入输出的编程

    模拟量转换的分辨率

    分辨率是 A/D 模拟量转换芯片的转换精度,即用多少位的数值来表示模拟量。模拟量模块的转换分辨率用于反映模拟量变化的最小单位。精度 < 15 位时,将所有由“x”标识的位设置为“0”。

    模拟量模块所支持的模拟值精度,如表1.1所示。

    1.1

    单极性输入范围(例如,电压输入0~10V,对应值为0~27648),如表1.2所示。

    1.2

    双极性输入范围(例如,电压输入-10~10V,对应值为-27648~27648),如表1.3所示。

    1.3

    例如,表1.4 12 位分辨率的模块,其数据从低字节的第四位(bit3)开始变化,其最小变化单位      23  = 8 bit0~bit2 则补“ 0 ”(红色图框为无效位)

    1.4

    设该模拟量通道类型为电压0~10V,满量程电压值10V对应数据27648,其能识别的最小电压值为: 

    模拟量转换的基本误差

    误差是A/D转换的实际值与真实值的接近程度。

    模拟量转换的误差除了取决于A/D转换的分辨率,还受到转换芯片的外围电路的影响。在实际应用中,输入的模拟量信号会有波动、噪声和干扰,内部模拟电路也会产生噪声、漂移,这些都会对转换的值造成影响。这些因素造成的误差要大于 A/D 芯片的转换误差。

    •   基本误差限值(25°时的操作限值,与所选输入范围内的测量范围极值有关):是指整个转换范围内,绝对误差与量程极值range的比值,以百分数表示。 其表达式为:                                

    例如,6ES7 331-7KF02-0AB0,其基本误差限值如表2.1所示。

    2.1

    目前常用的S7-300模板规格型号参见模板手册,下载链接 

    STEP 7 V5.x中模拟量输入/输出的编程

    1FC105/FC106 在哪里?

    在编程界面下,在 “程序元素”中的 “库——> Standard Library ——> TI-S7 Converting Blocks”中可以找到,见图3.1


    3.1


    3.2

    注意:请不要使用 S5-S7 Converting Blocks”下的 FC105FC106,该路径下的功能是用于 S5 输入输出模板的,在 S7 输入输出模板上无法使用。

    2) FC105功能描述

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

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

    常数K1K2根据输入值是BIPOLAR还是UNIPOLAR设置。

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

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

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

     3) FC105的参数定义

    参数

    描述

    数据类型

    存储区

    描述

    EN

    输入

    BOOL

    I、QMDL

    使能输入端,信号状态为1时激活该功能。

    ENO

    输出

    BOOL

    I、QMDL

    如果该功能的执行无错误,该使能输出端信号状态为1

    IN

    输入

    INT

    I、QMDLP、常数

    欲转换为以工程单位表示的实型值的输入值。

    HI_LIM

    输入

    REAL

    I、QMDLP、常数

    以工程单位表示的上限值。

    LO_LIM

    输入

    REAL

    I、QMDLP、常数

    以工程单位表示的下限值。

    BIPOLAR

    输入

    BOOL

    I、QMDL

    信号状态为1表示输入值为双极性。信号状态0表示输入值为单极。

    OUT

    输出

    REAL

    I、QMDLP

    转换的结果。

    RET_VAL

    输出

    WORD

    I、QMDLP

    如果该指令的执行没有错误,将返回值W#16#0000。对于W#16#0000以外的其它值,参见"错误信息"

    故障信息:

    如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0RET_VAL等于W#16#0008

    4) FC105例子程序

    如果输入I0.0的信号状态为1 (激活),则执行SCALE功能。在本例中,整型值22将转换为介于0.0100.0之间的实型值,并写入OUT。如I2.0的信号状态所示,该输入值为BIPOLAR

    如果该功能的执行没有错误,ENOQ0.0的信号状态将设置为1RET_VAL等于W#16#0000

    执行前:

    IN ----------------------> MW10=22

    HI_LIM ---------------> MD20=100.0

    LO_LIM --------------> MD30=0.0

    OUT -------------------> MD40=0.0

    BIPOLAR ------------> I2.0=TRUE

    执行后:

    OUT ------------------> MD40=50.03978588

    5) FC106 功能描述

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

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

    并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1K2

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

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

    6) FC106 的参数定义

    参数

    描述

    数据类型

    存储区

    描述

    EN

    输入

    BOOL

    I、QMDL

    使能输入端,信号状态为1时激活该功能。

    ENO

    输出

    BOOL

    I、QMDL

    如果该功能的执行无错误,该使能输出端信号状态为1

    IN

    输入

    REAL

    I、QMDLP、常数

    欲转换为整型值的输入值。

    HI_LIM

    输入

    REAL

    I、QMDLP、常数

    以工程单位表示的上限值。

    LO_LIM

    输入

    REAL

    I、QMDLP、常数

    以工程单位表示的下限值。

    BIPOLAR

    输入

    BOOL

    I、QMDL

    信号状态为1表示输入值为双极性。信号状态0表示输入值为单极。

    OUT

    输出

    INT

    I、QMDLP

    转换结果。

    RET_VAL

    输出

    WORD

    I、QMDLP

    如果该指令的执行没有错误,将返回值W#16#0000。对于W#16#0000以外的其它值,参见"错误信息"

    故障信息:

    如果输入值超出LO_LIMHI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLARUNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。ENO的信号状态将设置为0RET_VAL等于W#16#0008

    7) FC106 例子程序

    如果输入I0.0的信号状态为1 (激活),则执行UNSCALE功能。在本例中,标定于0.0100.0之间的实型值50.03978588,将转换为一个整型值,并写入OUT。如I2.0的信号状态所示,该输入值为BIPOLAR

    如果该功能的执行没有错误,ENOQ0.0的信号状态将设置为1RET_VAL等于W#16#0000

    执行前:

    IN ----------------------> MD10=50.03978588

    HI_LIM ---------------> MD20=100.0

    LO_LIM --------------> MD30=0.0

    OUT -------------------> MW40=0

    BIPOLAR ------------> I2.0=TRUE

    执行后:

    OUT ------------------> MW40=22

    注意:通常在一个项目都有不只一个模拟量需要转换,FC105 FC106 在程序中都可多次调用,调用的方法同上述例子程序。

    TIA Portal 中模拟量输入/输出的编程

    1SCALE/UNSCALE在哪里?

    TIA  Portal中指令SCALE/UNSCALE的功能和STEP7中的FC105/FC106功能相同,用于模拟量输入/输出的编程。

    编程界面下,在 “指令” 中的“基本指令 ——> 转换操作”中可以找到,见图4.1

    4.1

    2SCALE/UNSCALE如何使用?

    SCALE/UNSCALE指令的使用和FC105/FC106完全相同,对应引脚的定义也完全相同,使用方法请参阅章节3