生产系统、上级控制装置、控制装置、通信方法以及存储介质与流程

文档序号:28262792发布日期:2021-12-31 16:54阅读:90来源:国知局
生产系统、上级控制装置、控制装置、通信方法以及存储介质与流程

1.本公开涉及生产系统、上级控制装置、控制装置、通信方法以及存储介质。


背景技术:

2.在专利文献1中,记载了以下技术:将plc(programmable logic controller,可编程逻辑控制器)等上级控制装置的动作描述在梯形图中来生成程序,上级控制装置执行程序。
3.现有技术文献
4.专利文献
5.专利文献1:日本特开2012

194678号公报。


技术实现要素:

6.发明要解决的问题
7.本公开要解决的问题是例如降低上级控制装置使控制装置执行各种处理时的通信成本。
8.用于解决问题的手段
9.本公开的一个方面涉及的生产系统是以下生产系统,控制装置与上级控制装置可通信地连接,所述控制装置控制一个以上的产业装置,所述上级控制装置能够控制所述控制装置,所述上级控制装置包括:寄存器部,具有寄存器,所述寄存器被分配用于所述控制装置的控制,并包含命令区域;以及发送部,将被写入到所述命令区域中的多个命令数据发送到对应的所述控制装置,所述控制装置包括:通信用存储部,被写入从所述上级控制装置接收到的多个命令数据;以及执行部,基于被写入到所述通信用存储部中的多个命令数据来执行由所述上级控制装置指示的处理。
10.本公开的一个方面涉及的上级控制装置与控制装置可通信地连接,并能够控制所述控制装置,所述控制装置控制一个以上的产业装置,所述上级控制装置包括:寄存器部,具有寄存器,所述寄存器被分配用于所述控制装置的控制,并包含命令区域;以及发送部,将被写入到所述命令区域中的多个命令数据发送到对应的所述控制装置。
11.本公开的一个方面涉及的控制装置与上级控制装置可通信地连接,并控制一个以上的产业装置,所述控制装置包括:通信用存储部,在接收到多个命令数据的情况下,该多个命令数据被写入到所述通信用存储部中,所述多个命令数据是被写入到所述上级控制装置的寄存器的命令区域中的命令数据,所述寄存器被分配用于所述控制装置的控制;以及执行部,基于被写入到所述通信用存储部的多个命令数据来执行由所述上级控制装置指示的处理。
12.本公开的一个方面涉及的通信方法是生产系统中的通信方法,在所述生产系统中,控制装置与上级控制装置可通信地连接,所述控制装置控制一个以上的产业装置,所述上级控制装置能够控制所述控制装置,所述通信方法包括:将多个命令数据发送到对应的
所述控制装置,所述多个命令数据被写入到所述上级控制装置的寄存器的命令区域中,所述寄存器被分配用于所述控制装置的控制,基于被写入到通信用存储部的多个命令数据来执行由所述上级控制装置指示的处理,所述通信用存储部用于写入从所述上级控制装置接收到的多个命令数据。
13.本公开的一个方面涉及存储介质,存储有程序,所述程序用于使上级控制装置作为发送部发挥功能,所述上级控制装置与控制装置可通信地连接,并能够控制所述控制装置,所述控制装置控制一个以上的产业装置,所述发送部将多个命令数据发送到对应的所述控制装置,所述多个命令数据被写入到寄存器部的命令区域中,所述寄存器部具有寄存器,所述寄存器被分配用于所述控制装置的控制,并包含所述命令区域。
14.本公开的一方面涉及存储介质,存储有程序,所述程序用于使控制装置作为执行部发挥功能,所述控制装置与上级控制装置可通信地连接,并控制一个以上的产业装置,所述执行部在接收到多个命令数据的情况下,基于被写入到通信用存储部中的多个命令数据来执行由所述上级控制装置指示的处理,所述多个命令数据被写入到所述上级控制装置的寄存器的命令区域中,所述寄存器被分配用于所述控制装置的控制,所述通信用存储部用于写入所述多个命令数据。
15.根据本公开的一个方面,所述控制装置能够执行多个程序,请求程序选择的命令和程序名称作为所述多个命令数据被写入到所述命令区域中,所述执行部基于所述命令来选择所述程序名称的程序,并执行该选择的程序。
16.根据本公开的一个方面,在所述命令区域中,在所述命令和所述程序名称被发送之后,请求程序开始的新的命令数据被写入到所述命令区域中,所述发送部将所述新的命令数据发送给对应的所述控制装置,所述执行部基于所述新的命令数据来开始执行所述选择的程序。
17.根据本公开的一个方面,在所述命令区域中,还被写入与程序中的开始部分有关的开始部分信息作为所述命令数据,所述执行部基于所述开始部分信息来确定所述确定的程序中的开始部分,并从该确定的开始部分执行所述确定的程序。
18.根据本公开的一个方面,请求命令执行的命令请求信息和命令作为所述多个命令数据被写入到所述命令区域中,当所述命令请求信息被更新时,所述执行部基于所述命令来执行所述处理。
19.根据本公开的一个方面,所述控制装置具有多个功能,主命令和子命令作为所述多个命令数据被写入到所述命令区域中,所述主命令请求所述多个功能中的任一个,所述子命令请求该功能中的处理,所述执行部基于所述主命令和所述子命令的组合来确定所述处理并执行。
20.根据本公开的一个方面,在所述命令区域中的与所述主命令和所述子命令的组合对应的区域内,还被写入与所述处理的细节有关的详细信息作为所述命令数据,所述执行部基于被写入到与所述主命令和所述子命令的组合对应的区域内的所述详细信息来执行所述处理。
21.根据本公开的一个方面,所述上级控制装置还具有动作控制部,所述动作控制部通过执行用于控制所述控制装置的控制程序将用于请求执行所述处理的所述多个命令数据写入到所述命令区域中,所述发送部发送通过所述控制程序被执行而被写入到所述命令
区域中的所述多个命令数据。
22.根据本公开的一个方面,所述上级控制装置与所述控制装置通过异步通信的网络连接,所述发送部利用异步通信发送所述多个命令数据。
23.根据本公开的一个方面,所述通信用存储部被写入响应数据,所述响应数据表示所述处理的执行结果,所述产业装置还具有发送部,所述发送部将被写入到所述通信用存储部中的响应数据发送到所述上级控制装置,所述上级控制装置的所述寄存器部具有响应区域,所述响应区域被写入从所述控制装置接收到的响应数据。
24.根据本公开的一个方面,所述上级控制装置还包括:比较部,对所述多个命令数据与所述响应数据进行比较;以及输出部,基于所述比较部的比较结果输出预定的警报。
25.根据本公开的一个方面,所述产业装置是机器人,所述控制装置是控制所述机器人的机器人控制器,所述上级控制装置能够控制所述机器人控制器,所述处理是相当于所述机器人控制器的动作程序中的动作单位的机器人程序的处理。
26.根据本公开的一个方面,所述多个命令数据包含用于执行所述机器人程序的命令、所述机器人程序的机器人程序名称、以及所述机器人程序中的与机器人程序中的开始部分相关的开始部分信息,所述执行部在接收到所述命令的情况下基于所述机器人程序名称和所述开始部分信息来确定所述机器人程序和所述开始部分,并从该确定的开始部分执行该确定的机器人程序。
27.发明效果
28.根据本公开,例如,能够降低上级控制装置使控制装置执行各种处理时的通信成本。
附图说明
29.图1是示出生产系统的整体构成的一例的图;
30.图2是示出结构体数据的数据保存例子的图;
31.图3是示出定义了主命令和子命令的组合与机器人控制器应执行的处理之间的关系的命令定义数据的数据保存例子的图;
32.图4是示出在生产系统中实现的功能的功能框图;
33.图5是示出存储在寄存器部中的各变量的数据保存例子的图;
34.图6是示出选择并执行机器人程序时的变量的值的一例的图;
35.图7是示出在实施方式的生产系统中执行的处理的一例的流程图;
36.图8是示出在实施方式的生产系统中执行的处理的一例的流程图。
具体实施方式
37.[1.生产系统的整体构成]
[0038]
在控制一个以上的产业装置的控制装置和能够对控制装置进行控制的上级控制装置可通信地连接的生产系统中,在上级控制装置与控制装置之间频繁地收发命令数据,通信成本增加。因此,发明人为了降低上级控制装置使控制装置执行各种处理时的通信成本而进行了深入的研究开发,结果想到了新的且独创的生产系统等。以下,详细说明本实施方式涉及的生产系统等。
[0039]
图1是示出生产系统的整体构成的一例的图。如图1所示,生产系统1包括工程装置10、上级控制装置20、机器人控制器30、机器人40以及数据收集装置50。在图1中,示出了各装置各一台,但各装置也可以存在多台。
[0040]
生产系统1所包含的各装置能够与任意的网络连接。在本实施方式中,说明了各装置通过ethernet(以太网,注册商标)等一般的网络连接的情况,但各装置也可以通过产业装置用的网络连接。例如,也可以如上级控制装置20、工程装置10以及数据收集装置50通过一般的网络连接、上级控制装置20与机器人控制器30通过产业装置用的网络连接那样通过不同种类的网络连接。
[0041]
工程装置10是进行上级控制装置20的设定的计算机,该上级控制装置20能够控制机器人控制器30,机器人控制器30控制一个以上的机器人40。例如,工程装置10可以是个人计算机、移动电话(包括智能电话)或移动终端(包括平板终端)。另外,工程装置10也可以进行上级控制装置20以外的其他装置的设定。
[0042]
在工程装置10中安装有用于辅助用户的设定作业的工程工具。例如,工程工具用于各种目的,例如程序的生成、参数的设定、装置之间的通信设定、寄存器的定义或变量的定义。工程装置10包括cpu 11、存储部12、通信部13、操作部14以及显示部15。
[0043]
cpu 11包括至少一个处理器。cpu 11是电路的一种。存储部12包括ram、硬盘,存储各种程序和数据。cpu 11基于这些程序和数据执行各种处理。通信部13包括网卡和各种通信连接器等通信接口,进行与其他装置的通信。操作部14是鼠标、键盘等输入设备。显示部15是液晶显示器或有机el显示器等,根据cpu 11的指示显示各种画面。
[0044]
上级控制装置20是能够控制其他装置的计算机。上级控制装置20只要具有控制其他装置的功能即可,不一定必须控制其他装置。例如,上级控制装置20也可以不进行对机器人控制器30的控制,而仅从机器人控制器30执行数据收集。生产系统1整体是比生产线小的单位,有时被称为单元,在该情况下,上级控制装置20也有时被称为单元控制器。上级控制装置20有时也相当于plc(programmable logic controller,可编程逻辑控制器)的一种。
[0045]
在本实施方式中,上级控制装置20与机器人控制器30可通信地连接,能够控制机器人控制器30。例如,上级控制装置20也可以控制多个机器人控制器30。另外,例如,上级控制装置20也可以能够控制相互不同种类的多个装置。成为上级控制装置20的控制对象的装置的台数以及种类不限于本实施方式的例子,任意的台数及任意的种类的装置也可以成为控制对象。
[0046]
上级控制装置20包括cpu 21、存储部22、通信部23及iot(internet of things,物联网)部24。cpu 21、存储部22以及通信部23的物理结构可以分别与cpu 11、存储部12以及通信部13相同。iot部24是用于经由网络向其他计算机发送数据的单元。例如,iot部24包括cpu、存储部和通信部。iot部24所包含的cpu、存储部以及通信部的物理结构可以分别与cpu 11、存储部12以及通信部13相同。
[0047]
另外,cpu 21、存储部22以及通信部23也可以包含在上级控制装置20的第一框体(以下称为cpu单元)中,iot部24也可以包含在上级控制装置20的第二框体(以下称为iot单元)中。在这种情况下,工程装置10可以连接到cpu单元和iot单元中的每一个。用户可以将工程装置10连接到cpu单元,也可以将工程装置10连接到iot单元。
[0048]
机器人控制器30是控制机器人40的计算机。机器人控制器30是控制装置的一例。
因此,在本实施方式中记载为机器人控制器30的位置能够替换为控制装置。控制装置只要是与上级控制装置20可通信地连接并控制一个以上的产业装置的装置即可,可以是任意种类的装置。例如,控制装置可以是plc、运动控制器、马达控制器、逆变器、转换器、机床、传送装置或半导体制造装置。控制装置可控制任意台数的产业装置。控制装置可以仅控制一台产业装置,也可以控制多台产业装置。控制装置相当于产业装置的上级装置。上级控制装置20由于有时对控制装置进行控制,因此相当于与控制装置相比更上级的装置。
[0049]
机器人40是由机器人控制器30控制的产业用机器人。例如,机器人40包括机器人臂、机器人手、马达和传感器。传感器只要是能够检测物理量的传感器即可,例如是马达编码器、转矩传感器、运动传感器、把持传感器、视觉传感器或温度传感器。机器人40是产业装置的一例。因此,在本实施方式中记载为机器人40的位置可以替换为产业装置。产业装置是辅助或代替由人执行的作业的设备及其外围设备的总称。例如,产业用机器人、伺服放大器或马达相当于产业装置。广义上,上级控制装置20、机器人控制器30及传感器也是产业装置的一种。上述plc等装置也是产业装置的一种。
[0050]
数据收集装置50是收集生产系统1中的数据的计算机。数据收集装置50是个人计算机、服务器计算机、移动电话(包括智能手机)、或移动终端(包括平板型终端)。数据收集装置50包括cpu 51、存储部52、通信部53、操作部54以及显示部55。cpu 51、存储部52、通信部53、操作部54以及显示部55的物理结构可以分别与cpu 11、存储部12、通信部13、操作部14以及显示部15相同。
[0051]
另外,作为存储在各装置中的程序及数据而进行说明的程序及数据也可以经由网络来提供。另外,各装置的硬件结构不限于上述例子,可以应用各种硬件。例如,也可以包括用于读取计算机可读取的信息存储介质的读取部(例如,光盘驱动器或存储卡插槽)或用于与外部设备直接连接的输入输出部(例如,usb端子)。在这种情况下,可以经由读取部或输入输出部提供存储在信息存储介质中的程序或数据。
[0052]
另外,例如也可以在上级控制装置20上连接由上级控制装置20直接控制的机器人等产业装置。另外,例如,在上级控制装置20以及机器人控制器30的每一个中也可以包含被称为fpga(现场可编程门阵列,field

programmable gate array)或者asic(专用集成电路,application specific integrated circuit)的电路。另外,例如,上级控制装置20及机器人控制器30的每一个可以分别与上述传感器或输入输出设备等连接。
[0053]
[2.生产系统的概要]
[0054]
本实施方式的上级控制装置20基于多个变量的每一个来控制机器人控制器30。变量是用于控制机器人控制器30的控制程序所参照的信息。控制程序有时也改写变量。例如,变量表示中途的计算结果、警报的有无或由传感器检测出的物理量(例如,由转矩传感器检测出的转矩值、或由马达编码器检测出的马达的旋转速度)。
[0055]
例如,在机器人控制器30以预定的顺序执行多个工序的情况下,在控制程序中描述有各工序的执行顺序。上级控制装置20基于控制程序对机器人控制器30发送指示。变量也可以是工序的执行条件。例如,机器人控制器30存储用于开始工序的变量、用于使工序暂停的变量、或用于结束工序的变量。变量有时也称为输入输出变量。
[0056]
工序是指机器人控制器30利用机器人40进行的作业或动作。工序可以仅由一个作业构成,也可以由多个作业的组合构成。工序可以是与机器人控制器30的用途对应的任意
内容,例如,工件的识别、工件的把持、门的开闭、工件的设置、或利用工作设备的加工等。机器人控制器30进行至少一个工序。机器人控制器30进行的工序的数量可以是任意的数量,机器人控制器30可以仅进行一个工序,也可以进行多个工序。机器人控制器30基于从上级控制装置20接收到的指示和存储在自身中的装置程序来执行工序。
[0057]
装置程序是定义了机器人控制器30的动作的程序。在装置程序中定义了各工序中的各个步骤。装置程序能够以与机器人控制器30对应的任意语言来生成,例如通过梯形图语言或机器人语言等来生成。在本实施方式中,针对每个工序中准备装置程序。因此,若某机器人控制器30执行n个(n为自然数)工序,则该机器人控制器30至少存储有n个装置程序。
[0058]
另外,变量的种类不限于上述例子。例如,也可以存在表示从上级控制装置20对机器人控制器30的命令的变量。另外,例如,也可以存在表示开始执行某变量表示的命令的其他变量。另外,例如也可以存在表示机器人控制器30应执行的机器人程序名称或其执行条件的变量。机器人程序是机器人控制器30执行的程序,例如,上述的装置程序是机器人程序的一种。被称为作业(job)的程序也是机器人程序的一种。另外,例如,也可以存在表示从机器人控制器30对上级控制装置20的响应的变量。另外,例如,也可以存在与机器人控制器30的控制没有直接关系的变量。
[0059]
用户操作工程装置10,进行存储上述那样的变量的上级控制装置20的设定。在本实施方式中记载为“用户”的位置意味着上级控制装置20的用户。上级控制装置20的用户可以与机器人控制器30的用户以及数据收集装置50的用户相同,但在本实施方式中,对这些用户不同的情况进行说明。
[0060]
例如,用户使用安装在工程装置10中的工程工具来进行上级控制装置20的寄存器的分配。寄存器的分配作为上级控制装置20与机器人控制器30之间的通信设定的一环而被执行。在通信设定中,还进行使用的端口或ip地址等的设定。在上级控制装置20中,对每个机器人控制器30分配用于该机器人控制器30的控制的寄存器范围。
[0061]
寄存器范围是寄存器编号的范围。寄存器范围包括多个寄存器编号。寄存器范围中包含的寄存器编号的数目可以是任意数目。在本实施方式中,说明了寄存器范围所包含的寄存器编号是连号的情况,但寄存器范围所包含的寄存器编号也可以不是连号。分配给某装置的寄存器范围中所包含的寄存器保存用于该装置的控制的变量,而不保存用于其他装置的控制的变量。
[0062]
寄存器编号是识别各个寄存器的信息。寄存器编号是与地址相似的概念,但严格地说是与地址不同的意思。在本实施方式中,由于在cpu 21所包含的寄存器中保存有变量,因此寄存器编号表示cpu 21的各个寄存器。例如,当用户指定开头寄存器编号时,从所指定的开头寄存器编号到之后预定值的范围被自动指定为寄存器范围。
[0063]
开头寄存器编号是分配用于装置的控制的寄存器范围中的、最初的寄存器编号。结束寄存器编号是分配用于装置的控制的寄存器范围中的、最后的寄存器编号。在本实施方式中,由于寄存器范围是连号,所以某个装置的寄存器范围是从该装置所指定的开头寄存器编号到结束寄存器编号。
[0064]
结束寄存器编号是对开头寄存器编号加上由与通信配置(profile)对应的结构体数据定义的大小的偏移后的编号。通信配置是连接上级控制装置20和机器人控制器30的接口。通信配置可以具有与通信协议相同的含义,并且定义了通信步骤和数据的格式。结构体
数据作为工程工具的一部分存储在工程装置10的存储部12中。
[0065]
图2是示出结构体数据的数据保存例子的图。如图2所示,是在结构体数据d1中定义了通信配置中的寄存器体系的数据。在准备多个通信配置的情况下,针对每个通信配置准备结构体数据d1。在结构体数据d1中,示出寄存器范围中包含的寄存器编号和保存在该寄存器编号中的信息之间的关系。例如,结构体数据d1中保存偏移、层和名称。
[0066]
偏移是以开头寄存器编号为基准的寄存器编号。偏移也可以是从开头寄存器编号开始计数时的寄存器编号、或者相对于开头寄存器编号的相对的寄存器编号。如果是图2的数据保存例子,则用户指定的开头寄存器编号相当于偏移的最初的编号即“第0000号”。工程工具自动设定的结束寄存器编号相当于偏移的最后的编号即“第4259”号。在本实施方式中,包含从“第0000号”到“第4259号”的合计4260个寄存器编号的寄存器范围被分配给机器人控制器30。
[0067]
层是示出保存在与偏移对应的寄存器中的变量的属性的信息。属性是表示变量分类的信息。属性也能够是表示变量的性质或特征的信息。在通过层来表现属性的情况下,越向下的层,越能表现变量的具体分类。在图2的数据保存例子中,设为4级的层,但层的级数可以是任意的。另外,属性可以没有层的概念。
[0068]
名称是保存在与偏移相对应的寄存器中的变量的名称。由于根据变量的数据大小,有时不能保存在与一个寄存器编号对应的寄存器中,所以这样的变量跨越多个寄存器编号而保存。变量的数据大小越大,该变量所需的寄存器编号越多。另外,在第一层~第四层中,各变量的最下层的名称(例如,“第2500号”的“cmdreqid”)也是变量的名称的一种。
[0069]
在本实施方式中,仅对结构体数据d1中定义的变量中的主要变量进行说明。例如,偏移“第0012号”~“第2041号”的变量组是与上级控制装置20从机器人控制器30接收到的接收数据相同的数据。在该变量组中,包含多个应答头,多个应答头包含“第0413号”的命令请求id、“第0415号”的主命令、“第0416号”的子命令、“第0417号”的返回值以及“第0418号”的对附加数据的偏移。
[0070]
命令请求id是命令请求信息的一例。在本实施方式中说明命令请求id的位置能够替换为命令请求信息。命令请求信息是用于对机器人控制器30请求执行命令的信息。例如,当命令请求信息被更新时,命令被执行。另外,例如,在命令请求信息表示预定值的情况下,命令被执行。命令请求信息可以是id以外的任意形式,也可以用id以外的名称来称呼。本实施方式的命令请求id用数值表示,每当命令被执行时而被递增。
[0071]
主命令是示出机器人控制器30所具有的多个功能中的、对机器人控制器30请求的功能的信息。在本实施方式中,准备了控制机器人40的机器人控制功能、监视机器人40的动作的监视功能、以及收集与机器人40的动作相关的数据的收集功能这三个功能,主命令是示出这些中的任一个的值。另外,机器人控制器30可以不具有监视功能或收集功能,也可以具有其他功能。另外,机器人控制器30也可以仅具有单一的功能。在这种情况下,可以省略主命令。
[0072]
子命令是示出机器人控制器30能够执行的多个动作中的、对机器人控制器30请求的动作的信息。在本实施方式中,针对由主命令表示的每个功能,准备有多个动作。子命令表示在由主命令表示的功能中准备的多个动作中的某一个。即,在本实施方式中,通过主命令和子命令的组合,确定机器人控制器30执行的具体的动作。
[0073]
返回值是表示机器人控制器30的动作结果的信息。例如,返回值是第一值(例如,0)意味着动作已经正常完成。此外,例如,返回值是第二值(例如,1)意味着在动作中发生了异常。对附加数据的偏移是用于确定保存有来自机器人控制器30的响应数据中包含的附加数据的寄存器编号的信息。附加数据仅在主命令和子命令为预定的组合的情况下被附加。
[0074]
另外,例如,在“第0012号”~“第2041号”的变量组中,除了上述的应答头以外,还包含“第0504号”~“第1054号”的应答数据区域。在应答数据区域中保存附加数据等数据。
[0075]
另外,例如,“第2042号”~“第2499号”的变量组是与上级控制装置20对机器人控制器30发送的发送数据相同的数据。在该变量组中,包含“第2163号”的命令请求id、“第2165号”的主命令、“第2166号”的子命令、以及“第2167号”~“第2499号”的命令数据区域。命令请求id、主命令和子命令的含义如上所述。
[0076]“第2163号”~“第2166号”的命令请求id、主命令以及子命令是发送给机器人控制器30的信息。即,这些信息是针对机器人控制器30的命令的一种。上述的“第0413号”~“第0416号”的命令请求id、主命令以及子命令是从机器人控制器30接收的信息。即,这些信息是来自机器人控制器30的响应的一种。在机器人控制器30正确地动作的情况下,“第2163号”~“第2166号”的值与“第0413号”~“第0416号”的值一致。
[0077]
在“第2167号”~“第2499号”的命令数据区域中保存对机器人控制器30所要求的动作的细节。例如,如果是机器人程序选择的命令,则机器人程序名称和机器人程序的开始部分被保存在命令数据区域中。除此之外,也可以将执行机器人程序所需的参数等数据保存在命令数据区域中。另外,例如,如果是电源控制的命令,则表示使电源接通还是断开的数据被保存在命令数据区域中。对于其他命令也是同样的,只要根据需要将表示该命令的详细内容的数据保存在命令数据中即可。
[0078]
另外,“第2500号”~“第2950号”的变量组相当于上级控制装置20从机器人控制器30接收到的最新的接收数据。例如,由于在“第0413号”~“第0418号”和“第0504号”以后保存有最新的接收数据,所以该最新的接收数据被复制到“第2500号”~“第2950号”。另外,“第2500号”~“第2950号”的变量组相当于接收数据,在“第0413号”~“第2041号”中也可以保存接收数据的历史。即,接收数据的单位可以是“第0413号”~“第2041号”的变量组,也可以是“第2500号”~“第2950号”的变量组。
[0079]
另外,结构体数据d1中也可以包含监视功能用的寄存器范围和收集功能用的寄存器范围。在监视功能用的寄存器范围中保存有用于监视机器人40的动作的变量。在收集功能用的寄存器范围中保存成为数据收集装置50的收集对象的变量。
[0080]
本实施方式的上级控制装置20针对每个机器人控制器30分配与结构体数据d1对应的寄存器范围。例如,若连接上级控制装置20和k(k为自然数)台机器人控制器30,则对上级控制装置20的cpu 21的寄存器分配至少k个寄存器范围。如果k台机器人控制器30的通信配置相同,则k个寄存器范围相互成为图2那样的体系。但是,由于图2归根到底是偏移的寄存器编号,所以k个寄存器范围中包含的实际的寄存器编号被设定为相互不重复。
[0081]
上级控制装置20基于与k台机器人控制器30分别对应的寄存器范围的变量控制该机器人控制器30。在本实施方式中,由于通过主命令和子命令的组合来确定具体的处理内容,因此机器人控制器30基于发送数据中包含的主命令和子命令的组合来确定自身应执行的具体的处理,并根据命令请求id递增来执行该处理。
[0082]
图3是示出定义了主命令和子命令的组合与机器人控制器30应执行的处理之间的关系的命令定义数据的数据保存例子的图。命令定义数据d2可以作为工程工具的一部分存储在工程装置10的存储部12中。
[0083]
在图3的例子中,主命令为“1”意味着机器人控制功能。主命令为“2”意味着监视功能。主命令为“3”意味着收集功能。对于这三个主命令的每个值定义了表示各功能中的处理的细节的子命令。在子命令中示出了对应的主命令所示的功能中的具体的处理内容。
[0084]
例如,如果是机器人控制功能的主命令,则准备有警报的重置、电源控制、机器人程序选择、模式切换、执行机器人程序、以及向目标位置的机器人动作的各个子命令。在图3的例子中,通过子命令的“1”~“6”的各个值来表示它们的具体内容。另外,机器人控制功能的子命令不限于图3的例子,例如,也可以准备保持的停止、hmi的锁定、循环变更、以及指定了各轴的脉冲的机器人动作等的子命令。另外,例如,也可以准备与机器人语言中的move、wait等命令相当的子命令。另外,例如,也可以准备用于执行比机器人程序大的程序(例如,装置程序)的子命令、参数设定等维护用的子命令。
[0085]
另外,例如,如果是监视功能的主命令,则准备有监视设定读出和机器人程序信息读出的子命令。在图3的例子中,子命令的“1”和“2”的每一个值指示了它们的具体的内容。另外,监视功能的子命令不限于图3的例子,例如,也可以准备监视设定写入等子命令。
[0086]
另外,例如,如果是收集功能的主命令,则准备有收集设定的读出和收集开始的子命令。在图3的例子中,子命令的“1”和“2”的每一个值指示了它们的具体的内容。另外,收集功能的子命令不限于图3的例子,例如,也可以准备收集设定的写入或收集结束等子命令。
[0087]
如图3所示,根据主命令和子命令的组合,保存在命令数据区域中的数据不同。在命令定义数据d2中预先定义了在命令数据区域中可以参照哪个寄存器编号(在哪个寄存器编号中保存有什么数据)。该定义存储在上级控制装置20和机器人控制器30的各个中。
[0088]
例如,主命令“1”和子命令“3”的组合所示的“机器人程序选择”需要确定选择对象的机器人程序,因此在命令数据区域中的预定的寄存器编号的寄存器中保存机器人程序名称。在本实施方式中,也能够从机器人程序中途开始执行。在从机器人程序的中途开始执行的情况下,在命令数据区域中的预定的寄存器编号的寄存器中保存机器人程序的开始部分。
[0089]
机器人程序的开始部分是用于确定与机器人程序对应的多个程序代码中开始执行的程序代码的信息。如果用梯形图语言生成机器人程序,则机器人程序的开始部分是行编号。在不是从机器人程序的中途而是从开头开始的情况下,也可以不写入开始部分。
[0090]
如上所述,本实施方式的上级控制装置20在与第1层“commanddata”对应的寄存器范围内保存命令请求id、主命令以及子命令等各种命令数据,一次发送这些命令数据。机器人控制器30执行一次接收到的多个命令数据。由此,在上级控制装置20与机器人控制器30之间,不会多次收发命令数据,从而降低通信成本。以下,说明生产系统1的详细内容。
[0091]
[3.生产系统中实现的功能]
[0092]
图4是示出在生产系统1中实现的功能的功能框图。在本实施方式中,对由工程装置10、上级控制装置20、机器人控制器30以及数据收集装置50分别实现的功能进行说明。
[0093]
[3

1.由工程装置实现的功能]
[0094]
如图4所示,工程装置10包括数据存储部100和设定部101。数据存储部100主要由
存储部12实现,设定部101主要由cpu11实现。
[0095]
[数据存储部]
[0096]
数据存储部100存储为了进行上级控制装置20的设定所需的数据。例如,数据存储部100存储前述的结构体数据d1和命令定义数据d2。另外,例如,数据存储部100存储工程工具。另外,例如,数据存储部100也可以存储用户利用工程工具而生成的程序或参数。另外,例如,数据存储部100也可以存储表示通信设定的详细定义的详细定义数据。在详细定义数据中保存有分配给机器人控制器30的寄存器范围、在与机器人控制器30的通信中使用的本站端口、通信种类、机器人控制器30侧的端口、以及机器人控制器30的ip地址等信息。
[0097]
[设定部]
[0098]
设定部101基于用户操作执行上级控制装置20等装置的设定处理。例如,设定部101基于用户指定的寄存器编号分配上级控制装置20在机器人控制器30的控制中使用的寄存器范围。在该寄存器范围中保存变量组,该变量组通过用于控制对应的机器人控制器30的控制程序进行参照和改写中的至少一者。所谓分配寄存器范围是指,为了控制某机器人控制器30而确保或预约与该机器人控制器30对应的寄存器范围所表示的寄存器编号。由分配部分配的寄存器范围成为与该寄存器范围对应的专用于机器人控制器30的控制的存储区域。设定部101通过将保存在详细定义数据中的寄存器范围的信息写入到上级控制装置20的数据存储部200中,来分配寄存器范围。设定部101还进行ip地址的设定等其他设定。
[0099]
[3

2.由上级控制装置实现的功能]
[0100]
如图4所示,上级控制装置20包括数据存储部200、寄存器部201、动作控制部202、发送部203、接收部204、比较部205以及输出部206。数据存储部200主要由存储部22实现。寄存器单元201、动作控制部202、发送部203、接收部204、比较部205和输出部206中的每一个主要由cpu21实现。
[0101]
[数据存储部]
[0102]
数据存储部200存储用于控制机器人控制器30的数据。例如,数据存储部200存储控制程序和参数。另外,例如,数据存储部200可以存储固件等其他程序,也可以存储用于向数据收集装置50发送数据的程序。后述的动作控制部202基于这些程序及参数控制机器人控制器30。另外,例如,数据存储部200存储详细定义数据,该详细定义数据表示由工程装置10设定的通信设定的细节。在详细定义数据中示出了用于机器人控制器30的控制而分配的寄存器范围。该详细定义数据与存储在工程装置10的数据存储部100中的数据相同。
[0103]
[寄存器部]
[0104]
寄存器部201具有由多个寄存器编号的每一个表示的寄存器。在寄存器部201所包含的寄存器中由设定部101分配的寄存器范围中保存用于机器人控制器30的控制的变量。由寄存器编号确定的寄存器是各个存储元件的单位。在本实施方式中,说明了寄存器部201是cpu 21所包含的多个寄存器的集合的情况,但寄存器部201也可以是存储部22或其他信息存储介质所包含的多个寄存器的集合。寄存器部201也可以存储用于机器人控制器30的控制的变量以外的变量。
[0105]
图5是示出存储在寄存器部201中的各变量的数据保存例子的图。在图5中,用d3的符号表示用于某一台机器人控制器30的控制的寄存器范围整体的变量。如图5所示,在寄存器部201中,在多个寄存器编号分别表示的寄存器中保存有变量的值。在图5的例子中,用户
指定的开头地址是“第gw05000号”,寄存器范围从该编号开始。由于结构体数据d1成为图2那样的偏移,因此用于机器人控制器30的控制的寄存器范围成为“第gw05000号”~“第gw09259号”。
[0106]
例如,寄存器部201具有被分配用于机器人控制器30的控制的、包含命令区域的寄存器。命令区域是用于保存命令数据的区域。区域是存储区域,并且是由至少一个寄存器编号指示的寄存器。如果是图2的结构体数据d1,则第一层“commanddata”的区域(偏移的“第2042号”~“第2499号”的区域。如果是图5,则为“第gw07042号”~“第gw07499号”)是命令区域的一例。
[0107]
另外,命令区域不限于上述区域。命令区域只要是能够保存命令数据的区域即可,可以是任意的区域。例如,第二层“cmdrequest”的区域(偏移的“第2163号”~“第2499号”的区域。如果是图5,则为“第gw07163号”~“第gw07499号”)可以相当于命令区域。此外,例如,第三层“cmdreqid”~“subcmd”的区域(偏移的“第2163号”~“第2166号”的区域。如果是图5,则为“第gw07163号”~“第gw07166号”可以相当于命令区域。
[0108]
命令数据是与命令有关的变量。命令是上级控制装置20对机器人控制器30的指令。换言之,命令是由上级控制装置20指示的处理内容。命令数据可以表示命令本身,也可以表示执行命令所需的附带的数据。在命令区域中保存多个命令数据。例如,通过多个命令数据的组合来确定一个处理内容。另外,例如,通过多个命令的组合来确定处理的内容和是否开始该处理。即,将多个命令数据作为一个数据集来控制机器人控制器30。
[0109]
在本实施方式中,命令请求id、主命令、子命令、以及保存在命令数据区域中的机器人程序名称和开始部分等数据的每一个相当于命令数据。在这些全部被利用的情况下,四个命令数据被发送到机器人控制器30。一次发送的命令数据的数量不限于四个。可以一次发送两个、三个或五个以上的命令数据。在命令区域中保存至少要发送的数量的命令数据即可。例如,如命令请求id、主命令和子命令那样,命令数据也可以用数值表示。另外,例如,如机器人程序名称等那样,命令数据也可以用字符串表示。
[0110]
例如,寄存器部201具有写入从机器人控制器30接收到的响应数据的响应区域。响应区域是用于保存响应数据的区域。如果是图2的结构体数据d1,则第一层“responsdata”的区域(偏移的“第0012号”~“第2041号”的区域。如果是图5,则为“第gw05012号”~“第gw07041号”)是响应区域的一例。
[0111]
另外,响应区域不限于上述区域。响应区域只要是能够保存一部分响应数据或全部的响应数据的区域即可,可以是任意的区域。例如,第二层“cmdanswer”的区域(偏移的编号“第0413号”~“第1054号”的区域。如果是图5,则为“第gw05413号”~“第gw06054号”)也可以相当于响应区域。另外,例如,第一层“cmdanswork”的区域(偏移的“第2500号”~“第2950号”的区域。如果是图5,则为“第gw07500号”~“gw07950号”)可以相当于响应区域。
[0112]
响应数据是表示命令的执行结果的数据。在本实施方式中,若将多个命令数据作为一个指令,则响应数据是相当于对指令的响应的数据。例如,在响应数据中包含能够识别机器人控制器30执行的处理的信息。在本实施方式中,响应数据包括命令请求id、主命令、子命令和返回值。包含在响应数据中的命令请求id是当执行主命令和子命令时的命令请求id。包含在响应数据中的主命令和子命令是由机器人控制器30实际执行的。返回值是示出由主命令和子命令指定的处理是否正常结束的值。另外,响应数据不限于此,可以保存任意
的信息。例如,在响应数据中,根据需要,也可以保存表示处理结果的细节等的附加数据。
[0113]
[动作控制部]
[0114]
动作控制部202基于多个变量和控制程序来控制机器人控制器30的动作。例如,动作控制部202通过执行用于控制机器人控制器30的控制程序,将用于请求执行处理的多个命令数据写入命令区域。在控制程序中定义了多个命令数据的各自的值。
[0115]
例如,如果是图3所示的机器人程序选择,则在控制程序中定义有以下内容:在主命令的区域中保存“1”,在子命令的区域中保存“3”,在命令数据区域中保存预定的机器人程序名称(根据需要也保存开始部分),使命令请求id递增。对于其他处理也是同样的,在控制程序中定义了至少在主命令的区域和子命令的区域的每一个中保存了预定的值之后,使命令请求id递增。另外,也可以在递增命令请求id之后保存其他区域的值,但在该情况下,若在变更其他区域的值之前对发送数据进行发送,则有可能引起机器人控制器30错误动作,所以在本实施方式中,设为上述顺序。
[0116]
动作控制部202将针对机器人控制器30的命令写入与该机器人控制器30对应的寄存器范围所包含的寄存器中。动作控制部202参照记录在数据存储部200中的详细定义数据,确定哪个机器人控制器30与哪个寄存器范围对应,向包含在所确定的寄存器范围中的寄存器写入命令。写入到寄存器的命令通过动作控制部202被发送到机器人控制器30。
[0117]
在此,以使机器人控制器30执行机器人程序时的处理为例,说明动作控制部202的处理。在本实施方式中,说明了将机器人程序的选择和机器人程序的执行作为不同的命令来准备的情况,但也可以将它们汇总为一个命令。即,也可以在选择了机器人程序之后立即执行该机器人程序。
[0118]
图6是示出选择并执行机器人程序时的变量的值的一例的图。另外,在此,说明分配了图5那样的寄存器范围的情况。即,作为与机器人控制器30对应的寄存器范围,分配了“第gw05000号”~“第gw09259号”。在图6中,表示在该寄存器范围中写入命令区域的多个命令数据(命令请求id、主命令、子命令、以及命令数据区域内的数据)的变化。在图6的例子中,在控制程序执行前的命令区域中,作为初始状态,命令请求id为“0”,在区域中不保存数据。
[0119]
在开始执行控制程序时(例如,梯形图程序的开头所描述的线圈接通时),动作控制部202为了使机器人控制器30进行机器人程序选择,在“第gw07165号”的寄存器中写入表示机器人控制的功能的值(例如,1)作为主命令。动作控制部202将表示机器人程序选择的值(例如3)作为子命令写入到“第gw07166号”的寄存器中。
[0120]
动作控制部202在“第gw07167号”~“第gw07499号”中的一部分寄存器中写入机器人程序名称和机器人程序的开始部分。机器人程序的开始部分是用于确定与机器人程序对应的多个程序代码中开始执行的程序代码的信息。如果用梯形图语言生成机器人程序,则机器人程序的开始部分是行编号。在不是从机器人程序的中途而是从开头开始的情况下,也可以不写入开始部分。在上述的写入结束后,动作控制部202为了使机器人控制器30选择机器人程序,使“第gw07163号”的命令请求id递增。如图6所示,命令请求id从“0”变为“1”。
[0121]
通过以上处理,用于选择机器人程序的处理完成。上级控制装置20的发送部203发送相当于“第gw07042号”~“第gw07499号”的寄存器的发送数据。机器人控制器30的接收部304接收发送数据并写入后述的通信用存储部301。机器人控制器30的执行部302参照通信
用存储部301判定命令请求id是否被递增。在此,由于命令请求id从“0”递增到“1”,因此执行部302执行写入到通信用存储部301中的主命令以及子命令,读出写入到通信用存储部301中的机器人程序名称所示的机器人程序。在指定了开始部分的情况下,执行部302读出该开始部分以后的机器人程序。读出的机器人程序在数据存储部300或通信用存储部301中展开。另外,在该时间点,还不执行读出的机器人程序。在进行后述的机器人程序执行的情况下,执行读出的机器人程序。
[0122]
执行部302将表示主命令及子命令的执行结果的响应数据写入到通信用存储部301。发送部303向上级控制装置20发送写入到通信用存储部301中的响应数据。该响应数据是与图2所示的“第0012号”~“第2041号”相同的形式。例如,发送部303发送响应数据,该响应数据包含与执行的命令对应的命令请求id、主命令以及子命令、和表示正常执行了命令的返回值。在命令没有被正常执行的情况下,该意思的返回值包含在响应数据中。
[0123]
上级控制装置20的接收部204若接收到响应数据,则写入寄存器部201中的响应区域。后面描述的比较部205判定包括在已发送的发送数据中的命令请求id、主命令和子命令(即,“第g07163号”~“第g07166号”的各变量)与包括在响应数据中的命令请求id、主命令和子命令(即,“第g05413号”~“第g05416号”或“第g07500号”~“第g07503号”的各变量)是否一致。另外,比较部205判定包含在响应数据中的返回值是否表示正常值。在这些判定都是肯定的情况下,执行下面的处理。在任一判定为否定的情况下,后述的输出部206输出警报。在这种情况下,操作控制部202停止执行控制程序。
[0124]
在控制程序中,作为下一个处理,描述有使已选择的机器人程序执行的处理。如图6所示,动作控制部202为了使机器人控制器30执行机器人程序,在“第gw07165号”的寄存器中写入表示机器人控制的功能的值(例如,1)作为主命令。动作控制部202将表示机器人程序执行的值(例如5)作为子命令写入“第gw07166号”的寄存器中。操作控制部202使“第gw07163号”的命令请求id递增。命令请求id从“1”变为“2”。另外,假设在执行机器人程序的情况下,在“第gw07167号”~“第gw07499号”的寄存器中不写入任何内容。
[0125]
通过以上处理,用于执行机器人程序的处理完成。发送部203发送相当于“第gw07042号”~“第gw07499号”的寄存器的发送数据。与上述流程同样地,由机器人控制器30的执行部302检测命令请求id被递增,执行主命令以及子命令。由于通过前一个主命令以及子命令已经读出了机器人程序,所以执行部302执行已读出的机器人程序。在指定了机器人程序的开始部分的情况下,执行部302从所指定的开始部分执行机器人程序。当执行机器人程序时,与上述流程同样地发送响应数据,并判定机器人程序是否被正常执行。
[0126]
另外,机器人控制器30的控制方法不限于上述例子。动作控制部202也可以不利用主命令和子命令而控制机器人控制器30。例如,动作控制部202也可以通过在与某机器人控制器30对应的寄存器范围的寄存器中写入命令请求id和某一个命令来控制该机器人控制器30。另外,例如,在与某机器人控制器30对应的寄存器范围的寄存器中存储有成为该机器人控制器30的装置程序的开始条件的变量的情况下,动作控制部202也可以通过改写该变量的值来指示该机器人控制器30开始装置程序的执行。
[0127]
另外,动作控制部202也可以使存储在寄存器部201中的变量的一部分或全部与存储在通信用存储部301中的变量的一部分或全部匹配。这些匹配可以定期地进行,也可以不定期地进行。例如,动作控制部202对某些机器人控制器30发送寄存器部201中包含与该机
器人控制器30对应的寄存器范围的变量的全部或一部分的发送数据。另外,例如,动作控制部202从某机器人控制器30在寄存器部201中与该机器人控制器30对应的寄存器范围内记录从该机器人控制器30接收到的响应数据。通过这些处理,取得全部或一部分变量的匹配。
[0128]
如上所述,动作控制部202将请求机器人程序选择的命令和机器人程序名称作为多个命令数据写入命令区域。在本实施方式中,该命令是表示“1”的主命令和表示“3”的子命令的组合。机器人程序名称是在控制程序中定义的字符串。动作控制部202将控制程序中定义的机器人程序名称保存在命令数据区域中的预定区域中。
[0129]
例如,动作控制部202也可以在命令区域中进一步写入与机器人程序中的开始部分相关的开始部分信息作为命令数据。假设在控制程序中定义了开始部分信息。动作控制部202将控制程序中定义的开始部分信息(例如,梯形图程序中的行编号)写入命令区域。另外,假设在不指定开始部分而从机器人程序的最初开始执行的情况下,不写入开始部分信息。
[0130]
动作控制部202在向命令区域发送了命令和机器人程序名称之后,写入请求机器人程序开始的新的命令数据。在本实施方式中,该新的命令数据是表示“1”的主命令和表示“5”的子命令的组合。如上所述,假设在命令数据区域中不保存任何数据,但是可以在命令数据区域中保存某些数据。
[0131]
动作控制部202将请求命令执行的命令请求id和命令作为多个命令数据写入命令区域中。在本实施方式中,说明了该命令是主命令和子命令的组合的情况,但也可以是单一命令,也可以是三个以上的命令的组合。
[0132]
在本实施方式中,机器人控制器30具有多个功能,动作控制部202将请求多个功能中的某一个的主命令和请求该功能中的处理的子命令作为多个命令数据写入命令区域。在上述的例子中,举出了机器人控制功能的例子,但在请求监视功能或收集功能的情况下,动作控制部202写入“2”或“3”的主命令即可。
[0133]
动作控制部202还将与处理的细节有关的详细信息作为命令数据写入命令区域中的与主命令和子命令的组合对应的区域中。详细信息是保存在命令数据区域中的信息。在本实施方式中对机器人程序名称和开始部分信息进行说明的位置可以替换为详细信息。如上所述,假设在命令定义数据d2等中预先定义了主命令和子命令的组合与命令区域中保存有详细信息的部分之间的关系。动作控制部202能够通过参考该关系来确定可以通过参考命令区域的哪个部分来获取详细信息。
[0134]
[发送部]
[0135]
发送部203对机器人控制器30发送任意的数据。例如,发送部203将写入到命令区域中的多个命令数据发送给对应的机器人控制器30。对应的机器人控制器30是指与包含命令区域的寄存器范围对应的机器人控制器30。在命令区域中写入了新的命令数据的情况下,发送部203将新的命令数据发送到对应的机器人控制器30。
[0136]
在本实施方式中,由于通过控制程序的执行来进行向命令区域的写入,所以发送部203发送通过控制程序的执行而写入到命令区域的多个命令数据。发送部203在对命令区域的写入完成后的任意定时,发送包含多个命令数据的发送数据。在本实施方式中,说明了在发送数据中也包含命令数据以外的数据的情况,但在发送数据中也可以仅包含多个命令数据。在本实施方式中,发送部203将多个命令数据作为一个发送数据一次发送。即,多个命
令数据被汇总在一个数据帧中。
[0137]
另外,在本实施方式中,假设上级控制装置20和机器人控制器30通过异步通信的网络连接。例如,上级控制装置20和机器人控制器30通过ethernet(以太网,注册商标)等一般的网络连接。另外,例如,也可以在上级控制装置20与机器人控制器30之间定期地进行数据的发送接收。
[0138]
所谓同步通信是使发送侧的设备发送数据的定时与接收侧的设备接收数据的定时相匹配的通信方式。在同步通信中,在从发送数据通信的请求到接收响应的期间,原则上不执行其他处理。因此,发送侧的设备在向接收侧的设备发送数据之后,等待接收响应。接收侧的设备在从发送侧的设备接收数据时,立即执行处理,向发送侧的设备作为响应返回处理结果。发送侧的设备接收到处理结果后,转移到下一个处理。在不进行同步通信的情况下,利用异步通信进行通信。上级控制装置20和机器人控制器30也可以通过同步通信的网络连接。
[0139]
所谓异步通信是不将发送侧的设备发送数据的定时和接收侧的设备接收数据的定时相匹配地进行通信的通信方式。在异步通信中,在从发送数据通信的请求到接收响应的期间,能够执行其他的处理。因此,在异步通信中,发送侧的设备能够在从向接收侧的设备发送数据到接收到响应为止的期间执行其他处理。此外,在异步通信中,接收侧的设备即使从发送侧的设备接收数据,也不一定马上执行处理。接收侧的设备在满足规定的条件之前等待处理的执行,或者优先执行同步通信的处理。发送部203利用异步通信发送多个命令数据。
[0140]
[接收部]
[0141]
接收部204从机器人控制器30接收任意数据。例如,接收部204接收机器人控制器30根据命令的执行而发送的响应数据。接收部204当接收到响应数据时,将响应数据保存在具有预先确定的寄存器编号的寄存器中。在本实施方式中,在偏移的“第0012号”~“第2041号”的各个寄存器中保存响应数据。
[0142]
[比较部]
[0143]
比较部205对发送的多个命令数据和响应数据进行比较。比较部205判定这些数据全部或一部分是否一致。在本实施例中,比较部205判定在发送的多个命令数据中包含的命令请求id、主命令和子命令与在响应数据中包含的命令请求id、主命令和子命令是否一致。比较部205可以进行其他判定,例如,可以判定响应数据中包含的返回值是否为预定的。此外,例如,比较部205可以判定附加数据是否包含在响应数据中。
[0144]
[输出部]
[0145]
输出部206基于比较部205的比较结果输出预定的警报。警报可以以人类可感知的方式输出,例如以视觉的、听觉的或触觉的方式输出。例如,输出部206通过使与上级控制装置20连接的显示部显示预定的图像,来输出警报。该图像可以是错误消息,也可以是图标。另外,例如,输出部206也可以通过使画面闪烁来输出警报。
[0146]
输出部206在由比较部205判定为一致的情况下不输出警报,在由比较部205判定为不一致的情况下输出警报。另外,警报也可以通过来自扬声器的声音、振动器的振动、或led灯的闪烁来输出。警报还可以通过发送电子邮件之类的其他方法来输出。另外,在本实施方式中,通过比较部205对命令请求id、主命令以及子命令这三个项目进行比较,输出部
206在任一个项目不一致的情况下输出警报。输出部206也可以在不一致的项目数成为阈值(例如,2)以上的情况下输出警报。
[0147]
[3

3.由机器人控制器实现的功能]
[0148]
如图4所示,机器人控制器30包括数据存储部300、通信用存储部301、执行部302、发送部303及接收部304。数据存储部300主要由存储部32实现。通信用存储部301、执行部302、发送部303以及接收部304主要由cpu 31实现。
[0149]
[数据存储部]
[0150]
数据存储部300存储用于使机器人控制器30进行预定的动作所需的数据。例如,数据存储部300存储装置程序和参数。另外,例如,数据存储部300存储装置程序中不包含的机器人程序的程序。
[0151]
[通信用存储部]
[0152]
通信用存储部301存储表示与上级控制装置20通信的内容的多个变量。在本实施方式中,说明了通信用存储部301由cpu 31内的寄存器实现的情况,但也可以不将数据存储部300与通信用存储部301分开,而使数据存储部300存储多个变量的每一个。另外,通信用存储部301的寄存器体系是预先定义的。即,预先确定将哪个数据写入哪个寄存器编号的寄存器中。该寄存器系统原则上是固定的并且不可改变,但是也可以通过工程工具来改变。
[0153]
例如,通信用存储部301存储上级控制装置20发送的发送数据。通信用存储部301存储从上级控制装置20接收到的多个变量的每一个。例如,通信用存储部301存储包含在从上级控制装置20接收到的接收数据中的变量。该变量的值与存储在寄存器单元201中的变量的值相同。通信用存储部301也可以存储其他变量。另外,也可以不将数据存储部300和通信用存储部301分开,而由数据存储部300存储多个变量的每一个。
[0154]
在本实施方式中,在通信用存储部301中写入从上级控制装置20接收到的多个命令数据。即,在接收到写入分配用于机器人控制器30的控制的上级控制装置20的寄存器的命令区域中的多个命令数据的情况下,在通信用存储部301中写入该多个命令数据。另外,例如,通信用存储部301存储机器人控制器30发送的响应数据。在通信用存储部301中写入表示处理的执行结果的响应数据。
[0155]
[执行部]
[0156]
执行部302基于写入到通信用存储部301中的多个命令数据执行由上级控制装置20指示的处理。执行部302基于多个命令数据确定处理内容,并执行该被确定的处理内容的处理。假设多个命令数据的每一个与处理内容之间的关系预先存储在数据存储部300中。该关系也可以是与图3的命令定义数据d2相同的数据。
[0157]
执行部302执行的处理可以是任意处理。执行部302可以执行与上述各种命令相对应的处理。例如,处理是机器人程序的处理。机器人程序也有时相当于装置程序中的动作单位。本实施方式的机器人控制器30能够执行多个机器人程序,执行部302基于命令选择机器人程序名称的机器人程序,并执行该选择出的机器人程序。
[0158]
在本实施方式中,在选择了机器人程序之后,发送新的命令数据,指示机器人程序的执行,因此执行部302基于新的命令数据开始执行所选择的机器人程序。执行部302在表示执行机器人程序的新的命令数据(在本实施方式中,主命令为“1”、子命令为“5”的数据)记录在通信用存储部301中的情况下,开始执行所选择的机器人程序。
[0159]
另外,在本实施方式中,由于能够指定开始执行机器人程序的开始部分,因此执行部302基于开始部分信息确定所确定的机器人程序中的开始部分,并执行从该确定的开始部分确定的机器人程序。例如,在机器人程序的行编号被指定为开始部分的情况下,执行部302从被指定为开始部分的行编号开始执行机器人程序。
[0160]
此外,在本实施例中,当命令请求id被更新时,执行部302基于命令执行处理。执行部302参照存储在通信用存储部301中的命令请求id判定命令请求id是否被更新。当判定为命令请求id未被更新时,即使主命令和子命令中的至少一个被更新,执行部302也不执行根据主命令和子命令确定的处理。当判定为命令请求id已经被更新时,执行单元302执行根据主命令和子命令确定的处理。另外,假设最近的命令请求id被保持在通信用存储部301中。
[0161]
此外,在本实施方式中,执行部302基于主命令和子命令的组合确定并执行处理。假设预先定义了主命令和子命令的组合与应执行的处理内容之间的关系。该定义可以在装置程序中定义,也可以另外准备定义文件并存储在数据存储部300中。另外,执行部302也可以在检测到成为某装置程序的开始条件的变量成为规定的值的情况下,执行该装置程序。
[0162]
执行部302基于在与主命令和子命令的组合相对应的区域中写入的详细信息来执行处理。该区域是命令数据区域。详细信息是写入到命令数据区域的信息。假设预先定义了主命令和子命令的组合与写入详细信息的区域之间的关系。该定义可以在装置程序中定义,也可以另外准备定义文件并存储在数据存储部300中。
[0163]
本实施方式的多个命令数据包含用于执行机器人程序的命令、机器人程序的机器人程序名称、以及机器人程序中的与机器人程序中的开始部分相关的开始部分信息,执行部302在接收到命令的情况下基于机器人程序名称和开始部分信息确定机器人程序和开始部分,并从该确定的开始部分执行该确定的机器人程序。确定机器人程序和开始部分的流程如参照图6说明的那样。
[0164]
[发送部]
[0165]
发送部303将写入到通信用存储部301中的响应数据发送给上级控制装置20。如上所述,响应数据由执行部302生成并被写入到通信用存储部301。发送部303在完成向通信用存储部301写入响应数据的情况下,将响应数据发送给上级控制装置20。另外,发送部303也可以定期地发送写入到通信用存储部301中的响应数据。在该情况下,在上级控制装置20与机器人控制器30之间进行周期性的通信。
[0166]
[接收部]
[0167]
接收部304从上级控制装置20接收发送数据。接收部304将该发送数据记录在通信用存储部301中。在本实施方式中,在上级控制装置20与机器人控制器30之间进行异步通信,发送数据不定期地被收发,所以接收部304不定期地接收发送数据。响应数据也被不定期地发送接收。
[0168]
另外,在上级控制装置20与机器人控制器30之间进行同步通信的情况下,也可以定期地收发发送数据和响应数据。在这种情况下,每隔预定的周期进行同步通信,寄存器部201的变量和通信用存储部301的变量定期地取得匹配。
[0169]
[3

4.在数据收集装置中实现的功能]
[0170]
如图4所示,数据收集装置50包括数据存储部500。数据存储部500主要由存储部52实现。数据存储部500存储收集数据,该收集数据保存有从上级控制装置20收集到的变量。
收集数据是保存有被指定为收集对象的变量的值的数据。在收集数据中可以保存某一时间点的变量的值,也可以保存变量的值的时间序列的变化。另外,在收集数据中,可以仅保存一个变量的值,也可以保存多个变量的值。另外,例如,数据存储部500也可以存储收集数据的解析程序。
[0171]
[4.在实施方式的生产系统中执行的处理]
[0172]
图7和图8是示出在实施方式的生产系统1中执行的处理的一例的流程图。在本实施方式中,对由生产系统1执行的处理中的、在上级控制装置20与机器人控制器30之间进行的通信处理进行说明。cpu 21执行存储在存储部22中的控制程序,cpu 31执行存储在存储部32中的装置程序,由此执行图7和图8所示的处理。图7和图8所示的处理是由图4所示的功能块执行的处理的一例。
[0173]
如图7所示,上级控制装置20基于控制程序判定是否向机器人控制器30发送命令(s1)。例如,在用梯形图描述控制程序的情况下,定义成为控制程序的开始执行的条件的线圈。上级控制装置20判定是否满足该条件。该条件也可以是特定的变量成为预定的值。在判定为满足该条件的情况下,判定为发送命令。
[0174]
在判定为未发送命令的情况下(s1:否),转移到后述的s17的处理。在判定为发送命令的情况下(s1:是),上级控制装置20在cpu 21的寄存器中的“第gw07165号”的寄存器中写入由控制程序确定的值的主命令(s2)。上级控制装置20在cpu 21的寄存器中的“第gw07166号”的寄存器中写入由控制程序确定的值的子命令(s3)。上级控制装置20根据需要在cpu 21的寄存器中的“第gw07167号”以后的命令数据区域的寄存器中写入数据(s4)。在控制程序中定义有在s2~s4处理中应写入的值。另外,在不需要写入数据情况下,不执行s4的处理。
[0175]
上级控制装置20使cpu 21的寄存器中的“第gw07163号”的命令请求id递增(s5)。上级控制装置20对机器人控制器30发送保存在cpu 21的寄存器中的“第gw07163号”~“第gw07499号”的寄存器中的多个命令数据(s6)。
[0176]
机器人控制器30接收多个命令数据,并记录在cpu31的寄存器中(s7)。机器人控制器30基于记录在寄存器中的多个命令数据判定命令请求id是否被递增(s8)。在s8中,机器人控制器30对到此为止存储的命令请求id的值和在s7中记录的多个命令数据中包含的命令请求id的值进行比较。
[0177]
在判定为命令请求id递增的情况下(s8:是),机器人控制器30确定记录在cpu31的寄存器中的主命令和子命令的组合所表示的处理(s9)。机器人控制器30根据需要获取保存在cpu 31的命令数据区域中的数据(s10),执行在s9中确定的处理(s11)。
[0178]
转移到图8,机器人控制器30基于s11的处理的执行结果生成响应数据,并保存在cpu 31的寄存器中(s12)。如果正常地执行s11的处理,则在响应数据中保存与在s7中接收到的相同的命令请求id、主命令以及子命令。机器人控制器30对上级控制装置20发送保存在cpu 31的寄存器中的响应数据(s13)。
[0179]
上级控制装置20接收响应数据,并保存在cpu 21的寄存器中(s14)。上级控制装置20判定响应数据中包含的命令请求id等与发送数据中包含的命令请求id等是否一致(s15)。在判定为它们不一致的情况下(s15:否),上级控制装置20输出预定的警报(s16),本处理结束。
[0180]
在s15中,在判定为命令请求id等一致的情况下(s15:是),上级控制装置20判定是否结束控制程序的执行(s17)。在s17中,判定是否执行到控制程序的代码部分的最后。在未判定为结束控制程序的执行的情况下(s17:否),返回到s1的处理,继续执行控制程序。在判定为结束控制程序的执行的情况下(s17:是),本处理结束。
[0181]
根据以上说明的生产系统1,向机器人控制器30发送多个命令数据,该多个命令数据是被写入到分配用于机器人控制器30的控制的寄存器的命令区域中的命令数据,基于多个命令数据确定由上级控制装置20指定的处理,由此,不需要为了执行各种处理而多次向机器人控制器30发送命令数据,能够降低通信成本。从机器人控制器30来说,仅通过参照写入到通信用存储部301中的多个命令数据,就能够确定由上级控制装置20确定的处理。另外,不是简单地发送一个命令数据来执行处理,而是通过组合利用多个命令数据,能够节约存储器等的资源,并且能够应对更多的处理。
[0182]
另外,在生产系统1中,仅通过改写命令区域的命令和机器人程序名称,就能够使机器人控制器30从多个机器人程序中执行任意的机器人程序,因此能够降低执行各种机器人程序时的通信成本。
[0183]
另外,在生产系统1中,在发送了机器人程序选择的子命令之后,将机器人程序开始的子命令写入到命令区域来发送,开始执行所选择的机器人程序,由此能够在上级控制装置20侧控制机器人程序的开始执行的定时。
[0184]
另外,在生产系统1中,通过在命令区域中写入开始部分信息,能够从机器人程序中的任意部分执行。不是从机器人程序的最初开始执行,而是从中途执行,由此不需要使机器人控制器30执行无用的处理。其结果,能够减轻机器人控制器30的处理负荷。另外,能够防止在执行期望的处理之前产生浪费的时间。
[0185]
另外,在生产系统1中,在命令请求信息被更新的情况下,通过执行命令,能够控制命令的执行定时。例如,尽管不是执行命令的定时,但即使命令被保存在命令区域中,如果命令请求信息没有被更新,则也能够使该命令不被执行,能够防止命令被错误地执行。
[0186]
另外,在生产系统1中,通过主命令请求机器人控制器30具有的多个功能中的任一个,用子命令请求该功能中的具体处理,基于主命令和子命令的组合确定处理并执行,由此能够简化命令体系。通过能够一次发送的主命令和子命令的组合,能够应对各种处理,因此能够降低通信成本。
[0187]
另外,在生产系统1中,基于写入到与主命令和子命令的组合对应的区域内的详细信息来指定处理内容的详细内容,由此能够有效利用命令区域。例如,针对主命令和子命令的每个组合,不是分别设置写入详细信息的区域,而是作为共用的区域,由此能够防止应确保的寄存器的大小和发送数据的大小增加,能够降低存储器消耗量和通信成本。
[0188]
另外,在生产系统1中,通过上级控制装置20执行控制程序,能够指定并执行使机器人控制器30执行的处理。能够不提高通信成本地增加上级控制装置20对机器人控制器30控制的变化。
[0189]
另外,在生产系统1中,即使上级控制装置20和机器人控制器30以异步通信连接,也能通过发送多个命令数据进行机器人控制器30的高度控制。
[0190]
另外,在生产系统1中,通过将表示机器人控制器30执行的处理结果的响应数据写入到响应区域,能够确定是否正确地执行了对机器人控制器30指示的处理。
[0191]
另外,在生产系统1中,通过比较多个命令数据和响应数据,能够确认是否正确地执行了上级控制装置20指示的处理。
[0192]
另外,在生产系统1中,能够从机器人程序中的任意部分开始执行。不是从机器人程序的最初开始执行,而是通过从中途执行,从而不需要使机器人控制器30执行无用的处理。其结果是,能够减轻机器人控制器30的处理负荷。另外,能够防止在执行期望的处理之前产生浪费的时间。
[0193]
[5.变形例]
[0194]
另外,本公开不限于上述实施方式。在不脱离本公开的主旨的范围内,可以适当地改变。
[0195]
例如,多个命令数据分别表示多个命令,机器人控制器30也可以连续地执行一次接收到的多个命令数据所表示的多个命令。另外,例如,上级控制装置20的寄存器范围也可以不是由工程装置10分配的,而是通过工厂出厂时的设定来固定的。另外,例如,上级控制装置20在控制多个机器人控制器30的情况下,也可以通过与实施方式同样的处理,对各个机器人控制器30发送多个命令数据。
[0196]
另外,例如,上述说明的各功能可以通过生产系统1中的任意装置来实现。例如,也可以通过上级控制装置20或机器人控制器30来实现作为由数据收集装置50实现的功能而说明的功能。另外,例如,也可以通过数据收集装置50或机器人控制器30来实现作为由上级控制装置20实现的功能而说明的功能。另外,例如,各功能也可以不是由多个计算机分担,而是由一个计算机实现。
[0197]
另外,以上说明的实施方式是作为具体例子而示出的,本说明书中公开的发明并不限定于这些具体例子的结构和数据保存例子本身。本领域技术人员可以对这些公开的实施方式进行各种变形,例如,改变物理结构的形状或数量、数据结构、处理的执行顺序。应当理解,本文所公开的本发明的技术范围还包括这样做出的变形。
[0198]
符号说明
[0199]
1生产系统;10工程装置;11、21、31、51 cpu;12、22、32、52存储部;13、23、33、43通信部;14、54操作部;15、55显示部;20上级控制装置;24 iot部;30机器人控制器;40机器人;50数据收集装置;d1结构体数据;d2命令定义数据;100数据存储部;101设定部;200数据存储部;201寄存器部;202动作控制部;203发送部;204接收部;205比较部;206输出部;300数据存储部;301通信用存储部;302执行部;303发送部;304接收部、500数据存储部。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1