随着加工行业在我国的迅速发展,各行各业的自动化装备水平越来越高,现代化加工车间,常常配有机械手,以提高生产效率,代替工人完成恶劣环境下危险、繁重的劳动。
目前,机械手常用于完成的工作有:注塑工业中用于从模具中快速抓取制品并将制品传送到下一个生产工序; 机械加工行业中用于取料、送料; 浇铸行业中用于提取高温熔液等等。本文以能够实现这类工作的搬运机械手为研究对象,针对本文作者参与的工业取料用直角坐标机械手控制系统软、硬件进行了介绍和分析。
目前市场上常见的工业取料直角坐标机械手主运动臂的控制方式主要采用液压或气压驱动。这种控制策略的优点在于结构简单,系统易于控制。但缺点是系统定位靠设定接近开关的位置来实现,定位精度低,而一但用户要求改变取料工作类型,必须重新调节各液压或气压缸的定位开关,以适应新的工作任务,不利于生产过程的自动化。
本文作者参与设计的工业取料用直角坐标机械手,主运动采用全电动控制方式,系统以交流电机为驱动源,专用交流电机伺服控制器为下位机,工业控制计算机为上位机,系统整体采用集散控制的控制策略。这种设计方案系统控制精度高,具有较高的控制实时性,结构紧凑,易于用户操作。 系统结构 工业取料机械手的工作方式是按“示教/ 再现机器人”的概念来完成的,即由人用示教器对机械手的工作行为示教,示教过程中记录机械手各运动关节起始点位置,并在生产过程中按用户设定的运动速度、加速度重复这一动作过程。 根据以上分析,我们设计出了一类主运动为全电动的工业取料机械手。机械手控制系统采用集散控制结构,即由一台上位机控制五台下位伺服控制器,每台下位伺服控制器单独驱动一台交流异步电动机,电动机带动机械手的执行机构完成动作。
本系统上位机选用工业控制计算机,下位伺服控制器采用交流异步电动机专用伺服控制器,上位计算机通过串行口,按RS-485协议标准与伺服控制器进行通讯,下位机接受上位机发出的指令语言,按指令要求控制电机转动。同时下位伺服控制器还通过交流电机上的码盘检测异步电机运动状态,并反馈给下位机,以实现下位控制器对电机运动状态的实时控制。控制系统结构如图1。
图1:机械手控制系统结构图
机械手的未端执行机构采用气动驱动,以完成手指的捏合、翻板的翻转、及翻板上真空吸盘的吸放动作。 交流异步电机伺服控制器是一类专门用于控制交流异步电机的设备。交流异步电机伺服控制器采用转差型异步电机矢量变换控制方法。这种矢量控制系统模仿了直流调速系统的控制方式,外环转速闭环控制是建立在取向于转子磁链方向的同步旋转坐标系上,然后通过矢量旋转变换将直流控制量的电流变换到定子静止坐标系上,得到定子两相交流电流量,再经2/3相变换获得定子三相交流电流量。 电机的测速码盘是交流异步机伺服控制器的辅助设备,码盘装在电机轴的尾部,随电机轴一起转动,码盘的信号线接入伺服控制器的专用输入口,为伺服控制器提供电机转速信号,作为矢量变换的反馈参数。
伺服控制器配有RS-485 接口,用于与上位机通讯。通过使用伺服控制器的专用语言,我们设计了运行于伺服控制器上的程序。下位伺服控制器在上电后自动执行存储于控制器中的这段程序。它的主要功能是接受上位计算机下传的指令,按上位计算机的要求对电机运动状态进行控制。对于电机运动的具体实时控制则由下位伺服控制器的内部控制算法实现。
软件实现方式 因程序涉及的细节较多,这里我们重点介绍上位计算机程序的示教/再现实现方式。上位计算机的程序采用了C++语言,针对五个下位控制器我们设计了一个专门用于控制下位伺服控制器的类,在主程序中,这个类生成了五个对象。这个类构造函数的参数包括每个下位控制,如每个控制器的编码,每个控制器在软件界面上相应控制按钮的标识,每个控制器的I/O 地址,每个控制器相应电机运动方向上接近开关地址,每个控制器的速度级等等。因为除了这些属性不同以外,每个控制器的其它属性和要实现的函数是相同的。在示教过程中,程序会根据用户对界面上各按钮的操作,即机械手的示教过程形成一个数据队列,这个数据队列的每个数据记录结点内包含一个Recorder类的对象。这个类用于记录相应动作的信息,即动作的所有者,动作的位移量,动作的完成状态等等。这样就完成了一个示教过程的记录,并形成数据记录队列。图2所示即为形成的数据记录队列的结构形式,队列头是数据记录的起始点,队列尾是数据记录的结束点。
图2:数据队列的结构形式
在实际工作过程中, 程序通过依次读取这个数据队列,得到当前应当启动的动作信息,并按这一数据通知下位计算机, 启动相应动作,一个或几个动作完成后,继续处理下一数据记录,直到到达数据队列的队尾,这样就完成了一个示教过程的动作再现。程序每按这个数据队列处理一次数据,就完成一次设定工作。
二次示教 机械手采用集散控制结构,所以在控制系统中上下位机间实现信息传递的控制网络成为系统控制的一个关键因素,交流电动机伺服控制器和工业控制计算机内都有一个 RS-485口,所以我们在设计上选用了上下位机的RS-485串行口作为它们之间通讯的途径。
在工业现场中,上下位机不亦频繁进行RS-485方式通讯,因为RS-485通讯方式在有干扰的环境下信号容易受干扰而导致通讯失败,尽管我们在通讯程序上设计了容错功能,但这种失败以及RS-485本身通讯时所占用的时间,会大大降低系统工作的实时性。
基于这一问题我们采用了二次示教的控制策略,下面简单介绍这一策略的实现方法。在示教阶段,上位计算机记录用户需要的工作流程,即各自由度的运动顺序,以及每一个运动环节的运动距离、运动速度、运动加速度,并形成一个示教数据队列,这一示教数据队列记录了机械手工作所需要的完整信息,即完成了由人对系统的一次示教。
图3:示教过程的数据队列
图3示例了一个示教过程的数据队列,其中A、B、C、D分别代表下位设备,各方框结点中各设备名后序号表示该结点在一个流程中启动该设备的序号。
如“B2”中,“B”表示该结点记录的是下位设备“B”的信息,“2”表示该结点中装的是“B”设备在一个工作流程中第二次被启动时的运动信息,注意同一设备位于不同次序的数据记录内容往往是不一样的。
在机械手启动自动工作,并实现第一次自动工作循环中,上位计算机会向当前应运动的自由度相应控制器发送相关运动数据信息,即运动位移、运动速度、运动加速度,这时下位控制器会将这些数据保存至自己的存储器内,以形成数据记录,紧接着上位计算机启动相关下位控制器的I/O,以通知下位控制器开始动作,这时下位控制器完成的动作就是按这个新保存的信息完成的,动作完成后下位控制器通知上位计算机,上位计算机接到控制信息后,继续通知下一个需要动作的控制器。一个工作流程完成后,各控制器已按工作流程中自已的动作,按顺序形成了自己的数据记录,并存入了自己的存储器。这些记录中记录了每一个动作的运动速度,运动距离,运动加速度,这样即完成了由上位计算机对下位控制器的二次示教。
这时数据队列变成图4,图中所示状态为一个工作流程初始工作状态。
图4:工作流程初始工作状态
这样每一个控制器就知道一个工作流程中,当上位计算机通知自己工作时,每一个动作的信息,同时也知道自已在一个工作流程中,被通知动作后,各动作的先后顺序。但每一个控制器对于己的动作在整体工作流程中的顺序是不作记录的,这一顺序由主控制器来协调。经过二次示教,就把一个工作流程的所有信息进行了分解,即由上位计算机记录整体的工作顺序,由下位制器录自己的内部工作顺序及工作细节。
图5:工作到B3时的上位数据队列
在随后的工作流程中,上位控制器只向应动作的控制器发出控制I/O,而不再发送具体的控制细节信息,因为这些细节信息已在第一个工作流程中按顺序在下位控制器中形成了数据记录。下位控制器根据上位计算机的I/O按顺序调出这些数据记录来完成动作。图5示例了当上位数据队列工作到B3时,上图的变化。
通过二次示教,增强了系统的实时性,避免了因通讯受干扰而给系统带来的诸多故障,系统的整体性能得到了很大的提高。
基于以上结构的机械手控制系统整体控制精度高,具有较高的系统控制实时性,而且大大减少了上下位机之间的通讯频率,降低了系统通讯受外部干扰的可能性,系统整体性能可靠。
|