摘要:局限于技术条件,目前生产中在统计生产产品产量方面不少还是依靠人工进行统计。在实际操作过程中,往往出现产品严重丢失,投入的原料量和产出的成品量严重失衡,因此,有必要采用工厂产量监控查询系统对整个工厂的产品产量进行准确的计量,文章基于台达PLC与组态软件技术,成功开发了一个工厂产量监控查询系统。 关键字:PLC 组态软件 监控 查询系统 1、引言 上海佳泰塑胶有限公司是生产手术专用手套、医用手套、科研手套及各种PVC手套的专业公司,年产值在0.5到1亿元人民币,产品基本上都是出口外销。全厂有两个生产车间共26条生产线,整个工厂的所有生产线由工厂产量监控查询系统实施实时监控,对每一条生产线的产量数据进行实时存储,将PLC中掉电保持区的数据读到监控系统自定义的相应变量当中去,每分钟通过标准的SQL语言对数据进行存储(每分钟向SQLSERVER数据库中存储26条生产线的产量数据,即26条生产线的当前产量),用户可以通过日期、时间、时间段、车间、生产线等查询任何车间、任意一条生产线的产量,能对车间、生产线的月产量进行统计,并在查询出满足条件的记录后,将结果通过报表显示,按规定报表格式将结果进行存储和打印。以下是对相关技术问题的简略讨论。 2、系统结构与功能 工厂产量监控查询系统的结构示意图如图1所示。 该系统要实现的功能是可以任意查询一车间、二车间任何生产线(共26条生产线)在任何时段的产量。具体要求如下: 1)每条生产线产量的数据至少能够保存4个月的储存期,以便对历史数据进行查询; 2)能查询每条生产线任意月、天、小时、分钟的产量; 3)能对任意一条生产线在任意时段的产量进行查询; 4)查询结果能以特定的格式在报表中显示,同时将结果打印出来; 5)各条生产线任意月、日、小时、分钟的产量可在电脑上以柱状图、实时趋势曲线的形式显示。 查询系统的查询方式可以实现:1)按照日期进行查询;2)按照时间进行查询;3)按照生产线进行查询;4)按照任意时间段进行查询;5)按照班次进行查询(早、中、晚班);6)查询任意月的任意车间、任意生产线的产量;7)可以运用第1)到第5)种不同的排列组合进行复杂的查询。 3、系统设计 该系统的设计是比较简单的,软、硬件选型配置如表1所示。 工厂产量监控查询系统的设计主要在于软件系统的设计,以下问题是考虑的重点。 1)两个车间共26条生产线,每分钟要有26条记录生成,每分钟向数据库插入26条记录。该系统全天24小时工作,不允许停,所以一天的数据量为37440条记录。每月的数据量为1160640条记录。如果要存储4个月,则数据量为4642260条记录。数据量是相当庞大的,硬盘的数据存储接近2-3G,不仅会造成在查询时,系统资源严重被占用,同时普通的数据库如ACCESS的表格没有能力管理如此庞大的数据系统。ACCESS在管理如此庞大的数据时,不仅系统会造成不稳定,同时会出现不可预料的情形。所以只能寻找能够管理大型数据系统的数据库,因此可以选择SQLSERVER或Oracle。 2)组态软件(组态王)支持对标准的数据库进行数据的插入、选择、删除等基本的操作,同时支持标准的SQL语言。灵活的运用该组态软件提供的SQL函数使监控系统通过ODBC(开放性的数据源)配合标准的SQL语言对数据库进行各种简单和复杂的操作。 3)即使使用大型的数据库,SQLServer或Oracle,由于每天的数据量多达37440条记录,如果将1个月,甚至是4个月的记录全部写入同一个数据库的同一个表格,则所有的数据量大的将使表格崩溃,即使数据库能够管理,查询的速度也是可想而知的,将会非常的慢。解决问题的思路是以系统的日期作为当天的表格名称。当系统时间为00:00:00时刻时,新建一个表格,通过SQLCreateTable(DeviceID,"TableName","TemplateName")函数建立不同的表格,因为组态软件支持字符串函数。 4)查询条件比较复杂。为了完成如此复杂的查询,使用了Active控件,因为组态软件支持第三方控件,将所有的条件罗列出来进行排列组合,将每一种情况都考虑在内。然后通过程序来实现选择条件转换成SQLSELECT()函数工作的条件。因为工艺要求能够任意查询任意生产线在任意时段的产量,为了能够实现该功能,可以新建站点及站点变量(\本站点CX_Hour,\本站点CX_Minute,\本站点CX_Hour1,\本站点CX_Minute1)。在以时间段进行查询时,先将以前两个变量输入的时间做为条件进行查询,将查询出记录的数据赋给在过程中自定义的中间变量。然后再以后两个变量输入的时间作为条件进行查询,将查询出的结果同样赋给自定义的中间变量。将两次查询的结果求差,然后将日期、时间、车间生产线产量通过报表的组态添到表格当中。 5)对于月产量的查询。需要判断输入的月份有几天,然后从该月的第一天开始到最后一天进行查询,查询的时刻为每一天的23:59分时各生产线的产量。然后对查询出的数据进行累加,直到该月的最后一天。具体程序实现是按照特定的格式将数据填写到报表当中。 6)当查询的条件比较复杂时,有些条件不可能同时成立,因此,在选择条件时,要互相限制,以避免出现混乱现象。 7)工艺要求能够查询任意生产线每分钟的产量,可以通过事件发生命令实现,即每当系统时间的秒等于59时,触发执行相应程序。 8)在系统时间等于00:00:00时刻时,用事件命令建立相应程序,以得到需要新建表格的名称,并同时将PLC中累计产量的寄存器清零,重新开始对该日的产量进行累计。 针对本文讨论的特定工厂产量监控查询系统,在系统安装调试过程中有些问题是不能被忽略的。 1)因为两个车间之间的距离在300m左右,而从第一个车间到监控室的距离有500m左右,距离比较远,为了遏制信号的衰减,将信号线用网线代替,同时加中继器将信号放大。保证数据传输的安全性。 2)要求现场布线时严格按照电气规范施工,保证安装的合格。 3)正确的设置操作系统中数据源ODBC的选项,以保证监控系统能通过ODBC与数据库SQLServer连接。在运行监控系统执行任何操作时,观察运行反馈信息,以得到相关的错误信息,可根据提示的错误信息检查程序。 4)报表组态非常灵活,可以通过While{}循环语句,将查询结果按照顺序填写到报表中。灵活的运用While{}语句可将程序简化,减少监控系统后台运行程序的时间。 5)灵活运用应用程序命令、数据改变命令、事件命令、热键命令、按钮的弹起、按住、按下命令进行编程。 6)在程序量大的项目中应养成良好的编程习惯,定义变量时最好使用英文对程序进行标注,以增加程序的可读性。 系统经调试正常后,投入生产运行的产品产量柱状图如图2所示,产量的趋势图如图2所示。 5、结束语 尽管台达PLC属于小型PLC,但其性能可靠、支持485通讯等特点,足以完成集中控制的功能,配合组态软件实现复杂的工厂监控、数据查询、打印、报表等DCS系统的功能。 |