首页> 中国专利> 运动控制程序、运动控制方法以及运动控制装置

运动控制程序、运动控制方法以及运动控制装置

摘要

本发明提供一种运动控制程序,使计算机发挥如下功能:非实时OS上的接收部从控制多个控制对象装置的用户创建程序接收控制指令,将表示接收的控制指令的内容的控制指令信息通知给控制部,实时OS上的控制部基于由接收部通知的控制指令信息,针对每个运动控制循环反复生成每个控制对象装置的插值指令,并将生成的插值指令存储在针对每个控制对象装置确保的存储器区域,实时OS上的通信模块部从针对每个控制对象装置确保的存储器区域获取插值指令,并将获取到的插值指令从控制部能够识别的规定的信号格式转换成多个控制对象装置的各个控制对象装置能够识别的通信接口规格的信号格式并发送。

著录项

  • 公开/公告号CN112219173A

    专利类型发明专利

  • 公开/公告日2021-01-12

    原文格式PDF

  • 申请/专利权人 软件伺服系统公司;

    申请/专利号CN201880093632.3

  • 发明设计人 潘子圆;金润;梁富好;

    申请日2018-06-22

  • 分类号G05B19/04(20060101);

  • 代理机构11313 北京市铸成律师事务所;

  • 代理人王艳波;林军

  • 地址 日本东京

  • 入库时间 2023-06-19 09:30:39

说明书

技术领域

本发明涉及运动控制程序、运动控制方法以及运动控制装置。

背景技术

在机器人以及FA(工厂自动化)等领域,要求传送带的位置、机器臂的位置按照意图运行。为了进行这种运行,需要将伺服电动机、步进电动机等多个控制对象装置高精度同步并进行控制。这样,将多个控制对象装置高精度同步并进行控制的装置称为运动控制器、运动控制装置等。例如,专利文献1中公开了能够廉价地利用简单、低速的通信并实现顺畅控制的运动控制用指令系统。

现有技术文献

专利文献

专利文献1:日本特开2010-170435号公報

通常,运动控制器要求高精度的实时性能,因此,作为专用于运动控制的专用硬件提供。由于作为专用硬件提供,因此,能够确保所需的实时性能,但是另一方面,存在价格较高、依赖于控制对象装置及其通信协议的结构、以及通用性欠缺的缺点。

另一方面,作为通用的信息处理装置的个人计算机与作为专用硬件的运动控制器相比,具有价格低廉的优点。另外,还具有能够提供用户习惯使用的设计界面的优点。

其中,当前提供了能够安装于安装有作为个人计算机的OS(Operating System)广泛应用的非实时OS(例如Windows(注册商标))的个人计算机上的实时OS。因此,考虑如果将安装有非实时OS以及实时OS两者的个人计算机用作运动控制器,则能够获得各种优点。另外,考虑如果能够将通信协议不同的各种控制对象机器连接于一个个人计算机并进行控制,则进一步降低成本。

但是,当前并不存在能够控制与安装有非实时OS以及实时OS两者的一个个人计算机连接的、通信协议不同的多个控制对象机器的技术。

发明内容

为此,本发明的目的在于提供能够将通信协议不同的多个控制对象机器连接于安装有非实时OS以及实时OS的计算机并进行控制的技术。

本发明的一个方式所涉及的运动控制程序通过安装有非实时OS以及实时OS的、用于对多个控制对象装置进行运动控制的计算机执行,使计算机作为在非实时OS上运行的接收部、在实时OS上运行的控制部、以及在实时OS上运行的多个通信模块部发挥功能,接收部从控制多个控制对象装置的用户创建程序接收控制指令,并将表示接收的控制指令的内容的控制指令信息通知给控制部,所述控制指令指示多个控制对象装置的各个控制对象装置经历多个运动控制循环应进行的动作,控制部基于由接收部通知的控制指令信息,针对每个运动控制循环反复生成每个控制对象装置的插值指令,并将生成的插值指令存储在针对每个控制对象装置确保的存储器区域,所述插值指令指示多个控制对象装置的各个控制对象装置在每个运动控制循环应执行的动作,通信模块部从针对每个控制对象装置确保的存储器区域获取插值指令,并将获取的插值指令从控制部能够识别的规定的信号格式转换成多个控制对象装置的各个控制对象装置能够识别的通信接口规格的信号格式并发送。

发明效果

根据本发明,能够提供可将通信协议不同的多个控制对象机器与安装有非实时OS以及实时OS的计算机连接并进行控制的技术。

附图说明

图1是表示实施方式所涉及的运动控制系统的系统结构例的图。

图2是用于说明运动控制装置的概要的图。

图3是用于说明API信道以及状态信道的一个例子的图。

图4是表示运动控制装置的硬件结构例的图。

图5是表示运动控制装置的功能结构例的图。

图6是用于说明设备创建处理的一个例子的图。

图7是用于说明进行设备创建处理时生成的各种管理信息的一个例子的图。

图8是用于说明设备创建处理的一个例子的图。

图9是用于说明进行设备创建处理时生成的各种管理信息的一个例子的图。

图10是表示运动控制装置进行的运动控制处理的一个例子的图。

图11是表示运动控制装置进行的运动控制处理的一个例子的图。

图12是表示控制指令模块进行的处理过程的一个例子的流程图。

图13是表示控制指示部发生故障时的处理过程的一个例子的图。

图14是表示映射信息的一个例子的图。

图15是用于说明协议转换处理的处理过程的一个例子的图。

具体实施方式

参照附图,对本发明的优选实施方式进行说明。此外,各图中标注同一符号的内容具有相同或者同样的结构。

<系统结构>

图1是表示实施方式所涉及的运动控制系统的系统结构例的图。运动控制系统1包含运动控制装置10以及多个控制对象装置20。此外,运动控制系统1中不必然包含多个控制对象装置20,也可以构成为仅包含一个控制对象装置20。

控制对象装置20具体来讲是伺服电动机(包含伺服驱动器)以及步进电动机等电动机。运动控制装置10使多个控制对象装置20同步并进行控制,从而进行传送带的旋转控制、多轴机器人的轴控制、旋转台的定位控制等。一个控制对象装置20控制一个“轴”。例如,6轴机器人是指具备六个作为电动机的控制对象装置20的机器人。

作为用于向控制对象装置20提供控制指令的通信接口规格,例如,已知EtherCAT(注册商标)、RTEX(注册商标)(Realtime Express(注册商标))以及MECHATROLINK(注册商标)等。在运动控制装置10能够混合连接不同的通信接口规格的控制对象装置20。

运动控制装置10是安装有非实时OS以及实时OS的通用的信息处理装置。作为非实时OS的具体例,例如,可以列举Windows(注册商标)、macOS(注册商标)等。另外,实时OS例如可以列举RTX(Real Time Extension)、RTH(Real Time Hypervisor)等。另外,作为通用的信息处理装置的具体例,例如可以列举PC(个人计算机)、笔记本型PC、服务器等。

其中,用于伺服电动机、步进电动机的控制的现有的运动控制器为了确保高精度的实时性能,通常提供为专用于运动控制的专用硬件。另外,通常由与运动控制器连接的个人计算机提供具有用于用户对运动控制的内容进行编程的GUI(Graphical UserInterface)的程序。

