APP下载

基于WinCE码垛机器人码垛工具设计

2014-07-28董忠童上高李文艺张昊袁晗

电脑知识与技术 2014年17期

董忠 童上高 李文艺 张昊 袁晗

摘要:该文通过嵌入式WinCE系统,使用C++编程语言,在Visual Studio 2008环境中开发了码垛机器人垛型生成和编辑界面。该系统通过离线编程,根据产品的实际尺寸,以及系统相关设定参数,创建码垛数据。本系统能够设计的码垛数据,不仅能够实现每次规则抓取的袋子和箱子类产品;还能实现每次不规则抓取的产品尺寸和数量。本码垛工具的设计原则,采用基于终端客户的思想,即可视化编辑界面、即见即所得的产品布局,最大程度地减轻客户产品码垛类型设计负担,提高了客户可应用性和生产效率。

关键词:码垛机器人;垛型生成器;WinCE

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)17-4104-05

Data Block Design based on WinCE for Palletizing Robot

DONG Zhong, TONG Shang-gao, LI Wen-yi, ZHANG Hao, YUAN Han

(Triowin Automation Equipment Co, Ltd., Shanghai 201506, China)

Abstract: Designing and editing tool of stacking style for palletizing robot was developed in Visual Studio 2008 development environment and implemented on embedded hardware with a WinCE OS running on it. Based on this tool, data block was created by off-line programming with the actual size of product, and necessary system setting and parameters. Based on this tool, the data block can fulfill all kinds of products, including whether regular shape or non-regular, and whether fixed number of products for each picking or not. Based on this tool, the operational style was designed to adapt to the customers needs, such as visual-editor interface and palletizing layout of what you see and what you get, which reduces the pay the customer cost in stacking style design, and enhances the applicability and productivity of customers.

Key words: palletizing robot; designing and editing tool of Stacking style; WinCE

近 五年,工业机器人在中国市场上的应用得到迅速发展。随着搬运机器人广泛应用于饲料、化工、食品、家电等传统劳动力集中行业,人力搬运已逐渐由机器人搬运替代,且发展迅速。这不仅提高了企业生产效率,同时降低工人作业强度,改善其工作环境。但是,随着客户产品的多样性、复杂化,不管是种类,还是形状,均超过了以往对搬运机器人的操作便携性的要求。由于此原因,市场要求机器人能够提供更加灵活的搬运解决方案,而机器人生产商为了缩短产品调试时间,迎合客户需要,研究新的一代搬运解决方案迫在眉睫。

目前市面上存在的类似功能的解决方案也仅有国外专业机器人公司有,国内还没有类似产品。该文正是根据客户的需求,企业发展的角度,设计一种低成本、高效率的快速垛型生成解决方案—码垛工具设计器,即能够离线创建数据、编辑和监控数据[1]。

本文首先介绍该工具的工作环境,如硬件工作环境,即基于嵌入式硬件处理器的cortex-A8处理器,和软件设计环境,即基于visual studio的C++开发;接着介绍工具的设计原理及C++代码实现;再对该工具的操作予以说明;最后对该工具的性能予以总结。

1 码垛数据生成器的工作环境

1.1 硬件环境

本人机界面主要实现数据显示以及录入功能,故硬件系统主要由带触摸功能的显示屏和控制板构成,其中控制板上的主控芯片采用三星的SMDK_S5PV510_CPU, 主频为1GHz,内存256M,以及周边电路构成;周边电路包括GPIO、USB、Ethernet、存储卡等接口,显示屏的数据通过总线技术与控制系统通讯。具体实物如图1所示。

1.2 软件环境

软件开发环境基于Visual Studio 2008,采用C++语言开发,并结合硬件系统带有的SDK函数,开发基于WinCE嵌入式系统的人机操作系统。

2 码垛数据生成器软件设计原理及实现

本节将重点介绍该工具的设计流程,包括产品初始化生成功能、产品位置调整功能、特殊抓取属性设置功能、以及码垛数据生成功能。

2.1 产品初始化生成功能

根据码垛系统必要参数的设置,如系统属性、产品尺寸等等,生成初始位置位于默认位置的产品布局,如图2所示。

具体产品的动态生成可采用VS系统的SDK函数构造,部分代码如下:endprint

CRect tRect(m_Cx-W_pro,m_Cy-L_pro, m_Cx, m_Cy);

//本条指令根据产品尺寸,坐标统一化处理后,设置产品的显示区域;

pStep=new CMyStatic[step*num];

//创建控件的句柄空间;

for (int i=0; i < step*num ; i++ )

{if ( step*num <= 9 )

{ (pStep+i)→Create(WORDS[1+i],WS_CHILD | WS_VISIBLE | SS_CENTER| SS_NOTIFY,tRect,this,320+i);}

else

{ (pStep+i)→Create(WORDS[i/10] +WORDS[i%10],WS_CHILD | WS_VISIBLE | SS_CENTER| SS_NOTIFY, tRect,this,320+i);}}

