线组态、操作权限保护及文件转储等功能。还可根据用户需要,将监控主机设为Web Server,用户可以通过局域网或Internet直接对系统进行访问,远程对系统进行监测和操作。
中间层的OPTO 22控制系统是一个功能强大的软硬件开发平台,用户可根据需要灵活组成从几点到几十万点的控制系统。该系统采用上下位机方式,在现场采用多级CPU监控处理各I/O模块,对输入输出信号能提供4000V的隔离,系统具有很好的实时性、可靠性和灵活性。OPTO 22系统由工控机、控制器、智能板、I/O模块组成,控制器之间及控制器与智能板之间提供串行、并行及以太网通信连接。OPTO 22控制系统随机附带的软件包括IoContro、IoDisplay、IoConnect等配套软件。坨四联合站选用的系统是OPTO 22 SNAP Ultimate I/O系统,系统使用的控制器是SNAP-UP1-ADS,具有16MRAM,8M闪存,可以支持OPTO 22 SNAP I/O系统的各种输入输出模块,在控制器中可存储从运行工控机下载的控制策略。各控制器与操作员站之间以Ethernet方式通讯,组成监控网络(C-NET),每一个控制器将分配一个地址,以实现控制策略的下载和与上位机的通讯,可以通过IoControl对其进行配置。
下层的EDA9033E智能电量采集模块是一块智能型三相电参数数据综合采集模块,采用的三表法组合能够准确测量三相三线制或三相四线制交流电路中的三相电流、三相电压(真有效值)、有功功率、无功功率、功率因数、频率、正反向有功电度、正反向无功电度等电参数,该模块能够支持ADAM兼容通讯协议、十六进制LC-02协议、MODBUS-ASCII、MODBUS-RTU4种通讯规约。本系统根据泵的额定电参数,将模块量程范围选择为:250V*100A、250V*150A和250V*300A三种,模块的现场接线方式如图1所示。

图1 3相3CT直接接电压回路
2.2 系统总体结构及工作原理
DCS系统的I/O处理设备通常采用各种的不同通信网路与通信协议无法共容于同一个通信网路。采用OPTO 22基于IT为标准的“以太网I/O(Ethernet I/O)”处理单元,可以直接连接现场的开关量与模拟量信号,也可以连接具有RS-232/422/485的通讯设备,本系统使用的OPTO 22 SNAP Ultimate I/O系统如图2所示,现场采用三层网络结构:第一层是上位机与控制器的通讯,即操作员站通过网线与OPTO 22的控制器SNAP-UP1-ADS通讯。第二层是控制器通过串行通讯模块SNAP-SCM-485-422与EDA9033E通过RS-485总线通讯。第三层是EDA9033E电量模块采集现场各泵的电参数,将原油外输泵分成两组,即每一泵组不超过五台,可以满足系统每5s采样一次(EDA9033E模块每1s刷新一次)的技术要求。

图2 系统总体结构框图
3 系统软件设计
软件部分的设计主要是上位机与EDA9033E模块的通讯程序设计,以及数据采集的程学设计。
3.1 转换器配置
EDA9033E模块在出厂前地址都设为01H,而在本系统中,一条485总线最多连接5个电量模块,因此要重新配置其地址,依次为01H、02H、03H、04H、05H,另外两组类同;另外,将EDA9033E安装入网络前,须将模块的波特率与网络的波特率设为一致,地址无冲突(与网络已有模块的地址不重叠)。配置一个模块应有:EDA485转换器,带RS-232通讯口的计算机和EDA90系列测试软件。以上配置可通过EDA90系列测试软件配置,也可根据指令集进行配置。
3.2 电量采集控制策略
OPTO 22 SNAP Ultimate I/O系统的软件平台为IoProject5.1,可以完成控制逻辑、人机界面、数据库连接等多方面的功能,这里介绍起主要的两部分:
IoControl:流程图开发工具,实现控制策略,下装程序至控制器。
IoDisplay:多媒体、人机界面开发工具,图形化显示控制器内的信息状态,传送操作者指令到控制器,同时执行报警,历史趋势,访问数据。
首先建立控制器与模块的通讯,然后再根据泵的出口压力判断泵是否运行,如果运行则采集数据。控制策略的编写使用的IoControl提供的脚本语言OptoScript,它基于C和Pascal,简洁易学,再结合EDA9033E提供的指令集,其主要程序如下:
初始化及打开通信端口
sCommand = "#01A"+Chr(13);
r1 = OpenOutgoingCommunication(yytsb);//与EDA9033E建立连接
ClearCommunicationReceiveBuffer(yytsb);//清空缓冲区
……
接收数据
Return_Status = TransmitString(sCommand,yytsb);//从模块读入ASCII码值
DelayMsec(500); //延时500ms
iLength = GetNumCharsWaiting(yytsb); //计算读入数据的长度
……
数据处理
sRecieve="";
if (iLength == 65) then //判断读入数据是否正确
r2 = ReceiveNChars(sRecieve,65,yytsb); //提取数据
…… //后续处理

图3 程序的流程图
采集的数据通过IoDisplay的Configurator写入历史数据记录文件,通过后台数据处理可以上传的工程师站进行备份和处理,可以实现远程访问。
4 结语
系统改造完成以后,生产现场的电压、电流、有功功率、无功功率、视在功率、功率因数等参数能够进行报表打印、数据上传和声光信号的高低限报警以及现场显示、远程访问等功能,较好的满足了联合站工艺流程和信息化管理的要求。该套解决方案在油田控制、电力系统、化工等领域的推广应用,可降低操作工人的劳动强度,提高用电的安全系数。