另一方面,本实施方式所涉及的运动控制装置10在非实时OS上提供用于用户对运动控制的内容进行编程的GUI,在实时OS上进行基于编程的内容来实际控制控制对象装置20的处理。由此,仅通过通用的信息处理装置就能够实现与使用基于专用硬件的运动控制器的情况同样的高精度的运动控制。

<运动控制装置的概要>

图2是用于说明运动控制装置10的概要的图。控制指示部110在非实时OS100上运行,一次或多次发出指示控制对象装置20经历多个运动控制循环应执行的动作的控制指令,从而对控制对象装置20进行控制。控制指示部110包含使用运动控制系统1的用户创建的程序,该程序使用规定的编程语言记载对控制对象装置20发出的控制指令、发出控制指令的顺序以及时刻等。作为用户创建的程序的具体例,例如,可以列举进行用于实现FA的传送带以及机器臂等控制的程序、进行机器人操作的程序等。在非实时OS100上,能够使多个控制指示部110运行。

控制指令包含控制指令的识别符(ID等)以及指令值。作为控制指令的具体例,例如,可以列举PTP(Point to Point)动作(向指定的地点移动的动作)、JOG动作(以指定的速度使得电动机运行)、基于直线插补的PTP动作、基于圆弧插补的PTP动作、指定加速时间的JOG动作、指定行动时间的JOG动作等。控制指令的识别符是可以具体确定控制指令内容的信息(例如,表示基于圆弧插补的PTP动作的识别符等)。指令值是具体表示动作目标的参数,例如,在基于圆弧插补的PTP动作的情况下,表示移动目的地的地点的值、移动速度、旋转半径等。由控制指示部110发出的控制指令使用后面所述的信道通知给协作部310。

在用户创建的程序中调用API(Application Programming Interface)函数从而进行控制指示部110的控制指令的发出。另外,通过对API函数的实参(argument)设定值从而指定指令值。针对每个控制指令准备一个API函数,例如,针对PTP动作准备“startpos()”这样的API函数。在本实施方式中,可以将表示通过控制指示部110调用的API函数以及该API函数中设定的实参的信息称为“API信息”。此外,在本实施方式中,将API信息称为“控制指令信息”。

协作部310具备用于将从控制指示部110通知的API信息进行暂时存储的FIFO队列(下面,称为“API缓存部”)。协作部310将从控制指示部110接收的多个API信息暂时存储在API缓存部340。另外,协作部310从API缓存部340中逐个取出API信息并传递给固定周期处理部360。即,协作部310利用队列与固定周期处理部360之间进行API信息的交换。

固定周期处理部360在实时OS300上运行,基于由协作部310通知的控制指令,计算出指示在每个运动控制循环使控制对象装置20执行的动作的插值指令。另外,固定周期处理部360将计算出的插值指令按照运动控制循环发送给控制对象装置20,从而对控制对象装置20进行运动控制。一个运动控制循环例如以0.5毫秒、1毫秒为单位。控制对象装置20按照每个运动控制循环通知的插值指令运行,从而最终实现由控制指令指示的动作目标。

另外,固定周期处理部360在固定周期处理部360能够识别的信号格式(以下,称为“共通信号格式”)与控制对象装置20能够识别的通信接口规格对应的信号格式之间进行协议转换。此外,共通信号格式是“规定的信号格式”的一个例子。

控制指示部110以及协作部310经由控制指示部110以及协作部310能够共同写入以及读取的存储器区域(以下,称为“信道”)进行各种信息的交换。信道存在操作信道、API信道以及状态信道。

“操作信道”是用于控制指示部110以及协作部310收发控制信息的信道。操作信道是所有控制指示部110通用的信道,在控制指示部110进行一个以上动作的期间,一个操作信道存在于运动控制装置10内。在本实施方式中,可以将操作信道称为“操作用信道”。

“API信道”是用于将API信息从控制指示部110向协作部310传输的信道。API信道针对每个控制指示部110至少存在一个。在本实施方式中,可以将API信道称为“控制指令用信道”。

“状态信道”是存储来自控制对象装置20的反馈信息的信道。状态信道是多个控制指示部110共同使用的信道,在运动控制装置10内存在一个或多个状态信道。反馈信息是表示控制对象装置20的状态(动作状态)的信息,控制对象装置20通过内部具备的传感器或者与控制对象装置20连接的传感器等进行测量。反馈信息包含例如轴的位置、轴的旋转速度、机器臂的位置、传送带的位置、控制对象装置20的温度等所有信息。控制指示部110能够通过参照状态信道来把握控制对象装置20的动作状态。

在本实施方式中,将与一个控制指示部110相关联的API信道、状态信道等总称为“设备”。如后面所述,API信道在控制指示部110有设备创建请求时,作为该控制指示部110的专用信道被确保在存储器上。另一方面,状态信道在最初使用该状态信道的控制指示部110有设备创建请求时被确保在存储器上,被确保后也可以由其他控制指示部110使用。

这里,说明API信道以及状态信道的具体例。图3是用于说明API信道以及状态信道的一个例子的图。图3(a)中示出了API信道中存储的数据例。在“设备识别符”中存储用于可唯一识别所生成的设备的设备识别符。后面说明“模块识别符”。“控制指令识别符”中存储用于确定控制指令的内容(例如,定位(PTP)、JOG动作、直线插补、圆弧插补等)的信息。控制指令识别符可以是可唯一表示控制指令的种类的识别符,也可以是可唯一表示API函数的识别符。

“API缓存部识别符”中存储可唯一确定API缓存部340的API缓存部识别符。后面说明“记录中标志”。“指令值”中存储针对每个轴的指令值。例如,在控制指令识别符为PTP动作的情况下,指令值中针对每个轴存储表示移动目的地位置的值等。后面说明“存活报告”。

图3(b)中示出了状态信道中存储的数据例。后面说明“模块识别符”。“错误代码”中存储有在由于发生错误而无法将反馈信息存储在状态信道时表示所发生的错误内容的错误代码。“反馈信息”中针对每个控制对象装置20(每个轴)存储从控制对象装置20获取的反馈信息。

<硬件结构>

图4是表示运动控制装置10的硬件结构例的图。运动控制装置10具有CPU(CentralProcessing Unit)11、存储器12、HDD(HardDisk)及SSD(Solid State Drive)等存储装置13、进行有线或者无线通信的通信IF(Interface)14、接收输入操作的输入设备15、以及进行信息输出的输出设备16。输入设备15例如是键盘、触摸面板、鼠标和/或麦克风等。输出设备16例如是显示器和/或扬声器等。

<功能结构>

图5是表示运动控制装置10的功能结构例的图。共享存储器200是能够从非实时OS100侧的各功能部以及实时OS300侧的各功能部共同进行参照以及写入的存储器。共享存储器200中确保与操作信道、API信道以及状态信道对应的存储器区域。控制指示部110以及协作部310向该存储器区域写入数据,从该存储器区域读取数据,从而进行数据的收发。

