当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:在分析了用户需求的基础上,结合.Net和Oracle9i数据库,开发了一种经济一体化的信息管理系统。该系统根据用户权限自动显示其权限内的工作内容,并伴有自动计算、查找、统计等功能。实际应用证明,该系统操作界面友好,用户操作简明快捷,系统运行稳定可以实现信息的实时查询和处理。

引言

近年来,随着油田采油厂生产规模的扩大和经济技术一体化工作的不断加深,数据的精细化管理要求越来越高。面对种类繁多的数据和报表,传统的人工加半自动化的管理方法,已经跟不上现代化信息管理的步伐。在这种油田信息化发展的大背景下,基于C/S架构,以.NET为开发平台,同时动态链接Oracle9i数据库的经济一体化信息管理系统应运而生。该系统可根据用户的权限,自动显示其权限内的工作内容,并伴有自动计算、查找、统计等功能。本文在分析了用户需求的基础上,给出了整个系统的设计与关键技术问题的解决方案。

1需求分析

由于油田下设单位众多,在生产管理上,有的单位还未建立统一实物消耗统计管理系统,数据采集方式多、来源广、差异大,不能形成系统的历史数据沉淀,没有形成完善的统计管理工作责任体系,因此,目前亟需一套管理系统来达到如下需求。

录入人员、审核人员和管理员登录时,系统会根据其所属单位及权限,自动显示其权限内需要录入、审核或查询的报表。

审核人员对录入人员录入的数据进行审核,以保证数据真实、可靠后,由后台发布平台自动计算生成管理报表供查询人员进行查阅,查询人员只能查看到自己权限下的管理报表。

后台管理人员可进行用户管理、下设单位关系的维护以及后台价格库的维护等后台操作。

根据对库存量和消耗量的统计,自动实现各级单位实物工作量的动态管理和便捷查询,能够及时了解各单位材料(燃料)的消耗、库存及下一步需求等情况,为物料管理提供参考。

2系统设计

针对客户需求和油田经济一体化管理系统的特点,本系统采用.NET多层架构技术,运用WinForm等开发工具,以Oracle9i数据库为基础来进行开发。

Microsoft.NET技术是最新的数据库应用开发工具,可以高效地开发可靠、稳定又安全的各类数据库应用程序。系统的客户端就是采用.NET开发平台中的WindowsForm(简称

winform)来创建应用程序的用户界面,并可以创建丰富的窗体和可视化空间,以达到界面美观、友好的效果。开发工具运用MicrosoftVisualStudio2008,并使用.NET支持的C#开发语言进行软件的开发,确保系统数据的实时性、稳定性、安全性。

油田的生产管理过程中有大量的数据需要同时、快速的进行存储和读取,后台数据库需要强大的Oracle9i数据库进行链接。Oracle9i由两个产品构成:一个是Oracle9i数据库,它集成了集群的功能;另一个是Oracle9i应用服务器,它集成了高速缓存融合的技术。这两个产品合起来,就能给企业提供一种高可伸缩性、高可靠性和高性能的应用。

经济一体化管理系统由录入系统、审核系统、查询和后台管理系统等分系统组成。图1所示是本系统的组成图。

经济一体化信息管理系统研究

图1  经济一体化管理系统构成

用户登录系统时,可以根据用户注册时所分配的权限分别进入录入系统、审核系统、查询系统和后台管理系统。

在录入系统,录入人员通过本系统可将数据录入其权限内的报表中。数据录入、修改完毕后,单击右下角的'保存”按钮,即可完成报表的录入或修改。已审核的报表,“保存”按钮为灰色,数据无法更改。

在审核系统,审核人员通过本系统审核其权限内的报表,在确保数据的可靠、完整后,单击右下角的“审核”按钮,即可完成报表的审核。已审核的报表,“审核”按钮为灰色,不可点击。

通过查询系统,用户可通过本系统查阅其权限内的所有报表。可查询的报表分为综合管理报表和条件查询报表。两种报表都可以通过选择月份进行跨月累计查询以及Excel导出功能,同时综合管理报表可以点击右键进行线状/柱状/饼状的图形分析,条件查询报表可通过点击下属单位进行多级追踪查询。

