西门子PLC模拟量精度及量程转换详解
文章内容概要:
➢模拟量转换的分辨率
➢模拟量转换的基本误差
➢STEP7 V5.x中模拟量输入输出的编程
➢博途中模拟量输入输出的编程
一、模拟量转换的分辨率
分辨率是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°C 时的操作限值,与所选输入范围内的测量范围极值有关):是指整个转换范围内,绝对误差与量程极值range的比值,以百分数表示。其表达式为:
plc模拟量怎么编程例如,6ES7 331-7KF02-0AB0,其基本误差限值如表2.1所示。
表2.1
三、STEP 7 V5.x中模拟量输入/输出的编程
1)FC105/FC106 在哪里?
在编程界面下,在“程序元素”中的“库——> Standard Library ——> TI-S7 Converting Blocks”中可以到,见图3.1:
图3.1
图3.2
注意:请不要使用“S5-S7 Converting Blocks”下的 FC105,FC106,该路径下的功能是用于 S5 输入输出模板的,在 S7 输入输出模板上无法使用。
2) FC105功能描述
SCALE(FC105)功能接受一个整型值(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可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。
故障信息:
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0,RET_VAL 等于W#16#0008。
4) FC105例子程序
如果输入I0.0的信号状态为1 (激活),则执行SCALE功能。在本例中,整型值22将转换为介于0.0和100.0之间的实型值,并写入OUT。如I2.0的信号状态所示,该输入值为BIPOLAR。
如果该功能的执行没有错误,ENO和Q0.0的信号状态将设置为1,RET_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 功能描述