(非实时OS)

在非实时OS100上,一个以上控制指示部110以及一个以上设备管理部120运行。

控制指示部110具有通过发出控制指令从而对控制对象装置20进行运动控制的功能。控制指示部110中包含用户创建程序111、指令接收部112、以及IF(N侧)部113。

用户创建程序111是使用运动控制装置10的用户创建的程序。用户能够通过在用户创建程序111中调用非实时OS100侧准备的多种API函数从而创建实现任意运动控制的程序。此外,用户创建程序111可以预设在运动控制装置10中。即,在本实施方式中,用户创建程序111不一定限于用户创建的程序。

指令接收部112向用户创建程序111提供API函数。具体来讲,指令接收部112具有将用户创建程序111中调用的API函数相关的API信息以存储于API信道的方式指示给IF(N侧)部113的功能。

此外,指令接收部112提供控制指令库1121A~1121Z(以下,无需特别区分控制指令库A~Z的情况下,简称为控制指令库1121)以及通信库1122A~1122Z(以下无需特别区分通信库A~Z的情况下,简称为通信库1122)中的、用户创建程序111实际在程序内参照的库中所包含的API函数。

控制指令库1121A~1121Z是分别将用于进行对控制对象装置20进行运动控制的处理的多个API函数的加载模块(执行文件)汇聚的库。另外,通信库1122A~1122Z是将用于进行在运动控制装置10与控制对象装置20之间进行的通信相关的处理的多个API函数的加载模块(执行文件)汇聚的库。

此外,该通信相关的处理例如是指,由于断线等被切断的通信路径恢复时,由用户创建程序111指定重新开始通信的时刻的处理、对运动控制装置10以及控制对象装置20之间的通信路径中的数据包丢失的监视等。调用通信库1122提供的API函数的情况与调用控制指令库1121提供的API函数的情况相同,API信息经由协作部310通知固定周期处理部360。

IF(N侧)部113具有在操作信道以及API信道存储数据的功能、从操作信道、API信道以及状态信道获取数据的功能、以及管理操作信道、API信道以及状态信道的功能。

此外,指令接收部112以及IF(N侧)部113起到接收用户创建程序111调用的API函数并存储于API信道的作用,因此,可以将指令接收部112以及IF(N侧)部113总称为“接收部”。

设备管理部120进行控制指示部110的存活确认。另外,设备管理部120进行向API缓存部340存储API信息相关的各种处理等。设备管理部120在控制指示部110创建设备时启动。此外,更详细地讲,设备中除了API信道以及状态信道以外,还包含有设备管理部120。

(实时OS)

在实时OS300上,协作部310以及固定周期处理部360运行。

协作部310是用于使通过控制指示部110进行的处理与通过固定周期处理部360进行的处理协作的功能部,具有将从控制指示部110接收的API信息传递给固定周期处理部360的功能。协作部310具备作为FIFO队列发挥作用的API缓存部340,将从控制指示部110经由API信道传递的控制指令(API信息)存储到API缓存部340。另外,协作部310将API缓存部340中存储的API信息取出并传递给固定周期处理部360。另外,协作部310进行操作信道、API信道以及状态信道的状态管理(生成、维持以及废弃)。

协作部310中,作为执行上述各功能的功能部包含有主处理部320、API执行请求处理部330、API缓存部340以及指令执行处理部350。主处理部320中还包含有IF(R侧)部321。

主处理部320具有在接收了来自控制指示部110的请求的情况下在实时OS的存储器区域生成API缓存部340的功能。在本实施方式中,可以将主处理部320称为“队列生成部”。

IF(R侧)部321进行操作信道、API信道以及状态信道的创建(针对共享存储器200的存储器区域分配)、分配的存储器区域的管理、以及API信道以及状态信道的废弃(共享存储器200的释放)相关的各种处理。在本实施方式中,可以将IF(R侧)部321称为“信道管理部”。或者,由于IF(R侧)部321是协作部310的一部分,因此,可以将协作部310称为“信道管理部”。

具体来讲,IF(R侧)部321在通过实时OS300的指示使IF(R侧)部321自身启动的情况下,在共享存储器200生成操作信道。另外,IF(R侧)部321接收来自控制指示部110(更详细地讲,IF(N侧)部113)的请求而生成API信道。另外,IF(R侧)部321接收来自控制指示部110(更详细地讲,IF(N侧)部113)的指示而生成状态信道。

API执行请求处理部330从API信道获取API信息,将获取到的API信息存储在API缓存部340。在本实施方式中,可以将API执行请求处理部330称为“存储部”。此外,在协作部310内,针对每个前面所述的“设备”,一个API执行请求处理部330运行。例如,在非实时OS110内四个控制指示部110分别逐个生成设备的情况下,在协作部310内,四个与各设备对应的API执行请求处理部330运行。在本实施方式中,在“设备”中,除了API信道、状态信道以及设备管理部120以外,可以还包含有API执行请求处理部330。

指令执行处理部350获取API缓存部340中存储的API信息,并将获取到的API信息传递给控制指令模块370。在本实施方式中,可以将指令执行处理部350称为“指令处理部”。指令执行处理部350并不是像API执行请求处理部330那样以设备为单位并行运行,而是预先设定的文件所指定数量的指令执行处理部350在协作部310中并行运行。

固定周期处理部360具有如下功能:基于API信息(控制指令信息),针对每个运动控制循环发送指示针对控制对象装置20在每个运动控制循环应执行的动作的插值指令,由此,对控制对象装置20进行运动控制。另外,固定周期处理部360中还包含有控制指令模块370、IF部380以及通信模块390。

控制指令模块370A~370Z(以下,无需特别区分控制指令模块A~Z的情况下,简称为控制指令模块370)基于API信息(控制指令信息)计算插值指令。另外,控制指令模块370将计算出的插值指令传递给IF部380。此外,控制指令模块370也可以基于API信息、控制对象装置20的反馈信息中包含的控制对象装置20的状态,计算插值指令。在本实施方式中,将控制指令模块370称为“控制部”。

在本实施方式中,控制指令库1121A提供的API函数对应的API信息(控制指令信息)通过控制指令模块370A进行处理。同样,控制指令库1121B~1121Z提供的API函数对应的API信息(控制指令信息)分别通过控制指令模块370B~控制指令模块370Z进行处理。即,控制指令库1121A~1121Z分别与控制指令模块370A~370Z一对一地相关联。此外,这只是实装方法的一个例子,也可以不是一对一的相关联。例如,可以是多个控制指令库1121与一个控制指令模块370相关联。在本实施方式中,将可唯一确定控制指令模块370的识别符称为“模块识别符”。

作为控制指令模块370的具体例,可以列举以下控制指令模块370:除了上述的PTP动作、JOG动作以外,例如以特定的动作(在某个比特为1时等)、特定的轴移动至指定位置为触发,执行规定的动作;从与控制对象装置20之间的通信接口获取特定的值。另外,可以列举记录指定的控制对象装置20的动作(位置、速度、加速度等)的控制指令模块370、对由控制对象装置20的歪斜等引起的位置误差等进行补正的控制指令模块370等。当然,在非实时OS110上还准备有提供这些功能对应的API函数的控制指令库1121。

