浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子6ES7216-2AD23-0XB8参数选型

西门子6ES7216-2AD23-0XB8参数选型

可编程PLC在数控车床中的应用
   
  摘要:可编程控制器广泛应用于数控机床等工业控制中,本文主要介绍了可编程控制器的工作原理、功能以及与数控机床外部设备之间的信息交换,并以我院的CK160数控车床为例说明其应用。
  关键词:可编程控制器;数控机床;换刀
  1引言
  目前,可编程控制器(PLC)广泛应用于数控机床等工业控制中。数控机床的控制部分可分为数字控制和顺序控制两部分,数字控制部分包括对各坐标轴位置的连续控制,而顺序控制包括对主轴正/反转和启动/停止、换刀、卡盘夹紧和松开、冷却、尾架、排屑等辅助动作的控制。现代数控机床采用PLC代替继电器控制来完成逻辑控制,使数控机床结构更紧凑,功能更丰富,响应速度和可靠性大大提高。
  在吸收国外先进技术的基础上,小规格全功能CK160数控车床。该数控车床采用日本FANUC公司的POWERMATE0数控系统,配置全数字交流伺服装置,主轴采用进口变频器控制,数控系统内置PLC,功能指令强,使用方便、灵活、用户易懂。
  现以CK160为例,说明PLC在数控机床上的应用。
  2车床的PLC数控系统控制原理设计
  2.1车床的操作要求
  车床一般加工回转表面、螺纹等。要求其动作一般是X、Z向快进、工进、快退。加工过程中能进行自动、手动、车外圆与车螺纹等转换;并且能进行中步操作。
  2.2PLC数控系统需解决的问题
  车床的操作过程比较复杂,而PLC一般只适用于动作的顺序控制。要将PLC用于控制车床动作,必须解决三个问题:
  1)如何产生驱动伺服机构的信号及X、Z向动作的协调;
  2)如何改变进给系统速度;
  3)车螺纹如何实现内联系传动及螺纹导程的变化。
  将PLC及其控制模块和相应的执行元件组合,这些问题是可以解决的。
  2.3数控系统的控制原理
  普通车床数控化改造工作就是将刀架、X、Z向进给改为数控控制。根据改造特点,伺服元件采用步进电机,实行开环控制系统就能满足要求。Z向脉冲当量取mm,X向脉冲当量取0.005mm。选用晶体管输出型的PLC驱动步进电机脉冲信号由编程产生,通过程序产生不同频率脉冲实现变速。X、Z向动作可通过输入手动操作或程序自动控制。车螺纹的脉冲信号由主轴脉冲发生器产生,通过与门电路接入PLC输入端,经PLC程序变频得到所需导程的脉冲。刀架转位、车刀进、退可由手动或自动程序控制。
  3数控机床改造的可行性
  普通机床改造成数控机床是指对普通机床某些部位机械结构做一定的改造,加上数控装置,从而使普通机床具有数控加工能力。
  机床数控化改造主要内容有以下几点:
  其一是恢复原功能。对机床存在的故障部分进行诊断并恢复。
  其二是NC化。在普通机床上加数显装置,或加数控系统,改造成NC机床、CNC机床。
  其三是翻新。为提高精度、效率和自动化程度,对机械、电气部分进行翻新,对机械部分重新装配加工,恢复原精度;对其不满足生产要求的CNC系统以新CNC进行更新。
  其四是技术改造或技术创新。为提高性能或档次,或为了使用新工艺、新技术,在原有基础上进行较大规模的技术改造或技术创新。较大幅度地提高水平和档次。
  4可编程序控制器选型
  根据D-U3710组合机床动作循环图、技术特性,确定采用东芝EX系列可编程控制器。东芝EX系列可编程控制器与其他类型的可编程控制器相比,体积小,耗电量小,装置时间短,耐大电流冲击,可靠性极高,尤其是采用与众不同的图形液晶读/写程序编写器,可以在其显示器上监视程序的编排、修改,一目了然,非常直观。通过系统分析,D-3701组合机床的输入点为24个、输出点为19个,所以选用东芝EX系列可编程控制器的基木单元EX-40H+扩展单元EX20来完成。EX-40H+EX20的输入点为36个、输出点24个,大于系统所确定的I/O数,为此使用EX-40H+EX20是可行的。
  在确定系统所需的I/O数后,还需进一步确定输入量、输出量的元件号,输入/输出继电器的元件号与它们对应的I/O号所接的端子编号是一致的,做好这一步就为绘制硬件接线图做好了准备。在此过程中应列一张地址分配表,标明各信号的名称、代号和分配的元件号。如果需要还应列出信号的有效状态,是上升沿有效还是下降沿有效,是高电平有效还是低电平有效等;对于开关量输入信号还应列出是常开触点还是常闭触点,触点在什么条件下接通或断开。为输入量、输出量分配好元件号后,下一步就可设计出可编程序控制器的硬件接线图以及其他电气部分的原理图、接线图和安装图。
  5PLC的工作过程
  PLC是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式和模拟式的输人和输出,控制各类机械的生产过程。
  PLC的工作过程即是CPU对用户程序循环扫描并顺序执行的过程:对用户程序的执行主要按三个阶段进行。
  1)输入采样以扫描方式顺序读入所有输入信号的状态,并将此状态存入输入映象寄存器中。在程序执行阶段和输出刷新阶段中,输入映象寄存器中的内容不会随着实际信号变化而变化。
  2)程序执行阶段程序执行按从上到下、从左到右的顺序对每条指令进行扫描,并从输入映象寄存器中和输出映象寄存器中读取有关数据,然后进行相应运算,运算结果重新存入输出映象寄存器中。
  3)输出刷新在所有指令执行完后,输出映象寄存器中所有输出继电器的状态(接通/断开)在输出刷新阶段转存到输出锁存器中,通过一定方式输出,驱动外部负载。
  6PLC与数控机床外部设备的信息交换
  PLC、系统和机床三者之间的信息交换包括如下四部分:
  1)机床至PLC
  机床侧的开关量信号通过PLC输入接口送至PLC中,除了极少数信号外,绝大多数信号的含义及所占用PLC的地址(X地址)均可由PLC程序设计者自行定义。
  2)PLC至机床
  PLC控制机床的信号通过PLC的输出接口送到机床侧,所有开关量输出信号的含义及所占用PLC的地址(Y地址)均可由PLC程序设计者自行定义。
  3)系统至PLC
  系统发出控制信号输入至PLC,所有一信号的含义及PLC的地址(F地址)均由系统制造商确定,PLC编程者只可使用,不可更改。
  4)PLC至系统
  PLC输出控制信号到系统,所有信号的含义及PLC的地址(G地址)均由系统制造商确定,PLC编程者只可使用,不可更改。
  7PLC在数控机床中的功能
  1)操作面板的控制
  操作面板分机床操作面板和系统操作面板机床操作面板上的控制信号直接送入PLC,系统操作面板上控制信号由系统送到PLC,控制数控系统的运行。
  2)机床外部开关输人信号
  将机床侧的开关信号送入PLC,进行逻辑运算。这些控制开关包括行程开关、接近开关、压力开关等。
  3)输出信号控制
  PLC输出的信号经强电柜中的继电器、接触器、电磁阀、信号灯等输出给控制对象。
  4)T功能实现
  系统送出T代码指令给PLC,经过译码,在数据表内检索,找到T代码指定的刀号,并与现行刀号进行比较,如果不符,发出换刀指令,刀盘换刀,到位停止,系统发出完成信号。
  5)M功能实现
  系统送出M代码指令给PLC,经过译码,输出控制信号,控制主轴正/反转和启动/停止、卡盘的夹紧和松开、冷却液的开关等。M功能完成时,系统发出完成信号。
  8应用举例
  下面是PLC在CK160数控车床六工位数控刀盘上的应用:
  系统送出T代码指令(T00~T31二进制代码),经TMF时间(参数设定),发出T代码读指令信号TF,PLC读入T代码,译码后,找到T代码指定的刀号,并与现行刀号进行比较,如果不符,刀盘正转换刀,到位反转1秒锁紧,换刀停止,系统发出完成信号。换刀梯形图如图1所示。
  

  梯形图中的功能指令MOVE用于逻辑乘后数据转移,屏蔽二进制数据的高四位,完成刀具当前位置的传送;COIN用于刀具符合检查,完成目标刀号与当前刀号的比较;TMRB用于定时。梯形图中的信号地址见表1。
  

  应用PLC的逻辑控制技术,可以大大简化强电控制线路,提高工业产品的可靠性,随着其性能的进一步提高和完善,必将进人更多的工控领域。
 

