一种生产管理信息系统的设计与实现
2014-08-17陆中杰陈云宇
陆中杰, 陈云宇, 王 婷
(中海网络科技股份有限公司,上海 200135)
0 引 言
随着信息技术的发展,信息化在企业的生产管理中发挥的作用越来越重要。生产管理信息系统,是将生产信息与企业管理结合起来,对生产过程数据实时采集并进行处理和模型分析,统计结果进行储存并实时传递到企业的各个管理层面进行监控;管理者掌握生产信息的一手资料,及时进行企业的生产调度和决策管理。
生产过程中的数据信息,通过可编程逻辑控制器(Programmable Logic Controller, PLC)采集,经过加工处理并储存,可视化处理后呈现给管理者。西门子公司上位机监控软件WinCC是生产过程自动化中解决可视化和控制任务的监控组态软件,它提供了适用于工业的实时数据采集、显示、数据的归档、报警以及报表等功能模块。虽然WinCC处理数据的能力很强大,但具有一定的局限性,对于企业的管理部门和技术部门需要的统计、分析、查询等更强功能无法实现。因此,研究把SQL SERVER2005数据库、VB控件和WinCC结合起来,开发出具有信息管理等多功能的系统,为生产系统管理与决策提供有效的数据支持。以纺丝工位生产管理为例,说明如何进行生产管理信息系统的设计和实现。
1 系统设计
纺丝工位生产管理信息系统以PLC数据采集为基础,以服务器数据管理为中心,以信息显示为平台,将生产过程数据进行加工处理存储,实现生产的监控和管理。
1.1 硬件架构
图1 系统结构图
纺丝工位生产管理系统由PLC、工作站、服务器、客户机和交换机组成(见图1)。整个系统分为数据采集层、数据管理层和人机界面。数据采集层由PLC组成,采用西门子S7-300 PLC并配置3块32路数字量输入模块。模块采集36台计量泵和36台卷绕机的状态信号并负责数据加工处理。数据管理层由服务器组成,主要由SQL SERVER数据库管理系统所有的过程数据。人机界面由工作站和客户机组成,工作站上安装WINCC 7.0组态软件,组态了纺丝工位监控系统所有功能界面。通过配置WINCC的组件Web Navigator,使得远程客户机能在浏览器上监控设备状态及查询过程数据。
1.2 软件架构
从软件的逻辑架构来划分,系统可以分为采集控制层、通信层、业务层和应用层。采集控制层包含了数据采集组件和数据处理组件;通信层包含工业以太网通信组件;业务层包含了状态显示组件、历史数据查询组件、生产效益组件和卷绕生产查询组件;应用层包含了WEB远程监控组件。从软件的物理架构来划分,系统可分为PLC、网络交换机、工作站/服务器、客户机。系统软件架构见图2。
图2 软件系统架构图
2 关键技术研究
2.1 数据的存取方式
WINCC通过建立通讯变量能与PLC进行数据通讯,读取PLC内存地址的数值,将过程数据通过接口程序保存到服务器的数据库内。服务器上安装SQL SERVER 2005关系数据库,配置ODBC指向数据库,在WINCC中通过ADO对象为接口实行对数据库的操作。
图3 数据存取方式
WINCC支持VBS脚本,可以使用VBS编写脚本函数对数据库进行操作。但是需要使用到的接口函数较多,用VBS脚本编写较繁琐且运行效率低。为了方便WINCC对SQL SERVER数据库操作,用VB 6.0编写了以ADO为接口对数据库操作的类模块,这样在WINCC中只需要创建该类的1个对象并调用其成员函数即可,减轻了代码的工作量使脚本尽可能减少错误并提高了运行效率。
2.2 数据同步
数据的实时性和准确性在系统中极其重要,如果数据的实时性差,就不能客观的反应某一时刻的生产状态;准确性不高,则数据统计的结果没有意义。该纺丝生产系统中共有36个工位,每个工位需要同步的数据有几十个,系统需要每隔1周期同步所有工位的近千个数据。同步数据的方式是通过PLC将数据准备好之后通知WINCC同步,WINCC收到同步命令后执行同步脚本。
WINCC读取PLC的实时数据时需要通讯时间,当读取少数数据时累计的通讯时间十分短暂,但是如果将36个工位将近1 000个数据同时读取时,通讯时间将需要很长。这样会导致同步的数据出错,使有些工位读不到数据。为了减少通讯时间对同步数据的影响,将36个工位的数据分2部分同步,PLC先通知WINCC同步前18个工位的数据,等结束后再进行剩余18个工位的数据同步,这样能大大减少通讯时间对数据同步的影响,经过验证这样能够保证数据正确的同步。
2.3 远程监控
各层管理者通过现有的网络方式获取信息,可以减少硬件和工程的支出,也方便管理者有选择地获取信息。基于Web的自动化监控是利用计算机自动控制技术、网络通信技术、仿真技术、多媒体技术、网络数据库技术以及Web技术组成的网络远程高级控制系统,解决了工业现场设备网络远程监控的问题,为现场设备实现在局域网内的远程化管理提供了整套完整的解决方案。
基于Web远程局域网访问是基于公司局域网技术的产品,可以为公司所有管理人员提供访问权限,形成资源广泛共享。直接通过任意办公室内局域网电脑远程监控设备运行状态,大大提高了设备的维护效率,降低故障处理的时间。同时,企业决策层可以随时通过WEB页面浏览报表,为迅速决策提供帮助,具有很好的实用价值。
3 软件实现
3.1 PLC数据采集
纺丝工位由计量泵和卷绕机组成,这些设备的运行信号通过电缆接入PLC的数字量输入模块并由CPU获取信号。根据信号的状态,PLC程序判断当前工位的状态。按照模块化程序设计,在不同的状态下执行不同的程序模块处理过程数据。
3.1.1 程序编码
PLC程序编码基于SIMATIC Manager,运用模块化编程的方式将程序按照功能封装成程序块,目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。
3.1.1.1 程序功能块
纺丝工位监控系统的程序块主要有:OB1 主程序块OB100 初始化程序块OB35 时间中断程序块FC10 #1工位~#18工位工况处理程序块FC11 #19工位~#36工位工况处理程序块FB101 单个工位工况及数据处理程序块DB100~DB135 工位数据输入的数据存储块DB200~DB235 存储工位过程数据的数据库DB300~DB335 每个工位调用FB101的背景数据块。程序块调用顺序见图4。
图4 程序块调用顺序图
3.1.1.2 程序流程图
FB101是单个工位工况及数据处理的功能块,功能主要是根据工位设备的不同状态判断纺丝工位当前的工作状态,记录设备的启动时间和停止时间并根据输入的基础数据通过数学公式计算出结果。程序块的流程见图5。
图5 程序块流程图
3.2 类模块
类模块是WINCC与SQL SERVER之间数据交互的接口。类模块的开发环境基于VISUAL BASIC 6.0,以ADO为基础。
3.2.1 ADO
ADO 是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。与Microsoft的其它系统接口一样,ADO是面向对象的。
3.2.2 ADO 在VB 6.0中的应用
在Visual Basic 6.0中引用Microsoft ActiveX Data Objects 2.8 Library,建立Connection 对象和Recordset对象:Connection对象包含关于某个数据提供程序的信息;Recordset对象包含某个查询返回的记录,以及那些记录中的游标。
3.2.3 编写ClassOfWinCC类
在VB6.0中创建DBLibExe工程,编写ClassOfWinCC类模块,模块中定义数据库操作的函数。
(1) ConstDSNStr As String = "DSN=GWCL "
说明:定义数据源字符串;
(2) Public Sub OpenSQLServer()
说明:用缺省的连接字符串进行数据库连接;
(3) Public Sub CloseSQLServer()
说明:关闭数据库连接;
(4) Public Function DBGetRecordset(ByValSQLStr As String) As ADODB.Recordset
说明:获取SQL字符串指定的数据库记录集;
(5) Public Sub WriteHistoryRecord(ByVal Station As Integer,ByvalSt_Dt As Date,……)
说明:在表中插入记录;
(6) Public Sub UpdateHistoryRecord(ByVal Station As Integer,Byval Type As String, ByvalTeam_Id As integer,ByvalTeam_Status As integer)
说明:在表中更新记录。
3.2.4 WINCC中使用ClassOfWinCC类
打开ODBC数据源管理器配置本机的数据源。添加系统DSN,选择SQL Server为数据源的驱动并配置正确参数。编译DBLibExe工程并运行。在WINCC 7.0全局脚本的VBS编辑器中创建项目模块,在模块中定义并创建对象后在VBS的全局脚本或事件脚本中使用ClassOfWinCC类对SQL Server进行读写。
3.2.5 创建SQL Server 2005触发器
WINCC对数据库中的T_History表进行了Insert和Update的操作,根据Insert和Update分别创建Tri_Insert和Tri_Update触发器。Tri_Insert触发器用于将T_History表中符合条件的记录插入到T_Team表和T_Volume表中。当有记录插入T_History表后,触发器根据记录的TEAM_STATUS字段判断记录是否为班次更换时的记录,如果是则将记录的数据重新组织后插入T_Team中,反之则插入T_Volume中。Tri_Update触发器用于将T_History表中更新后的记录数据更新至T_Team中记录的FULL_ RATE字段统计满卷率。
3.3 人机界面软件设计
人机界面采用西门子WINCC 7.0组态软件进行组态,主要界面有:工位设备实时状态监控、工位设备状态历史趋势、历史生产数据查询、生产效益情况查询、卷绕生产情况查询和系统参数设置。
3.3.1 建立通讯变量
人机界面建立通讯变量后就能读取PLC中对应内存地址的数据。纺丝工位系统中有36个工位,每个工位需要与PLC通讯的数据数量和类型都是一致的。为了减少建立变量的工作量及提高以后维护变量的效率,使用了结构变量。对工位的通讯变量建立结构变量模板,建立模板时结构元素的内存地址必须是连续的。创建工位通讯变量时选择次模板即可自动生成该工位的所有变量,变量名的命名格式为:结构变量名.结构元素名。此外运用结构变量还利用窗口画面中的变量前缀属性访问不同的结构变量,减少了画面重复组态的工作量。
3.3.2 画面组态
在WINCC的图形编辑器中组态人机界面的画面。组态的过程中主要使用了以下几个方法实现功能:
(1) 利用图形或者字体的颜色变化实现设备当前状态的识别;
(2) 利用MSHFlexGrid控件实现数据查询结果等的显示;
(3) 利用按钮、下拉框、多选框等控件的事件驱动实现界面操作,例如用下拉框选择需要查询的工位号,点击按钮进行结果查询等;
(4) 利用WINCC的变量记录实现设备状态历史趋势查询。
3.3.3 WINCC WEB NAVIGATOR页面发布
WINCC Web Navigator基于标准HTTP协议,允许用户通过局域网或者互联网对远程设备进行监控。Web Navigator包括安装在主机上的Web Navigator Server组件和客户机上的Web Navigator Client组件。安装Web Navigator Server之前需要在主机上安装IIS。安装完毕后按以下步骤组态Web发布:
(1) 打开Web Configurator对Web站点进行参数设置,输入Web站点名,IP地址设置为本机的地址,端口为80,完毕后启动Web站点;
(2) 在WINCC工程项目中打开Web View Publisher,选择远程发布画面的路径、发布的画面和位图等完成画面发布组态;
(3) 在WINCC工程项目中打开用户管理器创建用户级分配访问权限;
(4) 设置瘦客户机的IE浏览器,在Internet 选项的安全属性页中把“对标记为安全可执行脚本的ActiveX控件执行脚本”和“下载已签名的ActiveX控件”的属性设置为Enable;
(5) 在客户机的IE浏览器地址栏中输入Web Navigator Server主机的IP地址,如果是第一次访问主机将会提示下载安装Web Navigator Client,安装完成后客户机的IE浏览器会弹出登陆页面,输入用户名和密码后就能访问之前所组态的发布页面。
3.3.4 数据库设计
该系统定义了名称DB_GWCL数据库,在数据库内建立了以下数据表:
历史生产数据表(T_History):存放各个工位的历史过程数据;生产效益表(T_Team):存放各个工位每个班组时间内的累计过程数据;卷绕生产情况表(T_Volume):存放每个工位每卷产品的过程数据;班次时间表(T_Class):存放生产班次的数据;人员数据表(T_User):存放操作人员的数据。
4 结 语
系统运用了SQL SERVER、VB控件及ADO接口等技术在WINCC的平台上进行2次开发并结合PLC应用,在纺丝生产中实现了纺丝生产系统数据的监控与管理。该系统运行半年来,稳定可靠,数据正确无误,提高了企业的生产管理水平和整体经济效益。
这种将工业化与信息化相结合,将生产信息融入到企业管理中的生产管理信息系统,对提高企业的生产效率,对提升企业的核心竞争力具有积极的作用。
参考文献:
[1] Visual Basic 6.0程序设计教程:第3版[M].北京:人民邮电出版社,2009.
[2] SQL Server 2005数据库应用与开发[M].北京:清华大学出版社,2010.
[3] ADO.NET 2.0技术内幕[M].北京:清华大学出版社,2007.