IF部380提供控制指令模块370以及通信模块390能够共同参照的存储器区域。IF部380用于在控制指令模块370与通信模块390之间相互交换插值指令值以及反馈信息。

通信模块390A~390Z(以下,无需特别区分通信模块A~Z的情况下,简称为通信模块390)分别对应不同的通信接口规格。另外,在本实施方式中,通过调用通信库1122A提供的API函数而通知给固定周期处理部360的API信息由通信模块390A进行处理。同样,通过调用通信库1122B~1122Z提供的API函数而通知给固定周期处理部360的API信息分别由通信模块390B~通信模块390Z进行处理。即,通信库1122A~1122Z分别与通信模块390A~390Z一对一地相关联。此外,这只是实装方法的一个例子,也可以不是一对一地相关联。例如,可以是多个通信库114与一个通信模块390相关联。

以上说明的控制指示部110、设备管理部120、协作部310、固定周期处理部360能够通过运动控制装置10的CPU11执行存储器12或者存储装置13中存储的程序来实现。另外,该程序能够储存在存储介质中。存储该程序的存储介质可以是非暂时性存储介质(Non-transitory computer readable medium)。不特别限于非暂时性存储介质,例如,也可以是USB存储器或者CD-ROM等存储介质。此外,该程序中可以包含用户创建程序111,也可以不包含。

<处理过程>

下面,说明运动控制装置10进行的具体处理过程。

(设备创建处理)

图6以及图8是用于说明设备创建处理的一个例子的图。另外,图7以及图9是用于说明进行设备创建处理时生成的各种管理信息的一个例子的图。使用图6~图9,说明控制指示部110通过用户操作按顺序启动控制指示部(1)110-1、控制指示部(2)110-2时分别执行的设备创建处理。

[前提条件]

最初,对用于说明设备创建处理的前提条件进行说明。在图6~图9中,控制指示部(1)110-1调用控制指令库1121A提供的API函数。同样,控制指示部(2)110-2调用控制指令库1121A、控制指令库1121B以及控制指令库1121C分别提供的API函数。

另外,将控制指示部(1)110-1中包含的用户创建程序111、指令接收部112以及IF(N侧)部113分别称为用户创建程序111-1、指令接收部112-1、IF(N侧)部113-1。另外,将控制指示部(1)110-1对应的设备管理部120称为设备管理部120-1。

另外,将控制指示部(2)110-2中包含的用户创建程序111、指令接收部112以及IF(N侧)部113分别称为用户创建程序111-2、指令接收部112-2以及IF(N侧)部113-2。另外,将控制指示部(2)110-2对应的设备管理部120称为设备管理部120-2。

另外,将控制指示部(1)110-1(更详细地讲,控制指示部(1)110-1生成的设备)对应的API执行请求处理部330称为API执行请求处理部(1)330-1。同样,将控制指示部(2)110-2(更详细地讲,控制指示部(2)110-2生成的设备)对应的API执行请求处理部330称为API执行请求处理部(2)330-2。

另外,假设在启动设定信息400中,将控制指令模块370A~370C、以及通信模块390A~390Z指定为启动对象。此外,启动设定信息400是指定通过固定周期处理部360运行的控制指令模块370以及通信模块390的信息。

[控制指示部(1)进行的设备创建处理]

使用图6以及图7,说明控制指示部(1)进行的设备创建处理。当通过用户操作启动控制指示部(1)110-1时,用户创建程序111-1将进行针对控制对象装置20开始运动控制的准备的准备指示(以下称为“设备创建请求”)通知给指令接收部112-1。具体来讲,通过用户创建程序111-1调用指示创建设备的API函数来进行该通知。然后,指令接收部112-1向IF(N侧)部113-1通知设备创建请求(S100)。设备创建请求中包含有对用户创建程序111-1发出(通过后面所述的“运动控制处理”进行预发出)的控制指令进行处理的控制指令模块370的模块识别符(控制指令模块A)。另外,指令接收部112-1在步骤S100的处理过程的之前或者之后,启动设备管理部120-1。

然后,IF(N侧)部113-1确认在实时OS300侧协作部310是否启动。在启动的情况下,对实时OS300发送协作部310的启动指示(S101)。此外,协作部310未启动的状态例如是运动控制装置10刚刚启动之后。接收了启动指示的实时OS启动协作部310。

然后,协作部310的主处理部320启动通过启动设定信息400指示的控制指令模块370以及通信模块390(S102)。

然后,通过实时OS300的指示启动的协作部310的IF(R侧)部321在共享存储器200中确保用于操作信道的存储器区域(S103),通知IF(N侧)部113-1已完成存储器区域的确保(即,已创建操作信道)(S104)。此时,IF(R侧)部321将共享存储器200中为操作信道确保的地址范围也通知给IF(N侧)部113-1。IF(R侧)部321将为操作信道确保的地址范围存储在地址管理信息(图7(e))。另外,IF(N侧)部113-1将操作信道的地址范围存储在能够由各IF(N侧)部113共同参照的资源(文件或者共同的变量等)中。此外,IF(N侧)部113-1还可以将操作信道的地址范围存储在地址管理信息(图7(d))。图7(d)表示存储有操作信道的地址范围的状态。接收了操作信道创建完成的通知的IF(N侧)部113-1为了与其他控制指示部110的IF(N侧)部113之间不会在操作信道的使用上发生冲突,获取操作信道的使用权限(S105)。

在能够获取到使用权限的情况下,IF(N侧)部113-1将设备创建请求经由操作信道通知给IF(R侧)部321(S106)。在设备创建请求中,包含有通过步骤S100的处理过程通知的模块识别符(控制指令模块A)。

接收了设备创建请求的IF(R侧)部321将设备识别符确定为例如“D1”。另外,IF(R侧)部321确保用于API信道的存储器区域,并且将API信道识别符确定为例如“API信道1”(S107)。另外,IF(R侧)部321将确定的设备识别符与API信道识别符相关联,并存储在设备管理信息(图7(b))。

另外,IF(R侧)部321在共享存储器200中确保与控制指令模块370A对应的状态信道A所用的存储器区域(S108)。IF(R侧)部321将创建的状态信道A与控制指令模块370A的对应关系作为状态信道管理信息(图7(c))保存。另外,IF(R侧)部321将为API信道1以及状态信道A确保的存储器区域的地址范围存储在地址管理信息(图7(e))。

然后,主处理部320启动API执行请求处理部(1)330-1(S109)。此外,步骤S107~步骤S109的处理过程不限于图6所示的顺序,可以以任意顺序进行。

然后,IF(R侧)部321通知IF(N侧)部113-1已完成设备的创建(完成API信道1以及状态信道A的创建)(S110)。该通知包含创建的API信道识别符(API信道1)、为API信道1以及状态信道A确保的存储器区域的地址范围、以及设备识别符(D1)。

