百仑慧神发酵数据采集/分析系统的设计及应用

张劲楠,丁健,严建,史仲平*

(江南大学 生物工程学院,江苏 无锡,214122)

随着发酵工程和传感器技术的发展,实验室及工业化规模的发酵过程数据量与日俱增,如何有效地管理和利用这些数据已经成为困扰技术人员的难题之一。为解决这一难题,利用C#2010设计了“百仑慧神”发酵数据采集/分析系统(Bioplot)。Bioplot软件预留了DDE、OPC和TCP三种通用的通信接口用于采集数据,利用后台MySQL数据库管理数据,同时为用户提供了数据汇总、数据表展示以及灵活的多批次多参数曲线图比较功能。利用Bioplot软件连接两台来自不同生产厂商的发酵设备,并在实际的发酵过程中验证其有效性和通用性。结果表明,Bioplot软件所包含的各个功能模块均能够正常运行并达到预期的效果。

关键词 发酵过程;数据采集;数据管理;数据分析

DOI:10.13995/j.cnki.11-1802/ts.018115

第一作者:硕士研究生(史仲平教授为通讯作者,E-mail:jnbioprocess@163.com)。

基金项目:国家自然科学基金(21606106);江苏省自然科学基金(BK20150127)

收稿日期:2018-06-25,改回日期:2018-08-18

发酵工业与人民生活密切相关,是国民经济中的重要产业[1]。随着工业化发酵技术的进步,发酵规模不断扩大,发酵产品种类愈加丰富。传感器及在线检测技术的发展,使得越来越多的发酵过程参数可以被在线检测,由此而产生的大量发酵过程数据包含了与发酵性能息息相关的重要信息,可看做是企业的信息金矿,合理有效地管理和分析发酵历史数据对改进企业的发酵工艺,提高生产的稳定性具有重要的指导意义。随着发酵数据的数量及复杂程度的增加,如何管理和分析发酵数据已经逐渐成为困扰企业生产管理的难题之一。因此,开发一套软件系统帮助发酵技术人员管理、分析和利用发酵数据是一项势在必行的重要工作。

近年来,发酵罐生产厂商纷纷开发与自身产品相配套的上位机软件。组态软件是发酵设备厂商开发上位机软件的主要工具,以此方式开发的上位机软件能够灵活地实现数据采集、设备控制以及过程监控等功能[2]。但在实际应用过程中,由于其计算功能薄弱,难以满足发酵企业复杂数据处理的需求,除此之外,组态软件数据库中所保存的数据无法脱离组态环境查看,不能对用户开放,尤其是不能按任意条件进行查询和删除数据[3],为数据管理带来了诸多不便。鉴于组态上位机软件在数据处理以及数据管理功能上的不足,本文作者受连云港百仑生化科技有限公司委托开发“百仑慧神”发酵数据采集/分析系统(Bioplot)。

1 “百仑慧神”发酵数据采集/分析系统设计与开发

Bioplot软件系统是利用C#编程工具和MySQL数据库管理软件共同开发的;利用C#开发图形用户界面(GUI),编写数据接口模块实现从设备采集数据的功能;后台数据库管理系统利用MySQL数据库开发设计。整个发酵数据采集/分析系统所包含的功能模块如图1所示。软件开发过程中采用多线程编程技术,使得软件系统在执行某些占用CPU较高的数据处理任务时仍然能够流畅稳定地运行,避免CPU长时间被一个任务占用时整个软件系统阻塞现象的发生[4]

图1 软件系统功能模块
Fig.1 Function modules in software system

1.1 图形用户界面及数据库设计

C#作为一种被广泛应用于计算机程序开发的语言,具有简单、现代、面向对象和类型安全等优越的性能特点[5]。Bioplot软件系统是以C#为平台,设计了友好的GUI,用户可通过GUI完成以下功能:(1)采集在线数据,接收人工录入的离线数据;(2)将采集到的数据发送至后台数据管理模块,下达指令控制数据管理模块的数据管理行为;(3)利用发酵数据绘制曲线图,进行多批次数据间的分析比较。该软件系统为用户提供了美观、简洁的程序界面,用户通过简单的学习就能熟练掌握软件的操作技能,极大程度地简化了用户的操作过程。

