智能汽车衡称重系统在进出厂实际管理系统中的应用
大宗物料系统在企业通过移动终端、管理软件与硬件相结合的方式,变革现有企业车辆进出厂物流管理过程,优化系统流程和岗位职责再梳理,设置厂内物流集中监控室。
1.装车管理员确认信息无误后保存计量单。
2.车辆出厂时,司机把IC卡交给门岗,门岗收回IC卡,开门放行。
3.销售人员审核每张过计量单,计量单审核后,系统根据过计量单生成销售出库单(或者软件自动生成销售出库单)。
本项目是有上海鲸创电子称重系统有限公司配料事业部为中材建设集团在沙特水泥公司完成的水泥进出场管理系统。这个系统用一套西门子S7400 为执行部分硬件基础,三台工控计算机作为管理部分硬件基础。将执行部分与数据管理有机的结合起来。
系统构成
本系统作为这个工厂的原料进厂,产品出场的管理系统,有五大部分组成:
1、原料进厂数据采集及管理
2、产品销售及客户数据管理
3、产品自动定量罐装,出厂数据采集及管理
4、全部数据查询
5、数据打印
这五部分及互想独立又有机的结合在一起,本系统执行部分有一套西门子S7 400 带ET200 完成。本系统现场称重终端采用十二台了METTER-TOLEDO 的数字式静态汽车衡,二次仪表为JagXtreme,通过Profibus 与S7 400 PLC 通讯,称重终端的高精度稳定运行为整个系统的稳定运行提供了良好的基础。数据处理及存储则有西门子400PLC 和两套WinCC 完成。总体配置图如下:
网络配置和硬件配置比较简单,但本系统却实现了工厂发运系统的全部功能。下面我们来详细讨论。
第一原料进厂数据采集及管理上位机的功能主要是采集原料车的各种信息和总重,然后将这些数据存储在缓冲数据库中,当卡车在卸完车后,再次回到汽车衡上时,系统记录空车重量同时读出总重,将数据整和后存入进料数据库中。数据的存储都有WinCC 自带的VBS 编辑器中完成,数据库同样也用了WinCC 自带的SQL Server 2000 数据库,如果需要共享的则采用了ACCESS 数据库。下面是部分操作界面(其中一台汽车衡)
存储数据用VBS 脚本如下:
Sub OnClick(Byval Item)
Dim database,server,uid,pwd
Dim strcn ,cn,rst,is_sql
Dim a,b
Dim NO
Set NO = HMIRuntime.Tags("NO")‘读变量值
NO.Read
Dim Company
WinCC 在进出厂管理系统中的应用 胡绍明
4
Set Company = HMIRuntime.Tags("Company")‘读变量值
Company.Read
Dim Product
Set Product = HMIRuntime.Tags("Product")‘读变量值
Product.Read
Dim SheetNO
Set SheetNO = HMIRuntime.Tags("SheetNO")‘读变量值
SheetNO.Read
Dim TrackNO
Set TrackNO = HMIRuntime.Tags("TrackNO")‘读变量值
TrackNO.Read
Dim SetPoint
Set SetPoint = HMIRuntime.Tags("SetPoint")‘读变量值
SetPoint.Read
Dim CurrentUser
Set CurrentUser = HMIRuntime.Tags("@CurrentUser")‘读变用户名
CurrentUser.Read
Dim Ltime
Set Ltime = HMIRuntime.Tags("time")‘读变系统时间
Ltime.Read
Dim Ldate
Set Ldate = HMIRuntime.Tags("date")‘读变系统日期
Ldate.Read
database = "hu"
server = "BABY\WINCC"
uid = "sa"
pwd = ""
strcn = "Provider = SQLOLEDB.1;DRIVER = SQL SERVER;SERVER =" &_
server & "; DATABASE=" & database & "; UID=" & uid & "; PWD=" & pwd
‘定义连接字符
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = strcn
cn.open
is_SQL = "insert into
Sheet1(nomber,trackno,compay,sheetno,product,setpoint,operator,ttime,ddate)" & _
"Values("& NO.Value &",'"& TrackNO.Value &"','"& Company.Value &"','"&
SheetNO.Value &"','"& Product.Value &"',"& SetPoint.Value &",'"& CurrentUser.Value
&"','"& Ltime.Value &"','"& Ldate.Value &"')" ‘存数据
cn.Execute(is_SQL)
cn.close
End Sub
第二 产品销售及客户管理
在此部分产品销售和客户管理的数据存储部分和上一部分类似,在这里不再详细介绍,主要讲述客户管理部分。
客户管理主要任务是管理客户资料,其中包括:客户代码,客户名称,槽车号码,许可证号码,最大装车量等等。有WinCC 程序来存储,更新,管理,检查这些数据,以保证出货的安全性和快捷性。
下面是部分操作界面:
当用户用到此车出厂时,系统自动比对,以上数据,无误后方可操作。
第三 产品自动定量罐装
在此部分,主要是有PLC 执行系统,按销售数量定量灌装销售的产品,然后出厂。首先,槽车按要求开上汽车衡后,当操作员输入车号后,系统开始读出曹车档案,自动读入销售量,同时比对各项参数,合法后系统自动控制称重仪表去皮,然后开始灌装,当达到销售量时,为了保证灌装精度系统自动分步停止灌装,整个灌装过程完成后,系统自动记录各项数据,将其存入服务器中,槽车便可以出厂,灌装结束。在此部分,主要将WinCC 的管理功能和PLC 的执行功能有机的结合。有西门子一家产品便很好的完成了比较复杂的数据存取,比对,现场灌装执行等功能。
操作界面如下:
第四 数据查询
WinCC 在数据方面用VBS 来完成还是很方便地, 特别是SQL 语言的应用,使得在SQL Server 2000,ACCESS 等数据库中按用户给出的条件进行查询都能够方便的实现。WinCC 在数据显示方面还是有欠缺的,但是开放的ActiveX 控件可以弥补这部分的不足之处。在这里我注册了Microsoft Visual Basic 6.0 的数据显示控件Microsoft Hierarchical FlexGrid Control 6.0 。将其植入到WinCC 中用来显示数据,效果不错,如下:
其原理是将各个查询条件组合为一个查询字符串,然后用SQL 语言去数据库里查询,最后将符合查询要求的查询结果付给FlexGrid 控件去显示。其部分语句如下:
Sub OnClick(ByVal Item)
Dim database,server,uid,pwd
Dim strcn ,cn,rs,SQL
Dim a,b,c,d,e,f,g
Dim Text1,buff
Dim BeginDate
Set BeginDate = HMIRuntime.Tags("BRiQi")
Dim EndDate
Set EndDate = HMIRuntime.Tags("ERiQi")
BeginDate.Read
EndDate.Read
Dim strSQL
Set strSQL = HMIRuntime.Tags("strSQL")
Set d = ScreenItems("CheckBox1")
If d.Process = 1 Then
Dim Trans
Set Trans = HMIRuntime.Tags("Trans")
Trans.Read
Set e = ScreenItems("OptionGroup1")
If e.Process = 1 Then
SQL = "select * from Sheet1 where LoadDate between '"& BeginDate.Value &"'
and '"& EndDate.Value &"' and ICNO = '"& Trans.Value &"'"
End If
If e.Process = 2 Then
SQL = "select * from Sheet1 where LoadDate between '"& BeginDate.Value &"'
and '"& EndDate.Value &"' and CharterNO = '"& Trans.Value &"'"
End If
If e.Process = 4 Then
SQL = "select * from Sheet1 where LoadDate between '"& BeginDate.Value &"'
and '"& EndDate.Value &"' and TrackNO = '"& Trans.Value &"'"
End If
If e.Process = 8 Then
SQL = "select * from Sheet1 where LoadDate between '"& BeginDate.Value &"'
and '"& EndDate.Value &"' and CustemerName = '"& Trans.Value &"'"
End If
If e.Process = 16 Then
SQL = "select * from Sheet1 where LoadDate between '"& BeginDate.Value &"'
and '"& EndDate.Value &"' and ProductNO = '"& Trans.Value &"'"
End If
Else
SQL = "select * from Sheet1 where LoadDate between '"& BeginDate.Value &"' and
'"& EndDate.Value &"'"
End If
strSQL.Value = SQL
strSQL.Write
Set a = ScreenItems("Grid1")
database = "hu"
server = "BABY\WINCC"
uid = "sa"
pwd = ""
strcn = "Provider = SQLOLEDB.1;DRIVER = SQL SERVER;SERVER =" &_
server & "; DATABASE=" & database & "; UID=" & uid & "; PWD=" & pwd
‘定义连接字符
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = strcn
cn.open
End Sub
第五 数据打印
在西门子基本软件包中有报表编辑器,提供了报表的创建和输出功能,在编辑好页面后,使用ODBC“数据库表”对象,将数据库中的内容以文本的形式打印出来,为了只打印我们需要的数据,我们便可以利用上文说到的“查询字符串”,将其合成为SQL 语句,赋予变量查询,即可打印出所需的数据。
结论
本文中不仅仅实现了WinCC 的监控和数据采集功能,报警纪录,变量记录等常规的功能,在这里WinCC 更深一层的功能得到了很好的应用,以VBS 对数据库的操作和微软控件的引入更是显示出了WinCC 强大的功能。它独立完成了从原材料进厂数据采集,产品销售数据存储与管理,产品出厂自动灌装的监控,出厂数据记录,以及整个的数据查询,数据打印等,一系列的进出厂管理系统的全部任务。