在后台管理系统,后台管理人员可通过本系统对整个系统进行后台维护。主要功能有数据发布、用户管理、下设单位关系维护、后台价格库维护、单井/炉维护等。其中,数据发布就是对程序控制执行存储过程生成管理报表;用户管理主要是增删用户或更改用户具体的工作内容和权限;下设单位关系维护是增删下设单位,以适应油田的长期发展;后台价格库维护就是定时对生产投入的物料价格进行实时更新,以实现量价分离的管理目标;单井/炉维护是增删井/炉以及对井/炉的属性进行修改。

3关键问题及解决方案

3.1.Net与Oracle的链接

.Net与Oracle数据库可以通过多种方法来实现链接,既可以通过使用ODBC或OLEDB标准接口对数据库进行链接,也可以通过.Net框架提供的专用接口System.Data.OracleClient.dll组件(ADO.Net组件)进行链接。这款组件是微软专门针对Oracle数据库开发而设计的,具有速度快、性能好的特点,是值得推荐使用的方式。

建立链接需要首先添加Sytem.Data.OracleClien命名空间,将System.Data.OracleClient.dll加入到项目中,接下来就可以创建和数据库的链接了。建立链接的主要代码如下:

添加命名空间:

usingSystem.Data.OracleClient;

创建和数据库的链接:

OracleConnectionconn=

NewOracleConnection("datasource=remotedb;UserId=scott;Password=scott;");

//其中remotedb为oracle客户端tnsnames.ora配置文件中的网络服务名

下面是新建一个对数据库操作的实例:

OracleCommandoraCmd=newOracleCommand("select*fromuser",conn);

OracleDataReaderoraRD=oraCmd.ExecuteReader();

//DataReader提供一种从数据库读取行的只进流的方式打开数据库链接:

try{

conn.Open();

if(odr.Read())

{…}

Conn.close();

catch

{…}

3.2多线程与委托的运用

后台管理系统的发布功能需要程序按一定顺序调用执行后台所有的存储过程,在此过程中需要执行数百个存储过程,并且每个存储过程涉及的数据量也非常大,因而可能会导致发布窗体经常出现假死状态。这是由于系统在进行大量运算时,为了避免主线程界面这种假死状态,需要使用另一个线程来控制。

多线程的应用可以使程序同时完成多个任务,可以让占用大量处理时间的任务定期将处理时间让给别的任务使用。因此,可以创建一个新的线程来执行发布功能,从而防止主线程界面假死。

在.Net中,可用如下代码来创建并启动一个新的线程:

ThreadRun_Pro_Two=newThread(newThreadStart(Run));Run_Pro_Two.IsBackground=true;

Run_Pro_Two.Start();

但是,在很多时候,新的线程中需要与UI进行交互,而在.Net中不允许直接这样做,因为Windows窗体基于本机Win32窗口,而Win32窗口从本质上而言是单元线程。STA模型意味着可以在任何线程上创建窗口,但窗口一旦创建后就不能切换线程,并且对它的所有函数调用都必须在其创建线程上发生。STA模型要求,从控件的非创建线程调用控件上的任何方法都必须被封送到(在其上执行)该控件的创建线程。基类Control为此目的提供了若干方法(Invoke、BeginInvoke和Endlnvoke)。

Invoke生成同步方法调用时,如果从另一个线程调用控件方法,则必须使用控件的一个Invoke方法来将调用封送到适当的线程。Invoke调用方法分为两步:第一步是定义与函数功能对应的委托;第二步是将参数以及函数名通过委托实例传递给Invoke。

调用方法如下:

privatedelegatevoidInvokeDelegate_2(inti,intj,Exceptione);

//定义一个函数的委托

privatevoidInvoke_Datagridview_2(inti,intj,Exceptione)//定义函数

}

在主线程中调用:

this.Invoke(newInvokeDelegate_2(Invoke_Datagridview_2),newobject[]{i_one,j_one,ex});

//i_one,j_one,ex为主线程中的变量

最后在主线程中,终止线程:

if(Run_Pro_Two.IsAlive)Run_Pro_Two.Abort();

通过应用多线程和委托方法可有效防止发布数据窗口假死的现象。

4结语

结合.Net和Oracle数据库开发的信息管理系统,操作界面友好,用户操作简明、快捷,系统运行稳定,并能够实现信息的实时查询和处理。目前,本文设计的系统已经投入运行,并取得了较好的经济社会效果。

20211018_616c5dbce0856__经济一体化信息管理系统研究

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