欢迎您注册蒲公英
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 蒲公英 于 2014-11-3 09:43 编辑
【说明】本文是应化工与医药工程杂志的要求,写了一篇关于中药提取系统自动化数据库方面的东西,可能比较偏门,感兴趣的、看得懂的可能不会太多,权当交流,给有兴趣或者有此方面工作需要的朋友借鉴参考。如有问题,欢迎与作者交流!
现代中药生产工艺主要包括提取、过滤、浓缩、醇沉、分离、层析、收膏、干燥等过程,以及配套的乙醇回收等几个工序组成。建立中药生产控制系统可以从产品的源头上解决中药产品工艺和成分的均一、稳定要求,更好地与国家 GMP规范相融合、有利于保证产品质量。 1 现代中药生产控制系统简介 现代中药生产工艺繁琐、参数变量大,特别是原材料成分和企业工艺的控制制约了不少先进企业的发展,对生产过程的计算机控制与管理提出了迫切要求。现代中药生产中,提取是非常关键的起始阶段,一般采用批量生产方式,批量生产过程要求生产线具有良好的操作柔性,即在同一生产线上按批量生产单一或经清洗后满足多种不同产品的生产。本文所述的中药生产控制系统采用OPTO22公司的PAC控制系统,对提取、过滤、浓缩、沉淀、分离等工序进行了自动化设计,取得了良好的效果。 2 应用需求分析 由于本控制系统采用OPTO22公司的PAC控制系统,因此使用了OPTO22集成的组态软件进行了组态,实现了使用图形界面进行现场设备的监测与控制,实现了生产操作的自动化。同时,在进行工艺总结或生产过程回顾时,需要查看生产过程数据,进行统计和分析,由于集成的ioDisplay组态软件历史数据存储功能简陋,只能保存为文本文档,对于存储以后的查询,十分不便,因此主要依靠人工填写的生产记录来追溯历史过程。人工填写的生产记录,记录点少,间隔时间长,仅靠少量的数据不足以对整改生产过程做全面的评估、分析。由此以来,控制系统迫切的需要增加控制点数据记录功能。 3 技术方案设计 3.1 需求目标分解、 根据数据处理过程,大致分为三步,首先将原始数据“读出来”,然后将数据“存进去”,最后再将数据“取出来”。要将数据从控制系统中“读出来”,关键是实现PAC数据通讯。“存进去”即数据存进数据库中,“取出来”即数据从数据库中取出来,这两步的关键是实现数据库操作。最后“取出来”功能,还涉及表格、趋势图的自动生成。 总结分解的目标如下: (1)实现PAC控制系统数据通讯 (2)实现数据存、取等数据库操作 (3)数据查询及数据呈现 3.2 拟定分解目标实现方案 要实现“读出来”、“存进去”和“取出来”三个过程,首先需要选择软件开发平台。本着轻量级化,软硬件需求环境低的原则,选择使用Visual Basic [1]6.0开发平台。然后需要选择数据库平台,要同时满足轻量级化和C/S(客户端/服务器)架构,架设一个数据库服务器可满足多个操作员站访问,选择使用SQL Server[2] 2000数据库。 下面针对每个分解目标拟定实现方案。 3.2.1实现PAC控制系统数据通讯 要实现PAC控制系统的通讯,主要有两种途径。第一是从PAC硬件中读取数据,这需要开发硬件驱动,费事费力。第二是从上位机软件中读取数据,这里要用到IoProject组态软件关键的OPC接口,下面简要介绍一下OPC接口。 OPC[3]是OLE(Object Linking and Embedding,对象链接和嵌入)for Process Control 的缩写,它是基于微软的COM(组件对象模型)、DCOM(分布式组件对象模型)技术,为实现控制系统开放互通的一项标准。OPC在硬件供应商和软件开发人员之间搭上了一座桥梁,它提供了一种机制从数据源提供数据并且以一种标准的方式将这些数据传送的任意客户端应用软件[4]。OPC也为实现控制网络与信息网络之间的信息交互提供了较为方便的途径,见图1。
图 1 OPC 接口示意图
Fig.1 Diagram of OPCinterface
3.2.2实现数据存、取等数据库操作 “存进去”这一需求,需要在Visual Basic 6.0开发平台与SQL Server 2000数据库中架设一座桥梁,ADO组件可以充当了这一角色,下面简要介绍一下ADO组件。 3.2.3数据查询及数据呈现 DBGrid是强大的表格工具,MSChart是功能强大的ActiveX组件,通过编写适当的代码可将查询的数据自动生成表格和趋势图。 4 技术方案的实施 4.1 实现PAC控制系统数据通讯程序开发 4.1.1 OPC接口架构 OPC接口共有6个对象,他们是OPCServer服务器、OPCGroups组集合、OPCGroup组、OPCItems标签集合、OPCItem标签、OPCBrowser浏览器,见图2.
6个对象的作用,见表1
对象 | | | OPC服务器的一个实例,必须在使用其他对象之前创建一个OPC服务器对象实例。它包含OPC组集合对象并创建OPC浏览器对象。 | | OPC组对象实例的容器。用于添加、清除和管理OPC组。 | | OPC组的一个实例。自身具有各种属性,同时向OPC标签集合对象提供数据获取服务。 | | OPC标签对象实例的容器。在OPC组对象创建时自动创建。 | | OPC标签对象包含服务器中一个点或一个变量的定义、动态值、状态和刷新时间。 | | OPC浏览器对象用于查看存在于OPC服务器中点或变量的配置信息。一个OPC服务器对象中只允许存在一个OPC浏览器对象。 |
表1 OPC 接口对象 Tab1 The object ofautomation interface
4.1.2 OPC接口运行过程 OPC接口有特定的运行过程,见图3
4.1.3定义OPC接口对象Dim OPCServer1 As OPCServer ‘定义OPCServer服务器 Dim Groups1 As OPCGroups ‘定义OPCGroups组集合 Dim WithEvents Group1 As OPCGroup ‘定义OPCGroup组 Dim Item1 As OPCItem ‘定义OPCItems标签 Set OPCServer1 = New OPCServer '创建OPCServer服务器实例 OPCServer1.Connect("Opto22.OpcServer.2") '连接Opto22控制系统 Set Groups1 = OPCServer1.OPCGroups ‘创建OPCGroups组集合实例 Set Item1 = Group1.OPCItems.AddItem(ItemID, ClientHandle)‘创建OPCItem标签实例 4.1.4 数据获取方式 OPCServer服务器提供了同步和异步两种方法。同步的方式客户端必须等待返回的结果,效率很低,此种方式一般在故障诊断时使用。异步的方式使客户端可以在访问数据后继续下一步操作,在结果返回时,OPC服务器会通知客户端,这种方式访问效率高。 采用异步方式,我们可以利用OPCGroup组的DataChange事件,自动获取PAC控制系统数据当满足一定的条件时,OPC服务器返回结果,激发相应的事件来通知客户端程序做相应的处理,系统资源耗费较少。 事件的结构代码如下: Event DataChange(TransactionID As Long,NumItemsAs Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long,TimeStamps() As Date) 至此,已经完成了与PAC控制系统的通讯。 4.2 实现数据存、取等数据库操作 4.2.1定义ADO组件对象并连接数据库 Dim Connection1 As New ADODB.Connection ’定义Connection连接对象 Dim Recordset1 As New ADODB.Recordset ’定义Recordset数据集对象 Dim Command1 As New ADODB.Command ’定义Command命令对象 Connection1.ConnectionString="  rovider=SQLOLEDB.1  ersist Security Info=False;_ User ID=用户名;Initial Catalog=数据库;Data Source=数据源" ’定义Connection连接对象连接字符串 Connection1.Open ’打开Connection连接 Command1.ActiveConnection = Connection1 ’设置Command命令使用Connection连接 4.2.2将记录时间、数值、控制点位号及生产批号存入数据库表 Dim String1 As String ’定义字符串 String1 = "insert into 生产数据表(记录时间,数值,控制点位号,生产批号) _ values('Str(Item1.TimeStamp)',Item1.Value,ClientHandle,curBatchId)" ’设置insert字符串语句 Command1.CommandText = String1 ’设置Command命令为已设置完的insert字符串语句 Command1.Execute ’Command命令执行 4.3 数据查询及数据呈现 4.3.1数据查询主要依靠强大的select查询语句,格式如下: Select 记录时间,数值,控制点位号 from 生产数据表where 生产批号=201401001 4.3.2数据呈现 数据呈现的界面,见图4 4.3.2.1Excel数据输出功能 借助Excel强大的数据处理功能,能够快速生产各种图表,进行统计、分析,Excel输出功能很多软件都具备,且受欢迎,Excel输出关键代码如下: Set ExcelObject =CreateObject("Excel.Application") ’创建Excel对象 Set ExcelObject = GetObject(,"Excel.Application") ’激活Excel对象 Set ExcelBook =ExcelObject.Workbooks.Add ’在Excel中添加一个工作簿 Set ExcelSheet = ExcelBook.ActiveSheet ’在Excel中激活一个工作表 ExcelSheet.Cells(1, 1) = "时间" ’第1行第1列写入“时间”作为表头 ExcelSheet.Cells(1, 2) = "数值" ’第1行第2列写入“数值”作为表头 ’定义循环,将数据库中存储的“记录时间”、“数值”输出到Excel工作表中 Dim i As Integer For i = 2 To RecordSet1.RecordCount ExcelSheet.Cells(i, 1) =RecordSet1.Fields.Item("记录时间") ExcelSheet.Cells(i, 2) =RecordSet1.Fields.Item("数值") RecordSet1.MoveNext Next i 4.3.3 表格显示功能 Set DataGrid1.DataSource=RecordSet1 ’设置表格的数据源为查询语句返回的记录集 4.3.4趋势图显示功能 ’设置MSChart的行关联RecordSet记录集 MSChart1.RowCount = RecordSet1.RecordCount ’定义循环 ,将数据库中存储的“数值”生成趋势图 Dim i As Integer For i = 1 To RecordSet1.RecordCount MSChart1.Row = i MSChart1.Data =RecordSet1.Fields.Item("数值") RecordSet1.MoveNext Next i
5.开发总结
使用Visual Basic开发平台和SQL Server数据库,运用OPC、ADO等关键技术进行OPTO22 PAC中药生产控制系统数据库二次开发,大幅度提升了原系统历史数据管理能力,系统具备数据自动存储、查询、Excel输出、表格和趋势图自动生成功能,便于进行生产过程数据的统计分析、历史数据追溯,很大程度上,提高了产品质量,收到了良好的效果。系统轻量级化,安装文件仅四十多兆,安装环境要求低,可安装于原系统工程师站,不增加硬件投入。
张金巍,男,高级工程师,主要从事中药生产质量管理及项目管理工作。Email : 14526641@qq.com
|