APP下载

基于可重组技术的机械手控制系统设计

2018-11-01黄金梭沈正华

组合机床与自动化加工技术 2018年10期
关键词:机械手语句指令

黄金梭,沈正华

(温州职业技术学院,浙江 温州 325035)

0 引言

由于目前工业上常用的机械手控制系统开发方法存在成本低但不可编程或可编程但成本高、编程困难、操作复杂等问题,很不利于机械手在自动化生产领域、尤其是在中小型企业中的普及推广和发展[1]。因此,本文从性价比、可操作性出发,力求设计出一种开发成本低、用户可编程、操作方法简单的机械手控制系统,以便解决现有机械手控制系统存在不可编程或编程操作复杂、成本高的问题。

庄文密等采用PLC作为控制器,先根据控制要求设计流程图后,使用梯形图编写机械手控制程序,该方法下的机械手控制系统开发成本低,但用户无法修改机械手的移动轨迹[2]。呼刚义等开发了一种PLC控制的物料交接机械手,根据现场条件及工作流程事先编写好不同的控制程序后,机械手则按照控制程序自动工作,实现不同的移动轨迹,但是用户无法对机械手进行编程[3]。毕鲁雁等提出了一种基于RTX实时操作系统和工控机的工业机器人控制系统设计方法,采用VC++专用编程语言制作机器人控制程序[4]。美国ABB、日本发那科、安川和三菱等企业开发的工业机器人允许用户采用基于BASIC的专用编程语言来制作控制程序,实现机械手动作重组,但该编程语言比较复杂,对操作者具有一定的专业素质依赖性,可操作性差。

本文采用一种控制逻辑可重组的机械手控制系统设计方法:①制定一套重组协议机制;②采用VB6.0或触摸屏,基于Excel表格开发机械手编程界面,供用户编写机械手控制程序;③按照重组协议将用户编程界面的程序转化为一串程序数据序列;④以PLC为机械手的控制器,按照重组协议编写具有逻辑可重构功能的梯形图,通过解析程序数据序列,还原用户编程界面的控制逻辑。

通过上述设计方法,虽然采用PLC作为机械手控制器,用户只需要在触摸屏或PC机界面的Excel表格上逐行选择指令、输入参数,就可以实现对机械手移动轨迹的重新编程。

1 逻辑可重组的系统框架设计

1.1 系统框架构建与工作原理

为了让操作者不需要修改PLC梯形图程序、而是通过简单的操作就可以实现自由重组机械手的控制逻辑,在研究智能单元体的基础上,设计了如图 1所示的系统框架。该可重组系统主要由两大部分构成:上位机系统和下位机系统。整个系统通过PLC编程口通信协议[7-8]、控制逻辑重组协议等协议机制作为链接纽带,将上、下位机两部分形成一个有机整体。

图1 可重组控制系统的框架构成

在上位机系统中:通过VB等可视化编程工具设计了基于表格操作式的、友好的用户编程界面。在该界面上,用户可以像操作Excel表格一样逐行添加控制指令语句;在用户编程界面下层,通过调用Excel表格操作控件,对照重组协议,将界面中用户添加的指令语句数据转移到Excel表格文档中,并保存到磁盘上。也可以将储存在磁盘中的Excel表格文档中的指令语句数据读取到用户编程界面上。

当需要将用户编程界面上的程序下载到PLC控制器中时,根据下文的重组协议,调用自制的PLC编程口通信指令集[7,9],将编程界面上的程序转化为一串指令语句数据序列,依次写入到PLC控制器内从某一存储地址开始的一段程序数据存储区。

PLC收到上述程序数据集合后,按照自定义的重组协议规则,从上述的程序数据存储区的头地址开始,逐一提取、分析每条指令语句数据,还原用户程序的指令语句总步数、各指令类型、指令参数等,调用该指令相应的控制程序模块,输出控制逻辑。直到分析、执行完所有的程序数据序列。

1.2 重组协议规则的制定

(1)指令语句结构的设计

