冲压生产线的监控及仿真软件开发

发布时间:2010-07-13
分享到


图1  整线主监控平台界面

本文介绍了在车身冲压自动化生产线上监控平台的一种开发方式,与目前该领域普遍采用的方式有所不同,在VC++6.0平台上利用虚拟制造技术,基于OPC工业自动化通讯规范与西门子S7系列产品交互通讯,实现了整条生产线的在线监控以及不同冲压件机械手运动轨迹及生产过程的仿真模拟。

目前工业自动化领域监控平台大多采用平面显示,尤其在车身冲压自动化线领域,由于生产环境的特殊性以及要避免压力机与自动化设备产生的碰撞,使得人们对控制程序的安全性及可靠性有了更高的要求,而传统的监控平台只是现场生产状态的普通监视,不能在生产之前对程序进行验证。本文介绍的监控软件可以实现现场生产过程的全方位仿真,在电脑屏幕虚拟三维环境里可以监控到压机滑块与机械手的实时位置;可以对各种调试过的运动轨迹实现电脑上的运动过程仿真,验证运动轨迹的正确性。

虚拟制造技术

1.虚拟现实

1989年,美国VPL Research公司创始人Jaron Lanier提出“Virtual Reality”(虚拟现实)的概念。虚拟现实或虚拟环境是人工构造的,存在于计算机内部的环境。用户能够以自然的方式与这个环境交互(包括感知环境并干预环境),从而产生置身于相应的真实环境中的虚幻感、沉浸感以及身临其境的感觉。

虚拟环境系统中计算机提供了“环境”,而不是“数据、信息”,这改变了人机接口的内容,这体现了计算机应用的新方向。当时,计算机和用户交互是计算有关的数值,此后,计算机扩大到处理数值、字符串和文本等各种数据。此后,计算机更扩大到处理图像、图形、声音和语言等多媒体的信息。虚拟现实系统则以环境为计算机处理的对象和人机交互,这开拓了计算机应用的新思路,被喻为计算机应用领域的新革命。虚拟环境系统或虚拟现实系统包括人类操作者、人机接口和计算机。


图2  OPC通信组件执行顺序

2.虚拟制造技术

虚拟制造技术是虚拟现实系统在制造领域的应用,而虚拟制造技术按照侧重点的不同又分为以设计为中心的虚拟制造、以生产为中心的虚拟制造和以控制为中心的虚拟制造。本文主要涉及到虚拟制造技术在控制监控方面的应用。在虚拟环境里控制模型和实际的生产过程,模拟实际的车间冲压自动化生产线的生产过程,评估生产活动的可靠性,并且可以在虚拟环境中调试机械手运动轨迹和具体动作,从而可以取代实际的调试作业。

SIMOTION系统在冲压自动化线上的应用

作为运动控制系统,SIMOTION将逻辑控制、运动控制(定位、同步等)以及工艺控制(压力、温度控制等)集中在同一个系统中。SIMOTION提供了三种硬件平台:控制器平台-SIMOTION C;驱动器平台-SIMOTION D;PC平台-SIMOTION P。

同一个控制程序可以在任意一种平台上运行。其中,SIMOTION D是基于SINAMICS S120驱动平台的驱动系统,从而使其成为一个极其紧凑同时具有强大控制功能的驱动控制系统。

SIMOTION D具有若干种规格,具有不同的性能,其中SIMOTION D435适用于中等规模的应用。它带有两个具有时钟同步的PROFIBUS接口以及两个以太网接口。


图3  OPC通信读取现场信号

基于以上特点,本条自动化冲压线采用的电气控制系统为西门子公司的SIMOTION D435运动控制系统。冲压自动化线采用机械手上下料传输方式实现整线连续自动化生产,整线由线头拆剁单元(拆剁、穿梭对中、涂油和第一台压机上料),1~2台压机过渡台与机械手组合传输单元,2~3台压机过渡台与机械手组合传输单元,3~4台压机过渡台与机械手组合传输单元,4~5台压机间过渡台、机械手、线尾下料机械手、线尾皮带机和照明单元组成,总共5个单元。整线采用5个D435分布控制方案,线头采用一个317F-2PN/DP安全PLC和一台工控上位机,每个单元的D435与D435之间、D435与317F之间以及D435与工控机之间采用FROFINET通信,这样保证了各单元之间通信的高速、实时性。

