机器人与终端设备的软件的通讯框架和通讯方法与流程

文档序号:14248569阅读:563来源:国知局
机器人与终端设备的软件的通讯框架和通讯方法与流程

本发明涉及机械设备控制领域,更具体的涉及一种器人与终端设备的软件的通讯框架和通讯方法。



背景技术:

随着人力成本的不断上升和客户要求的不断提高,普及自动化的呼声也越来越高。其中在产品的传递方面,具有高灵活度的六轴机器人和传送带有着非常大的优势。在很多传统的设备中,与传送带方式需要对设备做巨大的改动不同,要实现自动传递最简单的做法反而是使用机器人,因为要使用机器人来实现自动传递,设备只需要在取放产品方面适应机器人的抓手即可,对设备的整体结构不对有太大的变化,还能大大提高对旧设备的利用。这对已经大量应用了非自动化设备的线体比较有意义。

同时,由于我们公司的线体上应用的设备种类相对较多,目前在这些设备上每台设备配备一套机器人通讯和逻辑控制程序,对程序的后续管理和维护跟进都要付出很大的代价。主要表现在:(1)机器人通讯部分代码和逻辑控制部分代码杂糅在一起,会使程序复杂度增加,大大提高了程序的不稳定因素,同时可读性差、开发效率低;(2)逻辑控制部分涉及的硬件种类比较多;(3)机器人通讯程序的移植性比较差;(4)生产维护相当困难,会对生产效率造成一定的影响;(5)面对众多的项目和工程师,程序的控制逻辑难以统一,存在较大的控制风险。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷(不足),提供一种机器人与终端设备的软件的通讯框架和通讯方法。

为解决上述技术问题,本发明的技术方案如下:

一种机器人与终端设备的软件的通讯框架,其特征在于,包括应用层、中间层和硬件层,所述中间层位于应用层和硬件层之间,以实现应用层与硬件层之间的数据交互;所述应用层包括状态机模块、逻辑控制模块、调试模拟模块和日志化模块,所述中间层包括队列模块和多线程模块,所述硬件层包括硬件接口,所述硬件接口包括网卡模块和/或串口模块和/或并口模块和/或i/o模块,所述网卡模块和/或串口模块和/或并口模块和/或i/o模块通过队列模块和多线程模块实现与状态机模块、逻辑控制模块、调试模拟模块和日志化模块的数据交互。

进一步的,所述状态机模块的构成要素包括:循环、事件选择、事件触发和退出机制。

进一步的,所述逻辑控制模块采用顺序执行的逻辑控制方式,以保证程序流动受控,避免程序跑飞。

进一步的,所述调试模拟模块能够模拟机器人发送指令给终端设备,也能够模拟终端设备发送指令给机器人。

进一步的,所述日志化模块用于将相关日志信息存储在后台程序和本地电脑中,以便于查找相关日志信息用于追溯和分析。

进一步的,所述队列模块的操作原则为先进先出。

进一步的,所述中间层包括多线程模块,所述多线程模块能够在只有一个硬件通道的条件下虚拟出多个通讯通道。

进一步的,所述多个通讯通道分别与所述队列模块的各队列相对应。

本申请还提供一种机器人与终端设备的软件的通讯方法,其特征在于,包括应用层、中间层和硬件层,所述中间层位于应用层和硬件层之间,以实现应用层与硬件层之间的数据交互;具体包括以下步骤:

a.开启通讯;

b.对硬件层进行初始化处理;

c.判断硬件接口是否有数据,若硬件接口有数据,则接受数据,并将数据放入中间层中的接受队列,并将数据传送至应用层;若硬件接口没有数据,则跳转至应用层;

d.判断应用层是否有数据,若应用层有数据,则经中间层中的发送队列取出数据,并将数据传送至硬件接口;若应用层没有数据,则跳转至步骤e;

e.判断通讯是否完成,若通讯完成,则终止通讯,若通讯没有完成,则跳转至步骤b.

与现有技术相比,本发明技术方案的有益效果是:

通讯框架分为三层:硬件层(服务层)、中间层和应用层(客户端层)。同时把程序分为两大部分来编写:1、机器人与终端设备的后台通讯程序模块:此模块实现了硬件层的通讯,其作用主要是机器人与终端设备之间实时通讯,保证机器人与终端设备交互的有效性和实时性;

2、终端设备系统的逻辑控制程序模块:此模块实现了特定终端设备和机器人的运作逻辑,保证特定终端设备和机器人通讯之间的逻辑关系不会出错,由于终端设备种类不一,所以此模块主要是完成逻辑控制的框架,以便应用者可以按逻辑关系进行填充代码。

附图说明

图1为通讯框架结构示意图

图2为状态机模块结构示意图。

图3为逻辑控制模块结构示意图。

图4为调试模拟模块结构示意图。

图5和6为日志化模块结构示意图。

图7和8为队列模块结构示意图。

图9为多线程模块结构示意图。

图10为通讯程序模块流程结构示意图。

附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的;相同或相似的标号对应相同或相似的部件;附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制。

具体实施方式

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种机器人与终端设备的软件的通讯框架,包括应用层、中间层和硬件层,所述中间层位于应用层和硬件层之间,以实现应用层与硬件层之间的数据交互;所述应用层包括状态机模块、逻辑控制模块、调试模拟模块和日志化模块,所述中间层包括队列模块和多线程模块,所述硬件层包括硬件接口,所述硬件接口包括网卡模块和/或串口模块和/或并口模块和/或i/o模块,所述网卡模块和/或串口模块和/或并口模块和/或i/o模块通过队列模块和多线程模块实现与状态机模块、逻辑控制模块、调试模拟模块和日志化模块的数据交互。

所述状态机模块的构成要素包括:循环、事件选择、事件触发和退出机制,如图2所示,状态机模块可以保证程序能够不间断可选择性执行。

如图3所示,所述逻辑控制模块采用顺序执行的逻辑控制方式,以保证程序流动受控,避免程序跑飞。

如图4所示,所述调试模拟模块能够模拟机器人发送指令给终端设备,也能够模拟终端设备发送指令给机器人,能够极大地方便机器人的调试。

如图5和图6所示,所述日志化模块用于将相关日志信息存储在后台程序和本地电脑中,以便于查找相关日志信息用于追溯和分析。

如图7和图8所示,所述队列模块的操作原则为先进先出。

如图9所示,所述中间层包括多线程模块,所述多线程模块能够在只有一个硬件通道的条件下虚拟出多个通讯通道;所述多个通讯通道分别与所述队列模块的各队列相对应。

实施例2

本实施例公开一种机器人与终端设备的软件的通讯方法,具体可采用实施例1所述的机器人与终端设备的软件的通讯框架,包括应用层、中间层和硬件层,所述中间层位于应用层和硬件层之间,以实现应用层与硬件层之间的数据交互;所述中间层包括队列模块和多线程模块,所述多线程模块能够在只有一个硬件通道的条件下虚拟出多个通讯通道;所述多个通讯通道分别与所述队列模块的各队列相对应(如图9所示);具体包括以下步骤(如图10所示):

a.开启通讯;

b.对硬件层进行初始化处理;

c.判断硬件接口是否有数据,若硬件接口有数据,则接受数据,并将数据放入中间层中的接受队列,并将数据传送至应用层;若硬件接口没有数据,则跳转至应用层;

d.判断应用层是否有数据,若应用层有数据,则经中间层中的发送队列取出数据,并将数据传送至硬件接口;若应用层没有数据,则跳转至步骤e;

e.判断通讯是否完成,若通讯完成,则终止通讯,若通讯没有完成,则跳转至步骤b。

本发明的软件层级框架图(如图9所示):多线程的应用层通过专用的队列与硬件层建立软件数据传输通道,互不干扰。当某线程需要与机器人通讯时,此线程通过对应的队列通道告知后台通讯程序,后台通讯程序监控到队列消息后通过硬件接口发送出去;当后台通讯程序监控到硬件接口消息时解析此消息并往应用层指定通道传递此消息。

后台通讯程序模块(如图10所示):不断监控应用层的队列通道和硬件接口,当收到队列消息时往硬件接口发送出去,当收到硬件接口的消息时往队列通道传递出去。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1