WinCC高级控件开发案例分享(wincc控件大全)

WinCC高级控件开发案例分享(wincc控件大全)

编码文章call10242025-02-01 3:48:2014A+A-

产品质量检验是很多金属深加工行业的一个必要工序。部分或者全部物件都要经过一道试验工序,各项数据符合要求才可以入库。同时试验数据要求进行记录存储,并提供查询、生成报表等。

HwLib团队对于该类型项目合计承接了约有数十个,具有丰富的设计经验,这里找一个比较典型的案例分享下设计及开发流程。

订单信息

如果一个企业的信息化建设比较好,那么订单信息会由企业ERP系统或者MES系统下发到控制系统。订单信息通常会包含客户名称、产品型号、规格、材质等等。如果没有信息化系统,那么只能通过WinCC的界面手工输入。订单信息基本都是字符型数据,直接使用WinCC内部变量即可。

数据记录

数据通常有两种,一种是试验事件记录,另一种是过程数据。试验事件记录用于记录试验的开始时间、结束时间和该次试验对应的订单信息等。过程数据指的试验过程中的压力、流量和温度等数据。数据记录如果没有特殊要求最好采用WinCC的归档数据。如果有额外要求,比如客户需要修改、删除等操作,那么最好自建数据表进行存储。

试验事件我们习惯使用脚本记录,附带订单信息一起,方便后续查询和生成报表等。脚本如下,比较简单,就是开始和结束各插入一条数据。

Dim start,count
Set start=HMIRuntime.Tags("TestStart")
Set count=HMIRuntime.Tags("TestCount")s
tart.Read
count.Read
If start.Value=0 Then  
start.Write 1  
count.Write count.Value + 1    
Dim pc,std,rank,spec,p,kt,user  
Set pc=HMIRuntime.Tags("TestPipeCode")  
Set std=HMIRuntime.Tags("TestStd")  
Set rank=HMIRuntime.Tags("TestRank")  
Set spec=HMIRuntime.Tags("TestSpec")  
Set p=HMIRuntime.Tags("TestP")  
Set kt=HMIRuntime.Tags("TestKT")  
Set user=HMIRuntime.Tags("@CurrentUserName")  
pc.Read  
std.Read  
rank.Read  
spec.Read  
p.Read  
kt.Read  
user.Read    
Dim dbConnection 
Dim dbConnectionString  
Dim dbSQL  
Dim dbCommand  
'写数据库  
dbSQL = "INSERT INTO PipeModel VALUES (' " & count.Value & " ',' " & count.Value & " ',' " & rank.Value & " ',' " & std.Value & " ',' " & spec.Value & " ',' " & pc.Value & " ',' " & p.Value & " ',' " & kt.Value & " ',' " & Now & " ',' " & user.Value & " ','1','','','','');"   
dbConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=WPDB;Data Source=.\WINCC"   
Set dbConnection = CreateObject("ADODB.Connection")  
dbConnection.ConnectionString = dbConnectionString  
dbConnection.Open    
Set dbCommand = CreateObject("ADODB.Command")  
With dbCommand    
  .ActiveConnection = dbConnection    
  .CommandTexT = dbSQL  
End With  
dbCommand.Execute  
Set dbCommand = Nothing  
dbConnection.Close  
Set dbConnection = Nothing  
End If

上面脚本是测试时使用的脚本,还没有包含完整的产品信息。过程数据我们习惯使用归档的历史数据。如果客户需要修改,那么也可以自己归档。修改是需要权限的,并且需要记录原始值和修改后的值等。

数据库设计

因为有些数据是通过脚本记录的。所以我们需要设计表结构。

public class PipeModel
{    
  [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]    
  public int ID { get; set; }    
public string Order { get; set; }                  //订单号    
public string BatchCode { get; set; }          //实验号/唯一    
public string SteelCode { get; set; }           //材料钢级    
public string Std { get; set; }                      //产品标准    
public string Spec { get; set; }                   //型号规格    
public string PipeCode { get; set; }           //管号   
public double Pressure { get; set; }           //压力    
public double KPTime { get; set; }             //保压时间   
public DateTime Timestamp { get; set; }    
public string Operator { get; set; }    
public string Spare1 { get; set; }    
public string Spare2 { get; set; }    
public string Spare3 { get; set; }    
public string Spare4 { get; set; }    
public string Remarks { get; set; }}

数据表通过C#实体类自动生成。方便部署。

数据报表

报表功能是这种类型项目的关键。产品出厂需要附带试验报告。另外一旦产品交付后如果出现质量异议,可以根据订单信息或者试验号进行追溯。

这种报表通常具有多个筛选条件,比如可以根据订单号、客户名称、试验号、材质等条件进行筛选。符合条件的试验数据以总览的方式显示。

如果想查询某个试验的详细数据,可以直接在该记录上双击即可。

如果对数据有特殊要求,也可以进行修改。当然前提需要一定的权限。

点击打印即可生成入库或者交付给客户的最终试验记录单。

最终交付是封装成控件。拖到WinCC上是这样的。

总结

随着工业生产对制造工艺与控制系统越来越高的要求,传统SCADA的监视加控制已经难以满足。如果配合单独的信息化系统的话,开发与运营成本会比较高。这种在传统SCADA上附加高级数据处理的控件是一种低成本的解决方案。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4