发表于:2009/9/6 17:17:04
#0楼
本文以omron小型plc为例说明对温度数据的采集和处理。温度数据采集的plc控制系统流程如图1所示。
cpm1a及cpm2a可挂接的温度模块种类很多,其中cpm2a-ts101-da,cpmla-ts001/oo2分别连接由铂热电阻和热电偶传送来的温度信号,尽管每个cpu可允许连接3个扩展单元,但同样功能的模块只能连接其中一种,且最多连接两个同种模块。
如图2所示,ts101-da可接两路铂热电阻,并且带有两路模拟量输出vout(电压)和iout(电流),但只能选择其中一种。温度模块的输入与输出共占用plc三个输入输出字,输入、输出地址字编号紧接plc最后一个扩展单元,即温度模块的前一个功能模块单元(假设输入地址字n,输出m,则ts101-da的第一路输入(1a,1b,1b)地址字为n+1,第二路输入为n+2,输出vout和iout共用一个地址字m+1。
例如:ts101da+pt100的温度输入范围为-40~+20℃,对应的pt100阻值分别为8213欧姆和19411欧姆,模拟量输出的d/a线性比例关系见图3。
ts101-da模块的电流输出为4~20 ma,电压输出范围有两种,分别为0~10 v和-10~10 v,可通过设置控制字来选择输出电压的范围,如表1所示。
控制字在plc第一个扫描周期必须写入对应的模拟量输出通道m+1,否则整个模块无法工作,即使不用模拟量输出。为了避免控制字被覆盖,后续程序中如果向该通道写入数据,应在第一个扫描周期之后。例如:
铂热电阻采集到的温度数据经ts101-da内的变送器和数模转换后,可被plc从对应的输入通道中读出。ts101-da内的温度字的格式如表2所示:
ts101-da输出的温度字格式共有16位,其中0~13位为二进制温度数据,13为最高位;第14位为温度数据的符号位,“0”表示正温度数据,“1”表示负温度数据;第“15”位为报警位,“0”表示温度在允许范围内,“1”表示温度超出允许范围。
plc通过mov指令把n+1或n+2通道采集到的温度数据读入指定的内部数据存储区dm中,如温度为正,把0~13位转化为bcd码,如果为负(负数以补码形式存放),取反加1后,再将0~13位转化为相应的bcd码。
另外常用的接热电偶的温度模块有ts001/002,温度范围通过模块内的旋转开关(0~f)来设定,该模块可选两种温度单位℃和°f,通过模块内的dip开关sw1来设定温度单位和所测温度的精度(单精度精确到011℃或011°f,双精度精确到0101℃或0101°f)。采集到的温度仍为二进制数,但bcd转换后的是带有小数位的十进制数,需×10或×100才为真正的温度值。如读入温度#2134(二进制),即十进制的8500,如dip开关sw1的1位设为off,2位设为off,则为850℃;2位变为on,则为85℃。双精度数据占用两个输入通道,即两个字,在转换为bcd码时,需用双字转换指令(cpm2a有)bcdl。当读入的温度输入数据为#7fffb寸,说明输入开路或温度超出设置范围,#7ffe为模块正在初始化状态。编程处理温度数据时尤其应该注意。
下面是一段omron小型 plc对温度模块ts001/002采集和数据的处理程序:
plc对温度数据采集有单精度及双精度(分时采集)两种格式,误差在0.1~0.01℃范围内,控制准确可靠。通过plc内部程序处理还可输出模拟量来控制其他设备,plc与温度模块及传感器对温度数据的采集和处理可以达到工控现场温度控制的理想要求。工控现场对温度的检测与处理应用非常广泛,而温度传感器的主要对象为热电阻和热电偶,使用plc对温度数据进行处理和变换,硬件连接方便,软件也易实现,通过输出模拟量还可进一步实现精确调温或其他控制。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=99665&Name=liuguoxing
[此贴子已经被作者于2009-9-6 17:33:42编辑过]