您的位置:控制工程论坛网论坛 » PLC与PAC » 基于台达PLC的工厂产量监控查询系统

解脱527

解脱527   |   当前状态:离线

总积分:877  2024年可用积分:0

注册时间: 2007-09-03

最后登录时间: 2009-11-12

空间 发短消息加为好友

基于台达PLC的工厂产量监控查询系统

解脱527  发表于 2007/9/6 16:49:25      724 查看 0 回复  [上一主题]  [下一主题]

手机阅读

 上海佳泰塑胶有限公司是生产手术专用手套、医用手套、科研手套及各种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  系统软、硬件配置

      工厂产量监控查询系统的设计主要在于软件系统的设计,以下问题是考虑的重点。   
    1)两个车间共26条生产线,每分钟要有26条记录生成,每分钟向数据库插入26条记录。该系统全天24小时工作,不允许停,所以一天的数据量为37440条记录。每月的数据量为1160640条记录。如果要存储4个月,则数据量为4642260条记录。数据量是相当庞大的,硬盘的数据存储接近2-3G,不仅会造成在查询时,系统资源严重被占用,同时普通的数据库如ACCESS的表格没有能力管理如此庞大的数据系统。ACCESS在管理如此庞大的数据时,不仅系统会造成不稳定,同时会出现不可预料的情形。所以只能寻找能够管理大型数据系统的数据库,因此可以选择SQLSERVER或Oracle。
    2)组态软件(组态王)支持对标准的数据库进行数据的插入、选择、删除等基本的操作,同时支持标准的SQL语言。灵活的运用该组态软件提供的SQL函数使监控系统通过ODBC(开放性的数据源)配合标准的SQL语言对数据库进行各种简单和复杂的操作。
    3)即使使用大型的数据库,SQL Server或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中累计产量的寄存器清零,重新开始对该日的产量进行累计。
     4 系统调试考虑
    针对本文讨论的特定工厂产量监控查询系统,在系统安装调试过程中有些问题是不能被忽略的。
    1)因为两个车间之间的距离在300m左右,而从第一个车间到监控室的距离有500m左右,距离比较远,为了遏制信号的衰减,将信号线用网线代替,同时加中继器将信号放大。保证数据传输的安全性。
    2)要求现场布线时严格按照电气规范施工,保证安装的合格。
    3)正确的设置操作系统中数据源ODBC的选项,以保证监控系统能通过ODBC与数据库SQL Server连接。在运行监控系统执行任何操作时,观察运行反馈信息,以得到相关的错误信息,可根据提示的错误信息检查程序。
    4)报表组态非常灵活,可以通过While{}循环语句,将查询结果按照顺序填写到报表中。灵活的运用While{}语句可将程序简化,减少监控系统后台运行程序的时间。
    5)灵活运用应用程序命令、数据改变命令、事件命令、热键命令、按钮的弹起、按住、按下命令进行编程。
    6)在程序量大的项目中应养成良好的编程习惯,定义变量时最好使用英文对程序进行标注,以增加程序的可读性。

    系统经调试正常后,投入生产运行的产品产量柱状图如图2所示,产量的趋势图如图2所示。
1楼 0 0 回复