OPC工业自动化通讯规范

1.OPC背景

OPC(OLE for Process Control)是基于Microsoft公司的Distributed internet Application(DNA)构架和Component Object Model(COM)技术,根据易扩展性而设计的。OPC规范定义了一个工业标准接口,该标准使得COM技术适用与过程控制和制造自动化等应用领域。OLE原意为对象链接与嵌入,而现在的OLE包含了许多新的特征,如统一数据传输、结构化存储和自动化,已经成为独立于计算机语言、操作系统甚至硬件平台的一种规范。

2.OPC接口结构

OPC由两套接口组成:客户端和服务器程序员使用的OPC自定义接口(OPC COM Custom Interfaces);支持用高端商业应用开发的客户程序的OPC自动化接口(OPC OLE Automation Interfaces)。COM接口效率高,通过该接口,客户能够发挥OPC服务器的最佳性能,采用C++语言的客户一般采用COM接口方案;自动化接口使解释性语言和宏访问OPC服务器成为可能,采用VB语言的客户一般采用自动化接口。自动化接口简化客户应用程序的实现,但运行时需要进行类型检查,牺牲了程序的运行速度。OPC自定义接口是服务器必须提供的,而自动化接口则不一定提供。


图4  整线三维模型创建

3.OPC界面关系

OPC技术是实现控制系统现场设备与过程管理级进行信息交互,实现控制系统开放性的关键技术。OPC以OLE/COM机制作为应用程序级的通信标准,采用Client/Server模式,把开发访问接口的任务放在硬件生产厂商或第三方厂家。以Server的形式提供给Client,并规定了一系列的接口标准,由Client负责创建Server的对象及访问Server支持的接口,从而把硬件生产厂商与软件开发人员有效地分离开来。在这种情况下,硬件制造商、软件供应商以及用户都可得到极大方便。

冲压自动化生产线监控平台

1.OPC通讯配置

SIMATIC NET OPC服务器与SIMOTION S7连接通讯组态。

(1)配置PC站的硬件机架。在安装完SIMATIC NET后,使用Station Configuraror配置PC站,并指定本机计算机名为PC站名。

(2)在SIMATIC Manager中组态PC站。在SIMATIC Manager中打开整线项目,插入PC站,并在PC站HW Configuration中插入PC站和IE General,在NetPro中配置OPC Server,选择S7 Connection连接类型,建立和项目中设备的连接,配置好IP地址。

(3)整线OPC通讯变量地址数据处理。将SCOUT程序中所有需要监控的全局变量导出,并把各变量数据拷贝到Microsoft Access数据库文件中;将线头317F中需要监控的变量信息(变量名、连接地址等)写入Access数据库中,用于对整线信号的监控。

(4)在SIMATIC NET中配置Configuration Console。

(5)使用OPC Scout进行通讯测试。

2.现场通信及仿真用数据库的建立

本文涉及到通讯变量的数量比较大,超过4000,且变量之间没有关联,采用Microsoft Access负责背景数据的存储,用来保存变量名、变量地址和变量值等数据,并且负责用户信息管理、生产数据管理等。对各Access数据库表格,在开发平台上创建对应的CRecordset类,并在项目中定义其对象,负责所有背景数据库的操作,此方法简单可靠。


图5  整线在虚拟环境中的实现

 

3.在VC++平台上开发监控主界面

(1)界面设计。使用VC++6.0做开发平台,结合项目实际情况最终完成界面如图1所示。

(2)OPC通讯组件的建立。由于变量数量较大,所以采用OPC异步通讯。创建和删除OPC对象的执行顺序如图2所示。

在程序执行开始定义全局OPC指针对象,变量类型包括:IOPCServer、IOPCItemMgt、IOPCGroupStateMgt、IOPCAsyncIO2、OPCITEMRESULT、HRESULT和OPCHANDLE;定义OPCITEMDEF数组用来定义项对象属性。

OPC通讯机制创建过程具体分为以下步骤:

①注册COM端口

r1 = CoInitialize(NULL);…

②根据ProgID,获得附带的CLSID