接收了已完成设备创建的通知的IF(N侧)部113-1将为API信道1以及状态信道A确保的存储器区域的地址范围存储在地址管理信息(图7(d))。然后,IF(N侧)部113-1释放操作信道的使用权限(S111),通知指令接收部112-1已完成设备的创建。另外,指令接收部112-1通知用户创建程序111-1已完成设备的创建(S112)。该通知中包含设备识别符(D1)以及API信道识别符(API信道1)。该通知例如可以是指示设备创建的API函数的返回值。

用户创建程序111-1将通知的设备识别符(D1)与API信道识别符(API信道1)相关联,并作为设备管理信息(图7(a))保存。此外,作为设备管理信息保存具体是指将作为指示设备创建的API函数的返回值通知的设备识别符以及API信道识别符存储在变量中进行保存,但不限于此,例如,也可以通过文件等保存。

[控制指示部(2)进行的设备创建处理]

使用图8以及图9,说明控制指示部(2)进行的设备创建处理。当通过用户的操作启动控制指示部(2)110-2时,用户创建程序111-2将设备创建请求通知给指令接收部112-2。指令接收部112-2向IF(N侧)部113-2通知设备创建请求(S150)。在设备创建请求中,包含有对用户创建程序111-2发出的(通过后面所述的“运动控制处理”进行预发出)控制指令进行处理的控制指令模块370的模块识别符(控制指令模块A、控制指令模块B以及控制指令模块C)。另外,指令接收部112-2在步骤S100的处理过程之前或者之后启动设备管理部120-2。

然后,IF(N侧)部113-2确认在实时OS300侧协作部310是否启动。其中,由于控制指示部(1)110-1已经启动协作部310,因此,IF(N侧)部113-2不进行协作部310的启动处理。然后,IF(N侧)部113-2获取操作信道的使用权限(S151)。

在能够获取到使用权限的情况下,IF(N侧)部113-2将设备创建请求经由操作信道通知给IF(R侧)部321(S152)。在设备创建请求中,包含有模块识别符(控制指令模块A、控制指令模块B以及控制指令模块C)。此外,IF(N侧)部113-2从各IF(N侧)部113能够共同参照的资源(文件或者共同的变量等)中获取操作信道的地址范围。另外,IF(N侧)部113-2也可以将操作信道的地址范围存储在地址管理信息(图9(d))。图9(d)表示存储有操作信道的地址范围的状态。

接收了设备创建请求的IF(R侧)部321将设备识别符确定为例如“D2”。另外,IF(R侧)部321在共享存储器200中确保用于API信道的存储器区域,并且将API信道识别符确定为例如“API信道2”(S153)。另外,IF(R侧)部321将确定的设备识别符与API信道识别符相关联,追加到设备管理信息(图9(b))中。

然后,IF(R侧)部321在共享存储器200中确保与控制指令模块370A对应的状态信道A、与控制指令模块370B对应的状态信道B以及与控制指令模块370C对应的状态信道C所用的存储器区域。此外,由于控制指令模块370A对应的状态信道A已经创建(图6的步骤S108),因此,IF(R侧)部321进行用于状态信道B以及状态信道C的存储器区域的确保(S154、S155)。

然后,IF(R侧)部321将创建的状态信道B以及状态信道C与控制指令模块370B以及控制指令模块370C分别相关联的内容追加到IF(R侧)部321保存的状态信道管理信息(图9(c))中。另外,IF(R侧)部321将为API信道2、状态信道B以及状态信道C确保的存储器区域的地址范围追加到IF(R侧)部321保存的地址管理信息(图9(e))中。

然后,IF(R侧)部321通知IF(N侧)部113-2已完成设备的创建(完成API信道2、状态信道B以及状态信道C的创建)(S157)。该通知中,包含有为API信道2、状态信道A、状态信道B以及状态信道C确保的存储器区域的地址范围、API信道识别符(API信道2)以及设备识别符(D2)。

接收已完成设备创建的通知的IF(N侧)部113-2将为API信道2、状态信道A、状态信道B以及状态信道C确保的存储器区域的地址范围存储到地址管理信息(图9(d))。

然后,IF(N侧)部113-2释放操作信道的使用权限(S158),通知指令接收部112-2已完成设备的创建。另外,指令接收部112-2通知用户创建程序111-2已完成设备的创建(S159)。该通知中包含有设备识别符(D2)以及API信道识别符(API信道2)。用户创建程序111-2将通知的设备识别符(D2)与API信道识别符(API信道2)相关联,并作为设备管理信息(图9(a))保存。

此外,在上述说明的设备创建处理中,获取到设备创建请求的IF(R侧)部321侧可以创建API信道以及状态信道两者。但是,本实施方式不限于此。例如,在图6的步骤S100~步骤S112以及图7的步骤S150~步骤S159的处理过程中,也可以创建API信道,然后,重复同样的处理过程,从而在各个时刻进行API信道的创建以及状态信道的创建。

具体来讲,用户创建程序111将不包含模块识别符的设备创建请求通知给IF(N侧)部113,IF(N侧)部113也同样将不包含模块识别符的设备创建请求通知给IF(R侧)部321。接收了该设备创建请求的IF(R侧)部321创建API信道,将已完成设备的创建通知IF(N侧)部113。IF(N侧)部113将已完成设备的创建通知用户创建程序111。

然后,用户创建程序111例如在发出控制指令前的时刻,将包含处理该控制指令的控制指令模块370的模块识别符的状态信道创建请求通知给IF(N侧)部113,IF(N侧)部113也同样将包含模块识别符的状态信道创建请求通知给IF(R侧)部321。接收了该状态信道创建请求的IF(R侧)部321创建状态信道,将已完成状态信道的创建通知IF(N侧)部113。IF(N侧)部113将已完成状态信道的创建通知用户创建程序111。

(运动控制处理)

下面,具体说明运动控制装置10对控制对象装置20进行运动控制时的处理过程。

[前提条件]

在以下的说明中,控制指示部110使用能够执行PTP控制的控制指令模块370A,对轴1对应的控制对象装置(轴1)20-1以及轴2对应的控制对象装置(轴2)20-2进行运动控制,另外,控制指示部110生成的设备的设备识别符是D1,该设备对应的API信道识别符是API信道1。另外,API信道1以及控制指令模块370A对应的状态信道A已经生成。另外,在以下说明中,控制指示部110调用PTP控制相关的API函数,从而同时控制轴1以及轴2的两个轴。

图10以及图11是表示运动控制装置10进行运动控制处理的一个例子的图。首先,使用图10,说明从创建API缓存部340到在API缓存部340进行API信息排队的处理过程。

[API缓存部创建、API信息存储]

首先,用户创建程序111调用指示创建API缓存部340的API函数。当该API函数被调用时,指令接收部112将API缓存部的创建通知给IF(N侧)部113(S200)。该通知中包含有创建的API缓存部340对应的API缓存部识别符。至于API缓存部识别符如何确定,例如在进行步骤S200的处理过程前,例如,可以从主处理部320支出。这里,假设API缓存部识别符为“1”。

IF(N侧)部113经由操作信道将API缓存部340的创建通知给主处理部320(S201)。该请求中包含有API缓存部识别符。主处理部320创建API缓存部识别符“1”对应的API缓存部340(确保存储器区域)(S202)。