MySQL数据库是一种开放源码的关系型数据库[6],占用资源少,运行速度快,被广泛应用。利用MySQL数据库软件,根据管理发酵数据的需求设计若干数据表,分别用于存储数值、文字、图片等不同类型的发酵数据。合理地设计各数据表的主键以及连接各数据表的外键,以确保数据存储的稳定性及可靠性。发酵过程的数据量非常庞大,根据发酵数据的存储结构,优化数据检索方式,来提高数据的检索和访问速度。C#编写的GUI能够快速、灵活地与MySQL数据库建立连接,用户可通过GUI向数据管理模块发送操作指令,实施数据检索、访问、导入、导出、备份等管理操作。C#中连接数据库的代码如下:

string connstring ="Data Source= 'localhost ';UserID =root; Password=1994; port=3306; database = booksdb";

MySqlConnection conn = new MySqlConnection(connString);

conn.Open();

1.2 数据接口设计

目前,发酵设备下位机为上位机预留的数据通信接口主要包含三类,即DDE连接、OPC连接和TCP连接。DDE,全称为Dynamic Data Exchange,即动态数据交换技术[7],是最早的WINDOWS操作系统面向非编程应用程序间的通信标准,利用DDE能使2个应用程序之间通过相互传递信息进行“对话”[8]。OPC,全称为Object Linking and Embeding for Process Control,被广泛应用于工业自动化控制的数据采集系统中,该技术以OLE/COM / DCOM技术为基础,通过采用客户/服务器模式,为工业自动化制定了在面向对象过程中的统一标准,采用该标准[9],使得软件开发者通过简单的接口程序就能够与工业设备硬件取得连接,进行数据传输。TCP协议是面向连接的可靠的通信协议,能够实现远程监控系统中的实时数据传输,在工作时主要靠IP地址和端口号来识别收发数据[10]。以上三种通信协议在通信过程中都采用客户端/服务器模式,当客户端设置的通信参数与服务器相匹配时,客户端则能够与服务器成功建立连接并完成数据交互。

由于不同发酵罐生产厂商所提供的下位机,其服务器类型可能各不相同,通信参数也各不相同。如何确保自主设计的数据采集系统能够与不同厂商的发酵设备建立连接并采集数据,是一个首先需要解决的问题。为了解决这一软件通用性的问题,作者采用了外部配置文件的方式配置数据采集接口的信息。配置文件类型为XML,其中包含了以键-值对形式描述的服务器类型和连接参数。系统运行过程中,可按照保存于指定路径下的XML配置文件中所提供的信息与服务器建立连接,并从中读取数据。利用文本编辑工具(如Notpad++、Sublime Text、Vim等)修改配置文件中的服务器类型及连接参数,使之与不同发酵设备的下位机服务器相匹配,即可实现本软件系统与不同发酵设备的连接和通信。

1.3 批次管理

为了保证发酵批号的唯一性,本软件系统利用多个字段共同命名一个发酵批次。其中,“起始日期”、“描述”以及“设备批次编号”是系统默认的通用字段。“起始日期”字段的内容为该批次发酵起始的年月日信息;“描述”字段的内容为用户自己输入的描述文本;“设备批次编号”字段的内容由系统自动生成,无法修改,是一个随着发酵批次数目的增加而自增的整型变量。除了上述3个通用字段外,本软件系统还预留了5个自定义字段,用户可根据自身的实际情况定义通用字段的名称及内容选项。自定义的名称和内容选项均写入指定的XML文件中,供系统运行时自动读取。

系统中每一个发酵批次的操作都是相互独立的,用户能够灵活地控制各个发酵批次的运行状态,确保各批次互不干扰地进行数据采集、暂停采集、结束发酵等操作。系统会自动将发酵过程中采集到的发酵参数数值、样品图片及操作记录等信息保存到后台数据库中。用户可通过GUI设置各个命名字段的查找条件,对数据库中存储的批次进行检索。检索得到的数据可以在系统中加载、查看、对比、绘制曲线图,也可以将整个批次的数据导出为一个扩展名为“.bl”的数据文件。bl数据文件既可用于数据备份,也可以导入其他计算机上运行的Bioplot软件系统,以便于发酵数据的汇总和整理。

1.4 数据管理及显示

本软件系统中的数据管理模块用于完成数据的采集、保存和展示功能。本系统中的发酵数据主要分为在线数据、离线数据、图片以及事件几种类型。对于不同类型的数据采用不同的处理方式,简述如下:

