现场总线技术自70年代诞生至今,由于它在减少系统线缆,简化系统安装、维护和管理, 降低系统的投资和运行成本,增强系统性能等方面的优越性,引起人们的广泛注意,得到大 范围的推广,导致了自动控制领域的一场革命。 现场总线的功能是:①经济、安全、可靠地传递信息;②正确使用所传信息;③及时处理所传信息。经济性要求现场总线在传递信息的同时,解决现场装置的供电问题,并要求传输介质较廉价。安全性要求现场总线解决防爆问题。可靠性要求现场总线解决环境适应性问题,包括电磁环境适应性(传输时不要干扰别人,也不要被别人干扰)、气候环境适应性(要耐温、防水、防尘)、机械环境适应性(要耐冲击、耐振动)。
2007年蓝星石化公司天津石油化工厂重油催化装置进行设备改造,对接近300点的温度指示信号采用多路温度转换器(MTL800)进行采集,转换成数字通讯信号传给DCS系统,依据现场温度检测点的分布,在装置区设置了10个温度采集箱,所有的温度信号通过补偿导线连接到采集箱,从采集箱通过通讯电缆连接到主控室的DCS系统。上述方案比较直接从现场使用补偿导线连接到主控室的DCS中的常规施工方法要节省1/3的施工时间和1/2的费用,其中可以节省大量的DCS的过程通道板卡和安全栅,节省大量的补偿导线和辅料及其人工费。系统投用后,达到设计要求。
2、系统结构
多路温度转换器的系统组成由信号变送单元和接收单元组成,热电偶的毫伏信号(或其它类型温度信号)进入变送单元后转换为数字信号,变送单元的数字信号通经过安全栅进入到接收单元,现场变送单元与安全栅构成本安回路,从而使得变送单元可以直接安装在危险区(0区、1区和2区)。多路温度转换器的每个接收单元可以带2个变送单元,变送单元安装在现场的采集箱内, 每个变送单元最多可以采集16路温度信号,其供电方式为回路供电,为确保系统可靠性,变送单元与接收单元之间的通讯,以及接收单元同DCS的通讯都采用冗余配制,当发生故障时, 数据通讯系统能够无扰动地自动切换,并产生系统诊断报警,在切换时保证数据完整,多路温度采集系统同DCS的通讯协议为 MODBUS-RTU.系统结构参见附图一<多路温度采集系统结构图>
附图一<多路温度采集系统结构图>
3、信号变送单元和接收单元设置
3.1 变送单元地址的设置
每个接收单元838B-MBF可以和两个变送单元831B连接,因此必须对这两个831的地址和信号输入类型进行定义。开关设置的方法是:打开831B的上盖,找到两个开关,SW100和SW101。SW100是用于定义地址,如01或02;SW101适用于定义输入类型的,如热电阻或热电偶。831B在初始状态是:地址为01,输入类型为热电偶。见附图二<变送单元地址开关图)
附图二<变送单元地址开关图)
3.2 接收单元地址的设置
3.2.1定义和上位机通讯的地址参数。
打开838的上盖,在838上一共有4个状态开关。见表一<转换单元地址开关状态表>SW101用于设置838的MODBUS 地址,如当地址是1时,SW101 的设置状态如下:
见附表一<转换单元地址开关状态表>
1 2 3 4 5 6 7 8
SW101 ON OFF OFF OFF OFF OFF OFF OFF
表一 <转换单元地址开关状态表>
3.2.2定义和上位机通讯的通讯参数
SW301 是由于设置通讯状态的,见附表二 <转换单元通讯参数状态表>
如果通讯为:波特率9600,起始位1,停止为1,奇偶校验为none,SW301的设置状态如下:
1 2 3 4 5 6 7 8
SW301 ON OFF ON OFF OFF OFF OFF OFF
附表二 <转换单元通讯参数状态表>
3.3用PC机上的RS232接口同838进行通讯
上述步骤完成后,在与DCS连接前,需要进行简单组态,首先将838上的MODE和COM端(4和5)用线短接后,将838的24VDC 断电后再送电,这样可以触发接受单元的组态通讯口(RS232接口),在PC 机与接收单元建立通讯后,利用专用组态软件对现场输入信号类型、变送单元数量、开路报警状态等进行组态。当组态完成后,将短接线拆掉并重新对838进行电源开关复位,这样转换单元838才能同DCS进行通讯。
通过上述步骤,可以完成对变送单元和转换单元的组态设置.
3.4 接收单元同DCS的通讯参数设置
3.4.1参数设置:
波特率:9600
数据位:8
停止位:1
奇偶校验:非奇非偶校验 (NONE)
节点地址:1——3、4——6、7——9
热点偶类型:K、E
3.4.2 起始地址
每个838传送的地址从30015开始,每个通道的地址详见附表三<接收单元通道地址分配表>。现场来的温度值已由838扩大了10倍,因此DCS在收到传送的数据后需要除10进行还原。见附表三<接收单元通道地址分配表>
附表三<接收单元通道地址分配表>
-
-
bubli 发表于 2008/12/19 11:45:11
整个系统共有9个接收单元,每3个接收单元为一组,每组中的3个接收单元的通讯接口进行并联后,接入DCS系统,DCS系统中安装3块采集卡,分别是1、2、3#模块,DCS中的每块采集卡采集3个接收单元的数据,见附图三<接收单元与DCS连接原理图)。DCS采集卡可带不止3个接收单元,要根据生产装置数据刷新时间要求和DCS系统扫描时间而定。
附图三《接收单元与DCS连接原理图》
程序采用SCX语言编制,此语言类似C语言,主要程序如下:
int phase,error;
main()
{
long j;
int i, a[32];
float f;
sfloat sf,te[32];
setcomm(9600,0); //波特率setdelaytime(250);//设置延时等待时间, 当等待时间已到,却未收完返回数据,这条通讯命令就会退出等返回-1.
// 1#模块读取程序
if (phase==0) //设置读取周期
{TAG("RETURN1")=readinputreg(1,14,32,a); //读温度,1个寄存器存放1个温度,30014为起始寄存器的地址, 读1号地址的智能设备中,14号输入开始的32个输入的状态,其状态值存放在事先定义的sfloat数组中.
setdelaytime(250);
if(_TAG("RETURN1")==0 ) //通讯成功
{
for(i = 0;i < 32;i= i+1) //读取模块中的32个寄存器
{
f = itof(a[i]);
f=f*0.1; //缩小10倍,还原被接收单元放大的数据.
f = f * 0.001; // 实际温度量程(0~1000℃)
te[i] = ftosf(f); // 温度用sfloat位号组态_TAG("TI-105-01")[i]=te[i]; //将模块寄存器中数据依次存放于组态位号中,组态位号次序由自定义变量序号决定.
}
}
}if (phase==1) //为防止数据丢失,连续读取第2个周期,与第一周期读取设置相同。
{
_TAG("RETURN1")=readinputreg(1,14,32,a);
setdelaytime(250);
if(_TAG("RETURN1")==0 )
{
for(i = 0;i < 32;i= i+1)
{
f = itof(a[i]);
f=f*0.1; //缩小10倍,还原被接收单元放大的数据.
f = f * 0.001; // 实际温度量程(0~300℃)
te[i] = ftosf(f);
_TAG("TI-105-01")[i]=te[i];
}
}
}
//2#模块读取程序,功能同1#模块
.
.
.//3#模块读取程序,功能同1#模块
.
.
.
phase=phase+1;//主控卡运行周期+1,读取周期+1
if (phase<0 OR phase>5)//限定读取周期,每2个周期读取1个模块,读取完3#模块后周期清零重新从1#模块开始读取,保证数据的刷新。{
phase=0;
}
}5、结论
多路温度转换器的应用,核心技术是解决与DCS的通讯问题.所以采用标准的通讯协议(例如:MODBUS-RTU协议)可以实现与各厂家的DCS系统进行通讯.每家的产品都具有不同的技术特点,其设置方法和调试要求也不尽相同,要针对通讯技术的要求,选择正确的运算方法,进行程序编制.但采用一个多测量点、宽量程的智能温度测量应用系统,其应当结构简单、价格便宜、量程宽、有较高的可靠性、安全性及实用性. 上述问题的解决方法具有普遍使用意义,可以供大家参考和借鉴。
引用 bubli 2008/12/19 11:45:11 发表于2楼的内容