然后,当用户创建程序111调用对指定API缓存部识别符“1”并开始记录API信息(开始API信息的排队)进行指示的API函数时,指令接收部112通知IF(N侧)部113开始记录该API信息(S203)。IF(N侧)部113通知设备管理部120开始记录该API信息(S204)。设备管理部120将API信道1的“API缓存部识别符”设置为“1”,并且设置“记录中标志”(S205)。

记录中标志用于在下述方式中切换:将用户创建程序111调用的API函数对应的API信息暂时在API缓存部340排队后传递给固定周期处理部360,或者将用户创建程序111调用的API函数对应的API信息不在API缓存部340中排队而直接传递给固定周期处理部360。具体来讲,在设置标志的期间API信道中存储有API信息的情况下,API信道中存储的API信息通过API执行请求处理部330在API缓存部340中排队。另一方面,在该标志没有被设置的状态下API信道中存储有API信息的情况下,API信道中存储的API信息通过API执行请求处理部330获取并传递给固定周期处理部360,由固定周期处理部360执行。

然后,用户创建程序111将指示给轴1的指令值、指示给轴2的指令值以及设备识别符(这里是D1)指定为定参,调用用于进行PTP控制的API函数。当该API函数被调用时,指令接收部112将调用的API函数对应的API信息通知给IF(N侧)部113(S206)。

然后,IF(N侧)部113将API信息存储在API信道1(S207)。具体来讲,API信道1的“设备识别符”、“模块识别符”以及“控制指令识别符”中分别存储“D1”、“控制指令模块A”以及“PTP”。另外,“指令值”中存储轴1的指令值以及轴2的指令值。“API缓存部识别符”以及“记录中标志”中直接存储以步骤S205的处理过程存储的信息。

此外,API信道中存储的“模块识别符”不限于能够明显确定控制指令模块370的识别符,也可以是隐含表示控制指令模块370的识别符。另外,也可以从API信道省略“模块识别符”。在本实施方式中,由于执行“控制指令识别符”所表示的控制指令的控制指令模块370为一个,因此,协作部310能够基于控制指令识别符,可唯一确定控制指令模块370。

API执行请求处理部330在设置了API信道1的“记录中标志”的情况下,获取API信道1中存储的API信息(“设备识别符”、“模块识别符”、“控制指令识别符”、“API缓存部识别符”以及“指令值”)(S208)。另外,将获取到的API信息在通过步骤S208获取到的“API缓存部识别符”对应的API缓存部340中进行排队(S209)。

在控制指示部110调用多个API的情况下,通过重复步骤S206~步骤S209的处理过程,使多个API信息在API缓存部340中排队。

当完成调用API缓存部340中排队的API函数时,用户创建程序111调用指示结束在API缓存部340记录API信息(结束API信息的排队)的API函数。控制指示部110通知IF(N侧)部113结束在API缓存部340记录API信息(S210),IF(N侧)部113将该通知通知给设备管理部120(S211)。设备管理部120删除设置于API信道1的记录中标志(S212)。

API缓存部340通过用户创建程序111(更详细地讲,设备)的指示来生成,但一个用户创建程序111能够创建多个API缓存部340。另外,多个用户创建程序111也可以共用同一API缓存部340。在本实施方式中,能够通过一个用户创建程序111使用多个API缓存部340,使多个复杂的运动控制同时运行。另外,能够通过使多个用户创建程序111共用同一API缓存部340,提高用户创建用户创建程序111时的自由度。

[控制对象装置的控制]

下面,使用图11,说明根据在API缓存部340排队的API信息,对控制对象装置(轴1)20-1以及控制对象装置(轴2)20-2进行控制时的处理过程。

如图11所示,控制指令模块370A对于控制指令模块370A能够同时控制的多个轴,针对每个轴保持存储器区域371,该存储器区域371存储指令值以及表示更新了指令值的执行标志。在图11的例子中,控制指令模块370A能够同时最大控制128个轴,针对轴1~轴128的各个轴,具有用于存储指令值以及执行标志的存储器区域371。执行标志中存储“执行中”或者“已执行”中的任一个。“执行中”表示控制指令模块370A按照运动控制循环正在控制轴,“已执行”表示完成控制轴的状态。

其中,IF部380针对固定周期处理部360能够同时控制的多个轴,针对每个轴具有用于存储插值指令值以及反馈信息的存储器区域381。在图11的例子中,IF部380中,针对轴1~轴128的各个轴,具有能够存储插值指令值以及反馈信息的存储器区域381。

首先,用户创建程序111针对API缓存部识别符(1)对应的API缓存部340,调用表示开始执行的API函数。具体来讲,用户创建程序111在该API函数的实参中设定API缓存部识别符(1)。然后,指令接收部112通知IF(N侧)部113应开始从API缓存部识别符(1)的API缓存部中取出API信息并传递给控制指令模块370的处理(S250)。IF(N侧)部113经由操作信道通知指令执行处理部350应开始从API缓存部识别符(1)的API缓存部中取出API信息并传递给控制指令模块370的处理(S251)。

从IF(N侧)部113接收了通知的指令执行处理部350获取指定的API缓存部340中存储的API信息并传递给固定周期处理部360。具体来讲,指令执行处理部350从API缓存部识别符“1”对应的API缓存部340中获取一个API信息。获取到的API信息的“模块识别符”、“控制指令识别符”以及“指令值”中分别存储有“控制指令模块A”、“PTP”以及“轴1的指令值以及轴2的指令值”。指令执行处理部350针对由API信息的“模块识别符”指定的控制指令模块370A,通知应执行的控制指令识别符(这里是PTP)(S253)。然后,指令执行处理部350将控制指令模块370A的存储器区域371中的轴1的指令值以及轴2的指令值更新为从API信息获取到的轴1的指令值以及轴2的指令值,并且将轴1的执行标志以及轴2的执行标志变更为“执行中”(S254)。

然后,控制指令模块370A基于存储器区域371中存储的轴1以及轴2的指令值,计算相对于轴1以及轴2的插值指令值,将计算出的插值指令值存储在IF部380(S260)。插值指令值根据控制指令的内容以规定的逻辑计算。作为规定的逻辑,例如能够使用现有的PTP控制中的控制逻辑等。通信模块390获取IF部380中存储的轴1以及轴2的插值指令值,转化成与轴1以及轴2的通信接口规格对应的信号并发送给控制对象装置(轴1)20-1以及控制对象装置(轴2)20-2(S261)。

按照运动控制循环(例如1毫秒间隔、0.5毫秒间隔等)重复步骤S260以及步骤S261的处理过程,从而使轴1以及轴2按照插值指令值顺畅运行。当轴1以及轴2的状态达到指令值时,控制指令模块370A将轴1以及轴2的执行标志更新为“已执行”。然后,检测到轴1以及轴2的执行标志已变更为“已执行”的指令执行处理部350读取API缓存部340中存储的API信息,重复进行上述的步骤S253以及步骤S254的处理过程。由此,控制指令模块370A的存储器区域371中的指令值被更新,再度执行步骤S260以及步骤S261的处理过程。以上说明的步骤S252~步骤S261的处理过程的动作重复执行直至API缓存部340为空。