利用OPC实现VC应用程序与PLC的数据交换
   
  1  引言
  VC(Visual  C++)是功能强大的一种bbbbbbs应用程序可视化软件开发工具。VC支持面向对象的设计方法,并可以使用功能强大的微软基础类库MFC(Micro - soft foundaTIon class)。并且由于Microsoft公司在操纵市场上的垄断地位,用VC开发出来的软件稳定性好、可移植性强,而且软件与硬件相互独立[1],可以用来开发控制系统的上层治理系统。RSView32是作为一种专门用于产业控制的组态软件,不仅包含了大量图形开发工具和现成图形库,使用户能够方便的进行系统开发,而且还可以对报警、活动记录、事件、历史趋势等进行组态,是一个功能强大的产业自动化产品[2],因此可以很方便地对下层设备进行组态。在实际系统开发时,利用OPC技术把两种工具有效的结合起来,使上层的VC程序通过RSView32间接地与下层PLC进行数据通讯,以获取令人满足的结果。
  2  OPC先容
  OPC(OLE for PROCESS Control)是根据Microsoft的OLE(现在Active)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术所要求的功能制定的一个开放和互用式的用户界面标准,它保证了自动化/控制应用程序和区域系统/设备之间的互用。它以OLE/COM机制作为应用程序级的通讯标准,采用 CLIENT/SERVER模式,典型的OPC体系结构如图1所示:

       
  图1     典型的OPC体系结构
  OPC规范中提供了两套接口方案,即定制接口和自动化接口。定制接口效率高,通过该接口能够发挥OPC服务器的佳性能,采用C++语言的客户一般采用定制接口方案;自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采用VB等语言的客户一般采用自动化接口。
  OPC 数据存取服务器由三类对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象用于指出特定的OPC服务器应用程序名,并作为组对象的容器;组对象存储由若干Item组成的Group信息并逻辑组织数据项;数据项对象()存储具体的Item的定义、数据值、状态值等信息,一个 Item就代表一个具体的过程变量。OPC客户应用程序要获取OPC服务器的数据,必须事先指定服务器应用程序所在的计算机名(服务器应用程序和客户应用程序不在同一台PC上)、OPC数据访问服务器名和该服务器提供的OPC项的定义。
  建立OPC连接后,客户应用程序一般可以通过三种方式从OPC 服务器读取数据:使用同步接口IOPC- SyncIO,简单有效,适合于只读取少量数据的客户程序;使用接口IOPCCallback的“订阅”的功能OnChange,每当数占有变化时,服务器自动通知客户;使用异步接口IOPCASyncIO2,可以直接与物理设备通讯,速度慢但数据jingque度高。
  3  RSView32作为OPC服务器
  西门子专门用于产业控制的通用组态软件之一RSView32支持OPC技术,它可以用作一个OPC客户和外部OPC服务器软件通讯,也可以作为一个OPC服务器和其它第三方支持OPC技术的软件进行连接。本文中RSView32作为服务器,VC应用程序作为客户端,采用C/S模式实现两者之间的数据交换。
  3.1  使RSView32作为OPC服务器[4]
  用下列方法之一使RSView32作为OPC服务器:
  (1) 选择“启动”编辑器里“启动”页上的“OPC/DDE服务器”复选框;
  (2) 发出RTDataServerOn命令(从命令行或另一个 RSView32组件里,使用RTDataServerOff命令可以取消此功能),这将答应其它应用程序读取数值但不能改变它;
  (3) 发出RTDataWriteEnable命令(从命令行或另一个RSView32组件里,使用RTDataWriteDisable命令可以取消此功能),这答应从外部OPC应用程序写进,以改变RSView32的标记值。
  3.2  建立 OPC 客户项目[4]
  VC应用程序要从RSView32取得数据,必须使用下列信息:
  服务器:RSI.RSView32OPCTagServer;
  类型:本机/远程;
  服务器计算机名或地址:假如客户和服务器在同一计算机上,这项可以是空缺。
  访问路径:项目名;
  更新速率:一个以秒为单位的速率;
  条目:标记名。可以通过查看RSView32的标签数据库获得。
  4  VC应用程序作为OPC客户真个程序实现
  在VC环境中使用定制接口开发OPC客户应用程序,下面是程序实现的关键步骤。
  4.1  包含OPC头文件
  开发OPC客户应用程序,除了需要OPC接口外,还需要在程序中包含OPC标准库文件,可以从OPC基金会网站(网址:www.opcfoundation.org)下载这些文件:
  #include "opcda_i.c"    OPC数据存取接口
  #include "opcda.h"      OPC数据存取2.0头文件
  #include "opccomn_i.c"  OPC公共接口定义
  #include "opccomn.h"    OPC公共头文件
  4.2  初始化COM支持库
  由于OPC是基于COM技术制定,所以在使用接口类之前必须首先使用CoInitialize(NULL)函数初始化COM库,假如成功,函数返回值即是S_ OK。
  4.3  连接opc服务器
  OPC 客户能够连接到OPC服务器上,并建立OPC组和OPC数据项,这是OPC数据访问的基础,假如没有这个机制,数据访问的其它性能不可能实现[4]。连接 OPC服务器,OPC客户需要事先指定计算机名(假如OPC服务器和OPC客户不在同一台计算机上)和OPC数据访问服务器名 (RSI.RSView32OPCTagServer)。实现代码如下:
  ConnectToServer(/*in */LPOLESTR ProgID,/*in*/ BOOL IsRemote,/*out */ IUnknown **ppUnknown)
  {
  CLSID OPCCLSID;
  HRESULT hRet=CLSIDFromProgID(ProgID,&OPCCLSID);
  //将字符串ProgID转换为唯一OPCCLSID
  if(IsRemote)
  //opc服务器和opc客户不在同一台计算机上
  {
  COSERVERINFO ServerInfo;
  memset(&ServerInfo,0,sizeof(ServerInfo));
  ServerInfo.pwszName=T2OLE("ServerComouter");
  MULTI_QI qi[1];
  memset(qi, 0, sizeof(qi));
  qi[0].pIID=&IID_IUnknown;
  HRESULT hRet=CoCreateInstanceEx(OPCCLSID,NULL,CLSCTX_REMOTE_SERVER,
  &ServerInfo,1,qi);
  *ppUnknown=qi[0].pItf;
  }
  else
  //opc服务器和opc客户在同一台计算机上
  {
  hRet=CoCreateInstance(OPCCLSID,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,
  (void **)ppUnknown);
  }
  }
  4.4  创建OPC组
  IOPCServer接口的AddGroup()方法可以创建一个有指定名称和属性的OPC组。在调用该方法之前,可以使用上一步得到的Iunknown接口指针,通过QueryInterface()方法请求IOPCServer接口指针。代码如下:
  ppUnknown->QueryInterface(IID_IOPCServer,(void **)&pServer);
  //得到IOPCServer接口指针
  pServer->AddGroup(L"",TRUE,500,1235,&lTimeBias,&fTemp,0,&hOPCServerGroup,  &dwActualRate,IID_IOPCItemMgt,& pOPCItemMgt);
  4.5  添加数据项
  IOPCItemMgt接口的AddItem()方法可以添加具有特殊属性的指定数目的数据项。
  pOPCItemMgt->AddItems(ItemNumber,ItemArray,
  (OPCITEMRESULT**)&pItemResult,(HRESULT **)&pErrors);
  ItemArray 为OPCITEMDEF类型结构数组,它包含数据项的具体信息,客户需要知道要进行交换的数据在RSView32标签数据库中的名称、数据类型及作为 OPC服务器的RSView32项目名称。添加数据项之前,要用这些数据项信息对ItemArray结构数组进行初始化。
  4.6  数据交换
  成功地增加完所需要的数据项后,OPC客户(VC应用程序)和OPC服务器(RSView32)就可以进行数据交换了。在数据量不大的情况下,可以使用 IOPCSyncIO同步接口的Write()和Read()两个方法进行数据的读写操纵,从而实现OPC客户(VC应用程序)和OPC服务器 (RSView32)之间的数据交换。代码如下:
  ppUnknown->QueryInterface(IID_IOPCSyncIO,(void **)&pOPCSync);
  //得到IOPCSyncIO接口指针
  pOPCSync->Read(OPC_DS_CACHE,ReadNumber,hServerRead,&pItemValue,&pErrors);
  //读ReadNumber个数据
  pOPCSync->Write(WriteNumber,hServerWrite,Writbbbbue,&pErrors);
  //写WriteNumber个数据
  4.7  开释接口指针
  在VC应用程序停止运行之前必须使用Release()方法删除已创建的OPC对象并开释内存。
  5  结束语
  OPC技术规范把硬件供给商和应用软件开发者分离开来,使得双方的工作效率都有了很大进步。软件开发商无需了解硬件的实质和操纵过程,就能访问OPC数据服务器中的数据,尤其是开发商在已使用了组态软件进行实时监控的过程控制系统基础上,用C++等语言开发系统时,大大简化了过往从设备传输数据的复杂过程。在某铝厂的自动配料系统开发中,应用OPC技术方便地实现了VC应用程序和RSView32的数据交换,间接地实现了VC应用程序与PLC的通讯,获得了很好的结果。


展开全文
优质商家推荐 拨打电话