发表于:2007-04-24 15:58:00
楼主
看了很多关于模拟量转化的帖子和程序,现在是越搞越糊涂了,期望那位大峡能具体的讲一讲:
我现在有个温度传感器的量程是0-500度,输出是4-24mA的电流信号,用S7-300的模拟量模块,我的模拟量地址是:AIW256,假如说我需要用到PID进行闭环系统的调节,就要用到FC105进行工程量转化,也可以自己进行编程,以下是对FC105的具体描述:
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:假定输入整型值介于 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可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小
通过上面的例子我想该这么算:OUT=(AIW256转化成的浮点数)*(500-0)/27648+0,这样是正确的吗?那位解答一下,
我还有以下问题:
1.SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值,我们为什么要转化?是不是CPU只能处理以工程单位表示的实型值?何为以工程单位表示的实型值?在本例中具体是指哪个数,这个数有什么用处?
(每个PID控制回路有两个输入量,即给定量和过程变量,在实际控制问题中,它们的取值范围和测量单位可能不一致,因此,在进行PID运算前,必须将工程实际值标准化,即转换为无量钢相对值格式。在对模拟量进行PID运算后,对输出生产的控制作用是在[0.0~1]范围的标准化值,为了能够驱动实际的驱动装置必须将其转换成工程实际值。 )
2.本例如果不用FC105进行线性转化,自己在程序中写程序,具体程序是怎样的,麻烦那位写出来.
3.假如说我的输入模块的精度是12位的,他和精度是16位有何区别,具体体现在那些方面?
4.我在网上看到一个小程序,希望大家解释一下他的含义:
L PIW400 //采集到的输入
T mw100 //将WORD格式变成整数
ITD //将整数转换成双整数
DTR //将双整数转换成浮点数即小数
L MD200 //此数为零点,由你自己根据现场表调定
+R
L MD300 //此数为比例,由你自己根据现场表调定
*R
T MD400 //此数为结果.
实践证明结果比FC105准确,因为FC105我看过里边的程序
根本就没有调零点,而且完全标准的0~20mA或4~20mA信号
是不存在的,总有差别,还不如用现场表比对来得OK.
根据上面公式,侧一高一低两个数就可算出响应传感器的
MD200和MD300.
谁能说说MD200,MD300,MD400具体指什么,和本例对应起来应该是那些变量或数值?
5.假如说本例用的是S7-200的PLC,希望那位大峡也写出线形转化的程序,以及如果要进行PID处理,触摸屏显示的程序/
上面有可能有些地方说的不是很清楚或者是错误的东西,希望大家包涵并给小弟指出来,希望大家多多提出回复,给我们这些新手学习的机会.谢谢大家!