(1)在线数据:在线数据是指由在线传感器自动检测的数据(如溶解氧浓度、pH值、温度等),这类数据通过发酵设备预留的数据接口实时发送至本软件系统。本系统接收来自设备的在线数据后将其在内存中暂存,每隔一段时间将最新的数据一次性存入后台数据库中。与此同时,内存中保存的数据可以表格形式展示,供用户查看。

(2)离线数据:离线数据是指取样后人工测定的发酵过程参数(如细胞浓度、底物浓度、产物浓度等),这类数据通常由用户手动录入,同时将数据存入内存与后台数据库中。内存中保存的数据可以表格形式展示,供用户查看。

(3)事件:发酵过程中的操作记录、人员轮班以及一些突发事件的信息也是非常重要的。这些文本类的信息可由操作用户手动录入,同时将数据存入内存与后台数据库中。内存中保存的数据可以表格形式展示,供用户查看。

(4)图片:菌体形态、发酵液颜色等重要信息是以图片形式展示的。用户可将重要的图片信息以图片文件的形式导入本软件系统中,并将保存图片文件所对应的信息和保存路径存入后台数据库中。用户可在GUI的指定子窗口上查看比较这些图片信息。

1.5 曲线图

本软件系统中绘制曲线图的功能利用C# 提供的Chart控件实现,曲线图的时间轴为发酵时间或采样时间,用户可以按照自己的需求切换。用户可在系统内存所有批次的所有参数中选取绘制曲线的目标参数,根据自己的需求灵活地绘制曲线图:(1)将实时批次中的关键发酵参数绘制在曲线图中,曲线图随着数据量的增加而自动更新。用户可实时监控关键参数的变化,以此作为操作和工艺控制的依据。(2)将多个历史发酵批次中的关键发酵参数绘制在同一张曲线图中,用户可通过比较各批次关键发酵参数的变化规律对发酵生产过程进行分析,为工艺的改进提供依据。(3)将历史批次和实时批次的关键发酵参数绘制在一张曲线图中,用户能够以生产性能较好的历史批次作为对照,对实时批次的生产状况作出初步的判断。为了提供更加灵活的曲线比较功能,用户可在一个窗口界面上添加多个绘图区,每个绘图区内可独立绘制曲线图,互不干扰。绘图区的尺寸大小允许用户设置,与此同时,提供了垂直和左右分栏两种排列绘图区的方式供用户选择。

各参数的数量级可能存在很大的差异,因此在同一个绘图区展示多条时,难以用一个相同的纵坐标轴绘制所有的曲线。为解决这一问题,本软件系统在绘制曲线图时,各参数的数值全部使用归一化处理(0%~100%)后的数据。软件系统可根据各发酵参数取值范围自动调整归一化的上限和下限,用户也可以人工设置各参数的归一化上限和下限。当用户将鼠标悬停于曲线之上时,会自动弹出提示框,为用户显示该曲线的批次号、参数名称以及鼠标所指向数据点的参数实测值。

2 “百仑慧神”发酵数据采集/分析系统在毕赤酵母发酵中的应用

将Bioplot软件系统应用于重组毕赤酵母发酵产外源蛋白的过程中,来测试系统的功能及稳定性。接下来将从数据接口配置、批次管理、数据管理及显示和曲线图等几个方面描述本软件系统的应用过程和结果。

2.1 数据接口配置

初次连接特定的发酵设备之前,需要在本软件系统中配置发酵设备服务器的连接参数。如前所述,配置服务器连接参数时,只需将其以键-值对形式写入指定的XML配置文件中即可。利用两台来自于不同生产厂商的发酵罐来测试本软件系统的通用性,设备信息如表1所示。

表1 发酵设备的属性参数
Table 1 The property parameters of fermentation tank

发酵罐编号A#B#体积5 L7 L型号BLBIO-5GJ-3-HBIOTECH-7JG厂商上海百仑生化科技有限公司上海保兴生物设备工程有限公司控制系统昆仑通态组态力控组态服务器类型DDEDDE服务器参数MCGSRun, DataCentreDB, DB

数据接口的配置过程包括以下几步:

