糖果派对、烘干机、煤泥烘干机、粮食烘干机、各型号烘干机和各类球磨机,回转窑、破碎机、振动筛、磁选机等···



巩义市康店糖果派对机械厂

电 话:0371-64315937

传 真:0371-64395847

手 机:13700965318

联系人:王经理

网 址:http://www.qd-nsk.com

地 址:河南巩义市康店工业园区路丰产北路25号

机械技术
当前位置:糖果派对主页 > 机械技术 >

基于SJA1000芯片和82C250芯片实现机械手控制系统的

2020-06-07 16:19所属:糖果派对


  

  机械手可在空间抓放物体,动作灵活多样,适用于可变换生产品种的中、小批量自动化生产,广泛应用于柔性自动线。我们开发的用于热处理淬火加工的物料搬运机械手,是一种按预先设定的程序进行工件分拣、搬运和淬火加工的自动化装置,可部分代替人工在高温和的作业区进行单调持久的作业,并可根据工件的变化以及淬火工艺的要求随时更改相关控制参数。由于目前许多商品化的工业机器人(或机械手)大都采用封闭结构的专用控制系统,一般采用专用计算机(如PUMA工业机器人使用PDP-11)作为上层主控计算机,使用专用机器人语言(如VAL)作为离线编程工具,采用专用微处理器,并将控制算法固化在EPROM中,这种专用系统很难进行扩展、修改或再集成外部硬件(如传感器)和软件。因此,我们自行开发了气、电混合驱动的三度圆柱坐标型机械手以及相应的物料分拣装置,并根据其控制要求设计了基于CAN总线的分式布结构机械手控制系统。

  本文重点阐述了该机械手控制系统的结构组成,并从多个方面对控制系统软件的设计方法作了进一步分析。

  物料搬运机械手由机械手和物料分拣两部分装置组成。如图1所示,机械手主要由机座(采用步进电机驱动旋转)、水平手臂(采用直线)、垂直手臂(采用滑块气缸SLT-16-50)、气爪(采用平行气爪HGP-10-A)等部分组成。物料分拣装置则由三个普通气缸构成,用以将不同长度的工件送至不同的轨道中,供机械手分别抓取和搬运。

  在机械手控制系统的开发中,我们始终立足于结构机械手控制器的设计思想,主要体现在以下几方面:

  (1) 硬件基于标准总线结构,能实现现场设备之间、设备与各种传感器之间以及现场设备与控制室之间的数据通信。

  现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。CAN(Controller Area Network)总线是现场总线的一个分支,是应用于生产现场控制设备之间实现双向串行多节点数字通信的系统,是式、数字式的底层控制网络。因其具有很高的可靠性和性能价格比,已经成为国际标准,受到工业界的广泛重视,并已被为几种最有前途的现场总线之一。机械手控制系统建立在CAN总线网络基础上,能够更好地满足其性和可靠性的要求。

  如图2所示,控制系统中上位机采用PC机,在上位机的PCI总线插槽中安装了瑞隆德公司的CANPCA单口CAN总线适配卡。下位机则采用若干CAN总线智能节点,分别与气阀、步进电机驱动器、传感器、开关等相连。上、下位机间的数据通信都是通过各自的CAN总线芯片和CAN总线芯片来实现的。其中,SJA1000具有完成CAN总线通信协议所要求的全部特性,它与CAN总线完全兼容,并有支持CAN2.0B协议、扩展接收缓冲器、增强错误处理能力和增强验收滤波等新增功能。四个下位机智能节点各自完成现场数据采集和运行控制任务,并通过SJA1000实现与上位机间的数据接收和发送。而上位机则通过PCI桥和接口控制电来访问CAN控制器,从而实现与下位机间的数据通信。

  图2 物料搬运机械手CAN总线)使用基于非专用计算机平台的开发系统(本控制系统中采用PC机)。

  机械手控制系统软件采用Visual C++6.0作为开发工具,运行于Windows98平台上。VC是一种面向对象的编程语言,它提供了可视化编程,特别是提供了MFC类库,封装了Windows API接口函数,并建立了应用程序框架,使程序开发人员可以将主要精力集中于所要解决的具体问题上。

  另外,在机械手的水平手臂气缸伺服控制中,采用Festo公司的伺服定位控制器SPC200以及与之配套的内置位移传感器MLO-POT-0225、伺服定位控制连接器SPC-AIF-POT和比例方向流量阀MPYE-5-1/8-LF-010-B等装置。机械手的回转控制则采用凯恩帝数控公司的BD-3Y三相混和式步进电机驱动器。

  机械手软件采用VC++6.0作为开发工具,应用其提供的MFC类库和APPWizard功能生成SDI单文档界面应用程序。VC++6.0提供了现成的窗口、工具条等制作手段,大大简化了界面的开发过程,并且使得开发出的界面具有组态软件风格,使用起来方便、灵活。如图3所示,软件主要由系统界面、CAN总线通信、机械手以及运行状态显示等模块组成。下面就其中的数据通信、运行及动态显示部分作进一步分析。

  CAN总线是一种有效支持分布式控制及实时控制的多主串行总线,它具有短报文帧收发灵活、非性基于优先权的总线仲裁技术等多种优越性能。在机械手控制系统中,CAN总线数据通信是通过与CANPCA适配卡一起提供Pcicandrv.LIB(CAN总线函数库)中的相关函数调用实现的[5]。为了及时准确地了解CAN总线状态,并尽可能减少故障和缩小故障范围,在控制软件中专门设计了测试程序,负责CAN总线接口及通信部分的调试、运行任务。只有在测试正常的前提下,才能进一步运用CAN总线对机械手进行控制。CAN总线数据有标准帧和扩展帧之分,它们都是由信息和数据两部分组成的,只是地址标识符的位数不同。下面是CAN总线初始化及CAN标准帧数据收发的部分代码。

  机械手控制程序是在Windows98下开发的,除了具有丰富的用户图形操作界面,该控制程序还需完成实时数据采集和控制任务。然而Windows98并不是实时操作系统,它是基于消息驱动机制的抢先式多任务系统,没有提供足够的实时处理功能。因此,在程序开发中,我们采用多线程技术来实现系统的实时功能。线程是多任务的基本单元,是操作系统用来调度执行的最小单位。一个进程可以由多个线程组成,系统调度程序将CPU时间片划分给各个线程,各个线程在各自的时间片内使用CPU,从而实现了微观上轮流执行、宏观上并发运行的多任务效果。

  为了避免机械手控制软件前台显示界面因CAN总线数据采集和机械手控制指令的程序循环而导致响应过慢或任务阻塞(Blocking)现象,增强应用程序的快速响应特性,我们将主要的数据采集和控制任务:“机械手搬运”及“物料分拣”定义成的可以按并行方式执行的工作线程,让这个工作线程在后台通过对CAN总线节点的读写完成数据输入和控制参数输出的任务。前台显示界面则通过PostMessage()函数与后台数据采集及控制程序进行通信,以共享数据单元的方式得到实时采集数据并加以显示。在“机械手系统运行”界面中设置了一个按钮用于数据采集和控制线程的启动。以下给出部分“送料缸”运行控制代码:

  上述代码中,由主线程建立并初始化子线程,而子线程负责读取CAN节点的状态数据,并通过分析、计算给出相应的控制信号,完成控制任务。子线程一旦被创建,它将于创建它的主线程运行。由于一个进程中的所程都共享该进程的虚拟地址空间,从而可以通过将主线程和子线程间需共享的数据声明为全局变量的方法来访问该进程的所有全局变量。在机械手程序中引入多线程机制,充分利用了Windows系统的多任务特点,可以有效地克服CAN总线数据采集和控制过程中的停滞和反应不及时现象,并能大大提高程序的运行效率和可靠性。

  工业软件中,现场采集来的数据都需要以某种方式表示在屏幕上。在机械手系统中,主要的控制对象是气缸和步进电机,为了能直观地反映出它们的运行状态,必须将CAN总线采集到的各传感器状态以及运动部件的运行情况以动画的形式表现出来。为此,我们采用了ActiveX控件开发及应用技术。ActiveX控件是微软公司提供的功能强大的程序设计和开发技术,它是提高程序性和可重用性的重要手段。在机械手控制程序中,通过MFC ActiveX Control Wizard建立了一个名为jixieshou的ActiveX控制的应用程序框架,并在其中生成了可动态显示的机械手装置图形控件。通过对该控件中诸如气缸宽度、高度等属性的设置来改变控件的形状;通过气缸活塞每移动一步的延时和每移动一步的距离来改变气缸的运动速度;通过调用该控件的接口函数来显示气缸、步进电机、传感器等的运动和状态。而上述行为的发生是由CAN总线数据采集和控制子线程向主线程传递相应全局变量的值引发的,由此将图形显示与实物动作紧密联系。

  利用CAN总线技术,并采用面向对象的程序设计方法以及多线程技术、ActiveX技术等,可以使软件具有较强的通用性、可扩展性和可靠性,同时进一步提高了控制系统的性和实时性。通过在物料搬运机械手控制中的应用表明:该控制系统运行可靠,能够完全满足设计要求。


字体大小[ ]



版权所有  巩义市糖果派对机械厂  电话:0371-64315937   手机:13700965318      

传真:0371-64395847   地址:河南巩义市康店工业园区路丰产北路25号     网站地图  鲁ICP备16009353号-1