纵观机械手的作业内容及动作特点不难得出,其控制系统主要的控制要素包括指令类型、相应参数等等。因此,为重组系统设计了如图 2所示的指令语句结构。步号表示当前指令语句在整个指令语句序列中的位置,其数值不需要用户添加与编辑,当用户在编程界面上插入一条指令语句时,会自动添加当前指令语句的步号。指令类型可由下文所描述的指令类型库中寻找。大部分指令语句会要求输入相应个数的参数。但,并不是所有的指令语句都要求输入参数。

图2 指令语句结构

例如,在第5步动作时,打开气动抓手1;第6步动作时,延时0.5s,其相应的指令语句是:

5抓手1开6延时0.5

(2)指令类型库的定义

不论是气动驱动机械手、伺服驱动机械手还是气动伺服混合驱动机械手,表1所示的指令类型已经能够满足基本的控制要求。

表1 指令类型库定义表

上述指令类型主要分为气缸动作控制、伺服电机动作控制、IO信号的读取与输出控制以及程序引导控制等。其中,气缸动作控制类指令不需要参数,单轴伺服控制指令需要位置与速度2个参数,双轴伺服控制指令需要轴1位置、轴2位置及速度等3个参数,三轴伺服控制指令需要轴1、轴2、轴3及速度等4个参数,延时指令需要延时的时间1个参数,跳转指令需要跳转的步号1个参数,等待指令需要输入信号的号码、输入信号的状态等2个参数,输出指令需要输出信号的号码、输出信号的状态等2个参数。

(3)PLC中程序数据存储区定义

程序数据主要包括用户编程界面中指令语句的总步数NumAll、每一步指令语句的指令类型CMD[n]、参数PRM[n][m]等信息。为了能够让PLC记忆用户所下载的程序数据,采用断电保持的数据寄存器来存储程序数据序列。每一个指令类型的代号用一个16位数据寄存器储存,每一个参数用2个16位数据寄存器储存。假设PLC的D500、D501用于存储程序总步数,从D2000开始的一片存储区,用于储存指令语句数据序列,定义规则如下:

表2 程序数据存储区定义规则

其中,每一步指令语句的参数个数根据指令类型对照表2来确定,参数所占用的寄存器个数Xn=0,2,4,6,8。

2 上位机控制系统的总体设计

上位机管理软件主要是基于离线操作和在线操作两大部分而设计开发的,其总体设计框架如表 3所示。下面简要介绍各部分的组成与原理。

表3 上位机系统总体设计框架5

2.1 离线编程

(1)程序文档的操作

针对程序编辑的常规功能,设计了如图 3所示的离线程序文档操作画面。在该界面上可以新建、编辑、删除程序文档。在界面底层,相应的操作为:通过调用Excel表格控件VSFlexGrid,在磁盘上新建、打开、删除一个Excel文档[8,10]。相应指令为:

CreatObject(“Excel.application”)——新建Excel文档

Excel_App.Workbooks.Add——添加工作薄

Excel_App.SheetsInNewWorkbook——工作表第1张

Excel.App.Workbooks.Open——打开Excel文档

Kill App.Path——删除Excel文档

图3 程序文档操作界面

(2)指令语句的操作

用户在上位机离线编程界面上,可以像操作Excel表格一样添加一行、修改一行或删除一行。每一行为一条指令语句,每条指令语句含步号、指令类型、参数等元素,如图4所示界面。指令类型全部按照表1中所列的项目用中文表示,通过下拉单元格列表清单可选择某一指令。参数个数及内容在单击单元格时会自动提示,操作非常简单易懂。

图4 指令语句操作界面

添加指令语句后,点击“在线”菜单下的编译选项,即可按照重组协议,对指令语句列表进行全面检查。若通过检查,则将当前编程界面对应的Excel表格中的每一行数据转换为程序数据序列,临时储存在数据发送缓存区,同时保存该Excel表格文件。

2.2 在线操作

在线操作包括联机、程序写入、程序读取、程序监视等若干项目。

(1)联机和程序写入

单击“在线菜单”下拉列表,选择“连接下位机”,如图5所示。

图5 联机与写入界面

联机操作的目的是为了寻找计算机中可用的串口、设置串口通信协议参数、与PLC控制器进行握手通信,以确定PLC是否在线。联机成功后,写入功能被激活,单击写入便可将编译好的程序数据通过串口发送至PLC控制器中的程序数据存储区。