这里,通信模块390从控制对象装置(轴1)20-1以及控制对象装置(轴2)20-2获取反馈信息,转换成共通信号格式的反馈信息并存储在IF部380(S262)。然后,控制指令模块370A获取IF部380中存储每个轴的反馈信息(S263)。步骤S262以及步骤S263的处理过程可以按照运动控制循环重复执行,也可以按照与运动控制循环不同的周期(例如几毫秒的周期等)重复执行。

控制指令模块370A将获取到的轴1以及轴2的反馈信息通知给主处理部320(S264)。主处理部320将通知的轴1以及轴2的反馈信息存储在状态信道A(S265)。当用户创建程序111调用读取状态信道A对应的反馈信息的API函数时,指令接收部112向IF(N侧)部113通知应读取状态信道A中存储的反馈信息。IF(N侧)部113读取的反馈信息经由指令接收部112传递给用户创建程序111。由此,用户创建程序111能够把握各轴如何运行,例如,能够实现基于轴的状态切换控制指令这种复杂的运动控制。

此外,控制指令模块370A在步骤S260的处理过程中,例如可以参照每个运动控制循环包含于反馈信息中的轴1以及轴2的状态,针对每个运动控制循环确认轴1以及轴2是否进行了预期的动作,并且计算下一个运动控制循环中的插值指令值。

图12是表示控制指令模块370进行的处理过程的一个例子的流程图。首先,控制指令模块370从存储器区域371获取执行标志被设置为“执行中”的轴的指令值(S300)。然后,控制指令模块370基于指令值,计算一个运动控制循环的指令值(即,插值指令值)(S301),将计算出的插值指令值存储在IF部380的存储器区域381(S302)。然后,控制指令模块370从IF部380获取每个轴的反馈信息(S303)。然后,控制指令模块370针对通过步骤S300获取到指令值的轴,判定反馈信息是否达到指令值(S304)。在达到指令值的情况下,将该轴的执行标志设置为“已执行”,结束处理。在未达到指令值的情况下,进行待机直至下一个运动控制循环(S305),向步骤S301的处理过程行进。此外,可以省略步骤S303的处理过程,将步骤S304的处理过程替换为不使用反馈信息而使用现代控制理论判定轴的动作是否达到指令值。

(错误应对处理)

[控制指示部的故障]

下面,说明控制指示部110由于某种原因发生故障时进行的处理过程。设备管理部120定期监视控制指示部110的存活(运行),在控制指示部110存活的期间,将表示控制指示部110存活的存活报告写入到API信道。IF(R侧)部321参照各API信道,周期性获取有无表示控制指示部110存活的存活报告,在规定期间不存在存活报告的情况下,废弃(删除)未报告存活报告的控制指示部110对应的API信道(释放该API信道的存储器区域)。下面,使用图来具体说明控制指示部发生故障时的处理过程。

图13是表示控制指示部发生故障时的处理过程的一个例子的图。在图13的说明中,适用与通过上述的“(设备创建处理)”说明的前提条件相同的前提条件。

设备管理部120-1以及设备管理部120-2构成为分别在API信道1以及API信道2周期性地写入存活报告(S400、S401)。存活报告例如可以是时间戳。另外,周期是任意的,但是,例如可以是1秒间隔、10秒间隔的周期。这里,假设控制指示部(1)110-1发生故障故障,因此设备管理部120-1无法将存活报告写入API信道1(S400)。

然后,当控制指示部(1)110-1再启动时,控制指示部(1)110-1将设备创建请求通知给IF(N侧)部113-1(S410)。步骤S411以及步骤S412的处理过程分别与图6的步骤S105以及步骤S106相同,因此省略说明。此外,IF(N侧)部113-1从各IF(N侧)部113能够共同参照的资源(文件或者共同的变量等)中获取操作信道的地址范围。

然后,IF(R侧)部321在共享存储器200中确保用于API信道的存储器区域(S413)。另外,IF(R侧)部321确定设备识别符以及API信道识别符。其中,将设备识别符确定为例如“D3”,将API信道识别符确定为例如“API信道3”。IF(R侧)部321将确保的API信道1的地址范围存储在地址管理信息,并且在设备管理信息中追加设备识别符(D3)和与API信道3相关联的记录。步骤S414~步骤S416的处理过程分别与图6的步骤S110~步骤S112相同,因此省略说明。

然后,IF(R侧)部321检测到API信道1未在规定的期间写入存活报告,将API信道1废弃(S417)。另外,IF(R侧)部321从设备管理信息中删除包含API信道1的记录,并且,从地址管理信息中删除存储有API信道1的地址范围的记录。

此外,IF(R侧)部321根据检测到未写入存活报告的时刻,也可以设想步骤S417的处理过程比步骤S414的处理过程靠前。在该情况下,IF(R侧)部321在共享存储器200中确保用于API信道的存储器区域时,可以将废弃的API信道1的存储器区域(即,空存储器区域)确保为新生成的API信道的存储器区域(再利用)。

在本实施方式中,不是在共享存储器200确保两个以上操作信道,另外,不是将状态信道确保为实时OS300上实装的控制指令模块370的数量以上。另一方面,在共享存储器200中确保的API信道的数量会随着启动的控制指示部110的数量、控制指示部110创建的设备数量发生变化。因此,当未使用的API信道仍残留在共享存储器200时,可能由于共享存储器200的自由资源不足而导致运动控制装置10自身无法运行。根据如上所述的错误应对处理,未写入存活报告的API信道从共享存储器200中删除,因此,能够抑制控制指示部110频发故障而导致共享存储器200的资源不足的可能性。

另外,根据如上所述的错误应对处理,在控制指示部110发生故障时,仅进行与该控制指示部110有关的API信道的删除、创建,对于未发生故障的其他控制指示部110使用的API信道、状态信道,仍然在共享存储器200被持续确保。即,即使控制指示部110发生故障,未发生故障的其他控制指示部110也不会受到任何影响,能够继续运行。

[协作部的故障]

