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

[复制链接]
查看650 | 回复0 | 2011-11-14 19:30:12 | 显示全部楼层 |阅读模式
<
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中累计产量的寄存器清零,重新开始对该日的产量进行累计。
热帖推荐
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则