用231RTD模块检测温度,到程序中读到的数据是0-32000的数值,怎么换算成温度呢?应该有个公式什么的吧?
最佳答案
4 模拟量编程:
举个例子:
压力变送器(-0.1MPa~0.15MPa)的输出信号为DC4~20mA,模拟量输入模块将0~20mA转换为0~32000的数字量,设转换后的数字为N,
(1)求以MPa为单位的压力值。(2)求气压值=-0.05MPa时对应的数字量N。
模拟量的输入/输出都可以用下列的通用换算公式换算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中:
Ov: 换算结果
Iv: 换算对象
Osh: 换算结果的高限
Osl: 换算结果的低限
Ish: 换算对象的高限
Isl: 换算对象的低限
Ov: 换算结果
这个公式以及模拟量比例换算库可以到《西门子 S7-200•LOGO!•SITOP 参考》V0.93版里面下载,
具体的在目录----S7-200PLC----编程软件STEP7-Micro/Win----Micro/Win指令库----Micro/Win附加指令库----Scaling量程换算库
到下载中心 http://www.ad.siemens.com.cn/download/
文档编号:A0136
文档类型:应用文档
文档中文标题:《西门子 S7-200•LOGO!•SITOP 参考》V0.93版
日期:2009/1/8
大小:5.68MB
(1)求以MPa为单位的压力值
Ov: 换算结果
Iv: 换算对象 (aiw0)
Osh: 换算结果的高限 (0.15)
Osl: 换算结果的低限 (-0.1)
Ish: 换算对象的高限 (32000)
Isl: 换算对象的低限 (6400)
[(0.15 +0.1)*(aiw0 - 6400)/25600] -0.1--------[(0.25aiw0-1600)/25600] -0.1
LD SM0.0
ITD AIW0, AC0
DTR AC0, AC0
*R 0.25, AC0
-R 1600.0, AC0
/R 25600.0, AC0
MOVR AC0, VD0
-R 0.1, VD0 //VD0就是压力变送器的实际压力值
(2)求气压值=-0.05MPa时对应的数字量N。
Iv: 换算对象 (-0.05)
Osh: 换算结果的高限 (32000)
Osl: 换算结果的低限 (6400)
Ish: 换算对象的高限 (0.15)
Isl: 换算对象的低限 (-0.1)
[(32000-6400)*(-0.05+0.1)/(0.15+0.1)] +6400=11520
s7 200SIEMENS提供一个库Scale下载
下载地址与用法:
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=27043396&objAction=csOpen&lang=zh&siteid=cseus&aktprim=0&extranet=standard&viewreg=CN
模拟量的输入/输出都可以用下列的通用换算公式换算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中: Ov: 换算结果
Iv: 换算对象 = Analog Input Value = 18000
Osh: 换算结果的高限 = 100
Osl: 换算结果的低限 = -50
Ish: 换算对象的高限 = 32000
Isl: 换算对象的低限 = 6400
对4-20mA电流(-50-100度)温度变送器:
Ov = [(100-(-50))*(18000-6400)/(32000.0-6400.0)] + (-50)
= 17.96875度
提问者对于答案的评价:
太详细了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc309682.html