梅光晴, 蒋 伟, 徐保国
(江南大学物联网工程学院,江苏无锡214122)
液态发酵的温度、溶氧量以及pH等是清酒发酵过程中至关重要的参数,对清酒的品质起到决定性作用。目前国内清酒的产量有限,而且多以手工操作为主,其生产规模过小、批次稳定性差等问题较为严重。为攻克这一难题,实现清酒的自动化生产势在必行。结合清酒生产的工艺特点,该系统有机地将LabVIEW、PLC、工业PC机、相关传感器和智能仪表等融合在一起,通过控制开耙的频率与时间控制溶氧量、冷凝阀的开度大小控制发酵温度等,实现了清酒发酵生产过程的实时监测与自动控制。
根据清酒发酵生产的工艺特点,该发酵控制系统模型可分为两层:现场自动化控制层和车间监控层。有26个发酵罐及3个酒母罐,一共29个发酵罐。Profibus是一种国际化、开放式、不依赖于设备生产商的现场总线标准,并且是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术[1]。该控制系统通过 Profibus、RS-485 等总线技术将工业PC机、PLC、智能仪表以及各种传感器等进行组态,从而构成一个现场网络,上位机接受各个传感器采集到的数据,并结合发酵的工艺要求,判断各个执行器,如开耙阀、冷凝阀等需要执行的动作,以此来实现对清酒发酵过程的有效监控。
系统主体结构如图1所示。该监控系统采用工业PC机作为服务器,并采用LabVIEW2012作为前台开发软件,界面友好美观。以Simatic S7-300 PLC和人工智能仪表作为下位机,采集温度、溶氧、pH等模拟量,通过RS-485总线技术送往上位机处理。
图1 清酒发酵监控系统结构Fig.1 System structure of sake fermentation
发酵车间控制室设有工业PC机1台,并带有显示器显示参数运行状况;控制柜内设PLC 1台,工业PC机与S7-300 PLC之间的通信则借助于Simatic CP5612通信卡,通过Profibus-DP现场总线技术实现连接;人工智能仪表实时显示型号为WZP-230的铂电阻采集的温度值,通过RS-485总线传输给上位机;pH传感器、溶氧变送器将测量结果转换为4~20 mA的标准电流信号传输到PLC对应的模拟量模块。PLC将根据上位机对各个数据分析的结果并结合采集的信号发送指令,如定时启动开耙阀门以保持液态发酵中的溶氧量;当温度高于设定温度时打开冷凝阀门,让冷水进入罐壁的夹套以降低罐内发酵的温度等。
该系统软件主要包括LabVIEW2012,Microsoft SQL 2008,Simatic NET PC Software V6.5,Step 7 V5.4。其中 LabVIEW2012用于编写人机操作界面;Microsoft SQL 2008作为数据库用于存储、备份采集到的数据;Simatic Net和Step 7分别用来在工业PC机上通过Profibus-DP总线建立OPC服务器和组态配置S7-300 PLC以连接搭建好的OPC Server[2-3]。发酵系统部分发酵罐效果如图2所示。
图2 控制系统单罐效果Fig.2 Design sketch of a single fermenter
2.2.1 上位机与PLC通信的实现 LabVIEW 是虚拟仪器(Virtual Instrument,VI)领域最具代表性的图形化编程软件,广泛应用于测试、过程处理和控制领域[4]。该系统采用DataSocket技术通过访问OPC Server实现工业PC机和PLC之间的通信。DataSocket技术基于TCP/IP协议并对其进行高度封装,能在测试测量过程中实现服务器与多用户的实时数据交换与共享[5]。而OPC作为一种工业标准,由微软与各国知名自动化产品生产商共同研发,形成了一个自动化软件面向对象开发的统一标准,西门子也提供了对该协议的支持。
正确使用URL(Uniform Resource Location,统一资源定位符)和数据类型是应用DataSocket进行程序设计的前提。URL的格式由协议(或称服务方式)、存有该资源的主机IP地址(有时包括端口号)和主机资源的具体地址3部分组成,协议与IP之间用“://”号隔开,IP与具体地址之间用“/”号隔开[6]。所以,访问OPC的基本URL结构为:OPC://主机名称 //OPC服务器名称 /数据地址。该系统采用LabVIEW写入PLC中存储区的数据的程序框图如图3所示。其中Q表示要写入的寄存器类型,即输出印象寄存器;B表示字节,数字0表示字节起始地址,数字3表示写入的字节数;S7 connection_1是组态现场总线时默认的连接名。
图3 LabVIEW与PLC通信程序框图Fig.3 Block diagram of communication between LabVIEW and PLC
2.2.2 上位机与智能仪表通信的实现 LabVIEW自身的VISA驱动程序可以实现串口通信,但考虑到VISA驱动程序购买的费用以及尽可能节省内存,该系统通过LabVIEW中的CLFN(Call Library Function Node)节点调用动态链接库(DLL)来实现。动态链接库函数(DLL)是利用标准串口通信函数在VC++中开发而来,串口通信函数库中负责对串口进行初始化和读写任务的函数包括comInit,comRead,comWrite 3个函数。
在使用串口进行读写操作时,首先需要对串行端口进行一些初始化配置。在成功打开串口后,应用程序可以先调用GetCommState函数获取串行口的当前配置信息,再根据自身需要修改串口配置信息。这是通过修改DCB结构中部分数据成员的值,再调用SetCommState函数设置串口配置信息实现的[7]。应用程序主要通过ReadFile函数和WriteFile函数对串口进行读写操作,如图4所示为从配置串口到仪表读取参数值的流程图。
图4 串口初始化并读取AI智能仪表流程Fig.4 Flow diagram of preparing serial port and reading instruments
该系统采用的智能仪表统一采用RS-485通信协议,每个仪表对应唯一地址,每次上位机向对应智能仪表发送指令,对应的智能仪表会根据收到的指令返回对应的指令代码。发送和接受的指令代码都是根据RS-485协议编写,包含地址、数值、数据类型等信息。
配置CLFN(Call Library Function Node)节点时需要注意,在配置窗体中函数部分时需要将线程设置为在任意线程中运行,避免该程序在读写串口时独占线程而导致其他程序线程无法运行。配置好的CLFN节点如图5所示。DLL中已经定义的导出函数和输入输出的数据类型要一致。
值得注意的是,图5中读取的智能仪表数是36个。按RS-485接口的规定,RS-485通信接口可在一条通信线路上连接最多32台仪表或计算机。而此时需要联接的仪表数大于32。对于该问题本系统则选择采用Max487芯片的通信接口,此接口最多可连接100台AI仪表在一条通信线路上。
2.2.3 LabVIEW与数据库通信的实现 LabVIEW与数据库的通信方式更为多样。如利用NI公司开发的LabVIEW SQL Toolkit工具包,在LabVIEW中调用由C++等语言编写的动态链接库(DLL),利用LabVIEW的ActiveX功能,调用Microsoft ADO控件,通过SQL语言实现数据库访问等方法。
图5 LabVIEW与智能仪表通信程序Fig.5 Block diagram of communication between LabVIEW and instrument
该系统采用的是目前使用比较广泛的、由第3方开发的免费工具包LabSQL来实现LabVIEW与数据库的通信。LabSQL是一个免费的、源代码开放的、多数据库、跨平台的LabVIEW数据库访问工具包[8]。LabSQL工具包简单易用,一般步骤为:首先通过 ADO Connection Create.vi函数创建一个Connection对象,接着用ADO Connection Open.vi函数建立LabVIEW与数据库的连接,然后就可使用ADO SQL Execute.vi函数对数据库进行写入、查询、删除等操作,最后通过ADO Connection Close.vi和ADO Connection Destroy.vi函数关闭数据库连接。提取数据库表‘保存设置品名’中温度、溶氧相关数据,程序框图如图6所示。
图6 LabVIEW访问数据库程序Fig.6 Block diagram of communication between LabVIEW and database
介绍了一种利用LabVIEW软件平台构建清酒发酵监控系统,该系统已经在实际生产过程中体现出明显优势:
1)系统稳定性较好,能高效地完成清酒发酵过程的在线监控,参数调整较为灵活。
2)系统实现了生产过程较高程度的自动化,节省了大量劳动力。
3)该系统不仅提高了清酒的产量、质量,而且对于推广清酒发酵自动化有着深远意义。
[1]阮焱林,郑秋玲,张云.PROFIBUS现场总线技术综述[J].可编程控制器与工厂自动化,2011(8):39-41.RUAN Yan-lin,ZHENG Qiu-ling,ZHANG Yun.Summary of profibus field bus technology[J].Programmable Controller and Factory Automation,2011(8):39-41.(in Chinese)
[2]陈真,王延江,王钊.基于LabVIEW的远程数据采集系统开发[J].仪表技术与传感器,2006(6):26-29.CHEN Zhen,WANG Yan-jiang,WANG Zhao.Design of the remote data acquisition system based on DAQ[J].Instrument Technique and Sensor,2006(6):26-29.(in Chinese)
[3]李红粱.基于OPC的PC与PLC实时通信的LabVIEW实现[J].计算机应用研究,2003,20(12):115-118.LI Hong-liang.Implementation of OPC-based communication between PC and PLC on LabVIEW platform[J].Application Research of Computers,2003,20(12):115-118.(in Chinese)
[4]曾珞亚.基于OPC技术的PLC与LabVIEW 通信实现[J].微计算机信息,2009,25(6-1):52-53.ZENG Luo-ya.Realization of data communication based on OPC technology between PLC and LabVIEW[J].Microcomputer Information,2009,25(6-1):52-53.(in Chinese)
[5]马海瑞,周爱军.基于DataSocket技术的LabVIEW 远程测控[J].现在仪器,2005(4):20-22.MA Hai-rui,ZHOU Ai-jun.DataSocket based remote measurement and control in LabVIEW[J].Modern Instruments,2005(4):20-22.(in Chinese)
[6]许林烽,倪天权.基于LabVIEW与DataSocket的测试系统设计[J].微计算机信息,2006,22(12-1):166-168.XU Lin-feng,NI Tian-quan.Design and application of the test system based on LabVIEW and DataSocket[J].Microcomputer Information,2006,22(12-1):166-168.(in Chinese)
[7]李高升,周东明,何建国,等.LabVIEW中DLL文件的创建及其应用[J].现代电子技术,2004,11(10):24-26.LI Dong-sheng,ZHOU Dong-ming,HE Jian-guo,et al.Building and application of DLL files in LabVIEW[J].Measurement and Control Technology,2004,11(10):24-26.(in Chinese)
[8]杨乐,李海涛,赵勇,等.LabVIEW高级程序设计[M].北京:清华大学出版社,2003.