4.2可重构数据操作模块设计
数据操作模块的可重构性具有两层含义:①当制造资源的类型、数量和布局发生变化时,能够通过更改数据库中的相应数据项来适应这些变化;②当底层数据库的类型发生变化时,能够通过配置文件的更改,对数据库连接方式进行重新配置。如果更进一步,则要求系统上层应用能够屏蔽底层数据库由于类型的差别而带来的影响。为此,本文从以下两个方面进行设计:
(1)数据库设计
可重构DNC数据库包含基本库和动态库,其中PK表示主键,FK表示外键。
基本库存储制造资源的基本信息,由以下数据表构成:车间表—车间编号(PK),车间名称,车间网关IP地址;机床数据表—机床编号(PK),车间编号(FK),机床名称,机床类型,数控系统类型,驱动程序编号(FK),通信串口号,传输波特率,奇偶校验类型,传输数据位,停止位;驱动程序表—驱动程序编号(PK),驱动程序名称,驱动程序类型,驱动程序存储路径;NC程序表—NC程序编号(PK),NC程序名称,NC程序存储路径,NC程序设计者(FK);用户表—用户编号(PK),用户名称,登录密码,车间编号(FK);角色表—角色编号(PK),角色名称;用户一角色表—用户编号之PK,FK),角色编号(PK,FK)。
动态库存储包括机床数据传输状态、主轴工作状态,开关机情况在内的各类实时信息,按设定的频率自动更新。动态库由以下数据表构成:机床数据传输状态表—机床编号(PK,FK),NC程序编号(FK),传输方式,传输开始时间,传输结束时间,程序总字节数,已传输字节数,当前传输状态;机床主轴工作状态表—机床编号((PK,FK),主轴速度,转向犷冷却液开停;机床开关机情况表—机床编号(PK,FK),开机时间,关机时间;日志表—日志编号(PK),车间编号(FK),日志时间,日志内容,日志类型。
(2)数据访问层设计
为屏蔽底层数据库类型对上层应用的影响,在数据访问层的设计上采用抽象工厂模式.数据访问层采用c#进行开发,其类图如图5所示。
DBAccess类实现IDataAccess接口,对数据库的插入、删除、修改、事务等底层操作进行了进一步的封装,供上层业务逻辑类库调用。DBAccess类通过GetConnection String()函数获取可扩展标记语言(eXtensible Markup Language, XML)配置文件中的数据库连接字符串,然后调用Factory类来完成其构造。Factory为工厂类,它根据获取到的数据库连接字符串来判断数据库的类型,并自动创建与数据库类型(Sqlserver/Oracle/OIeDB)相匹配的数据连接、数据适配器,以及其他相关信息。
抽象工厂模式的使用能很好地屏蔽底层数据库变更对上层应用的影响,提高数据操作模块的可重构性。当底层数据库类型发生变更时,需要修改的部分仅限于XML配置文件中的数据库连接字符申。上层模块均按统一的方式调用DBAccess类的数据操作方法,所以无需做任何变动。
5 应用实例
本文在系统设计基础上,完成了可重构DNC系统的开发.智能终端采用客户机/服务器(Cli-ent/Server,C/S)架构,在DOS平台下使用TurboC2.0进行开发.DNC管理软件采用浏览器/服务器(Browser/Server,B/S)架构,在Windows平台下,采用VisualC#.Net进行开发。DNC管理软件的服务器端安装在中心DNC服务器和车间DNC服务器上,客户端可以是任何接人企业LAN内的工业PC或移动PC,通过浏览器就能使用软件,进行DNC系统的管理操作。
DNC管理软件的主界面由上端的系统按钮栏,左端的功能树和右端的用户主视图组成。用户在登录时,系统将根据用户角色的不同而显示不同的功能树.图6为21车间具有车间管理员角色的用户登录后的默认界面。左端的功能树显示了该用户能够进行的操作,包括车间管理、机床管理、程序管理、用户管理、日志管理等。右端的用户主视图默认为机床信息视图,该视图列出了包括机床编号、机床类型、数控系统类型、机床通信参数在内的机床信息。所有信息都能以Excel的形式导出。
点击功能树中的添加机床链接,将显示如图7所示的新机床添加界面。
用户输人机床的基本信息,在软插件库中选择机床的驱动程序,设置波特率、数据位、停止位、奇偶校验位等机床通信参数后,系统就能对新的数控机床进行管理和监控。当机床数控系统的类型或通信参数发生变化时,只须以同样的方式变更相应参数即可。
图5 数据访问层类图