//根据每层产品的数量,决定采用不同的分支语句

m_Total=step*num;//记录当前层的产品数量

2.2 产品位置调整功能

根据前一阶段得出的初始位置,此时的位置不能用于码垛过程,可以通过移动产品,微调位置得出准确的布局,常规产品的布局实现如图3所示:

结合式2、3、4、5、6,再根据获取图4中的点1,点2,点3,点4 坐标,由上式旋转变换得到1',2',3',4' 坐标,以及1',2',3',4' 绝对坐标系坐标,由此可以得出规则抓取的各码垛产品的数据。

2.3 特殊抓取属性设置功能

根据客户产品的需求,有时码垛过程是不规则,如有时候一次抓取3包,有时候一次抓取2包或1包,对于这样的码垛要求,特别设计可以任意调整过程参数的功能块[2][3]。

采用的流程图如图5所示。首先需要单击响应,记录当前响应状态,这可以通过继承控件类,增加相关属性获得,然后给出标志量。

如图6所示,接着读取各控件的ID号,并记录需要组合或删除的产品编号,判断该编号属性,如果不存在,则编号加1,

实现代码如下:

Int j=1;

CWnd* pWnd=NULL;

For ( int i=tName+1; i

{

pWnd=GetDlgItem(i);//获取控件ID号

If ( NULL == pWnd ) continue;

else

{

If ( i == tName+j )

{

J++;

Continue;

}

else

{

pWnd→SetDlgCtrlID(tname+j);

//重新设置并更改ID号

pWnd→SetWingdowText(tName+j-319);

//设置控件文本

J++;

}

}

}

2.4 码垛数据生成功能

如图7所示,编号12、21、32、42实现了四种产品的抓取,分别为一次抓取2个产品,方向90度;一次抓取一个产品,方向0度,但占据两个产品位置;一次抓取一个产品,方向90度;一次抓取两个产品,方向0度,但占据两个位置。通过本实例,可以实现不同产品、不同抓取规则的码垛工艺要求。

3 结束语

本文基于嵌入式硬件系统,以及WinCE系统,详细设计了码垛机器人垛型工具设计器。通过介绍垛型编辑原理、坐标关系变换、以及程序代码,实现不同产品抓取规则,最终完成属于沃迪装备的码垛机器人码垛工具设计器的设计。

参考文献:

[1] 张海平,陈彦.Wincc在打包机人机界面中的设计与应用[J]. HMI与工业软件,2012(3):70-72.

[2] 高磊,王洪滨.Windows CE系统开发高级编程与典型实例[M].北京:中国电力出版社,2011.

[3] 莫雨.Windows CE大排档[M].北京:北京航空航天大学出版社,2011.

CRect tRect(m_Cx-W_pro,m_Cy-L_pro, m_Cx, m_Cy);

//本条指令根据产品尺寸,坐标统一化处理后,设置产品的显示区域;

pStep=new CMyStatic[step*num];

//创建控件的句柄空间;

for (int i=0; i < step*num ; i++ )

{if ( step*num <= 9 )

{ (pStep+i)→Create(WORDS[1+i],WS_CHILD | WS_VISIBLE | SS_CENTER| SS_NOTIFY,tRect,this,320+i);}

else

{ (pStep+i)→Create(WORDS[i/10] +WORDS[i%10],WS_CHILD | WS_VISIBLE | SS_CENTER| SS_NOTIFY, tRect,this,320+i);}}

//根据每层产品的数量,决定采用不同的分支语句

m_Total=step*num;//记录当前层的产品数量

2.2 产品位置调整功能

根据前一阶段得出的初始位置,此时的位置不能用于码垛过程,可以通过移动产品,微调位置得出准确的布局,常规产品的布局实现如图3所示:

结合式2、3、4、5、6,再根据获取图4中的点1,点2,点3,点4 坐标,由上式旋转变换得到1',2',3',4' 坐标,以及1',2',3',4' 绝对坐标系坐标,由此可以得出规则抓取的各码垛产品的数据。

2.3 特殊抓取属性设置功能

根据客户产品的需求,有时码垛过程是不规则,如有时候一次抓取3包,有时候一次抓取2包或1包,对于这样的码垛要求,特别设计可以任意调整过程参数的功能块[2][3]。

采用的流程图如图5所示。首先需要单击响应,记录当前响应状态,这可以通过继承控件类,增加相关属性获得,然后给出标志量。

如图6所示,接着读取各控件的ID号,并记录需要组合或删除的产品编号,判断该编号属性,如果不存在,则编号加1,

实现代码如下:

Int j=1;

CWnd* pWnd=NULL;

For ( int i=tName+1; i

{

pWnd=GetDlgItem(i);//获取控件ID号

If ( NULL == pWnd ) continue;

else

{

If ( i == tName+j )

{

J++;

Continue;

}

else

{

pWnd→SetDlgCtrlID(tname+j);

//重新设置并更改ID号

pWnd→SetWingdowText(tName+j-319);

//设置控件文本

J++;

}

}

}

2.4 码垛数据生成功能

如图7所示,编号12、21、32、42实现了四种产品的抓取,分别为一次抓取2个产品,方向90度;一次抓取一个产品,方向0度,但占据两个产品位置;一次抓取一个产品,方向90度;一次抓取两个产品,方向0度,但占据两个位置。通过本实例,可以实现不同产品、不同抓取规则的码垛工艺要求。

3 结束语

本文基于嵌入式硬件系统,以及WinCE系统,详细设计了码垛机器人垛型工具设计器。通过介绍垛型编辑原理、坐标关系变换、以及程序代码,实现不同产品抓取规则,最终完成属于沃迪装备的码垛机器人码垛工具设计器的设计。

参考文献:

[1] 张海平,陈彦.Wincc在打包机人机界面中的设计与应用[J]. HMI与工业软件,2012(3):70-72.

[2] 高磊,王洪滨.Windows CE系统开发高级编程与典型实例[M].北京:中国电力出版社,2011.

[3] 莫雨.Windows CE大排档[M].北京:北京航空航天大学出版社,2011.

CRect tRect(m_Cx-W_pro,m_Cy-L_pro, m_Cx, m_Cy);

//本条指令根据产品尺寸,坐标统一化处理后,设置产品的显示区域;

pStep=new CMyStatic[step*num];

//创建控件的句柄空间;

for (int i=0; i < step*num ; i++ )

{if ( step*num <= 9 )

{ (pStep+i)→Create(WORDS[1+i],WS_CHILD | WS_VISIBLE | SS_CENTER| SS_NOTIFY,tRect,this,320+i);}

else

{ (pStep+i)→Create(WORDS[i/10] +WORDS[i%10],WS_CHILD | WS_VISIBLE | SS_CENTER| SS_NOTIFY, tRect,this,320+i);}}

//根据每层产品的数量,决定采用不同的分支语句

m_Total=step*num;//记录当前层的产品数量

2.2 产品位置调整功能

根据前一阶段得出的初始位置,此时的位置不能用于码垛过程,可以通过移动产品,微调位置得出准确的布局,常规产品的布局实现如图3所示:

结合式2、3、4、5、6,再根据获取图4中的点1,点2,点3,点4 坐标,由上式旋转变换得到1',2',3',4' 坐标,以及1',2',3',4' 绝对坐标系坐标,由此可以得出规则抓取的各码垛产品的数据。

2.3 特殊抓取属性设置功能

根据客户产品的需求,有时码垛过程是不规则,如有时候一次抓取3包,有时候一次抓取2包或1包,对于这样的码垛要求,特别设计可以任意调整过程参数的功能块[2][3]。

采用的流程图如图5所示。首先需要单击响应,记录当前响应状态,这可以通过继承控件类,增加相关属性获得,然后给出标志量。

如图6所示,接着读取各控件的ID号,并记录需要组合或删除的产品编号,判断该编号属性,如果不存在,则编号加1,

实现代码如下:

Int j=1;

CWnd* pWnd=NULL;

For ( int i=tName+1; i

{

pWnd=GetDlgItem(i);//获取控件ID号

If ( NULL == pWnd ) continue;

else

{

If ( i == tName+j )

{

J++;

Continue;

}

else

{

pWnd→SetDlgCtrlID(tname+j);

//重新设置并更改ID号

pWnd→SetWingdowText(tName+j-319);

//设置控件文本

J++;

}

}

}

2.4 码垛数据生成功能

如图7所示,编号12、21、32、42实现了四种产品的抓取,分别为一次抓取2个产品,方向90度;一次抓取一个产品,方向0度,但占据两个产品位置;一次抓取一个产品,方向90度;一次抓取两个产品,方向0度,但占据两个位置。通过本实例,可以实现不同产品、不同抓取规则的码垛工艺要求。

3 结束语

本文基于嵌入式硬件系统,以及WinCE系统,详细设计了码垛机器人垛型工具设计器。通过介绍垛型编辑原理、坐标关系变换、以及程序代码,实现不同产品抓取规则,最终完成属于沃迪装备的码垛机器人码垛工具设计器的设计。

参考文献:

[1] 张海平,陈彦.Wincc在打包机人机界面中的设计与应用[J]. HMI与工业软件,2012(3):70-72.

[2] 高磊,王洪滨.Windows CE系统开发高级编程与典型实例[M].北京:中国电力出版社,2011.

[3] 莫雨.Windows CE大排档[M].北京:北京航空航天大学出版社,2011.