在协作部310发生故障的情况下,IF(R侧)部321会丢失自身存储的设备管理信息(图9(b)、状态信道管理信息(图9(c))以及地址管理信息(图9(e))。如果这些信息丢失,则IF(R侧)部321无法访问各信道。

因此,在本实施方式中,在共享存储器200中的预定领域,存储表示为操作信道、为API信道以及状态信道确保的地址范围的信息、表示各地址范围为哪些信道确保的存储器区域的信息。在协作部310发生故障再启动的情况下,协作部310通过访问该预定区域,从而识别确保操作信道、API信道以及状态信道的地址范围等,基于识别的信息,生成设备管理信息、状态信道管理信息以及地址管理信息。

由此,即使协作部310发生故障,也无需在控制指示部110侧再次重新进行设备创建处理等,能够恢复运动控制装置10的运行。

(协议转换处理)

运动控制装置10能够同时控制通信接口规格不同的多个控制对象装置20。为了实现这种控制,在IF部380的存储器区域381,按照共通信号格式保存插值指令值以及反馈信息。共通信号格式可以是任意格式,但是,为了能够在多个通信接口规格之间相互转换(协议转换),优选包含该多个通信接口规格所有所需项目的格式。

控制指令模块370按照共通信号格式生成插值指令值并存储在IF部380。另外,通信模块390从IF部380获取插值指令值,将获取到的插值指令值从共通信号格式转换成通信模块390进行信号收发的控制对象装置20的通信接口规格相对应的信号格式,然后发送给控制对象装置20。

同样,通信模块390从控制对象装置20接收反馈信息,将接收到的反馈信息从控制对象装置20的通信接口规格相对应的信号格式协议转换成共通信号格式,然后存储在IF部380。

各通信模块390管理的轴(与各通信模块390管理的控制对象装置20意思相同)以及IF部中各轴的地址范围被定义在映射信息中。各通信模块390基于映射信息,访问为各通信模块390应管理的轴(控制对象装置20)确保的存储器区域381,从而获取插值指令值,并且将反馈信息存储在存储器区域381。同样,各控制指令模块370基于映射信息,访问为各轴确保的存储器区域381,从而获取插值指令值,并且将反馈信息存储在存储器区域381。

图14是表示映射信息的一个例子的图。映射信息410中,针对每个轴(控制对象装置20),将管理各轴的通信模块390与通过通信接口规格使用的唯一确定控制对象装置20的识别符(从属编号)相关联。

在图14的例子中,轴1被定义为:由EtherCAT(注册商标)对应的通信模块390管理,与EtherCAT(注册商标)中的从属1所连接的控制对象装置20对应。同样,轴2被定义为:由EtherCAT(注册商标)对应的通信模块390管理,与EtherCAT(注册商标)中的从属2所连接的控制对象装置20对应。同样,轴3被定义为:由RTEX(注册商标)对应的通信模块390管理,与RTEX(注册商标)中的从属1所连接的控制对象装置20对应。此外,映射信息例如可以存储在多个通信模块390能够访问的实时OS300上的规定区域。或者,各通信模块390可以自己保存与自身相关的轴相关的映射信息。例如,EtherCAT(注册商标)对应的通信模块390可以保存存储有轴1以及轴2对应的从属编号的映射信息,RTEX(注册商标)对应的通信模块390可以保存存储有轴3对应的从属编号的映射信息。

图15是用于说明协议转换处理的处理过程的一个例子的图。通信模块390-1以及通信模块390-2在通过来自协作部310的指示进行启动的时刻(图6的步骤S102)等,至少在与控制对象装置20之间开始通信之前,通过读取映射信息410去获取自身应控制的轴的信息。此外,在以下的处理过程中,读取IF部380中存储的各轴的插值指令值以及反馈信息的处理以及将各轴的插值指令值以及反馈信息写入IF部380的处理例如通过控制指令模块370以及通信模块390调用固定的函数来进行。

首先,控制指令模块370更新IF部380的存储器区域381中按照共通信号格式存储的轴1~轴3的插值指令值(S500)。通信模块390-1获取轴1的插值指令值以及轴2的插值指令值(S501、S502),将获取到的插值指令值的信号格式从共通信号格式转换成EtherCAT(注册商标)的信号格式。然后,通信模块390-1将完成信号格式转换的轴1的插值指令值以及轴2的插值指令值分别发送给控制对象装置20-1以及控制对象装置20-2(S504、S505)。同样,通信模块390-2获取轴3的插值指令值(S503),将获取到的插值指令值的信号格式从共通信号格式转换成RTEX(注册商标)的信号格式。然后,通信模块390-2将转换后的轴3的插值指令值发送给控制对象装置20-3(S506)。

然后,通信模块390-1从控制对象装置20-1以及控制对象装置20-2获取轴1的反馈信息以及轴2的反馈信息(S510、S511),将获取到的反馈信息的信号格式从EtherCAT(注册商标)的信号格式转换成共通信号格式。然后,通信模块390-1将转换后的轴1的反馈信息以及轴2的反馈信息存储在IF部380的存储器区域381(S513、S514)。

同样,通信模块390-2从控制对象装置20-3获取轴3的反馈信息(S512),将获取到的反馈信息的信号格式从RTEX(注册商标)的信号格式转换成共通信号格式。然后,通信模块390-2将转换的轴2的反馈信息存储在IF部380的存储器区域381(S515)。控制指令模块370获取IF部380的存储器区域381中存储的轴1~轴3的反馈信息(S516)。

在如上所述的协议转换处理中,步骤S500~步骤S516的处理过程可以针对每个运动控制循环反复进行。

<总结>

以上,说明了实施方式所涉及的运动控制装置10。对控制对象装置20进行运动控制的情况下,为了使多个控制对象装置20同步并高精度地运行,需要针对每个运动控制循环(例如每1毫秒、每0.5毫秒)将插值指令持续发送给控制对象装置20。在Windows(注册商标)这种非实时OS100上,如果由于OS自身进行的后台处理等影响而导致处理负荷变高,则会使执行中的程序的运行速度变慢,因此,以1毫秒、0.5毫秒这种周期将插值指令持续发送给控制对象装置20是困难的。

另一方面,在本实施方式中,采用下述结构:在非实时OS110侧发出向多个运动控制循环传递的控制指令(API信息),在实时OS300侧经由API缓存部340获取该控制指令,并发出每个运动控制循环的插值指令。由此,能够吸收非实时OS110上的处理速度变化,使用安装有非实时OS110以及实时OS300的通用信息处理装置执行顺畅、高精度的运动控制。另外,在发出多个控制指令的情况下,该多个控制指令存储在API缓存部340。由此,能够顺畅执行基于各个控制指令的连续运动控制(运动控制序列)。

另外,在本实施方式中,通过将控制指示部110配置在非实时OS110侧,能够按照运动控制循环实现实时处理,并且提供用户惯用设计的用户界面。

另外,在本实施方式中,针对每个控制指示部110(更详细地讲,每个设备)准备进行运动控制时所需的API信道等资源。由此,能够通过控制指示部110发出控制指令,针对每个控制指示部110(即,每个用户创建程序111)分离用于控制控制对象装置20这一连串动作所需的资源,万一控制指示部110发生故障等异常,也能够抑制该异常影响其他控制指示部110的运行的可能性。

另外,在本实施方式中,将从实时OS300上的控制指令模块370到IF部380的处理使用共通信号格式进行通用化,通过通信模块390,从共通信号格式协议转换成控制对象装置20对应的通信接口规格的信号格式。由此,能够将运动控制装置10进行的大部分处理通用化,能够易于实现混合有通信接口规格不同的多个控制对象装置20的控制。

<变形例>

如上所述的实施方式是易于理解本发明的实施方式,不是限定本发明的实施方式。实施方式中说明的流程、序列、实施方式所具备的各个要素及其配置、材料、条件、形状以及尺寸等只是示例性的而非限定性的,可以进行适当的变更。另外,不同的实施方式所示的结构彼此之间可以局部替换或者组合。

例如,API信道是针对每个设备生成的,因此,如果确定了设备,则也能够唯一地确定API信道。因此,在本实施方式中,可以将“API信道识别符”替换为“设备识别符”。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号