发表于:2006/4/16 19:57:00
#0楼
用EM235扩展、PT100测温是个很成熟的例子,可是我在西门子网站提供的例子和我的理解、实践却有很大的出入,请高手指教!
西门子网站提供的例子:
***概述***
----本例讨论如下内容:用模拟量扩展模块EM235测量温度和监视指定温限,在该模拟量模块的一个输入通道上连接PT100温度传感器(如果利用235的3个通道则可以监视3路温度指)。为了把PT100的温度变化的电阻转换成电压,模拟量输出作为恒电流源而使用,即输出 12.5mA恒电流(如果PT100不允许12.5的大电流则应该作相应的调整〕 供给PT100传感器。在这个电路中,产生了5mV/C(摄氏度)线性输入电压. EM235把这个电压转换成数字量,程序周期地读这些数字量,并将所读的这些数,利用下面的公式计算出温度C:
---- T[C]=(温度数字量-0C偏置量)/1C数字量
---- 温度数字量=存储在AIWx(x=0,2,4)中的值。
---- 0C偏置量=在0C测量出的数字量,该值为4000
---- 1C数字量=温度每升高1C的数字量,
----程序计算出带一位十进制小数点的温度值,并把该值写入信息1所属的变量单元中,信息 1为"Temperature=xxx.xC"再用TD200显示这些信息。在程序的初始化阶段中,用户可以输入高限和低限温度。如果测量温度超出所选范围,那么TD200温度监视器的第二行显示警告信息.若测量温度超过高限,那么TD200的第二行显示信息2,即"Temperature>xxx.xC"如果测量温度低于温度低限,那么TD200的第二行显示信息3,即"Temperature<xxx.xC"
硬件描述
温度传感器:
----PT100是铂电阻温度传感器,它适用于测量-60C到+400C之间的温度。
----计算PT100所需电流 PT100在0C时电阻为100欧姆,随着温度的变化电组成线性变化,大约是每摄氏度0.4欧姆,为了产生5mV/C的电压系数,需要提供12.5mA电流。由于模拟量输出精度为10微安/数,为了得到5mA输出电流所需的输出数必须为1250。因为AQW数据字向右移4位,因此输出数必须乘以16。这样,为了初始化模拟量输出Io位12.5mA电流,在AQW0中必须设置20000输出数。等式为:(32000/20mA*12.5mA=20000)
疑惑一:为了得到12.5mA输出电流所需的输出数必须为1250。因为AQW数据字向右移4位,因此输出数必须乘以16,而我认为AQW数据字应该向右移3位,见下图
![图]()
疑惑二:在EM235设置开关如下情况下:
[ on off off off off on ]
即在单极性输入情况下,我认为AIW数据字同样应该向右移3位,见下图
![图]()
那么在0℃温度下,PT100的阻值是100Ω,那么输入电压值应是100X12.5=1250MV,输入数字应该是1250/1.25=1000,AIW数据字向右移3位应该是8000,而不是例子中提供的4000
疑惑三:PT100每度电阻变化值是0.4Ω,每度电压变化值应该是0.4X12.5=5MV,每度数字输入变化应该是5/1.25=4,(1.25为输入分辨率)同样AIW数据字向右移3位,为32,而不是例子中提供的16
当然,我是菜鸟,分析肯定是错误的,可不知错在哪里,请高手指出,不胜感谢!
西门子网站提供的例子:
***概述***
----本例讨论如下内容:用模拟量扩展模块EM235测量温度和监视指定温限,在该模拟量模块的一个输入通道上连接PT100温度传感器(如果利用235的3个通道则可以监视3路温度指)。为了把PT100的温度变化的电阻转换成电压,模拟量输出作为恒电流源而使用,即输出 12.5mA恒电流(如果PT100不允许12.5的大电流则应该作相应的调整〕 供给PT100传感器。在这个电路中,产生了5mV/C(摄氏度)线性输入电压. EM235把这个电压转换成数字量,程序周期地读这些数字量,并将所读的这些数,利用下面的公式计算出温度C:
---- T[C]=(温度数字量-0C偏置量)/1C数字量
---- 温度数字量=存储在AIWx(x=0,2,4)中的值。
---- 0C偏置量=在0C测量出的数字量,该值为4000
---- 1C数字量=温度每升高1C的数字量,
----程序计算出带一位十进制小数点的温度值,并把该值写入信息1所属的变量单元中,信息 1为"Temperature=xxx.xC"再用TD200显示这些信息。在程序的初始化阶段中,用户可以输入高限和低限温度。如果测量温度超出所选范围,那么TD200温度监视器的第二行显示警告信息.若测量温度超过高限,那么TD200的第二行显示信息2,即"Temperature>xxx.xC"如果测量温度低于温度低限,那么TD200的第二行显示信息3,即"Temperature<xxx.xC"
硬件描述
温度传感器:
----PT100是铂电阻温度传感器,它适用于测量-60C到+400C之间的温度。
----计算PT100所需电流 PT100在0C时电阻为100欧姆,随着温度的变化电组成线性变化,大约是每摄氏度0.4欧姆,为了产生5mV/C的电压系数,需要提供12.5mA电流。由于模拟量输出精度为10微安/数,为了得到5mA输出电流所需的输出数必须为1250。因为AQW数据字向右移4位,因此输出数必须乘以16。这样,为了初始化模拟量输出Io位12.5mA电流,在AQW0中必须设置20000输出数。等式为:(32000/20mA*12.5mA=20000)
疑惑一:为了得到12.5mA输出电流所需的输出数必须为1250。因为AQW数据字向右移4位,因此输出数必须乘以16,而我认为AQW数据字应该向右移3位,见下图
疑惑二:在EM235设置开关如下情况下:
[ on off off off off on ]
即在单极性输入情况下,我认为AIW数据字同样应该向右移3位,见下图
那么在0℃温度下,PT100的阻值是100Ω,那么输入电压值应是100X12.5=1250MV,输入数字应该是1250/1.25=1000,AIW数据字向右移3位应该是8000,而不是例子中提供的4000
疑惑三:PT100每度电阻变化值是0.4Ω,每度电压变化值应该是0.4X12.5=5MV,每度数字输入变化应该是5/1.25=4,(1.25为输入分辨率)同样AIW数据字向右移3位,为32,而不是例子中提供的16
当然,我是菜鸟,分析肯定是错误的,可不知错在哪里,请高手指出,不胜感谢!
[此贴子已经被作者于2006-4-16 19:59:45编辑过]