(1)配置发酵罐编号:将本软件系统中需要采用的发酵罐编号写入配置文件中。发酵罐编号所对应的key值为“DevicesLabel”,将设备编号(A#和B#)以半角格式的逗号分隔,写入“DevicesLabel”对应的“value”值中。

<add key="DevicesLabel" value="A#, B# " />

(2)配置服务器类型及连接参数:将每个发酵设备所对应的服务器名称、类型和参数写入配置文件中,以自定义的服务器名称(serverBL和serverBX)为key值,以“服务器类型___参数1,参数2”格式的字符串为value值。

<add key="serverBL" value="DDE___MCGSRun, DataCentre" />

<add key="serverBX" value="DDE___DB, DB " />

(3)配置变量:将本软件系统内部预留的参数变量与服务器所提供的发酵参数建立连接。在配置文件中,以软件系统内部预留的参数变量为key值,以“服务器名称~服务器中的变量名称”格式的字符串为value值。服务器中不提供数据接口的变量或软件系统中不采集的变量名称用“***”表示。

<add key="温度" value="serverBL~温度_PV,*** " />

<add key="溶解氧浓度"value="serverBL~DO_PV, serverBX~F1.DO_PV" />

将两个发酵罐的服务器连接参数按照上述格式写入XML配置文件后,运行本软件系统,即可将发酵设备下位机中提供的数据读取至本系统中。连接不同的发酵设备时,只需要配置不同的服务器连接参数即可,本系统已预留了与几种通用通信方式连接的数据接口,具有较强的通用性。

2.2 批次管理

配置发酵批次命名规则,本研究中为“Field1~Field5”各配置一个命名字段,分别为“部门”、“产品”、“操作人”、“验收人”和“目标客户”。修改配置文件,分别以“Field1~Field5”为key值,以“字段名称,选项1,选项2,选项3,……”格式的字符串为value值。若所需的命名字段不足5个,则按照顺序依次配置,不配置内容的命名字段value值为空即可。

<add key="Field1" value="部门,研发,中试,生产1,生产2" />

<add key="Field2" value="产品,干扰素,谷氨酸,猪圆环病毒cap蛋白,DHA,溶菌酶" />

<add key="Field3" value="操作人,贾禄强,张劲楠,孙佼文" />

<add key="Field4" value="验收人,丁健,史仲平" />

<add key="Field5" value="目标客户,上海百仑,生物工程学院,物联网工程学院" />

本次实验中使用的设备为A#发酵罐、“部门”为“研发”、“操作人”为“贾禄强”、“验收人”为“史仲平”、目标客户为“上海百仑”。在新建批号窗口中为每个字段选定相应的选项,之后再点击“创建批号”按钮,系统就会提示批号创建成功。新建批号的窗口设置如图2所示。

图2 发酵批次命名界面
Fig.2 Fermentation batch naming interface

2.3 数据管理及展示

发酵过程中采集到的实时数据以及从数据库中加载的历史数据均能以数据报表的形式展示给用户。在线数据报表如图2所示,若数据报表中展示的是实时批次的在线数据,报表中的数据会随着发酵的进行而自动更新。离线数据报表如图3所示,点击界面上的“添加采样点”按钮,则会在数据报表中增加一条记录,用户可根据实际情况修改采样时间以及各采样点离线参数的数值。图片管理界面如图4所示,用户可在该界面中查看比较导入软件系统的图片文件。事件管理界面如图5所示,点击“添加”按钮可以增加一条事件记录,用户可根据实际情况修改事件记录的时间以及事件记录的内容。

图3 在线数据报表
Fig.3 Online data report
注:该图为在线数据显示界面,已打开的批次名称显示在界面左侧的树形视图中,在线数据以表格的形式呈现在界面上,用户能够选择批次名称和数据类型,查看并导出不同批次的在线(离线)数据。

图4 离线数据报表
Fig.4 Off-line data report
注:该图为离线数据显示界面,已打开的批次名称显示在界面左侧的树形视图中,离线数据以表格形式显示在界面上,用户点击单元格右侧的按钮,可以编辑和修改单元格中的内容。

图5 图片管理界面
Fig.5 Image management Interface
注:该图为图片管理界面,用于查看和修改导入系统中的图片信息,用户选中树形视图中的批次名称进行图片导入、删除和修改操作,也可以对选中的多张图片进行排序和比较操作。

图6 事件管理界面
Fig.6 Event management Interface
注:该图为事件管理界面,不同批次的事件记录以表格的形式呈现在界面上,用户选中树形视图中的批次名称可以查看和导出相关的事件记录表格,单击当前单元格右侧的按钮可以修改采样时间和编辑事件内容。

2.4 曲线图

发酵过程中采集到的实时数据会自动保存到数据库中,将发酵实时数据对发酵相对时间作图,如图7所示。将多个批次的历史发酵数据进行作图比较,可用来分析这些发酵批次间的共性与差异,如图8所示。将鼠标悬停于某条曲线之上,会自动弹出提示,显示鼠标所指向数据点的时间及参数。

图7 实时曲线图
Fig.7 Real time curves
注:该图为实时曲线图的显示界面,用户选中不同的参数绘制曲线图,并对曲线图的横纵坐标、图例位置、取点方式以及刷新时间间隔进行设置,来查看和分析各发酵参数的实时变化情况。

图8 历史曲线图
Fig.8 Hstorical curves
注:该图为历史曲线图的显示界面,已打开的历史批次显示在界面左侧的树形视图中,用户选中不同历史批次的在线(离线)参数绘制曲线图,将鼠标悬停在曲线上的某一点以查看该点的横纵坐标值。

3 结语

本款软件以C#作为主要的开发工具,提供了友好、美观、便于操作的图形用户界面,采用MySQL关系型数据库作为后台数据库,使得用户能够灵活地实现数据检索、备份、增加、删除等数据管理功能。软件在设计过程中,预留了3种工业控制中常用的通信接口,能够兼容绝大多数的发酵设备,具有良好的设备通用性。与组态上位机软件相比,本款软件在数据运算和数据管理方面更具优势,使用本款软件,用户能够高效地管理发酵工业化规模下复杂的发酵数据。

参考文献

[1] 程辉,邵惠鹤.生物发酵装置上位机软件的开发和设计[J].自动化仪表,2005, 26(1): 47-49.

[2] 刘力.组态软件在PLC实验系统中的应用[J].实验室研究与探索,2014, 33(4): 127-129, 136.

[3] 程海军,任国臣,姜丕杰.组态软件力控6.0中数据管理功能的实现[J].辽宁工业大学学报(自然科学版), 2012, (4): 219-222.

[4] 吕光帅,朱江华,潘丰.基于VC的发酵过程监控与状态预估软件开发[J].微计算机信息,2006, 22(2): 182-184.

[5] 李佳,付强,丁宁.C#开发技术大全[M].北京:清华大学出版社,2009.

M,et al.Weighted Moore-Penrose generalized matrix inverse:MySQL vs.Cassandra database storage system[J].Sādhanā,2016,41(8):1-10.

[7] BAOCHUAN F U,WANG Z,BAN J,et al.Realization of Dynamic Data Exchange Based on CGI for Embedded Remote Monitoring System [J]. Computer Engineering,2005,31(24):196-198.

[8] 冯江涛.组态王与MATLAB的DDE通信设计[J].电力学报,2006, 21(3): 291-293.

[9] 周新民,涂铮.基于OPC技术的PC与S7-200 PLC的实时通信[J].武汉理工大学学报(交通科学与工程版),2008,32(2): 354-357.

[10] 赵军伟,刘勋,董浩.基于TCP协议的远程监控系统的实现[J].中国测试,2010, 36(1): 78-81.

Design and application ofBai Lun Hui Shendata collection/analysis system for fermentation industry

ZHANG Jinnan,DING Jian,YAN Jian,SHI Zhongping*

(School of Biotechnology, Jiangnan University, Wuxi 214122, China)

ABSTRACT With the development of fermentation and sensor technology, the amount of fermentation data from laboratory and fermentation industries is increasing quickly. How to effectively manage and utilize these data has become one of the puzzling problems for technicians. In order to solve this problem, the “Bai Lun Hui Shen” fermentation data collection/analysis system (Bioplot) was designed by using C#2010. The Bioplot software collected data through reserved general communication interface, including DDE, OPC, and TCP. Additionally, it managed data using MySQL database and provided the users with functions of data summary, data table display, and comparing multi-batch and multi-parameter curves flexibly. The Bioplot software was used to connect two bioreactors produced by different manufacturers, and its effectiveness and universality during the real fermentation process were validated. The results indicated that all the functional modules contained in Bioplot could run normally and show the desired effects.

Key words fermentation process; data collection; data management; data analysis