(2)程序读出与监视

点击“在线”菜单下的读取选项,便可将PLC中程序数据存储区的程序数据读取至计算机中,并按照重组协议将程序数据以指令列表的方式展示在图 4的指令编辑画面中。单击图 4画面下方的“监视”按钮,便可实时提示PLC当前执行指令的步号。

3 下位机控制系统的程序设计

下位机控制系统主要包括主程序、运行状态控制程序和故障诊断程序三大部分。由于篇幅所限,以下只对核心功能的主程序部分进行介绍说明。

针对上位机下传的程序数据序列,下位机需要进行解析、还原并执行对应的控制逻辑。为此,设计了下位机主程序部分,其工作过程如图 6所示。

图6 主程序工作过程

※E0F0~E7F7是PLC中的8对组合32位变址寄存器,可对数据寄存器地址进行寻址(最多可寻址距离首地址32位数据的地址)。

(1)当前程序数据寄存器号和当前步号清零。

(2)计算当前步号指令语句中指令的存储地址,并提取该指令的代号数值;D2000E0→D0

(3)根据重组协议,计算当前步号指令语句中的参数个数及所需寄存器数→D1;

指令类型代号 代号数值范围 指令参数个数 指令参数存储寄存器个数

(4)若有参数,计算当前步号指令语句中参数的存储地址,并依次提取该参数的数值;→D2~Dn

N1 = 1 ‘‘‘第一个参数

E0 = E0 + 1 ‘‘‘下一个程序数据寄存器

While N1 <= D1

E1 = N1 ‘‘‘当前第几个参数

Mov D2000E0 D2E1 ‘‘‘参数提取

N1 = N1 + 1 ‘‘‘下一个参数

E0 = E0 + 1 ‘‘‘下一个程序数据寄存器

ENDW

(5)根据指令类型、指令参数,调用相应的PLC程序语句模块。

假设当前步指令语句为调用某个轴的伺服定位控制程序,以台达PLC为例,其程序调用语句为:

程序模块语句为:

(6)等待该PLC控制语句模块执行输出完毕;

(7)当前步号加1;

(8)如果还没有执行完所有的步数,则再次从上述第2步开始继续执行;

(9)如果已经执行完所有的步数,再次从上述第1步开始继续执行。

4 试验

最后,以带有2个气动抓手的三自由度直角坐标系机械手为实验平台(如图 7所示),根据本文提出的可编程机械手控制系统的设计思路,详细设计了上位机程序和下位机程序,上下位机之间采用串口232通信电缆连接并通信,并进行了系统联合调试,经过不断地修改部分程序代码,最终整个控制系统运行稳定,达到了预定的功能。

图7 直角坐标系机械手

上述实验结果表明,无需编程人员修改底层专用程序,只需要在上位机编程界面上像操作EXCEL表格一样添加或修改每一步动作的人类语言描述,就可以规划控制对象的移动路径及动作类型。该控制系统大大地降低了可编程自动化设备对操作人员的专业依赖性,也大大地提高了基于PLC的机电设备的柔性,创新了PLC控制系统的开发方法。

5 结束语

针对基于传统PLC控制器和专用高级控制器的机械手控制系统各自的优缺点,本文系统性地提出了一种新型的逻辑可重组的机械手控制系统设计方法及其具体实现路径,将可重组技术理念、软件开发技术和PLC编程等多学科交叉结合,创新了PLC控制系统的开发方法,颠覆了“根据机械手工作流程编写梯形图”的传统PLC开发方法。下一步,将此研究成果基础上,不断扩充机械手控制指令的类型,加强该可重组控制系统的功能。另外,本文将继续研究可重组控制系统的通用性,尝试推广用于其它对象的控制。

猜你喜欢

机械手语句指令
某数控车床的桁架机械手结构设计
重点:语句衔接
《单一形状固定循环指令G90车外圆仿真》教案设计
人体体感感知机械手设计与实现
车轮装配机械手气动控制系统设计
基于粒子群迭代的一种冗余机械手逆解算法
中断与跳转操作对指令串的影响
一种基于滑窗的余度指令判别算法
我喜欢
MAC指令推动制冷剂行业发展