CN114690702B - 一种软plc和运动控制相结合的机器人控制*** - Google Patents
一种软plc和运动控制相结合的机器人控制*** Download PDFInfo
- Publication number
- CN114690702B CN114690702B CN202210618926.1A CN202210618926A CN114690702B CN 114690702 B CN114690702 B CN 114690702B CN 202210618926 A CN202210618926 A CN 202210618926A CN 114690702 B CN114690702 B CN 114690702B
- Authority
- CN
- China
- Prior art keywords
- shared memory
- control unit
- plc
- motion control
- control
- 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
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1105—I-O
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Manipulator (AREA)
Abstract
本申请涉及一种软PLC和运动控制相结合的机器人控制***,属于机器人技术领域,本申请的***包括,运动控制单元和PLC控制单元;所述运动控制单元和所述PLC控制单元基于共享内存机制,实现设备模块与被控设备之间的设备信息及控制信息的交互;其中,所述设备信息及控制信息交互包括:从外部获取被控设备的设备信息,根据所述设备信息进行控制任务的处理,并将处理结果输出给被控设备。本申请的技术方案具体基于共享内存机制,实现PLC控制部分与运动控制部分之间的通信交互,有利于满足应用中对机器人控制***的实时性要求。
Description
技术领域
本申请属于机器人技术领域,具体涉及一种软PLC和运动控制相结合的机器人控制***。
背景技术
机器人控制***中,运动控制的开发实现主要由C++等高级程序语言完成,运动控制为串行逻辑,不适合处理复杂并行逻辑交互的问题;而相关技术中,PLC的逻辑控制为周期扫描逻辑,适合并行逻辑交互。因此在机器人控制的相关技术中,发展出了将PLC技术与运动控制相结合的相关实现技术方案。
现有技术中,该类技术方案的实现方式主要有两种,一是将运动控制和PLC分别放置于独立的硬件平台上实现,再将两个独立的硬件平台通过有线通讯连接,该种方式的带来了额外的硬件成本(需配置相关硬件),同时也无法在机器人控制***这样一个对实时性要求很高的***中保证实时性;另一种是通过将一部分逻辑挪到另一部分上运行,例如在软PLC上写运动控制逻辑,此类型方案由于运动控制和PLC基于不同的逻辑,导致在实际机器人控制中不能保证机器人运动过程的连续性。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种软PLC和运动控制相结合的机器人控制***,具体基于共享内存机制,实现***中PLC控制部分和运动控制部分的信息交互,以在兼顾两种控制逻辑情况下,满足应用中对机器人控制***的实时性要求。
为实现以上目的,本申请采用如下技术方案:
第一方面,
本申请提供一种软PLC和运动控制相结合的机器人控制***,该***包括:运动控制单元和PLC控制单元;
所述运动控制单元和所述PLC控制单元基于共享内存机制,实现设备模块与被控设备之间的设备信息及控制信息的交互;
其中,所述设备信息及控制信息交互包括:从外部获取被控设备的设备信息,根据所述设备信息进行控制任务的处理,并将处理结果输出给被控设备。
可选地,所述从外部获取被控设备的设备信息的过程,包括:
被控设备将包含有设备信息的输入数据包写入第一共享内存;
所述运动控制单元从所述第一共享内存中读取所述输入数据包,所述PLC控制单元使用第二共享内存从所述第一共享内存中复制一份所述输入数据包,以从所述第二共享内存中读取所述输入数据包。
可选地,所述根据所述设备信息进行控制任务的处理,并将处理结果输出给被控设备的过程,包括:
基于所述输入数据包,所述运动控制单元根据控制要求进行控制数据处理,完成相应控制任务后将包含完成任务标识信息的标识数据包写入所述第二共享内存,并通知所述PLC控制单元;
所述PLC控制单元根据所述运动控制单元的通知,对所述第二共享内存中的所述输入数据包和所述标识数据包进行对比处理,排除所述运动控制单元已完成的控制任务,基于所述输入数据包对剩余控制任务进行处理,并将完成任务后得到的PLC处理结果数据写入第三共享内存,并通知所述运动控制单元;
所述运动控制单元根据所述PLC控制单元的通知,从所述第三共享内存中读取所述PLC处理结果数据,并将所述PLC处理结果数据与自身完成控制任务所得到的运动控制处理结果数据进行整合处理,将整合处理后的最终结果数据写入第四共享内存,以使所述被控设备从所述第四共享内存中读取所述最终结果数据,进行动作执行。
可选地,所述剩余控制任务中包含由PLC控制单元直接控制被控设备的直接任务;
针对所述直接任务,基于所述输入数据包,所述PLC控制单元对所述直接任务进行处理,并将完成任务后得到的直接处理结果数据写入所述第四共享内存,以使所述被控设备从所述第四共享内存读取所述直接处理结果数据,进行动作执行。
可选地,所述控制***通过现场总线***与所述被控设备进行通信交互;
所述第一共享内存和所述第四共享内存分别对应映射为现场总线共享内存中的指定区域;
所述第二共享内存和所述第三共享内存分别对应映射为控制***创建的虚拟共享内存中的指定区域。
可选地,所述现场总线***基于EtherCAT总线技术实现。
可选地,所述PLC控制单元基于Beremiz软件架构实现。
可选地,所述共享内存机制中,基于信号量方式实现同步互斥机制。
可选地,所述运动控制单元和所述PLC控制单元还基于共享内存机制,实现***的状态模块、控制模块、IO模块、变量模块所涉及的信息交互。
本申请采用以上技术方案,至少具备以下有益效果:
本申请的技术方案中,实现了运动控制和软PLC***在同一***上共同运行,使控制***结合了软PLC和运动控制的优点;且具体基于共享内存机制,实现两者进程间的通信交互,有利于满足应用中对机器人控制***的实时性要求。
本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。
附图说明
附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
图1为本申请技术方案中软PLC和运动控制结合的整体模型示意说明图;
图2为本申请技术方案中共享内存的原理实现示意说明图;
图3为本申请技术方案中共享内存在***维度的组成示意说明图;
图4a为本申请技术方案中信号量方式中读取共享内存时的实现流程示意图;
图4b为本申请技术方案中信号量方式中写入共享内存时的实现流程示意图;
图5为本申请一实施例中共享内存初始化的流程示意图;
图6为本申请技术方案中共享内存在数据交互维度的说明示意图;
图7为本申请技术方案中PLC控制单元和运动控制单元实现联合控制的示意说明图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
为便于理解本申请的技术方案,下面先对本申请中涉及的一些相关技术进行一下介绍。
PLC:
PLC的实现分为硬PLC与软PLC。硬PLC就是由硬件或者一块专用的ASIC芯片来实现PLC指令的执行;而软PLC的技术范畴中,其开发***实际上就是带有调试和编译功能的PLC编程器,其利用了PC平台上的硬件和软件资源,使控制***更具特色。软PLC一般由一些通用的CPU(X86架构)或者MCU来实现PLC指令的解释或者编译执行,是一种基于PC机开发结构的控制***,同样具有硬PLC的功能性、可靠性、处理速度、故障查找等方面的特点,而X86架构具有速度快,单条指令功能强大,指令数相对较少,带宽要求低,指令数相对较少,即使高频率运行也不需要很大的带宽向CPU传输指令。
软PLC综合了计算机和PLC的开关量控制,模拟量控制,数学运算,数值处理,网络通信、PID调节等功能,其通过一个多任务控制内核,提供强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各种I/O***的及网络的开放式结构。软PLC提供了与硬PLC同样的功能,同时又提供了PC环境的各种优点。然而软PLC对机器人运动的过程的连续性逻辑不友好。软PLC的通信实现基础为周期性扫描,更为适合并行逻辑交互,而机器人的运动控制为串行逻辑,完成上一步再去执行下一步,从而导致软PLC对机器人运动控制的连续性不友好。
运动控制:
相关技术中,已有很多商业机器人实时操作***,比如QNX,VxWorks、LynxOS,VRTX等,这些***的优点是具有很好的兼容性,可靠性和实时性。然而,受限于各自的专利保护,多数商业***如VxWorks一般价格昂贵且互不兼容。与以上***不同,通用公共授权协议下的Linux操作***具有自己的一系列优势,在当今的嵌入式应用领域受到很多的青睐。随着计算机硬件设备的不断更新,Linux操作***不断演进,从最初的对Intel386的支持,扩展到各种不同的平台上,对各种平台具有良好的兼容性。由于Linux 内核本身的实现方式和复杂度,使得Linux 本身不能使用于强实时应用。Xenomai作为一个自由软件项目,完全遵循GNU/Linux自由软件协议。Xenomai是一种采用双内核机制的Linux内核的强实时扩展,优先级高于Linux内核,负责处理***的实时任务。由于现有机器人控制***实时性差,导致机器运动与信号采集的不同步,易造成生产上的不连续。本申请的技术方案中,机器人控制***整体上使用Xenomai与Linux结合的方案。
基于以上相关所述, 可知PLC采用定时顺序扫描的逻辑,对复杂的I/O逻辑有着显著的优势,但是不适合处理串行逻辑。在机器人领域,运动逻辑是串行逻辑,并且具有一定的时间持续性。除此之外,在运动轨迹规划模块需要一定的前瞻性,因此仅使用PLC不易实现。若仅使用运动逻辑,则对于复杂的I/O并发逻辑不易实现。
因此,基于以上相关技术,结合背景技术中所提到的本领域现有技术,申请人研究认为在软PLC和运动控制结合的方式上,若采用软PLC和运动控制在同一***中结合的方式,由于他们分属不同的进程,如何实现快速的IPC(进程间通讯)是技术方案有效实现的关键。
常见IPC(Inter Process Communication)包括FIFO方式、消息队列方式、共享内存方式等,其中共享内存方式,只需要从输入文件到共享内存区, 从共享内存区输出到文件,在整个共享内存的通信过程中,不涉及到内核的拷贝,是最快的进程间通讯方式。
因此,为将软PLC与X86进行有效地结合,实现既可以解决复杂的I/O逻辑,又能保证机器人运动逻辑的串行性。本申请技术方案在运动控制与软PLC结合的实现中,利用软PLC开放的构建能力,将软PLC移植到运动控制平台上,而针对两者的信息交互问题,引入共享内存机制,从而更好实现了一种软PLC与运动控制结合的机器人控制***。
本申请中的机器人控制***,是一套基于X86平台开发的用于控制机器人运动的控制***。利用软PLC开放的基础特性,同时充分发挥了现有硬件平台的计算能力。
图1所示,为本申请技术方案中,软PLC和运动控制结合的整体模型示意说明图。
如图1所示,图中运动控制单元1和PLC控制单元3为本申请的机器人控制***的主要部分;
容易理解的是,这里的运动控制单元1,在实现中是将运动控制与逻辑控制相结合,整合了一整套控制器所需的指令集,涉及机器人运动过程中的坐标转换、变量与指令、指令叠加、物体处理、多线程调用,并提供了与软PLC结合的接口,保证与复杂I/O的对接的稳定性;
图1中的守护进程2,是用于实现机器人配置过程中对文件的读写,以及实现运动指令执行时的安全稳定性监控,并能够死机重唤,以及用于实现各个进程之间的交互,如使***中PLC与运动控制之间进行通讯,完成复杂的机器人控制,该守护进程2与现有技术中PLC与运动控制结合的相关***实现中类似,本申请对此不进行详述;
图1中PLC控制单元3,是通过共享内存4与运动控制部分进行交互的,提供与复杂I/O***的对接、周期性的扫描的并发逻辑,补充了机器人运行程序的缺点,而基于具体的应用需求,PLC部分也支持直接与现场总线协议5进行数据交互,达到直接控制受控设备的需求;
图1中所示的共享内存4表示一种实现机制,通过现场总线协议5与外部硬件交互;现场总线协议5,用于实现***与外部(相对于控制***)的通信交互,例如具体采用EtherCAT等总线协议;设备6,指受控的硬件实体设备。
本申请的技术方案中,PLC控制单元是一个虚拟软件实体,与硬PLC功能一致,但不直接与硬件交互,而是通过共享内存与运动控制之间交互,再将指令通过现场总线协议与硬件交互,具体有以下几个过程:
运动控制处理过程:设备信息传递到共享内存中,运动控制读取设备信息并根据预设场景进行指令转化,并将目标位置参数周期性的写入到共享内存中,通过现场总线协议发送到设备驱动器控制机器人运行;
软PLC处理过程:设备运行过程的返回信号通过现场总线协议通信发送到共享内存中,软PLC***处理这些信号进行格式转化暂存在共享内存中,方便运动控制随时调用;
设备交互过程:运动控制提供一部分需要交互的变量,分享在共享内存中,PLC通过控制共享内存,实现对实际硬件的间接控制,如增加传感器控制;
此外,为了更方便用户去编写工业控制程序,在实际***的实现中,本申请技术方案中软PLC部分可提供多语言的编程环境,如IEC61131-3支持的语言,Python语言和C语言等。
为理解本申请的技术方案,下面再对本申请中涉及到的共享内存相应技术内容进行一下介绍:
从实现功能来说,共享内存可使得多个进程访问同一块内存空间,是一种进程间通信方式;换言之,共享内存允许两个不相关的进程访问同一个逻辑内存,这种方式,是实现两个正在运行的进程之间共享和传递数据的一种非常有效的方式,一般来讲,不同进程之间的共享内存通常为同一段物理内存。
共享内存存在于***内核上,在Linux中,如图2所示,每个进程都有属于自己的进程控制块(PCB)和地址空间,并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一区域,它们所指向的这块区域即共享内存。
本申请的技术方案中,软PLC和运动控制的结合,是将两个原本互不相干的***,通过对一块内存的调用,放在一起运行,从而在功能实现上既解决了PLC不易于写运动控制逻辑的问题,又解决了机器人不适合写复杂逻辑交互的问题,且相比现有技术有更好的实时性能。
本申请的技术方案中,基于开发成本考虑,软PLC部分(图1中PLC控制单元)是基于开源的Beremiz软件架构实现的,Beremiz软件通过解析设备描述文件,将设备描述文件中的变量显示在软件界面上。在开辟出的共享内存中,为设备描述文件中解析出的每个数据类型分配内存地址,编程时调用的每种数据类型都有特定的地址,基于Beremiz软件架构的特性,本申请***中PLC部分支持多种编程语言实现PLC的逻辑。当然容易理解的是,基于本申请的技术思路,***中PLC控制部分也可采用其他方式来具体实现。
本申请的技术方案中,机器人控制***在***功能维度上可分为状态模块、控制模块、IO模块、变量模块和设备模块,基于此维度相应的共享内存分为五大部分(如图3所示),供控制***五大模块进行使用,其中各部分又可分为输入共享内存和输出共享内存,分别用于写入数据和读取数据(图3中input:对共享内存而言,指某一模块的输入共享内存,output:对共享内存而言,指某一模块的输出共享内存);
换言之,写入数据时,相应模块向本模块所对应的输出共享内存模块中写入数据,供其他模块进行读取,作为其他模块的输入;为了保证每个模块读取数据的完整性,共享内存对应部分中只要有一个模块在写入数据时,将被锁定信号量(指信号量方式实现同步互斥机制),使其不可读取。同样,共享内存对应部分中只要有一个模块在读取,则其他模块不可写入。
这里再对上文提到的同步互斥机制进行一下介绍,信息量方式属于进程间通信的相关技术。本申请技术方案中的共享内存机制中,具体基于信号量方式实现同步互斥机制;
具体的,如上文所述共享内存存在于每个进程的进程地址空间中,通过地址空间和页表机制映射为同一块物理内存,因此,它属于每个进程,由于它并不需要***调用干预和数据复制,它的效率是非常高的。但是,共享内存本身是不提供同步互斥机制的,即在共享内存的使用机制下,会存在运动控制和软PLC***同时对共享内存进行操作;
因此需要加入一种同步互斥机制:同步,即在共享内存上为完成某个任务,进程和多线程之间形成一种协调,按照约定或条件依次执行操作共享内存,相互告知共享内存使用情况;互斥是一种制约关系,当一个进程或者线程进入操作共享内存的代码段会进行加锁的操作,此时其他进程(线程)再企图使用共享内存时就会阻塞,直到资源被释放才能使用。
如图4a和图4b所示,分别对应展示了软PLC和运动控制读取共享内存时的流程,以及软PLC和运动控制写入共享内存时的流程;
图4a,图4b中,Input信号量为输入信号量,Output信号量为输入信号量。Input/Output信号量存在于机器人控制***中,在软PLC或运动控制要进行读写时,分别申请对应信号量,根据其互斥特性,申请成功后锁定信号量。具体而言,Input/Output信号量等于1时,共享内存为全局属性,软PLC或运动控制才能发送读写请求;Input/Output信号量等于0时,为局部属性,软PLC或运动控制已经申请功能内存成功,此时锁定Input/Output信号量,再进行读写操作,举例而言,实现原理如下:
步骤1:运动控制申请Input信号量,此时Input信号量等于0,则说明共享内存被占用;进入步骤5。
步骤2:若此时Input信号量等于1,则可以申请共享内存,申请成功后,Input信号量减1,进行读共享内存操作;进步骤3。
步骤3:释放Input信号量,Input信号量加1;进步骤4。
步骤4:若此时Input信号量不等于0,进步骤3。否则,进入步骤5。
步骤5:结束此次请求,等待下一次请求。
采用上述方式,针对软PLC和运动控制同时读写同一块共享内存可能导致崩溃的问题,本申请中在软PLC和运动控制读取和写入共享内存时,利用信号量来防止PLC和运动控制同时对同一块共享内存存在操作,从而实现了同步互斥机制。
此外,关于共享内存的使用,本申请技术方案中,在使用前都必须进行如图5所示的初始化流程。如图5所示,初始化执行过程如下:
第一步:PLC或运动控制打开Input共享内存,(此处的Input共享内存是基于每个需要使用共享内存的模块来说的),设置Input共享内存空间大小,链接地址空间
第二步:PLC或运动控制打开Output共享内存,(此处的Output共享内存是基于每个需要使用共享内存的模块来说的),设置Output共享内存空间大小,链接地址空间。
第三步:判断此时是否存在实时共享内存。
第四步:如果此时存在实时共享内存,则直接使用现有实时共享内存。如果此时不存在实时共享内存,则创建实时共享内存。
关于本申请中的共享内存机制,这里再从数据交互维度对其进行一下介绍。在软PLC和运动控制利用实时共享内存进行数据交互的过程中,需要在创建的实时共享内存空间上开辟两小块共享内存空间,分别命名为Output实时共享内存空间和Input实时共享内存空间;此处的Input和Output是针对机器人控制***来讲的,软PLC和运动控制利用实时共享内存进行数据交互的过程示意如图6所示,整个软PLC和运动控制利用实时共享内存进行数据交互遵循以下流程:
第一步:运动控制将数据写入缓存区1,缓存区1等待机器人控制***时钟信号触发,机器人控制***将缓存区1内容写入Output共享内存。
第二步:机器人控制***控制着缓存区2从Output共享内存中读入运动控制所写数据,缓存区2等待机器人控制***的时钟信号触发,软PLC周期性的缓存区2内容读入,再进行处理。
第三步:软PLC将处理后的结果写入缓存区3,缓存区3等待机器人控制***时钟信号触发,机器人控制***将缓存区3内容写入Input共享内存。
第四步:机器人控制***控制着缓存区4周期性的读Input共享内存中的数据,缓存区4等待机器人控制***时钟信号触发,运动控制在周期性的读入缓存区4的数据,再进行处理。
第五步:运动控制根据传来的数据进行运动控制,然后继续往Output共享内存中写入数据,续接第一步,从而实现循环。
基于上述对共享内存相关技术内容的介绍,最后再结合一实施例对本申请要保护的技术方案进行进一步说明。
如图7所示,在一实施例中,本申请提出的软PLC和运动控制相结合的机器人控制***,包括:运动控制单元和PLC控制单元;
运动控制单元和PLC控制单元基于共享内存机制,实现设备模块(这里以设备模块为例进行说明)与被控设备之间的设备信息及控制信息的交互;其中,设备信息及控制信息交互包括:从外部获取被控设备的设备信息,根据所述设备信息进行控制任务的处理,并将处理结果输出给被控设备。
具体的,如图7所示,从外部获取被控设备的设备信息的过程,包括:
第一步,被控设备将包含有设备信息的输入数据包写入第一共享内存(图7中共享内存1);
第二步,运动控制单元从第一共享内存中读取输入数据包,PLC控制单元使用第二共享内存(图7中共享内存2)从第一共享内存中复制一份输入数据包,以从第二共享内存中读取输入数据包;
进而,在该实施例中,根据设备信息进行控制任务的处理,并将处理结果输出给被控设备的过程,包括:
第三步,基于输入数据包,运动控制单元根据控制要求进行控制数据处理,完成相应控制任务后将包含完成任务标识信息的标识数据包写入第二共享内存,并通知PLC控制单元(图7中通知PLC处理),并等待PLC部分控制任务的完成;
第四步,PLC控制单元根据运动控制单元的通知,对第二共享内存中的输入数据包(前文中复制的)和标识数据包进行对比处理,排除运动控制单元已完成的控制任务,基于输入数据包对剩余控制任务进行处理,并将完成任务后得到的PLC处理结果数据写入第三共享内存(图7中共享内存3),并通知运动控制单元;
第五步,运动控制单元根据PLC控制单元的通知,从第三共享内存中读取PLC处理结果数据,并将PLC处理结果数据(图7中PLC处理结果)与自身完成控制任务所得到的运动控制处理结果数据(图7中运动控制处理结果)进行整合处理,将整合处理后的最终结果数据写入第四共享内存(图7中共享内存4),以使被控设备从第四共享内存中读取所述最终结果数据,进行动作执行。
作为一种具体的实施方式,在第四步中,若剩余控制任务中包含由PLC控制单元直接控制被控设备的直接任务;
则针对所述直接任务,基于输入数据包, PLC控制单元对直接任务进行处理,并将完成任务后得到的直接处理结果数据写入第四共享内存,以使被控设备从所述第四共享内存读取直接处理结果数据,进行动作执行,即实现PLC直接更改设备运行情况。
作为一种具体的实施方式,在一些应用场景中,只需运动控制单元进行控制任务的处理,该种情况下,***的控制实现过程与现有只有运动控制的机器人控制***类似,这里仅进行一下简要说明,该过程为:
在上述第一步后,运动控制单元从第一共享内存中读取输入数据包,基于输入数据包,运动控制单元根据控制要求进行控制数据处理,完成控制任务后将运动控制处理结果数据直接写入第四共享内存,以使被控设备从第四共享内存中读取该处理结果数据,进行动作执行。
此外,容易理解的是,上述所介绍的控制过程实现仅是控制实现循环中的一次循环过程,在被控设备将新的设备相关信息再次写入第一共享内存中时(过程中的第一步),重复上述过程(即继续第一步之后的后续步骤),形成控制循环。
作为一种具体的实施方式,该实施例中,控制***通过现场总线***与被控设备进行通信交互,举例而言,这里的现场总线***基于EtherCAT总线技术实现;如图7所示,第一共享内存和第四共享内存分别映射为现场总线共享内存(图7中EtherCAT共享内存)中的指定区域;
而第二共享内存和第三共享内存分别映射为控制***创建的虚拟共享内存中的指定区域。
此外需要说明是,本申请中,运动控制单元和PLC控制单元还基于共享内存机制,实现状态模块、控制模块、IO模块、变量模块所涉及的信息交互,这些信息交互实现与上述共享内存机制在设备模块中的应用实现大体类似(实际需进行适应性调整),本申请对此就不进行重复介绍说明了。
本申请的技术方案具有如下优点:
1、基于软PLC和运动控制共享内存的机制,通过软PLC弥补了运动控制对复杂逻辑交互相应逻辑、实际I/O接口响应逻辑的不足,通过运动控制弥补了软PLC***对运动前瞻性、持续性控制的不足,换言之,这种软PLC和运动控制相结合的机器人控制***,分别结合了软PLC和运动控制的优点;
2、通过使用最快速的进程间通讯方式,共享内存实现两个进程间的通信,有助于提高整体***的实时性能;
3、针对共享内存本身的不足,即存在多个进程同时向同一块共享内存发出了读写请求,从而导致***出现崩溃的问题,具体采用信号量方式实现了一种同步互斥机制,有效保证***稳定性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种软PLC和运动控制相结合的机器人控制***,其特征在于,包括:运动控制单元和PLC控制单元;
所述运动控制单元和所述PLC控制单元基于共享内存机制,实现设备模块与被控设备之间的设备信息及控制信息的交互;
其中,所述设备信息及控制信息交互包括:从外部获取被控设备的设备信息,根据所述设备信息进行控制任务的处理,并将处理结果输出给被控设备;
所述从外部获取被控设备的设备信息的过程,包括:
被控设备将包含有设备信息的输入数据包写入第一共享内存;
所述运动控制单元从所述第一共享内存中读取所述输入数据包,所述PLC控制单元使用第二共享内存从所述第一共享内存中复制一份所述输入数据包,以从所述第二共享内存中读取所述输入数据包;
所述根据所述设备信息进行控制任务的处理,并将处理结果输出给被控设备的过程,包括:
基于所述输入数据包,所述运动控制单元根据控制要求进行控制数据处理,完成相应控制任务后将包含完成任务标识信息的标识数据包写入所述第二共享内存,并通知所述PLC控制单元;
所述PLC控制单元根据所述运动控制单元的通知,对所述第二共享内存中的所述输入数据包和所述标识数据包进行对比处理,排除所述运动控制单元已完成的控制任务,基于所述输入数据包对剩余控制任务进行处理,并将完成任务后得到的PLC处理结果数据写入第三共享内存,并通知所述运动控制单元;
所述运动控制单元根据所述PLC控制单元的通知,从所述第三共享内存中读取所述PLC处理结果数据,并将所述PLC处理结果数据与自身完成控制任务所得到的运动控制处理结果数据进行整合处理,将整合处理后的最终结果数据写入第四共享内存,以使所述被控设备从所述第四共享内存中读取所述最终结果数据,进行动作执行。
2.根据权利要求1所述的机器人控制***,其特征在于,所述剩余控制任务中包含由PLC控制单元直接控制被控设备的直接任务;
针对所述直接任务,基于所述输入数据包,所述PLC控制单元对所述直接任务进行处理,并将完成任务后得到的直接处理结果数据写入所述第四共享内存,以使所述被控设备从所述第四共享内存读取所述直接处理结果数据,进行动作执行。
3.根据权利要求1所述的机器人控制***,其特征在于,所述控制***通过现场总线***与所述被控设备进行通信交互;
所述第一共享内存和所述第四共享内存分别对应映射为现场总线共享内存中的指定区域;
所述第二共享内存和所述第三共享内存分别对应映射为控制***创建的虚拟共享内存中的指定区域。
4.根据权利要求3所述的机器人控制***,其特征在于,所述现场总线***基于EtherCAT总线技术实现。
5.根据权利要求1至4中任一项所述的机器人控制***,其特征在于,所述PLC控制单元基于Beremiz软件架构实现。
6.根据权利要求1至4中任一项所述的机器人控制***,其特征在于,所述共享内存机制中,基于信号量方式实现同步互斥机制。
7.根据权利要求1至4中任一项所述的机器人控制***,其特征在于,所述运动控制单元和所述PLC控制单元还基于共享内存机制,实现***的状态模块、控制模块、IO模块、变量模块所涉及的信息交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210618926.1A CN114690702B (zh) | 2022-06-02 | 2022-06-02 | 一种软plc和运动控制相结合的机器人控制*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210618926.1A CN114690702B (zh) | 2022-06-02 | 2022-06-02 | 一种软plc和运动控制相结合的机器人控制*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114690702A CN114690702A (zh) | 2022-07-01 |
CN114690702B true CN114690702B (zh) | 2022-08-23 |
Family
ID=82131271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210618926.1A Active CN114690702B (zh) | 2022-06-02 | 2022-06-02 | 一种软plc和运动控制相结合的机器人控制*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114690702B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136343A (zh) * | 2013-02-05 | 2013-06-05 | 中国科学院上海微***与信息技术研究所 | 一种共享资源实时交互方法 |
WO2014110749A1 (en) * | 2013-01-17 | 2014-07-24 | Abb Technology Ltd. | Robot control system and method thereof |
CA2901619A1 (en) * | 2015-08-26 | 2015-10-21 | Ultralight Technologies Inc. | Monitoring alignment of computer file states across a group of users |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168092A1 (en) * | 2007-01-10 | 2008-07-10 | General Electric Company | Systems and methods for turbine control simulation |
-
2022
- 2022-06-02 CN CN202210618926.1A patent/CN114690702B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014110749A1 (en) * | 2013-01-17 | 2014-07-24 | Abb Technology Ltd. | Robot control system and method thereof |
CN103136343A (zh) * | 2013-02-05 | 2013-06-05 | 中国科学院上海微***与信息技术研究所 | 一种共享资源实时交互方法 |
CA2901619A1 (en) * | 2015-08-26 | 2015-10-21 | Ultralight Technologies Inc. | Monitoring alignment of computer file states across a group of users |
Non-Patent Citations (1)
Title |
---|
工业机器人控制器实时多任务软件设计与实现;姚舜等;《工业控制计算机》;20170325(第03期);P1-P3 * |
Also Published As
Publication number | Publication date |
---|---|
CN114690702A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Balasubramanian et al. | An architecture for metamorphic control of holonic manufacturing systems | |
US20070168082A1 (en) | Task-based robot control system for multi-tasking | |
US4922413A (en) | Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data | |
JPH0236969B2 (zh) | ||
JPS61256406A (ja) | 制御装置 | |
CN111427310A (zh) | 一种工业机器人控制器运行*** | |
JP6945646B2 (ja) | 産業用プログラマブルロジックコントローラの、回復力を有しているフェイルオーバー | |
US7669002B1 (en) | System and method for providing an application with memory access methods | |
US9152454B2 (en) | Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device | |
Bruzzone et al. | Standard Linux for embedded real-time robotics and manufacturing control systems | |
CN114690702B (zh) | 一种软plc和运动控制相结合的机器人控制*** | |
US11106395B2 (en) | Application execution apparatus and application execution method | |
WO2012069831A1 (en) | Method and arrangement for a multi-core system | |
US6418540B1 (en) | State transfer with throw-away thread | |
CN115470012A (zh) | 创建工业应用程序的事件驱动执行模型的运行时环境和方法 | |
Pinto et al. | Porting SLOTH system to freeRTOS running on ARM Cortex-M3 | |
US20160034291A1 (en) | System on a chip and method for a controller supported virtual machine monitor | |
EP4296856A1 (en) | Computer system and method for executing an automotive customer function | |
JP5849731B2 (ja) | 情報処理装置及びデータ格納方法 | |
CN112802527B (zh) | 嵌入式闪存高速编程的实现方法、嵌入式闪存的编程*** | |
Balasubramanian | A metamorphic control architecture for holonic systems. | |
JP3081341B2 (ja) | 知能型リアルタイムコントロ−ラ、機能分散階層型リアルタイムコントローラ、均質階層型リアルタイムコントローラ、複合型リアルタイムコントローラ | |
Colnaric | State of the art review paper: advances in embedded hard real-time systems design | |
JPH0687221B2 (ja) | 情報処理装置 | |
Van Campenhout et al. | A concurrent high-level language based real-time controller |
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 |