CN107942753B - 机器人与终端设备的软件的通讯框架和通讯方法 - Google Patents
机器人与终端设备的软件的通讯框架和通讯方法 Download PDFInfo
- Publication number
- CN107942753B CN107942753B CN201711285576.7A CN201711285576A CN107942753B CN 107942753 B CN107942753 B CN 107942753B CN 201711285576 A CN201711285576 A CN 201711285576A CN 107942753 B CN107942753 B CN 107942753B
- Authority
- CN
- China
- Prior art keywords
- module
- robot
- layer
- communication
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
Abstract
本发明涉及机械设备控制领域,更具体的涉及一种机器人与终端设备的软件的通讯框架和通讯方法,其特征在于,包括应用层、中间层和硬件层,所述中间层位于应用层和硬件层之间,以实现应用层与硬件层之间的数据交互;所述应用层包括状态机模块、逻辑控制模块、调试模拟模块和日志化模块,所述中间层包括队列模块和多线程模块,所述硬件层包括硬件接口,所述硬件接口包括网卡模块和/或串口模块和/或并口模块和/或I/O模块,所述网卡模块和/或串口模块和/或并口模块和/或I/O模块通过队列模块和多线程模块实现与状态机模块、逻辑控制模块、调试模拟模块和日志化模块的数据交互。
Description
技术领域
本发明涉及机械设备控制领域,更具体的涉及一种机 器人与终端设备的软件的通讯框架和通讯方法。
背景技术
随着人力成本的不断上升和客户要求的不断提高,普及自动化的呼声也越来越高。其中在产品的传递方面,具有高灵活度的六轴机器人和传送带有着非常大的优势。在很多传统的设备中,与传送带方式需要对设备做巨大的改动不同,要实现自动传递最简单的做法反而是使用机器人,因为要使用机器人来实现自动传递,设备只需要在取放产品方面适应机器人的抓手即可,对设备的整体结构不对有太大的变化,还能大大提高对旧设备的利用。这对已经大量应用了非自动化设备的线体比较有意义。
同时,由于我们公司的线体上应用的设备种类相对较多,目前在这些设备上每台设备配备一套机器人通讯和逻辑控制程序,对程序的后续管理和维护跟进都要付出很大的代价。主要表现在: (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所示):不断监控应用层的队列通道和硬件接口,当收到队列消息时往硬件接口发送出去,当收到硬件接口的消息时往队列通道传递出去。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种机器人与终端设备的软件的通讯框架,其特征在于,包括应用层、中间层和硬件层,所述中间层位于应用层和硬件层之间,以实现应用层与硬件层之间的数据交互;所述应用层包括状态机模块、逻辑控制模块、调试模拟模块和日志化模块,所述中间层包括队列模块和多线程模块,所述硬件层包括硬件接口,所述硬件接口包括网卡模块和/或串口模块和/或并口模块和/或I/O模块,所述网卡模块和/或串口模块和/或并口模块和/或I/O模块通过队列模块和多线程模块实现与状态机模块、逻辑控制模块、调试模拟模块和日志化模块的数据交互;
所述调试模拟模块能够模拟机器人发送指令给终端设备,也能够模拟终端设备发送指令给机器人;终端设备和机器人通过应用层的逻辑控制程序模块实现两者的运作逻辑。
2.根据权利要求1所述的机器人与终端设备的软件的通讯框架,其特征在于,所述状态机模块的构成要素包括:循环、事件选择、事件触发和退出机制。
3.根据权利要求1所述的机器人与终端设备的软件的通讯框架,其特征在于,所述逻辑控制模块采用顺序执行的逻辑控制方式,以保证程序流动受控,避免程序跑飞。
4.根据权利要求1所述的机器人与终端设备的软件的通讯框架,其特征在于,所述日志化模块用于将相关日志信息存储在后台程序和/或本地电脑中,以便于查找相关日志信息用于追溯和分析。
5.根据权利要求1所述的机器人与终端设备的软件的通讯框架,其特征在于,所述队列模块的操作原则为先进先出。
6.根据权利要求5所述的机器人与终端设备的软件的通讯框架,其特征在于,所述中间层的多线程模块能够在只有一个硬件通道的条件下虚拟出多个通讯通道。
7.根据权利要求6所述的机器人与终端设备的软件的通讯框架,其特征在于,所述多个通讯通道分别与所述队列模块的各队列相对应。
8.根据权利要求1所述的机器人与终端设备的软件的通讯框架,其特征在于,所述应用层、中间层和硬件层之间的通讯具体包括以下步骤:
A.开启通讯;
B.对硬件层进行初始化处理;
C.判断硬件接口是否有数据,若硬件接口有数据,则接受数据,并将数据放入中间层中的接受队列,并将数据传送至应用层;若硬件接口没有数据,则跳转至应用层;
D.判断应用层是否有数据,若应用层有数据,则经中间层中的发送队列取出数据,并将数据传送至硬件接口;若应用层没有数据,则跳转至步骤E;
E.判断通讯是否完成,若通讯完成,则终止通讯,若通讯没有完成,则跳转至步骤B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711285576.7A CN107942753B (zh) | 2017-12-07 | 2017-12-07 | 机器人与终端设备的软件的通讯框架和通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711285576.7A CN107942753B (zh) | 2017-12-07 | 2017-12-07 | 机器人与终端设备的软件的通讯框架和通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107942753A CN107942753A (zh) | 2018-04-20 |
CN107942753B true CN107942753B (zh) | 2020-08-25 |
Family
ID=61946079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711285576.7A Active CN107942753B (zh) | 2017-12-07 | 2017-12-07 | 机器人与终端设备的软件的通讯框架和通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107942753B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061259A (zh) * | 2018-10-15 | 2020-04-24 | 上海肇观电子科技有限公司 | 行走机器人的事件化驱动方法、系统、设备及存储介质 |
CN112445728B (zh) * | 2020-11-30 | 2023-07-21 | 中科院软件研究所南京软件技术研究院 | 一种支持多种硬件接口的机器人开发板ros通讯系统 |
CN113954104B (zh) * | 2021-12-23 | 2022-04-01 | 辰星(天津)自动化设备有限公司 | 并联机器人的多线程控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087592A (zh) * | 2009-12-08 | 2011-06-08 | J.移动公司 | 用于执行机器人应用程序的终端装置 |
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法和监视系统 |
CN103077140A (zh) * | 2013-02-05 | 2013-05-01 | 北京配天大富精密机械有限公司 | 一种机器人运动控制卡与上位机的通信方法及通信装置 |
CN103522290A (zh) * | 2013-10-14 | 2014-01-22 | 上海胖熊信息技术有限公司 | 基于现场总线的分布式机器人控制系统 |
CN103810072A (zh) * | 2012-11-09 | 2014-05-21 | 上海飞田通信技术有限公司 | 保障多线程任务有序执行的装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131073A (zh) * | 2016-08-29 | 2016-11-16 | 武汉精伦电气有限公司 | 一种适用于多应用场景的通信框架和通信方法 |
-
2017
- 2017-12-07 CN CN201711285576.7A patent/CN107942753B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087592A (zh) * | 2009-12-08 | 2011-06-08 | J.移动公司 | 用于执行机器人应用程序的终端装置 |
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法和监视系统 |
CN103810072A (zh) * | 2012-11-09 | 2014-05-21 | 上海飞田通信技术有限公司 | 保障多线程任务有序执行的装置及方法 |
CN103077140A (zh) * | 2013-02-05 | 2013-05-01 | 北京配天大富精密机械有限公司 | 一种机器人运动控制卡与上位机的通信方法及通信装置 |
CN103522290A (zh) * | 2013-10-14 | 2014-01-22 | 上海胖熊信息技术有限公司 | 基于现场总线的分布式机器人控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107942753A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107942753B (zh) | 机器人与终端设备的软件的通讯框架和通讯方法 | |
CN110427252A (zh) | 基于任务依赖关系的任务调度方法、装置及存储介质 | |
CN107220892B (zh) | 一种应用于海量p2p网贷金融数据智能预处理工具及方法 | |
CN104239144A (zh) | 一种多级分布式任务处理系统 | |
CN103545917A (zh) | 一种调度自动化子站仿真系统 | |
CN107666415A (zh) | Fc‑ae‑1553 协议桥的优化方法和装置 | |
CN110350655A (zh) | 一种配网操作票程序化下令系统 | |
CN100407663C (zh) | 一种电信智能业务的通用测试系统及方法 | |
CN108908342A (zh) | 变电站巡检机器人与调度系统业务操作联动系统及方法 | |
KR102460039B1 (ko) | 인간-기계 상호작용의 대기시간을 줄이는 방법, 기기 및 저장매체 | |
CN108536527A (zh) | 一种嵌入式软件的任务调度方法及装置 | |
CN105550103B (zh) | 一种基于自定义测试脚本的自动化测试方法 | |
CN109992432A (zh) | 一种基于消息队列的数据处理系统及方法 | |
CN213213488U (zh) | 自动化测试系统 | |
CN108509257B (zh) | 一种基于多线程的消息处理方法及装置 | |
CN102799526A (zh) | 一种分布式智能调度方法 | |
CN115056234B (zh) | 基于事件驱动和无限状态机的rpa控制器调度方法及系统 | |
CN112633850A (zh) | 通过管理调用及监控rpa机器人实现业务流程自动化的方法 | |
KR20220057146A (ko) | 스마트 팩토리에 적용 가능한 IoT 시계열 데이터의 온디바이스 고속 이벤트 복합 분석 및 동기화 방법 및 이를 수행하는 시스템 | |
CN103164776B (zh) | 一种药品追溯系统及其药品追溯方法和流程监控方法 | |
CN109917776A (zh) | 风力发电机组的故障智能分析方法及装置 | |
CN109165145A (zh) | 一种应用程序的使用情况统计方法及装置 | |
CN111930645B (zh) | 一种基于tcpip的通用usb设备网络透传系统及方法 | |
CN104122862A (zh) | 一种无主控生产线连接系统及方法 | |
CN114064397A (zh) | 一种异构数据源同步质量监控方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |