结合公司多年各系统平台开发维护的经验,逐步确立了统一各系统平台的思想,在平台建立完善的基础上进行系统的二次开发。
目前焦炉四大机车系统、烧结配水系统、隧道广告系统已实现平台统一(如下图)。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="图片_x0020_0" style="VISIBILITY: visible; WIDTH: 369.75pt; HEIGHT: 103.5pt; mso-wrap-style: square" alt="GK08042301.JPG" type="#_x0000_t75" o:spid="_x0000_i1027"><imagedata o:title="GK08042301" src="file:///C:%5CDOCUME~1%5C%E5%8F%B6%E5%B8%86%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image002.jpg"></imagedata></shape>
一、 开发框架组件结构
<shape id="图片_x0020_1" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 249pt; mso-wrap-style: square" alt="GK08042302.JPG" type="#_x0000_t75" o:spid="_x0000_i1026"><imagedata o:title="GK08042302" src="file:///C:%5CDOCUME~1%5C%E5%8F%B6%E5%B8%86%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image004.jpg"></imagedata></shape>
IOServer :一个后台管理程序和很多驱动共同组成,属于数据采集部分,通过它可以和不同PLC、智能仪表、远程PC机上的程序和本机程序等软硬件进行数据交互。
系统核心组件:联系前台和后台的枢纽程序,包括以下几个组件:IO数据访问(Swl.ocx),SQL数据库访问(SwDB.ocx),报表打印预览(Swp.ocx),图表曲线(TeeChart5.ocx),数据表格(Vsflex7L.ocx)。
系统项目框架,是系统前台界面和相应数据报表处理程序的管理平台。包括主界面程序(JRSystem.exe),数据初始化(BKInit.exe),数据编辑(DWParam.exe),密码修改(SetPassword.exe),系统信息显示(SystemInfo.exe);
二、 IOServer
基于PC上的后台驱动平台已经成熟,该程序从2005年2月14日开始开发,距今已有多年,目前四车、配水、隧道广告都采用该后台(系统在现场一致运行正常)。
关于IOServer的详细介绍,请参见我其它时间写的文章。
http://blog.csdn.net/yefanqiu/archive/2005/10/05/495547.aspx
http://blog.csdn.net/yefanqiu/archive/2006/05/02/705356.aspx
http://blog.csdn.net/yefanqiu/archive/2006/05/23/751451.aspx
http://blog.csdn.net/yefanqiu/archive/2006/05/27/757327.aspx
三、 系统核心组件
IO数据访问(Swl.ocx),通过变量名称,可以很方便的读写后台数据(可以是多个程序共同访问IO数据)。通过这个组件,后台数据访问的细节便被封装,前台界面可以不关心后台工作方式,而直接获取自己想要的数据。
SQL数据库访问(SwDB.ocx),该组件最早来源于老版本的焦炉四大机车系统的SQL控件(在2004年开发),后升级改进而成。通过该组件可以很方便的访问SQL数据库。
报表打印预览(Swp.ocx),也是来源于焦炉四车系统的报表部分,经过再封装和改进(比如可以判断打印机是否在线等等),通过该组件可以实现表格数据所见即所打的打印功能。
图表曲线(TeeChart5.ocx),数据表格(Vsflex7L.ocx)都是第三方公司著名的组件,一个实现图表显示,一个实现数据表格处理。
四、 系统项目框架
该系统框架为各系统平台提供统一风格的操作界面:标题头,操作按钮,操作菜单等等。此外负责后台程序、前台程序的加载和前台界面的切换。
具体的工艺相关的部分,通过金日SDK开发包提供的样例程序进行开发(用VB开发,借助系统核心组件与IO数据进行交互),其它部分仅通过配置文件定制即可(如界面的颜色,按钮的多少,菜单选项的多少都可以定制)。
此外提供各系统通用的组件程序,如:参数初始化,参数修改,密码修改,信息查看程序等等。
五、 小结
通过采用成熟的开发框架,一是大大减少了开发时间,二是后期在软件方面的维护成本几乎为零。为了使开发平台更加通用化,后期我们又开发了组态软件(目前为嵌入式版本,可在我的blog查看相关文章),这样对于一般项目,其开发时间又近乎为零了。
牛顿为什么伟大,他说是因为他站在巨人肩膀上的缘故。我们没有资格站在巨人肩上,但我们站在我们自己搭的草台之上,也许也能比天生的巨人看的更远。