r1= CLSIDFromProgID(L"OPC.SIMATICNET", &clsid);…

③建立OPC服务器连接

r1 = CoCreateInstance (clsid,NULL, CLSCTX_LOCAL_SERVER ,IID_IOPCServer, (void**)&m_pIOPCServer);…

④添加组对象

根据项目内容,使用m_pIOPCServer→AddGroup函数对每个需要显示的页面建立相应的组对象。

⑤添加项对象

使用AddItems函数在每一个组内建立自己的项对象,每个项对应于每一个监控对象。

⑥对各组对象获取IOPCGroupStateMgt接口指针r1=m_pIOPCItemMgt_LineIf→QueryInterface(IID_IOPCGroupStateMgt, (void**) &m_pIOPCGroupStateMgt_LineIf);…

⑦对各组对象获取IOPCAsyncIO2接口指针r1=m_pIOPCItemMgt_LineIf

→QueryInterface(IID_IOPCAsyncIO2, (void**)&m_pIOPCAsyncIO2_LineIf);…

⑧创建Callback回调函数对象

LPUNKNOWN pCbUnk;

pCbUnk = pCOPCDataCallback→GetUnknown();

⑨连接OPC服务器和用户回调函数对象

HRESULT hRes = AtlAdvise( m_pIOPCGroupStateMgt_LineIf, pCbUnk, IID_IOPCDataCallback, &m_dwAdvise_LineIf);…

⑩执行读写操作

变量数值的读取采用下面函数完成:r1 = m_pIOPCAsyncIO2_LineIf→Read(1, phServer, 1, &dwCancelID, &pErrors);…

变量数值的写入采用下面函数完成:r1 =m_pIOPCAsyncIO2_LineIf→Write(3, phServer, values, 2, &dwCancelID, &pErrors);…

⑾获取OPC服务器发布的信息。在Callback.cpp文件中COPCDataCallback: OnDataChange()函数中,当项对象指向的变量发生变化时,就会执行此函数,并在函数参数中赋有变化后的数值,在此函数中完成现场数据的监控。


图6  整线监控及仿真实现

⑿删除OPC对象、释放内存。最终完成了生产线现场所有变量的连接。图3显示了读取数值的情况。

4.虚拟环境的实现

(1)三维模型的建模(见图4)。本文模型在3D MAX制图软件中绘制,由于现场设备较多,工作量较大。模型的实际尺寸和实物有所差别,这为在程序中调试机械手轨迹带来不可避免的误差。

(2)虚拟环境中内部对象的创建(见图5)。在VC++6.0开发平台上,采用World ToolKit虚拟环境开发软件包,创建环境中的各个节点并把各三维模型导入环境中与相应的节点绑定一起。

(3)完善仿真功能。增加运动控制操作按钮;增加显示视点功能;增加冲压件选择功能;建立产品数据库;增加5个分站各机械手状态编辑框,用来显示机械手的运动情况等,执行情况如图6所示。

(4)完成运动物体位置变量的连接。在程序中采用不断循环读取数据库中机械手实际位置的数值,来控制环境中机械手的运动;根据不同模具所调试过的轨迹数据,将存储的各轨迹点和各点执行的动作(例如吸气、吹气等)读入程序中,来模拟整线的运动。

(5)运动仿真程序的调用。在主监控界面中增加“运动仿真”按钮,并赋予消息映射处理函数使其调用CreateProcess函数,将仿真可执行文件路径赋给此函数相应的参数,最终把两个程序集中在一个监控平台上。

结语

西门子SIMOTION运动控制系统可以控制机械手的运动轨迹、速度和加速度等参数,并能优化运动轨迹;本文基于OPC通讯规范,将生产现场西门子自动化设备内的变量读取,在虚拟环境中根据读取的变量数值来控制虚拟环境中设备的运动,采用C++高级语言开发,整个读取过程时间较短,比采用Net OPC控件要快很多,提高了监控的实时性。并且如果模型尺寸足够精确,可以实现在虚拟环境中调试各机械手运动轨迹,并将调试结果保存上载到自动化设备控制程序存储卡内,做到可以在办公室内通过以太网来监控、调试并操作现场设备。

收藏
赞一下
0
/
正在提交,请稍候…