信息化 频道

基于RFID的单件生产实验系统的控制

 4 实验结果

  根据机械手的运动范围定义的本实验系统的平面布局图,原点就 :是机械手的机械原点,(0,400)是机械手回零后的点,机械手的第一轴和第二轴的长度都是200mm。表1是这些点对应的机械手的关节坐标空间里的四个轴的关节坐标值。表1中定义的坐标值是关节坐标,例如:缓冲区的1位置(-25,0,-80,O) 里面的四个值代表四个轴的关节坐标值,第一轴相对于零点(即机械手回零后的位置)转-250,第二轴不动,第三轴相对于零点下降-80cm,第四轴不动。


  机械手控制程序调用函数G—RecvMsg(temp—info)来接收上位机产生的调度指令,调度指令的内容包括:工件号、机器号、可重人次数和指令的类型。机械手控制程序定义了一个结构体来存储接收到的指令,结构体定义如下:

  typedef struct RECV_ INF
  {
  UINT which~ partlD;f l %

  UINT which— machinelD://机器号

  UINT entry— num://若生产系统是可重人生产系统,表示可重人次数,在本实验系统中保留。

  U1NT flag1;//0到达生产线,1零件在机器上加工,2零件在机器上加工完毕,3零件的所有工序在机器上加工完lRECV_INF, pRECV_INF; 接收到调度指令后,机械手运动控制程序凋用函数G_Exe_ cute_ command(RECV INF)来执行这一指令。机械手控制程序根据RECV_INF->flag1的值来执行相应的运动, 并把RECV_INF-> which_machinelD(机器号)赋给机械手运动函数robot_move(int position1,int position2,int flag)中的positionl或者position2(这个是根据flag的值来决定的,参考这个函数的说明),当机械手抓取零件去机器上加工前要到机器对应的读写器上扫描,这时PLC会传给上位机一个数据包,里面包含机械手抓取的这个零件的工件号,机械手控制程序就会从共享内存区里读到这个工件号并与RECV_INF->which_partlD(工件号)来做比较,判断是不是要加工的零件。当指令执行完后,监控程序会改变零件和机器的状态,然后机械手控制程序取下一条调度指令直到每个零件的所有工序都加工完毕。

  实验结果表明,机械手可以完成要求的动作。

  5 结束语

  本文提出了一种针对基于RFID的单件生产实验系统的机械手控制方法。首先建立了本实验系统的Petri网模型,获得正确的控制逻辑;然后设计了机械手运动控制函数,并实现了与上位机的进程阃异步通信,从而逐条解析并执行调度指令。实验结果表明,机械手可以完成上位机的调度指令,可以在预先定义的11个位置中的任意两个位置之间运动。

0
相关文章