CN117616352A - 生产系统、程序创建设备、生产方法和程序 - Google Patents
生产系统、程序创建设备、生产方法和程序 Download PDFInfo
- Publication number
- CN117616352A CN117616352A CN202280048383.2A CN202280048383A CN117616352A CN 117616352 A CN117616352 A CN 117616352A CN 202280048383 A CN202280048383 A CN 202280048383A CN 117616352 A CN117616352 A CN 117616352A
- Authority
- CN
- China
- Prior art keywords
- program
- module
- rungs
- group
- scan
- 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.)
- Pending
Links
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 80
- 238000012545 processing Methods 0.000 claims description 291
- 238000000034 method Methods 0.000 claims description 236
- 230000008569 process Effects 0.000 claims description 216
- 238000000638 solvent extraction Methods 0.000 claims description 28
- 238000005192 partition Methods 0.000 claims description 21
- 230000000875 corresponding effect Effects 0.000 description 44
- 238000013500 data storage Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 36
- 230000006854 communication Effects 0.000 description 32
- 238000004891 communication Methods 0.000 description 26
- 230000001360 synchronised effect Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 12
- 230000001276 controlling effect Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- YLZOPXRUQYQQID-UHFFFAOYSA-N 3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]propan-1-one Chemical class N1N=NC=2CN(CCC=21)CCC(=O)N1CCN(CC1)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F YLZOPXRUQYQQID-UHFFFAOYSA-N 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 101100301524 Drosophila melanogaster Reg-5 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/056—Programming the PLC
-
- 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
-
- 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/13—Plc programming
- G05B2219/13049—Display progress of program, state, highlight, colour
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
生产系统的关联模块(108)将梯形程序中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有可指定的执行周期。分配模块(110)将多个扫描组中的每个扫描组分配给控制器的多个处理器核心中的一个处理器核心,使得多个扫描组中的每个扫描组都被分配。执行模块(201)在每个执行周期中并行地执行与分配给多个处理器核心中的每个处理器核心的一个或多个扫描组相关联的一个或多个梯级。
Description
技术领域
本公开涉及生产系统、程序创建设备、生产方法和程序。
背景技术
迄今为止,已知用于创建梯形程序(ladder program)的技术,梯形程序指示诸如可编程逻辑控制器(PLC)之类的工业机器的操作。例如,在专利文献1中,描述了使用程序开发支持设备来创建指示PLC的操作的梯形程序的技术。
引用列表
专利文献
[PTL 1]JP 2012-194678 A
发明内容
技术问题
本公开要解决的问题例如是减少对包括多个处理器核心的控制器进行编程所需的时间和精力。
问题的解决方案
根据本公开的一个方面,提供了一种生产系统,包括:关联模块,被配置为将包括在梯形程序中的多个梯级(rung)与多个扫描组中的一个扫描组相关联,每个扫描组具有可指定的执行周期;分配模块,被配置为将多个扫描组中的每个扫描组分配给控制器的多个处理器核心中的一个处理器核心,使得多个扫描组中的每个扫描组都被分配;以及执行模块,被配置为在每个执行周期内并行地执行与分配给多个处理器核心中的每个处理器核心的一个或多个扫描组相关联的一个或多个梯级。
本发明的有益效果
根据本公开,例如,可以减少对包括多个处理器核心的控制器进行编程所需的时间和精力。
附图说明
图1是用于示出生产系统的总体配置的示例的示意图。
图2是用于示出梯形程序的示例的示意图。
图3是用于示出程序创建屏幕的示例的示意图。
图4是新创建屏幕的示例。
图5是用于示出控制组定义屏幕的示例的示意图。
图6是用于示出处理时间屏幕的示例的示意图。
图7是用于示出显示每个梯形程序的处理时间的处理时间屏幕的示例的示意图。
图8是用于示出关联梯级屏幕的示例的示意图。
图9是用于示出划分“绘图A01.01”的处理的示例的示意图。
图10是用于示出替换设置屏幕的示例的示意图。
图11是用于示出关联部分屏幕的示例的示意图。
图12是用于示出生产系统的功能的示例的功能框图。
图13是用于示出控制组数据的示例的表。
图14是用于示出处理时间数据的示例的表。
图15是用于示出扫描组数据的示例的表。
图16是用于示出在本公开的第一实施例中要执行的处理的示例的流程图。
图17是用于示出生产系统的功能的示例的功能框图。
图18是用于示出控制组数据的示例的表。
图19是用于示出包括要对寄存器执行写入处理和引用处理的梯级的示例的表。
图20是用于示出由相关性标识处理标识的梯级之间的相关性的示例的示意图。
图21是用于示出分组处理过程的示例的示意图。
图22是用于示出由分组处理进行分组的梯级的示例的示意图。
图23是用于示出由分配处理分配给处理器核心的梯级的示例的示意图。
图24是用于示出要由生产系统执行的处理的示例的流程图。
图25是用于示出修改示例2-1中的分配的示例的示意图。
具体实施方式
[1.第一实施例]
现在描述本公开的第一实施例,第一实施例是根据本公开的生产系统的实施例的示例。
[1-1.生产系统的总体配置]
图1是用于示出生产系统的总体配置的示例的示意图。例如,生产系统S包括程序创建设备10、控制器20、电机控制设备30和电机40。程序创建设备10、控制器20和电机控制设备30经由网络(例如工业网络或局域网(LAN))彼此可通信地连接。
程序创建设备10是为控制器20创建用于控制电机控制设备30的程序的设备。在第一实施例中,描述了由用户操作的个人计算机与程序创建设备10相对应的情况,但是程序创建设备10可以是另一设备。例如,程序创建设备10可以是平板终端、智能电话、或服务器计算机。
例如,程序创建设备10包括CPU 11、存储单元12、通信单元13、操作单元14、和显示单元15。CPU 11是包括一个或多个处理器核心的处理器。存储单元12包括易失性存储器或非易失性存储器中的至少一者。通信单元13包括用于有线通信的通信接口或用于无线通信的通信接口中的至少一者。操作单元14是输入设备,例如鼠标或键盘。显示单元15是液晶显示器或有机EL显示器。
控制器20是控制一个或多个电机控制设备30的设备。例如,控制器20是机器控制器。控制器20可以是能够直接或间接地控制物理机构(例如电机或皮带)的任何设备,并且不限于机器控制器。例如,控制器20可以是PLC、机器人控制器、管理线路的线路控制器、或管理被称为小区(cell)(小于线路)的单元(unit)的小区控制器。电机控制设备30可以与本公开中的控制器相对应。
例如,控制器20包括CPU 21A、CPU 21B、存储单元22和通信单元23。在第一实施例中,给出了CPU 21A和21B是单核心处理器(包括一个处理器核心的处理器)的示例。因此,第一实施例中的控制器20总共包括两个处理器核心。当不区分CPU 21A和21B时,这些CPU在下文中被简称为“CPU 21”。CPU 21是一种类型的电路。存储单元22和通信单元23的物理配置可以分别与存储单元12和通信单元13的物理配置相同。
控制器20包括两个或更多个处理器核心就足够了,并且控制器20可以包括三个或更多个处理器核心。每个CPU 21包括一个或多个处理器核心就足够了,并且每个CPU 21可以是多核心处理器(包括两个或更多个处理器核心的处理器)。控制器20包括一个或多个CPU 21就足够了,并且控制器20可以仅包括一个多核心CPU 21,或者可以包括三个或更多个CPU 21。也就是说,包括在控制器20中的两个或更多个处理器核心不需要被分离成单独的电路。
当控制器20包括多个CPU 21时,多个CPU 21的处理器核心的数量可以彼此不同。例如,一个CPU 21可以包括一个核心,而另一个CPU 21可以包括三个核心。控制器20可以包括单核心CPU 21和多核心CPU 21两者。处理器核心可以被包括在由除了CPU以外的名称(例如,MPU)表示的处理器中。
每个电机控制设备30是控制要施加到经由电力线路连接的电机40的电压的设备。电机控制设备30有时被称为“伺服驱动器”(商标)或“伺服放大器”。电机控制设备30能够与控制器20来往通信。控制器20和电机控制设备30之间的通信可以是周期性通信或非周期性通信。传感器(例如电机编码器或转矩传感器)可以连接到电机控制设备30。传感器可以连接到控制器20。
存储在每个设备中的程序或数据中的至少一者可以通过网络来供应。此外,每个设备的硬件配置不限于上述示例,并且可以应用各种类型的硬件。例如,可以包括用于读取计算机可读信息存储介质的读取单元(例如,存储卡插槽)和用于连接到外部设备的输入/输出单元(例如,USB终端)。在这种情况下,存储在信息存储介质中的程序或数据中的至少一者可以通过读取单元或输入/输出单元来供应。此外,可以包括被称为“FPGA”或“ASIC”的电路。
[1-2.第一实施例的概述]
在第一实施例中,控制器20可以基于梯形程序来操作。梯形程序是以梯形语言来创建的程序。例如,用户通过使用安装在程序创建设备10中的工程工具来创建梯形程序。在第一实施例中,编译前的程序(用户可以从视觉上理解的梯形图)被称为梯形程序,但是编译后的程序(转换为机器语言的程序)也可以被称为梯形程序。
图2是用于示出梯形程序的示例的示意图。例如,梯形程序P1包括一个或多个梯级。梯级是梯形程序P1中的行。用户通过在梯级中布置图形(例如线圈、表示命令的字符串、和表示注释的字符串)来创建梯形程序P1。作为创建梯形程序P1的方法本身,可以使用各种公知的方法。用户不仅可以创建与主例程相对应的梯形程序P1,还可以创建与子例程相对应的梯形程序P1。
例如,梯形程序P1包括要在控制器20的寄存器上执行的处理。因此,每个梯级可以包括要在控制器20的寄存器上执行的处理。寄存器是控制器20的存储区域。要在寄存器上执行的处理包括写入到寄存器的写入处理和参考寄存器的引用处理。写入处理是将值写入到寄存器的处理。引用处理是参考寄存器中保存的值的处理。要在寄存器上执行的处理本身可以由在公知的梯形语言中定义的图形和命令来表达。
当梯形程序P1的所有处理仅由CPU 21A按顺序地执行时,要花费长时间来执行处理,因为所有处理由一个处理器核心来执行。然而,通过在CPU 21A和21B之间分配处理,可以减少处理所需的时间。因此,在第一实施例中,用户执行用于执行被分配的处理的编程。例如,当安装在程序创建设备10中的工程工具被启动时,在显示单元15上显示程序创建屏幕。
图3是用于示出程序创建屏幕的示例的示意图。例如,程序创建屏幕SC1包括用于呈现编程指南的导航窗口W10和用户用来执行工作的工作窗口W11。使用导航窗口W10作为起点,用户按照以下顺序进行编程:(过程1)创建模块配置;(过程2)创建扫描组;(过程3)设定变量和注释;(过程4)创建梯形程序P1;和(过程5)设定扫描组。
[过程1:创建模块配置]
例如,用户在导航窗口W10中选择“系统配置”,并创建模块配置。模块配置是生产系统S中的物理配置。例如,用户输入关于物理配置的信息,物理配置包括控制器20、电机控制设备30、电机40、I/O设备、和其他外围设备。电机40在下文中可以被称为“轴”。用户输入CPU 21的名称和处理器核心的名称作为模块配置。
[过程2:创建扫描组]
例如,用户从导航窗口W10中的“程序”树中选择“扫描组”,并创建扫描组。扫描组是以预定执行周期执行的一组程序(应用)。例如,一个或多个梯形程序P1与扫描组相关联。除了梯形程序P1以外的程序可以与扫描组相关联。例如,当用户开始过程2时,在显示单元15上显示用于创建扫描组的新创建屏幕。
图4是新创建屏幕的示例。例如,当用户将扫描组的名称和类型输入到输入框F20和F21中并选择按钮B22时,可以创建新的扫描组。当用户选择按钮B23时,可以取消对新的扫描组的创建。用户还可以在暂停对扫描组的创建时创建梯形程序P1。在这种情况下,梯形程序P1不需要与扫描组相关联。
在第一实施例中,除了扫描组,用户还可以指定控制组。控制组是一组彼此同步的物理配置。在第一实施例中,描述了一组相互同步的轴与控制组相对应的情况,但是控制组也可以是一组其他配置,例如I/O设备。例如,当用户从程序创建屏幕SC1执行定义控制组的操作时,在显示单元15上显示控制组定义屏幕。
图5是用于示出控制组定义屏幕的示例的示意图。例如,用户将生产系统S中的控制组的数量输入到输入框F30。在显示区域A31中显示控制组的列表。用户将控制组的名称输入到显示区域A31中。当用户从显示区域A31内指定控制组时,可以从显示区域A32定义属于所指定控制组的轴。
例如,用户将属于控制组的轴的数量输入到输入框F33中。在显示区域A32中显示属于控制组的轴的列表。用户将轴信息(在图4的示例中,线路、轴编号、和逻辑轴名称)输入到显示区域A32中,可以从轴信息来标识每个轴。当创建多个控制组时,用户通过使用同一过程来输入每个控制组的轴信息。控制组的定义可以在过程2中执行,或者可以作为与过程2不同的单独过程来执行。
[过程3:设定变量和注释]
例如,用户从导航窗口W10中的“程序”树中选择“设定变量和注释”,并且设定变量和注释。变量是对其执行梯形程序P1的写入处理或引用处理的信息段。例如,用户设定各种变量,例如用于控制轴的变量或指示由转矩传感器等检测出的物理量的变量。作为设定变量和注释的方法本身,可以使用公知的方法。
[过程4:创建梯形程序]
例如,用户从工作窗口W11创建梯形程序P1。作为创建梯形程序P1的方法本身,可以使用公知的方法。例如,用户在工作窗口W11上创建一个或多个梯级。用户为每个梯级布置元素,例如,诸如线圈和注释之类的图形。用户可以创建具有分级结构的梯形程序P1。
[过程5:设定扫描组]
例如,用户从程序创建屏幕SC1的导航窗口W10设定扫描组的细节。在过程5中,用户执行各种设置,例如指定扫描组的执行周期、指定扫描组和控制组之间的关联、指定扫描组和梯形程序P1之间的关联、以及指定扫描组和处理器核心的分配。在第一实施例中,准备处理时间屏幕和关联梯级屏幕作为对过程5的支持。
图6是用于示出处理时间屏幕的示例的示意图。例如,在处理时间屏幕SC4的显示区域A40中显示创建的扫描组。在图6的示例中,创建了三个扫描组。用户从显示区域A40指定扫描组的执行周期。在第一实施例中,假设用户可以指定任何数值作为执行周期。可以确定能够被指定为执行周期的数值的上限值或下限值中的至少一个值。
例如,用户从显示区域A40指定每个扫描组要被分配到的处理器核心。如本文所使用的,“分配”意味着指定执行与该扫描组相关联的(一个或多个)梯形程序P1的处理器核心。用户从过程1的模块配置中定义的处理器核心中指定扫描组要被分配到的处理器核心。用户还可以从显示区域A40改变扫描组的类型。例如,用户可以将固定周期扫描组改变为非固定周期扫描组。
在图6的示例中,对于扫描组A,用户指定执行周期“0.125ms”和CPU 21A的处理器核心。对于扫描组B,用户指定执行周期“0.250ms”和CPU 21A的处理器核心。对于“扫描组C”,用户指定执行周期“0.250ms”和CPU 21B的处理器核心。
例如,在显示区域A40中显示扫描组的处理时间的预测值。当多个梯形程序P1与扫描组相关联时,在显示区域A40中显示多个梯形程序P1的总处理时间的预测值。例如,当用户选择按钮B400时,显示区域A40中的显示改变为示出与扫描组相关联的每个梯形程序P1的处理时间的显示。
图7是用于示出处理时间屏幕SC4的示例的示意图,在处理时间屏幕SC4上显示每个梯形程序P1的处理时间。例如,在处理时间屏幕SC4上,对于与扫描组相关联的每个梯形程序P1,显示梯形程序P1的处理时间的预测值。当用户打开显示区域A40中的扫描组树时,显示与扫描组相关联的(一个或多个)梯形程序P1的处理时间。
在图7的示例中,扫描组A与三个梯形程序P1相关联,即“绘图A”、“绘图A01”和“绘图A01.01”。“绘图A01.01”的处理时间的预测值“0.067ms”占据了多于一半的“0.125ms”的执行周期,并且因此被突出显示。如图7所示的突出显示使得用户更容易注意到具有长处理时间的梯形程序P1。当用户选择按钮B42时,处理返回到图6的处理时间屏幕SC4。
如图6所示,在显示区域A41中以时间图表格式显示每个扫描组的处理时间。例如,在显示区域A41的水平方向上设定时间轴,并且在显示区域A41的竖直方向上布置处理器核心和扫描组。在图6的示例中,显示了分配给CPU 21A的处理器核心的扫描组A和扫描组B的处理时间。
例如,在扫描组中,在执行周期开始时,执行用于在扫描组之间复制数据的数据复制处理。此后,执行与扫描组相关联的梯形程序P1。因此,如图6所示,在表示数据复制处理的处理时间的白色矩形之后显示表示梯形程序P1的处理时间的图案化矩形。在图6的示例中,矩形的宽度与处理时间相对应。随着处理时间变长,矩形的宽度变长。
例如,当多个扫描组被分配给一个处理器核心时,以执行周期的升序执行扫描组的梯形程序P1。在图6的示例中,扫描组A的执行周期比扫描组B的执行周期短,并且因此,在执行扫描组A的数据复制处理之后,执行扫描组B的数据复制处理。然后,执行扫描组A的梯形程序P1。此后,执行扫描组B的梯形程序P1。
例如,用户通过引用处理时间屏幕SC4来设定扫描组。当对于扫描组来说没有足够的时间时,可能需要用户显著地改变梯形程序P1。在这种情况下,用户从开始重新创建梯形程序P1是非常耗时的。因此,在第一实施例中,用户可以划分梯形程序P1的一部分。此外,梯形程序P1的划分可以通过使用关联梯级屏幕来支持,下面对此进行描述。
图8是用于示出关联梯级屏幕SC5的示例的示意图。例如,当用户执行从程序创建屏幕SC1显示关联梯级屏幕SC5的操作时,在显示单元15上显示关联梯级屏幕SC5。在显示关联梯级屏幕SC5之前,可以执行要显示的轴的选择和新扫描组的创建。例如,在关联梯级屏幕SC5的显示区域A50中,显示与用户所选的轴具有关联性的关联梯级的列表。
在图8中,示出了包括在“绘图A01.01”中的梯级A至F之间的关系。例如,当执行数据复制处理(在图8中,“I/O(同步)”)时,梯级A、B、D、E和F指参考已经完成数据复制处理的寄存器。梯级A和B包括要在彼此相同的寄存器上执行的写入处理。梯级C包括对该寄存器的引用处理。因此,梯级A至C被标识为彼此具有关联性的关联梯级。梯级C包括对与轴1相对应的寄存器的写入处理。与对轴1的控制直接相关的梯级是梯级A至C。
例如,梯级B和D包括相同表数据的输出处理。因此,梯级B和D被标识为彼此具有关联性的关联梯级。梯级E和F与其他梯级没有关联性。在显示区域A50中,显示了与其他梯级具有某种关联性的梯级A到D。当用户从显示区域A50选择梯级时,在显示区域A51至A53中显示与所选梯级具有关联性的其他梯级。
例如,当用户从显示区域A50选择梯级B时,包括要在与梯级B相同的寄存器上执行的写入处理的梯级A在显示区域A51中被显示为梯级B的关联梯级。包括由梯级B的写入处理所写入的寄存器的引用处理的梯级C在显示区域A52中被显示为梯级B的关联梯级。包括要对与梯级B相同的表数据执行的输出处理的梯级D在显示区域A53中被显示。用户通过参考关联梯级屏幕SC5来划分“绘图A01.01”。
图9是用于示出划分“绘图A01.01”的处理的示例的示意图。例如,用户划分“绘图A01.01”,使得彼此具有关联性的关联梯级与同一扫描组相关联。在图9的示例中,梯级A到D彼此具有某种关联性,因此用户将梯级A到D复制到新创建的扫描组D的“绘图D”。梯级A到D可以保留在复制源“绘图A01.01”中。
例如,用户将扫描组D分配给CPU 21B的处理器核心。因此,“绘图A01.01”的梯级A到D的一部分(花费长时间来处理)可以被分配给另一处理器核心。缩短了“绘图A01.01”的处理时间,并且因此可以在执行时间内可靠地完成扫描组A的处理。此外,通过使同一处理器核心执行彼此具有关联性的梯级A到D的处理,可以精确地执行梯级A到D的处理。
例如,对于扫描组B和C也是一样,用户可以根据需要类似地划分梯形程序P1。用户还可以划分不与扫描组相关联的梯形程序P1,并且将划分的梯形程序P1与扫描组相关联。在第一实施例中,当要划分梯形程序P1时,基于由用户指定的替换设置来自动地替换寄存器,使得划分源的寄存器与划分目的地相对应。
图10是用于示出替换设置屏幕的示例的示意图。例如,当用户从程序创建屏幕SC1执行用于执行替换设置的操作时,在显示单元15上显示替换设置屏幕SC6。例如,用户可以从替换设置屏幕SC6指定划分源的寄存器和划分目的地的寄存器(在图10的示例中,变量名)之间的关系。当用户划分梯形程序P1时,基于图10中指定的替换设置来替换寄存器。
在第一实施例中,用户不仅可以创建梯形程序P1,而且可以从工程工具创建运动程序。运动程序是以除阶梯语言以外的语言来创建的程序。运动程序可以与扫描组相关联。例如,当用户从程序创建屏幕SC1执行用于创建运动程序的操作时,在显示单元15上显示用于显示运动程序的关联部分的关联部分屏幕。
图11是用于示出关联部分屏幕的示例的示意图。例如,在关联部分屏幕SC7上显示了运动程序的代码。运动程序的代码作为字符串来输入。在第一实施例中,在运动程序之间,彼此具有关联性的关联代码被突出显示。在图11的示例中,与轴的控制相关的代码以及处理在其之前的某个时间发生的代码被突出显示。用户可以容易地从关联部分屏幕SC7确认时间关系。
如上所述,第一实施例的生产系统S使用工程工具来有效地支持用户的编程,从而能够减少编程所需的时间和精力。下面描述第一实施例的生产系统S的细节。
[1-3.第一实施例中实现的功能]
图12是用于示出生产系统S的功能的示例的功能框图。
[1-3-1.程序创建设备的功能]
程序创建设备10包括数据存储单元100、程序创建模块101、第一标识模块102、关联梯级屏幕控制模块103、预测模块104、处理时间屏幕控制模块105、第二标识模块106、关联部分显示控制模块107、关联模块108、替换模块109和分配模块110。数据存储单元100由存储单元12实现。其他功能由CPU 11实现。
[数据存储单元]
数据存储单元100存储程序创建所需的数据。例如,数据存储单元100存储工程工具T、梯形程序P1、运动程序P2、控制组数据D1、处理时间数据D2、和扫描组数据D3。工程工具T、梯形程序P1、和运动程序P2的细节如上所述。
图13是用于示出控制组数据D1的示例的表。控制组数据D1是定义控制组的数据。如上所述,在第一实施例中,控制组是一组要同步的轴。在控制器20中,为每个轴准备用于存储输出相关值的寄存器(以下称为“输出寄存器”),因此控制组也可以被称为一组需要同步的输出寄存器。与每个轴相对应的输出寄存器在下文中被称为“轴输出”。
在第一实施例中,描述了用户从工程工具T指定要同步的轴的情况,但是不要求由用户指定要同步的轴。例如,可以基于为每个轴设定的控制周期来自动地设定要同步的轴,使得具有同一控制周期的轴属于同一控制组。此外,例如,除了操作工程工具T的用户以外的人员可以指定要同步的轴。
在图13的示例中,存在控制组1至3。轴1至3属于控制组1。轴4至7属于控制组2。轴8至10属于控制组3。控制组数据D1包括能够标识属于控制组1的轴1至3的轴输出的寄存器标识信息、能够标识属于控制组2的轴4至7的轴输出的寄存器标识信息、以及能够标识属于控制组3的轴8至10的轴输出的寄存器标识信息。例如,寄存器标识信息是寄存器的地址(寄存器编号)或寄存器的名称。
控制组数据D1中包括的信息不限于图13的示例。控制组数据D1包括关于控制组的信息就足够了。例如,当除了轴输出以外的另一输出寄存器(例如,I/O输出寄存器)用作控制组的参考时,关于该另一输出寄存器的寄存器标识信息可以被包括在控制组数据D1中。此外,控制组的数量可以是一个、或三个或更多个。每个控制组中包括的轴的数量也可以是任何数量。
图14是用于示出处理时间数据D2的示例的表。处理时间数据D2是定义能够以梯形语言来执行的处理所需的标准处理时间的数据。例如,在处理时间D2中针对每个元素(例如梯形图中的图形或命令)定义了标准处理时间。也就是说,针对在每个梯级中可以包括的每个元素定义处理时间。处理时间可以是实际值或通过模拟计算出的值。处理时间可以由用户指定,或者可以由工程工具T的创建者指定。处理时间可以是考虑CPU 21A和21B的性能的值,或者可以是基于总体性能的值。
图15是用于示出扫描组数据D3的示例的表。扫描组数据D3是定义扫描组的数据。例如,在扫描组数据D3中存储了扫描组的名称、扫描组的类型、与扫描组相关联的控制组的名称、扫描组的执行周期、扫描组被分配到的处理器核心、以及与扫描组相关联的(一个或多个)梯形程序P1的名称。
例如,当用户通过使用工程工具T创建新的扫描组时,新创建的扫描组的数据被添加到扫描组数据D3。当用户改变扫描组的类型或执行周期时,改变的类型或执行周期被存储在扫描组数据D3中。当运动程序P2与扫描组相关联时,运动程序P2的名称被存储在扫描组数据D3中。
在第一实施例中,为了简化描述,描述了一个控制组属于一个扫描组的情况,但是多个控制组可以属于一个扫描组。相反,一个控制组可以属于多个扫描组。此外,“控制组”的概念可以不具体地存在,并且仅“扫描组”的概念可以存在。
数据存储单元100中存储的数据不限于上述示例。例如,数据存储单元100可以存储其他数据,例如指示控制器20的寄存器的定义的寄存器定义数据和指示控制器20和电机控制设备30之间的通信设置的通信设置数据。假设在寄存器定义数据中定义轴输出和其他寄存器之间的配置关系。用户还可以通过使用工程工具来定义寄存器以及配置通信设置。
[程序创建模块]
程序创建模块101创建要由控制器20执行的程序。例如,程序创建模块101创建梯形程序P1。程序创建模块101基于图形(例如输入到程序创建屏幕SC1的工作窗口W11的线圈)来创建梯形程序P1,并将创建的梯形程序P1记录在数据存储单元100中。程序创建模块101可以编译梯形程序P1,并将编译后的梯形程序P1记录在数据存储单元100中。除了梯形程序P1以外,程序创建模块101还创建其他程序,例如运动程序P2。
[第一标识模块]
第一标识模块102通过分析梯形程序P1来标识彼此具有关联性的多个关联梯级。梯级包括一种或多种类型的处理。例如,在该级别中描述的每个元件(例如线圈)与处理的类型相对应。第一标识模块102分析梯级中的处理的至少一部分。第一标识模块102分析每个梯级中包括的元素,并标识关联梯级。
如本文所使用的,“关系”意味着某个梯级的处理与另一梯级的处理彼此相关。例如,当为了执行某个梯级的处理而需要完成另一梯级的处理的执行时,这些梯级具有相关性。例如,当某个梯级的处理指另一梯级的处理的执行的结果时,这些梯级具有相关性。例如,当使用同一处理器核心来执行某个梯级的处理和另一梯级的处理更高效时,这些梯级具有相关性。
在图8的示例中,梯级A包括对寄存器1的引用处理和对寄存器2的写入处理。梯级B包括对寄存器3的引用处理、对寄存器2上的写入处理、以及要对表数据执行的输出处理。梯级C包括对寄存器2的引用处理和对寄存器4的写入处理。寄存器4是轴1的轴输出。例如,梯级D包括对寄存器5的引用处理和要对表数据执行的输出处理。梯级E包括对寄存器6的引用处理。梯级F包括对寄存器7的引用处理。
在第一实施例中,第一标识模块102将其中发生对同一寄存器的处理的多个梯级标识为彼此具有关联性的多个关联梯级。例如,当某个第一梯级包括要在某个寄存器上执行的处理,并且另一第二梯级包括要对同一寄存器执行的处理时,第一标识模块102标识第一梯级和第二梯级彼此具有关联性。第一标识模块102将第一梯级和第二梯级标识为多个关联梯级。
例如,第一标识模块102可以将其中发生对同一寄存器的写入处理的多个梯级标识为多个关联梯级。在图8的示例中,梯级A和梯级B包括对同一寄存器2的写入处理。因此,第一标识模块102将梯级A和梯级B标识为多个关联梯级。
例如,第一标识模块102可以将其中发生对同一寄存器的写入处理和引用处理的多个梯级标识为多个关联梯级。在图8的示例中,梯级A和B包括对寄存器2的写入处理,并且梯级C包括对同一寄存器2的引用处理。因此,第一标识模块102将梯级A和B以及梯级C标识为多个关联梯级。
例如,第一标识模块102可以将其中发生对相同数据的处理的多个梯级标识为多个关联梯级。在图8的示例中,梯级B和D包括要对相同表数据执行的输出处理。因此,第一标识模块102将梯级B和梯级D标识为多个关联梯级。第一标识模块102可以将其中发生要对除了表数据以外的数据执行的处理的多个梯级标识为多个关联梯级。
例如,第一标识模块102可以标识与用户从控制器20控制的多个轴中选择的一个或多个轴相关联的多个关联梯级。在图8的示例中,当用户选择轴1时,与对轴1所对应的寄存器(轴输出)的写入处理和引用处理直接相关的梯级被标识为彼此具有关联性的多个梯级。在过程3中设定轴和寄存器之间的对应关系。
例如,第一标识模块102可以将至少包括(作为关联性)写入处理的梯级标识为多个关联梯级,该写入处理可被追溯回到产生一个或多个轴的输出的对寄存器的写入处理。在图8的示例中,用户选择了轴1,并且因此通过追溯最终产生到与轴1相对应的寄存器(轴输出)的输出的对寄存器的写入处理来标识多个关联梯级。第一标识模块102将其中发生对与轴1相对应的寄存器的直接处理的梯级C以及与梯级C具有关联性的梯级A和B标识为多个关联梯级。第一标识模块102还可以将与梯级B具有关联性的梯级D标识为关联梯级。
例如,第一标识模块102还可以针对多个被标识的关联梯级中的一个关联梯级标识具有要与该一个关联梯级共同处理的寄存器或数据的一个或多个关联梯级。图8的梯级B包括要对与梯级D相同的表数据执行的输出处理,因此第一标识模块102将梯级B和梯级D标识为多个关联梯级。在这种情况下,梯级A和B与梯级C具有关联性,因此第一标识模块102可以假定梯级A至D全部彼此具有关联性,并将这四个梯级标识为关联梯级。
第一标识模块102可以通过使用除了要对寄存器或数据执行的处理以外的信息来标识梯级之间的相关性。基于预先确定的方法来确定梯级之间的相关性就足够了。例如,当某个梯级包括调用另一梯级或绘图的命令时,第一标识模块102可以确定梯级彼此具有相关性。
[关联梯级屏幕控制模块]
关联梯级屏幕控制模块103显示关联梯级屏幕SC5,关联梯级屏幕SC5示出多个关联梯级。例如,关联梯级屏幕控制模块103在显示区域A50中显示具有某种关联性的关联梯级。在图8的示例中,梯级A至D具有某种关联性,因此关联梯级屏幕控制模块103在显示区域A50中显示梯级A至D。
在第一实施例中,存在三种类型的关联性,即,指示要发生对同一寄存器的写入处理的关联性、指示要发生对同一寄存器的写入处理和引用处理的关联性、以及指示要发生对相同数据的处理的关联性。因此,关联梯级屏幕控制模块103针对每种类型的关联性控制显示区域A51至A53的显示。
例如,当用户从显示区域A50选择关联梯级时,关联梯级屏幕控制模块103在显示区域A51中显示包括对与所选关联梯级相同的寄存器的写入处理的其他关联梯级。在图8的示例中,当用户从显示区域A50选择梯级B时,关联梯级屏幕控制模块103在显示区域A51中显示梯级A,其包括对与梯级B相同的寄存器的写入处理。
例如,当用户从显示区域A50选择关联梯级时,关联梯级屏幕控制模块103在显示区域A52中显示包括对所选关联梯级中包括的写入处理的寄存器的引用处理的其他关联梯级,以及包括对所选关联梯级中包括的引用处理的寄存器的写入处理的其他关联梯级。在图8的示例中,当用户从显示区域A50选择梯级B时,关联梯级屏幕控制模块103在显示区域A52中显示梯级C,其包括对与梯级B的写入处理相同的寄存器的引用处理。
例如,当用户从显示区域A50选择关联梯级时,关联梯级屏幕控制模块103在显示区域A53中显示包括对与所选关联梯级相同的数据的处理的其他关联梯级。在图8的示例中,当用户从显示区域A50选择梯级B时,关联梯级屏幕控制模块103在显示区域A53中显示梯级D,其包括对与梯级B相同的数据的处理。
[预测模块]
预测模块104预测与分配给多个处理器核心中的每个处理器核心的扫描组相关的处理时间。例如,预测模块104预测扫描组的总处理时间或与扫描组相关联的梯形程序P1的处理时间中的至少一个。在第一实施例中,描述了预测模块104预测这两个处理时间的情况,但是预测模块104可以仅预测这些处理时间中的一个。
例如,预测模块104基于处理时间数据D2和扫描组数据D3来预测处理时间。预测模块104参考扫描组数据D3,并标识与每个扫描组相关联的梯形程序P1。预测模块104引用处理时间数据D2,并获取与梯形程序P1中的元素相关联的处理时间的预测值。预测模块104通过计算处理时间的预测值的总和来预测梯形程序P1的处理时间。预测模块104通过计算与扫描组相关联的梯形程序P1的处理时间的总和来预测扫描组的处理时间。
预测处理时间的方法不限于上述示例。例如,预测模块104可以通过执行基于模拟器的对与扫描组相关联的梯形程序P1的模拟来预测处理时间。作为模拟器本身,可以使用公知的模拟器。例如,预测模块104可以通过在虚拟空间中布置虚拟控制器20并在模拟器上操作虚拟控制器20来预测处理时间。
例如,预测模块104可以从一个扫描组中包括的元素中标识出比其他元素需要更多处理时间的元素。该元素可以是梯形程序P1本身,或者可以是梯级单元。此外,该元件可以是梯级的一部分。预测模块104从某个扫描组内标识出需要相对较多处理时间的元素。例如,预测模块104可以标识出具有等于或多于阈值的处理时间的元素。预测模块104可以按处理时间的降序对元素进行排序,并标识出达到预定等级的元素。在图7的示例中,预测模块104将“绘图A01.01”标识为这种元素,因为“绘图A01.01”的处理时间等于或多于阈值。
[处理时间屏幕控制模块]
处理时间屏幕控制模块105显示处理时间屏幕SC4,处理时间屏幕SC4示出多个扫描组中每个扫描组的执行周期和处理时间之间的关系。在图6的示例中,处理时间屏幕控制模块105显示处理时间屏幕SC4,处理时间屏幕SC4示出扫描组的执行周期和扫描组的总处理时间。在图7的示例中,处理时间屏幕控制模块105显示处理时间屏幕SC4,处理时间屏幕SC4示出扫描组的执行周期和与扫描组相关联的每个梯形程序P1的处理时间。
例如,处理时间屏幕控制模块105可以显示处理时间屏幕SC4,处理时间屏幕SC4表示由预测模块104标识的元素。图7的处理时间屏幕SC4是负载元素显示屏幕的示例。因此,图7的处理时间屏幕SC4可以被解读为附加元素显示屏幕。在图7的示例中,“绘图A01.01”被标识为元素,因此处理时间屏幕控制模块105将可以标识“绘图A01.01”(为被标识的元素)的处理时间屏幕SC4标识为附加元素显示屏幕。
此外,在图7的示例中,描述了可以通过在“绘图A01.01”下面画出下划线来标识元素,“绘图A01.01”是需要较长处理时间的元素。然而,处理时间屏幕控制模块105可以通过使由预测模块104标识的元素的显示模式与其他元素的显示模式不同来区分该元素。例如,处理时间屏幕控制模块105可以用与其他元素不同的颜色来显示由预测模块104标识的元素,或者可以仅显示由预测模块104标识的元素。
[第二标识模块]
第二标识模块106通过分析用于使控制器20控制轴的运动程序来标识彼此具有关联性的多个关联部分。例如,第二标识模块106标识用于控制由用户从运动程序中选择的轴的轴命令。第二标识模块106将标识的轴命令和与该轴命令具有关联性的其他命令标识为多个关联部分。假设具有关联性的命令的组合被预先存储在数据存储单元100中。当该命令的组合被包括在运动程序中时,第二标识模块106将该组合标识为关联部分。
在图11的示例中,第二标识模块106首先标识从MVS开始的用于轴控制的命令。该命令可以是用于用户选择的轴和非用户选择的轴的命令。第二标识模块106标识包括标识的命令的控制块(例如,IF语句或WHILE语句)。第二标识模块106标识紧接在这些命令被标识之前写入的预定命令。预定命令是引起时间处理的命令。例如,预定命令可以是等待直到某个变量变成特定值的命令(图11中从IOW开始的命令)、等待固定执行周期的命令、或者涉及跨越多个执行周期的处理的命令。第二标识模块106将这一系列命令标识为关联部分。
[关联部分显示控制模块]
关联部分显示控制模块107显示关联部分屏幕SC7,关联部分屏幕SC7示出多个关联部分。例如,关联部分显示控制模块107显示关联部分屏幕SC7,其中可以标识运动程序的多个关联部分。在图11的示例中,描述了关联部分被给予颜色的情况,但是关联部分可以通过使用其他方法(例如下划线或斜体字)来区分。例如,关联部分显示控制模块107通过使彼此具有关联性的从IOW开始的命令和从MVS开始的命令与图11所示的运动程序的其他部分不同来显示关联部分。
[关联模块]
关联模块108将梯形程序P1中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有可指定的执行周期。在第一实施例中,描述了关联模块108将与扫描组中的一个扫描组相关联的多个梯级与另一扫描组相关联的情况,但是关联模块108也可以将梯形程序P1中包括的不与扫描组相关联的多个梯级与扫描组相关联。
将梯级与扫描组相关联意味着使得可以在扫描组的执行周期中执行梯级的设置。在第一实施例中,将扫描组和包括梯级的梯形程序P1存储在扫描组数据D3中对应于将梯级与扫描组相关联。也就是说,使得包括梯级的梯形程序P1属于扫描组的设置对应于将梯级与扫描组相关联。
在图9的示例中,用户打开工作窗口W11中的“绘图A01.01”,选择梯级A至D,并且将所选梯级A至D粘贴到新的梯形程序P1的工作窗口W11中。用户执行了将包括梯级A至D的新的梯形程序P1与扫描组D相关联的操作。关联模块108将包括梯级A至D的新的梯形程序P1与扫描组D相关联。梯级A至D可以被粘贴在已经创建的梯形程序P1中而不是新的梯形程序P1中。梯级的选择和粘贴可以通过使用在复制和粘贴中使用的操作来执行。
例如,关联模块108将在显示关联梯级屏幕SC5之后选择的多个梯级与多个扫描组中的一个扫描组相关联。在第一实施例中,在显示关联梯级SC5之后,从程序创建屏幕SC1的窗口W11中选择多个梯级。关联模块108将所选的多个梯级与扫描组相关联。在显示关联梯级屏幕SC5之前,梯级可以与扫描组相关联。
[替换模块]
替换模块109用与由关联模块108产生的关联目的地的扫描组相对应的寄存器替换在多个梯级中发生处理的寄存器。例如,替换模块109基于用户在替换设置屏幕SC6中指定的替换设置将某个寄存器转换为另一寄存器。替换设置示出了寄存器转换规则。该转换规则可以是用于将寄存器地址转换为变量名称的规则,或者可以是用于转换寄存器地址的规则。
例如,替换设置可以被记录在数据存储单元100中,或者可以在用户划分梯级时被指定。替换设置指示转换之前的寄存器和转换之后的寄存器之间的关系,因此替换模块109将粘贴目的地的梯形程序P1中包括的寄存器信息设定为使得要对转换之后的寄存器执行的引用处理或写入处理被执行,转换之后的寄存器与转换之前的寄存器相关联。
在图9的示例中,梯级A至D被粘贴在扫描组D的绘图D中,因此用户可以将与扫描组A相对应的寄存器和与扫描组D相对应的寄存器之间的关系指定为替换设置。替换模块109用与扫描组D相对应的变量名称或寄存器地址替换与扫描组A相对应的梯级A至D中包括的变量名称或寄存器地址。
[分配模块]
分配模块110将多个扫描组中的每个扫描组分配给控制器20中包括的多个处理器核心中的一个处理器核心,使得多个扫描组中的每个扫描组都被分配。在第一实施例中,分配由用户手动执行,因此分配模块110将用户指定的扫描组分配给用户指定的处理器核心。然而,如在本公开的第二实施例中,可以通过分析梯形程序P1来执行自动分配。
例如,分配模块110将用户指定的(一个或多个)梯形程序P1分配给用户指定的扫描组。在第一实施例中,将(一个或多个)梯形程序P1的(一个或多个)名称和扫描组的名称存储在扫描组数据D3中与分配相对应。从程序创建屏幕SC1或另一屏幕执行这些分配。例如,当用户指定一个创建的梯形程序P1和一个创建的扫描组时,分配模块110将指定的梯形程序P1分配给指定的扫描组。
例如,分配模块110将第一扫描组分配给第一处理器核心,并且将第二扫描组分配给第二处理器核心。在图6的示例中,分配模块110将扫描组A和B分配给CPU 21A的处理器核心,并且将扫描组C分配给CPU 21B的处理器核心。然后,当扫描组D如图9所示地被创建时,分配模块110将扫描组D分配给CPU 21B。
[1-3-2.由控制器实现的功能]
例如,控制器20包括数据存储单元200和执行模块201。数据存储单元200由存储单元22实现。执行模块201由CPU 21实现。
[数据存储单元]
数据存储单元200存储控制电机控制设备30所需的数据。例如,数据存储单元200存储梯形程序P1和运动程序P2。数据存储单元200还存储处理器核心和扫描组之间的关系。例如,数据存储单元200可以存储类似于扫描组数据D3的数据。数据存储单元200中存储的数据不限于上述示例。例如,数据存储单元200存储可由控制器20或另一设备参考或写入的多个变量。存储各个变量的寄存器被预先确定。
[执行模块]
执行模块201在每个执行周期中并行地执行与分配给多个处理器核心中的每个处理器核心的一个或多个扫描组相关联的一个或多个梯级。例如,执行模块201针对控制器20中包括的每个处理器核心,执行分配给处理器核心的扫描组的梯形程序P1。也就是说,由分配模块110分配的两个或更多个处理器核心执行分配给那些处理器核心的扫描组的梯形程序P1。
在图6的示例中,由CPU 21A的处理器核心实现的执行模块201执行与扫描组A相关联的梯形程序P1和与扫描组B相关联的梯形程序P1。由CPU 21B的处理器核心实现的执行模块201执行与扫描组C相关联的梯形程序P1。在图9的示例中,由CPU 21B的处理器核心实现的执行模块201执行与扫描组D相关联的梯形程序P1。
[1-4.第一实施例中要执行的处理]
图16是用于示出要在第一实施例中执行的处理的示例的流程图。在图16中,示出了用户创建和划分梯形程序P1的流程。如图16所示,程序创建设备10启动工程工具,并且在显示单元15上显示程序创建屏幕SC1(步骤S1)。程序创建设备10基于用户的操作来生成模块配置(步骤S2)。
程序创建设备10在显示单元15上显示新创建屏幕SC2,并且基于用户的操作来创建扫描组(步骤S3)。程序创建设备10在显示单元15上显示控制组定义屏幕SC3,并且创建控制组(步骤S4)。程序创建设备10设定变量和注释(步骤S5)。程序创建设备10创建梯形程序P1(步骤S6)。
程序创建设备10在显示单元15上显示处理时间屏幕SC4,并且设定扫描组(步骤S7)。在步骤S7中,程序创建设备10将用户指定的梯形程序P1与用户指定的扫描组相关联。程序创建设备10将用户指定的扫描组分配给用户指定的处理器核心。此外,执行设置,例如指定执行周期。程序创建设备10分析梯形程序P1以标识关联梯级,并且在显示单元15上显示关联梯级屏幕SC5(步骤S8)。在步骤S8中,可以标识与用户选择的轴具有关联性的关联梯级,或者可以在用户指定的扫描组或梯形程序P1中标识关联梯级。
程序创建设备10在显示单元15上显示替换设置屏幕SC6,并且接收用户对替换设置的指定(步骤S9)。程序创建设备10分析运动程序P2,标识相关部分,并且在显示单元15上显示相关部分屏幕SC7(步骤S10)。根据需要执行步骤S9和步骤S10的处理步骤。程序创建设备10基于用户的操作来划分梯形程序P1(步骤S11)。在步骤S11中,程序创建设备10将从梯形程序P1中选择的多个梯级与新的扫描组相关联。
程序创建设备10编译与扫描组相关联的梯形程序P1,并将编译后的梯形程序P1记录在控制器20中(步骤S12)。控制器20执行编译后的梯形程序P1(步骤S13)。在步骤S13中,控制器20基于分配给处理器核心的扫描组的执行周期,针对CPU 21的每个处理器核心周期性地执行与扫描组相关联的梯形程序P1。
第一实施例的生产系统S将梯形程序P1中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有可指定的执行周期。生产系统S将多个扫描组中的每个扫描组分配给控制器中包括的多个处理器核心中的一个处理器核心,使得多个扫描组中的每个扫描组都被分配。生产系统S在每个执行周期中并行地执行与分配给多个处理器核心中的每个处理器核心的一个或多个扫描组相关联的一个或多个梯级。因此,可以减少当用多个处理器核心实现并行处理时编程所需的时间和精力。例如,当用户想要提取某个梯形程序P1中包括的梯级的一部分时,要提取的梯级可以与新的扫描组相关联,因此可以节省创建新的梯形程序P1以及将新的梯形程序P1与新的扫描组相关联的时间和精力。可以为每个扫描组指定执行周期,因此增加了由控制器20执行的处理的灵活性。通过执行使用多个处理器核心的并行扫描处理,可以提高处理速度并且分配处理负载。
此外,生产系统S通过分析梯形程序P1来标识彼此具有关联性的多个关联梯级。因此,可以标识彼此具有关联性的多个关联梯级。例如,可以减少编程所需的时间和精力,因为可以同时显示多个关联梯级,或者可以同时分配多个关联梯级。
此外,生产系统S显示示出多个关联梯级的关联梯级屏幕。生产系统S将在显示关联梯级屏幕之后选择的多个梯级与多个扫描组中的一个扫描组相关联。因此,用户可以确认关联梯级,然后选择要与扫描组相关联的多个梯级,因此用户更容易执行确定(例如同时选择多个关联梯级)。
此外,生产系统S标识与用户从控制器控制的多个轴选择的一个或多个轴具有关联性的多个关联梯级。因此,用户可以确认与用户选择的轴具有关联性的多个关联梯级。这使得用户更容易执行确定,例如同时选择与某个轴具有关联性的多个关联梯级。
此外,生产系统S将至少包括(作为关联性)写入处理,该写入处理可被追溯回到产生一个或多个轴的输出的对寄存器的写入处理。因此,可以标识具有关于产生到用户选择的一个或多个轴的输出的对寄存器的写入处理的关联性的多个关联梯级。例如,用户更容易确定是否同时划分与到某个特定轴的输出相关的梯级。
此外,生产系统S进一步针对多个被标识的关联梯级中的一个关联梯级标识具有要与该一个关联梯级共同处理的寄存器或数据的一个或多个关联梯级。通过标识具有要共同处理的寄存器或数据的一个多个关联梯级,可以减少编程所需的时间和精力。
此外,生产系统S预测分配给多个处理器核心中的每个处理器核心的扫描组的处理时间。生产系统S显示处理时间屏幕SC4,处理时间屏幕SC4示出多个扫描组中的每个扫描组的执行周期和处理时间之间的关系。因此,用户可以首先确认已经分配了梯级的扫描组的处理时间的预测结果,然后选择要与扫描组相关联的多个梯级。
此外,生产系统S从一个扫描组中包括的元素中标识比其他元素需要更多处理时间的元素。生产系统S显示被标识的元素。因此,用户可以确认比其他元素需要更多处理时间的元素,因此可以有效地支持编程。
此外,生产系统S通过分析用于使控制器控制轴的运动程序来标识彼此具有关联性的多个关联部分。生产系统S显示指示多个关联部分的关联部分屏幕SC7。因此,用户可以确认运动程序的彼此具有关联性的部分,因此可以减少编程所需的时间和精力。
此外,生产系统S将与一个扫描组相关联的多个梯级与另一扫描组相关联。因此,可以在扫描组之间移动梯级,因此可以减少编程所需的时间和精力。例如,可以通过仅提取与某个扫描组相关联的梯级的一部分来创建新的扫描组。
此外,生产系统S用与关联目的地的扫描组相对应的寄存器替换在多个梯级中发生处理的寄存器。因此,寄存器被自动地替换,因此增加了用户的便利性。通过使用关联目的地的扫描组,可以防止发生对不正确的寄存器的处理。
[2.第二实施例]
接下来,给出本公开的第二实施例的描述,第二实施例是生产系统S的另一实施例。在第二实施例中,作为示例,描述了在生产系统S中实现被分配的处理而不使用扫描组的概念的情况。在第二实施例中,省略了与第一实施例相同的部分的描述。
如第一实施例中所描述的,当梯形程序P1的所有处理仅由CPU 21A按顺序地执行时,要花费长时间来执行处理,因为所有处理由一个处理器核心来执行。当在CPU 21A和21B之间分配处理,可以减少处理所需的时间。然而,用户需要花费大量时间和精力来分别创建针对CPU 21A的梯形程序P1和针对CPU 21B的梯形程序P1。例如,即使当用户已经在单个核心的前提下创建了梯形程序P1时,也需要再次创建用于被分配的处理的梯形程序P1。
因此,第二实施例的生产系统S将梯形程序P1划分为梯级单元,并且在CPU 21A和21B之间分配由多个梯级中的至少一部分执行的处理,从而缩短处理所需的时间。例如,即使当用户已经在单个核心的前提下创建了梯形程序P1时,用户也可以通过复用现有梯形程序P1来实现被分配的处理,从而减少用户所需的时间和精力。下面描述第二实施例的细节。
[2-1.第二实施例中实现的功能]
图17是用于示出生产系统S的功能的示例的功能框图。
[2-1-1.程序创建设备的功能]
第二实施例的程序创建设备10包括数据存储单元、同步目标设置模块111、获取模块112和划分模块113。同步目标设置模块111、获取模块112和划分模块113主要由CPU 11实现。
[数据存储单元]
数据存储单元100存储由控制器20的多个处理器核心执行被分配的处理所需的数据。例如,数据存储单元100存储工程工具T、控制组数据D1、和处理时间数据D2。工程工具T是用户用来设定控制器20和电机控制设备30的程序。在第二实施例中,描述了梯形程序P1的划分作为工程工具T的功能来执行的情况,但是梯形程序P1的划分可以由除了工程工具T以外的工具来实现。
图18是用于示出控制组数据D1的示例的表。控制组数据D1是定义控制组的数据。控制组是要在同一控制周期中同步的一组轴。在控制器20中,为每个轴准备用于存储输出相关值的寄存器(以下称为“输出寄存器”),因此控制组也可以被称为一组需要在同一控制周期中同步的输出寄存器。与每个轴相对应的输出寄存器在下文中被称为“轴输出”。
在第二实施例中,描述了用户从工程工具T指定要同步的轴的情况,但是不要求由用户指定要同步的轴。例如,可以基于为每个轴设定的控制周期来自动地设定要同步的轴,使得具有同一控制周期的轴属于同一控制组。此外,例如,除了操作工程工具T的用户以外的人员可以指定要同步的轴。
在图18的示例中,存在控制组1和2。为控制组1设定了预定控制周期(例如,1ms)。在第二实施例中,描述了控制组2被设定为与控制组1相同的控制周期(然而,要同步的轴是不同的)的情况。但是,控制组1的控制周期和控制组2的控制周期也可以不同,如在稍后描述的修改示例中。为了使要同步的轴同步,对轴输出执行的写入处理的时间也需要匹配。
例如,轴1至6属于控制组1。轴7至10属于控制组2。控制组数据D1包括能够标识属于控制组1的轴1至6的轴输出的寄存器标识信息和能够标识属于控制组2的轴7至10的轴输出的寄存器标识信息。在第二实施例中,描述了寄存器地址(寄存器编号)与寄存器标识信息相对应的情况,但是寄存器标识信息可以是能够标识寄存器的任何信息。例如,寄存器标识信息可以是寄存器的名称,或者可以是寄存器的起始地址及其偏移的组合。
控制组数据D1中包括的信息不限于图18的示例。控制组数据D1包括关于控制组的信息就足够了。例如,当除了轴输出以外的另一输出寄存器(例如,I/O输出寄存器)用作控制组的参考时,关于该另一输出寄存器的寄存器标识信息可以被包括在控制组数据D1中。此外,控制组的数量可以是一个、或三个或更多个。每个控制组中包括的轴的数量也可以是任何数量。处理时间数据D2可以与第一实施例中的处理时间数据相同。
数据存储单元100中存储的数据不限于上述示例。例如,数据存储单元100存储划分前的梯形程序P1和划分后的梯形程序P11。划分前的梯形程序P1的数据结构如参考图2所描述的。例如,划分之前的梯形程序P1是在由单个核心执行的前提下被创建的。划分前的梯形程序P1在下文中被简称为“梯形程序P1”,并且划分后的梯形程序P11被称为“划分程序p1”。
划分程序p1由划分模块113创建,将在稍后对此进行描述。多个划分程序p1是从一个梯形程序P1创建的。在第二实施例中,创建了针对CPU 21A的划分程序p1和针对CPU 21B的划分程序p1。每个划分程序p1被编译并被转换为机器语言以创建编译后的划分程序p2。数据存储单元100可以存储编译后的划分程序p2。在第二实施例中,创建了针对CPU 21A的编译后的划分程序p2和针对CPU 21B的编译后的划分程序p2。
另外,例如,数据存储单元100可以存储其他数据,例如指示控制器20的寄存器的定义的寄存器定义数据和指示控制器20和电机控制设备30之间的通信设置的通信设置数据。假设在寄存器定义数据中定义轴输出和其他寄存器之间的配置关系。用户还可以通过使用工程工具来定义寄存器以及配置通信设置。
[同步目标设置模块]
同步目标设置模块111将控制器20的多个轴设定为同步目标。控制器20的轴是要由控制器20控制的轴。这些轴不仅包括由控制器20直接控制的轴,还包括由控制器20通过另一设备(在第二实施例中,电机控制设备30)间接控制的轴。在第二实施例中,同步目标设置模块111将用户指定的多个轴设定为同步目标,但是如上所述,可以自动地设置要同步的轴而不由用户指定。同步目标设置模块111通过在数据存储单元100中记录指示要同步的轴的控制组数据D1来设定要同步的轴。
[获取模块]
获取模块112获取指示控制器20的操作的梯形程序P1。例如,获取模块112从数据存储单元100获取梯形程序P1。获取模块112可以从控制器20的数据存储单元200、另一设备或外部信息存储介质获取梯形程序P1。当存在多个梯形程序P1时,获取模块112可以获取多个梯形程序P1。在这种情况下,为每个梯形程序P1创建划分程序p1。
[划分模块]
划分模块113将梯形程序P1划分为多个梯级,并将一个或多个梯级分配给两个或更多个处理器核心,使得要由多个梯级中的至少一部分执行的处理被分配给多个处理器核心中的两个或更多个不同的处理器核心。
在第二实施例中,划分模块113将梯形程序P1划分为梯级单元。梯级是程序部分的示例。因此,本文使用的“梯级”可以被解读为“程序部分”。当梯形程序P1中包括的梯级的数量是“n”(“n”为2或者更大的整数)时,划分模块113将梯形程序P1划分为“n”个程序部分。在下面的描述中,给出了划分模块113将梯形程序P1(总共包括14个梯级,即梯级A至N)划分为14个程序部分的示例。
划分模块113可以将梯形程序P1划分为使得一个程序部分中包括的梯级的数量与另一程序部分中包括的梯级的数量不同。例如,划分模块113可以将梯形程序P1划分为使得一个程序部分包括两个梯级,而另一程序部分仅包括一个梯级。假设一个程序部分中包括的多个梯级具有相关性,稍后对此进行描述。划分模块113可以通过使用例如梯形程序P1中包括的图形或命令来标识梯级之间的相关性,并且将具有相关性的多个梯级划分为一个程序部分。
此外,梯形程序P1的划分单位不限于梯级。例如,划分模块113可以在梯级的中间划分梯形程序P1,使得直到梯级的中间被包括在程序部分中。例如,划分模块113可以将梯形程序P1划分为图形单元(例如线圈),或者可以将梯形程序P1划分为布置有特定图形的部分。例如,当梯形程序P1中包括用户的注释时,划分模块113可以将梯形程序P1划分为使得从某个注释直到下一注释的部分成为一个程序部分。划分模块113基于预定划分方法来划分梯形程序P1就足够了。
划分模块113从由梯形程序P1划分而来的多个梯级中确定要分配给CPU 21A的处理器核心的梯级和要分配给CPU 21B的处理器核心的梯级。在第二实施例中,说明了将各个梯级仅分配给CPU 21A的处理器核心和CPU 21B的处理器核心中的一个处理器核心的情况,但是可以存在分配给这两个处理器核心的梯级(例如,稍后描述的修改示例2-1中的梯级A至D)。也就是说,上述“要由多个梯级的至少一部分执行的处理”不仅包括所有梯级的处理,还包括仅一部分梯级的处理。
此外,在第二实施例中,描述了划分模块113将至少一个梯级分配给控制器20中包括的所有处理器核心,但是可以存在未被分配梯级的处理器核心。也就是说,上述的“多个处理器核心中的两个或更多个不同的处理器核心”中的“多个处理器核心”的数量和“两个或更多个[不同的]处理器核心”的数量不需要匹配。例如,当控制器20包括与CPU 21A的处理器核心和CPU 21B的处理器核心不同的另一处理器核心时,不需要将梯级分配给该另一处理器核心。例如,该另一处理器核心用于另一目的,例如与外部的通信,而不是执行梯形程序P1。此外,可能存在未分配给CPU 21A的处理器核心或CPU 21B的处理器核心的梯级。
将梯级分配给处理器核心意味着确定该处理器核心用作处理该梯级的主执行器。换句话说,确定要由每个处理器核心处理的梯级与将梯级分配给处理器核心相对应。要分配给每个处理器核心的梯级的数量可以是任何数量。当如第二实施例中那样定义控制周期时,要分配给处理器核心的梯级的数量被设定为足以完成每个控制周期中的处理的数量。
在第二实施例中,划分模块113通过执行三种类型的处理(即相关性标识处理、分组处理、和分配处理)来将一个或多个梯级分配给CPU 21A的处理器核心和CPU 21B的处理器核心。下面描述这三种类型的处理的细节。
[相关性标识处理]
相关性标识处理是分析梯级的处理并且标识梯级之间的相关性的处理。梯级的处理是由梯级中包括的元件(例如线圈)来表示的处理。梯级包括一种或多种类型的处理。至少一部分梯级的处理成为关系标识处理中的分析目标。在关系标识处理中,分析每个梯级中包括的元素,并且标识彼此具有相关性的梯级。
梯级之间的相关性是基于某个梯级的处理内容和另一梯级的处理内容是否彼此相关。例如,当为了执行某个梯级的处理而需要完成另一梯级的处理的执行时,这些梯级具有相关性。以另一种方式表述,当某个梯级的处理指另一梯级的处理的执行的结果时,这些梯级具有相关性。例如,当使用同一处理器核心来执行某个梯级的处理和另一梯级的处理更高效时,这些梯级具有相关性。
在第二实施例中,划分模块113基于对控制器20的寄存器执行的写入处理和引用处理来标识多个梯级之间的相关性。划分模块113将对同一寄存器执行写入处理或引用处理中的至少一个处理的梯级标识为具有相关性的梯级。划分模块113将包括对某个寄存器的写入处理的梯级和包括对该寄存器的引用处理的梯级标识为具有相关性的梯级。
图19是用于示出包括要对寄存器执行写入处理和引用处理的梯级的示例的表。在图19中,“A”至“N”是梯级名称,“reg1”至“reg13”是寄存器的名称,并且“w”意味着写入处理。当某个梯级包括要对某个寄存器执行的写入处理时,在图19的表中,在该梯级和寄存器的单元中示出“w”。在图19中,“r”意味着引用处理。当某个梯级包括要对某个寄存器执行的引用处理时,在图19的表中,在该梯级和寄存器的单元中示出“r”。应注意,“Gr1”和“Gr2”是参考图18描述的轴输出的名称,但是不用于关联性标识处理。
例如,梯级A包括要对寄存器reg1执行的写入处理。更具体地,梯级A包括指示写入处理的处理标识信息和指示作为写入处理的目标的寄存器reg1的寄存器标识信息。处理标识信息是可以标识处理内容的信息。例如,处理标识信息是指示处理的图形或指示命令的字符串。寄存器标识信息是可以标识寄存器的信息。例如,寄存器标识信息是寄存器的地址或寄存器的名称。在写入处理中要写入的值可以在梯级内指定,或者可以通过某种计算来获取。
梯级B包括要对寄存器reg1执行的引用处理和要对寄存器reg2执行的写入处理。更具体地,梯级B包括指示引用处理的处理标识信息、指示作为引用处理的目标的寄存器reg1的寄存器标识信息、指示写入处理的处理标识信息、以及指示作为写入处理的目标的寄存器reg2的寄存器标识信息。划分模块113标识出梯级A和B彼此具有相关性,因为梯级A的寄存器标识信息和梯级B的寄存器标识信息都指示寄存器reg1。此外,划分模块113在执行次序中标识出梯级A在梯级B之前,因为梯级A的处理标识信息指示写入处理,而梯级B的处理标识信息指示引用处理。
划分模块113类似地将每个梯级中包括的处理标识信息和寄存器标识信息与其他梯级C至N进行比较,以标识梯级之间的相关性。例如,当某个梯级的寄存器标识信息和另一梯级的寄存器标识信息都指示同一寄存器时,划分模块113标识出在这些梯级之间存在相关性。在这些梯级中,划分模块113将具有指示写入处理的处理标识信息的梯级标识为具有在具有指示参考信息的处理标识信息的梯级之前的执行次序。
图20是用于示出由关系标识处理标识的梯级之间的相关性的示例的示意图。在图20中,“I/O(同步)”意味着控制器20的寄存器的数据同步。数据同步本身可以通过任何方法来执行,例如通过总线连接或网络连接。可以周期性地或非周期性地执行数据同步。例如,每个控制周期执行数据同步。当存在多个控制周期时,可以在最短的控制周期中执行数据同步。执行控制器20的寄存器之间的数据同步或控制器20和电机控制设备30之间的数据同步中的至少一种数据同步。
当到达某个控制周期的时间时,执行数据同步,然后执行各个梯级的处理。在图20中,梯级A至N之间的相关性由箭头表示。箭头表示执行次序。在第二实施例中,在对某个寄存器执行写入处理之后,对该寄存器执行引用处理,因此箭头从包含写入处理的梯级延伸到包含引用处理的梯级。
例如,梯级J包括对寄存器reg9的引用处理,对该寄存器reg9已经执行了梯级I的写入处理,因此在图20中箭头从梯级I延伸到梯级J。梯级I不包括对在另一梯级中已经被执行写入处理的寄存器的引用处理,因此在图20中箭头从“I/O(同步)”帧延伸到梯级I。不存在从梯级J延伸的箭头,因为梯级J不包括对要在另一梯级上的引用处理中被参考的寄存器的写入处理。
在图20中,其他梯级的相关性也由类似的箭头表示。例如,梯级E、A、C和G不包括对在另一个梯级中已经执行了写入处理的寄存器的引用处理,因此箭头从“I/O同步”延伸到梯级E、A、C和G。梯级F、B、D和H包括对已经分别执行了梯级E、A、C和G的写入处理的寄存器的引用处理,因此箭头分别从梯级E、A、C和G延伸到梯级F、B、D和H。
已经执行了梯级F的写入处理的寄存器reg6在梯级K、L和N的引用处理中被参考,因此箭头从梯级F延伸到梯级K、L和N。类似地,已经执行了梯级B和D的写入处理的寄存器在梯级L和M的引用处理中被参考,因此箭头从梯级B和D延伸到梯级L和M。已经执行了梯级H的写入处理的寄存器在梯级M的引用处理中被参考,因此箭头从梯级H延伸到梯级M。
在图20的示例中,梯级I和J、梯级E和F、梯级A和B、梯级C和D以及梯级G和H彼此不具有关联性,因此并行处理是可能的。例如,即使当在不同的处理器核心中同时执行梯级I和J的处理以及梯级E和F的处理时,并行处理也是可能的,因为执行梯级I和J的处理或梯级E和F的处理都无需等待。
同时,梯级K、L和N的引用处理的执行需要完成梯级F的写入处理。梯级L和M的引用处理的执行需要完成梯级B的写入处理。M的引用处理的执行梯级需要完成梯级B、D和H的写入处理。以这种方式,存在执行是基于完成一个或多个其他梯级的写入处理的梯级。这样的梯级不能被并行地处理,并且对处理次序也有限制。
在第二实施例中,“具有相关性”不仅包括对寄存器的写入处理和引用处理直接相关的情况,而且包括对寄存器的写入处理和引用处理间接相关的情况。在图20的示例中,“具有相关性”不仅包括存在由向下指向的箭头直接连接的情况,还包括存在经由另一梯级连接的情况。例如,梯级E和梯级K、L和N经由梯级F由向下指向的箭头连接,因此这些梯级E、F、K、L和N具有相关性。然而,梯级F和梯级B经由梯级L由箭头连接,但是梯级F和梯级B不是仅由向下指向的箭头连接的,因此梯级F和梯级B不具有相关性。
划分模块113可以通过使用除了要对寄存器执行的处理以外的信息来标识梯级之间的相关性。基于预先确定的方法来确定梯级之间的相关性就足够了。例如,当某个梯级包括调用另一梯级或绘图的命令时,划分模块113可以确定梯级彼此具有相关性。作为另一示例,划分模块113可以通过使用要对预定文件而不是寄存器执行的处理的信息来标识梯级之间的相关性。该处理是要对文件执行的写入处理或引用处理。例如,当要由某个梯级处理的文件与要由另一梯级处理的文件相同时,划分模块113确定这些梯级具有相关性。
[分组处理]
分组处理是用于对梯级进行分组的处理。具有在相关性处理中标识的相关性的一组梯级意味着这些梯级是某种类型的组,但是分组处理中的“组”意味着对特定处理内容的分类。原则上,属于同一组的多个梯级被分配给同一处理器核心。并非仅一组可以被分配给一个处理器核心,并且某个组和另一组可以被分配给同一处理器核心。
在第二实施例中,作为示例,描述了存在以下五个组的情况。这些梯级属于五个组中的一个或多个组。在下面的描述中,当不区分这五个组时,这些组被简称为“组”。
(1)控制组:如参考图18所描述的,分组处理意味着包括与轴输出相对应的处理的一组梯级和与该梯级具有相关性的另一梯级。
(2)特定组:意味着仅属于一个控制组的一组梯级(包括特定于控制组的处理的梯级)。
(3)公共组:意味着属于多个控制组的一组梯级(包括控制组中的共同处理的梯级)。
(4)导出组:意味着不属于控制组但是与属于控制组的梯级具有相关性的一组梯级(包括从特定于控制组的处理导出的处理的梯级)。
(5)其他组:意味着不属于任何上述组的一组梯级(包括不属于控制组的其他处理的梯级)。
图21是用于示出分组处理过程的示例的示意图。图22是用于示出由分组处理进行分组的梯级的示例的示意图。在第二实施例中,划分模块113执行分组,使得被设定为同步目标的与多个轴中的每个轴相对应的梯级属于同一组。在第二实施例中,分组处理包括图21的步骤ST1至步骤ST3的步骤。当执行分组处理直到步骤ST3时,梯级被分类为如图22所示的组。
在第二实施例中,在图18的控制组数据D1中定义了两个控制组1和2。在本文中,假设梯级N和L包括对控制组1的轴输出(在图18中,由寄存器标识信息1至6指示的寄存器)的写入处理。这些轴输出由图19、图21和图22中的符号Gr1表示。此外,假设梯级M包括对控制组2的轴输出(在图18中,由寄存器标识信息7至10指示的寄存器)的写入处理。这些轴输出由图19、图21和图22中的符号Gr2表示。
首先,与图21的步骤ST1类似,划分模块113分析每个梯级,并将梯级N和L标识为包括控制组数据D1中定义的与轴输出Gr1相对应的处理(对轴输出Gr1的写入处理)的梯级。类似地,划分模块113分析每个梯级,并将梯级M标识为包括控制组数据D1中定义的与轴输出Gr2相对应的处理(对轴输出Gr2的写入处理)的梯级。
接下来,与步骤ST2类似,划分模块113执行分组,使得包括与轴输出Gr1相对应的处理的梯级L和N以及与梯级L和N具有相关性的梯级A、B、C、D、E和F属于同一控制组1。划分模块113执行分组,使得包括与控制组2的轴输出Gr2相对应的处理的梯级M以及与梯级M具有相关性的梯级A、B、C、D、G和H属于同一控制组2。
最终步骤ST3包括步骤ST3-1至步骤ST3-4。与步骤ST3-1类似,划分模块113将包括特定于控制组1和2的处理的梯级设定为特定组1和2。例如,划分模块113执行分组,使得与梯级M不具有相关性的梯级E、F、L和N属于与控制组1相对应的特定组,梯级M包括与控制组2的轴输出Gr2相对应的处理,控制组2与控制组1不同。类似地,划分模块113执行分组,使得与梯级L和N不具有相关性的梯级G、H和M属于与控制组2相对应的特定组2,梯级L和N包括与控制组1的轴输出Gr1相对应的处理,控制组1与控制组2不同。
与步骤ST3-2类似,划分模块113将在控制组之间包括共同处理的梯级分组为公共组。例如,划分模块113执行分组,使得属于多个控制组1和2的梯级A、B、C和D属于与多个控制组1和2相对应的公共组。梯级A和B以及梯级C和D之间不具有相关性,因此划分模块113可以执行分组使得梯级A和B属于第一公共组,并且执行分组使得梯级C和D属于第二公共组。
与步骤ST3-3类似,划分模块113将包括从特定组1和2导出的处理的梯级分组为导出组。例如,划分模块113将梯级K分组为导出组,梯级K与梯级F具有相关性,梯级F属于与控制组1相对应的特定组1,但是不属于控制组1和2中的任何一组。控制组2不具有相对应的梯级,因此不具有导出组。梯级K可以被视为属于特定组1而不是导出组。划分模块113可以将包括从公共组导出的处理的梯级分组为导出组。
与步骤ST3-4类似,划分模块113将包括不属于控制组1或2的其他处理的梯级分组为其他组。例如,划分模块113执行分组,使得不属于控制组1或2的梯级I和J属于其他组。梯级K也可以被分类为其他组,但是在第二实施例中,假设该其他组是梯级I和J,它们不属于任何导出组。
以这种方式,划分模块113基于要对控制器20的寄存器执行的处理对多个梯级进行分组。在第二实施例中,基于要对寄存器执行的处理而标识了相关性,因此划分模块113执行分组,使得彼此具有相关性的梯级属于同一组。划分模块113可以使用关系标识处理中标识的相关性作为组而无需进一步改变。在这种情况下,相关性标识处理也用作分组处理。
划分模块113将多个梯级分组为多个组的处理不限于上述示例。划分模块113可以分析多个梯级并对经分析的梯级进行分组,使得要分配给同一处理器核心的梯级属于同一组。例如,划分模块113可以直接将图20所示的相关性视为同一组。此外,例如,划分模块113可以仅对图21的控制组1和2进行分组。在这种情况下,不执行对特定组1和2、公共组、导出组和其他组的分组。
[分配处理]
分配处理是将一个或多个梯级分配给CPU 21A的处理器核心和CPU 21B的处理器核心的处理。划分模块113执行分配,使得多个组中的至少一部分被分配给两个或更多个处理器核心。在第二实施例中,描述了要被分配梯级的两个或更多个处理器核心是控制器20中包括的多个处理器核心的全部。也就是说,控制器20中包括的两个处理器核心(CPU 21A的处理器核心和CPU 21B的处理器核心)都与要被分配梯级的两个或更多个处理器核心相对应。
要被分配梯级的两个或更多个处理器核心可以仅是控制器20中包括的多个处理器核心的一部分。例如,当控制器20包括三个处理器核心时,可以仅对三个处理器核心中的两个处理器核心执行分配。在这种情况下,未被分配梯级的处理器核心可以用于执行与包括梯级A至N的梯形程序P1不同的另一梯形程序P1,或者可以用于除了控制电机控制设备30以外的目的,例如用于外部通信。
图23是用于示出由分配处理分配给处理器核心的梯级的示例的示意图。在第二实施例中,划分模块113将属于公共组的多个梯级A、B、C和D分配为以在CPU 21A和21B的处理器核心之间进行分配。例如,划分模块113将属于公共组的梯级A和B分配给CPU 21A的处理器核心。划分模块113将属于公共组的梯级C和D分配给CPU 21B的处理器核心。属于公共组的梯级A、B、C和D的处理与多个控制组1和2相关,因此在图23的示例中,梯级A、B、C和D的处理被分配为使得按相对较早的梯级的次序来执行该处理。
划分模块113执行分配,使得多个特定组1和2被分配给CPU 21A和21B的处理器核心。例如,划分模块113将属于特定组1的梯级E、F、L和N分配给CPU 21A的处理器核心。划分模块113将属于特定组2的梯级G、H和M分配给CPU 21B的处理器核心。
例如,划分模块113执行分配,使得保持与要对控制器20的寄存器执行的处理相对应的执行次序。在CPU 21A的处理器核心的情况下,划分模块113执行分配,使得在梯级E和F之后执行梯级N和L,以保持要对图19所示的寄存器执行的写入处理和引用处理的执行次序(即,例如,由图23中箭头的方向指示的执行次序)。梯级N和梯级L中的任何一个梯级可以被首先处理。在图23的示例中,划分模块113确定梯级N和L的次序,使得稍后执行受到CPU 21B的处理器核心的处理(梯级D的处理)的影响的梯级L。当到了梯级L的处理时间未完成梯级D的处理时,等待梯级L的处理的执行。
类似地,在CPU 21B的处理器核心的情况下,划分模块113执行分配,使得在梯级G和H之后执行梯级M。在图23的示例中,划分模块113确定梯级N和L的次序,使得稍后执行受到CPU 21B的处理器核心的处理(梯级D的处理)的影响的梯级L。当到了梯级M的处理时间未完成梯级B的处理时,等待梯级M的处理的执行。不要求维持所有梯级的执行次序,并且对于可以被并行地执行的梯级,不要求维持执行次序。至少保持例如图23的箭头所示的执行顺序就足够了。
划分模块113执行分配,使得属于导出组的梯级K被分配给与导出了导出组的特定组1的处理器核心相同的处理器核心。在图23的示例中,特定组1被分配给CPU 21A的处理器核心,因此划分模块113将梯级K分配给同一CPU 21A的处理器核心。梯级K与梯级L和N不具有相关性,因此可以在梯级L和N之后分配梯级K。
划分模块113将属于其他组的梯级I和J分配给CPU 21A和21B的处理器核心中的任何一个处理器核心。例如,划分模块113将梯级I和J分配给CPU 21A和21B的处理器核心之间相对更空闲的处理器核心。如本文所使用的,“相对更空闲”意味着处理器核心具有相对较低的估计总处理时间、较少数量的分配的梯级、或较少数量的分配的组。划分模块113可以随机地确定梯级I和J要被分配到的处理器核心。属于其他组的梯级要分配到的处理器核心可以预先固定,或者可以自动选择具有较高性能的处理器核心。
当对控制器20的公共寄存器的写入处理和引用处理发生在被分配给两个处理器核心的两个梯级的每个梯级中时,划分模块113可以在执行写入处理的处理器核心的写入处理的梯级之后并且在执行引用处理的处理器核心的引用处理的梯级之前在处理器核心之间插入通信处理。作为通信处理,划分模块113可以插入使用总线连接的通信处理或使用网络连接的通信处理。各种公知的方法可以应用于处理器核心之间的通信处理本身。
在图23的示例中,在完成梯级D之后,划分模块113插入用于从CPU 21B的处理器核心到CPU 21A的处理器核心传输指示梯级D已经被完成的通知的处理。在完成梯级B之后,划分模块113插入用于从CPU 21A的处理器核心到CPU 21B的处理器核心传输指示梯级B已经被完成的通知的处理。划分模块113在梯级N之后插入用于接收梯级D的完成的处理。通过该处理,当检测到梯级D的完成时,执行梯级L的处理。划分模块113在梯级J之后插入用于接收梯级B的完成的处理。通过该处理,当检测到梯级B的完成时,执行梯级M的处理。
此外,划分模块113可以执行分配,使得被分配给两个或更多个处理器核心的一个或多个梯级的处理的执行全部在预定控制周期内完成。划分模块113参考控制组数据D1,并且获取控制组1和2的控制周期。划分模块113基于处理时间数据D2来估计每个梯级所需的处理时间。划分模块113将梯级分配给处理器核心,使得要由一个处理器核心执行的梯级的总处理时间不超过控制周期。
在图23的示例中,划分模块113对CPU 21A的处理器核心执行分配,使得梯级A、B、E、F、K、N和L的总处理时间不超过控制组1的控制周期。划分模块113对CPU 21B的处理器核心执行分配,使得梯级C、D、G、H、I、J和M的总处理时间不超过控制组2的控制周期。划分模块113还可以将上述的在梯级之间插入的通信处理所需的时间包括在总处理时间中。
划分模块113基于被分配给处理器核心的梯级来创建划分程序p1。例如,划分模块113创建包括被分配给CPU 21A的梯级A、B、E、F、K、N和L的划分程序p1。在该划分程序p1中,按照梯级A、B、E、F、K、N和L的次序布置梯级,并且划分程序p1还包括上述的通信处理。划分模块113创建包括被分配给CPU 21A的梯级C、D、G、H、I、J和M的划分程序p1。在该划分程序p1中,按照梯级C、D、G、H、I、J和M的次序布置梯级,并且划分程序p1还包括上述的通信处理。
划分模块113针对每个处理器核心编译划分程序p1,并且创建转换为机器语言的划分程序p2。例如,划分模块113编译CPU 21A的划分程序p1,并且创建要由CPU 21A执行的划分程序p2。划分模块113编译CPU 21B的划分程序p1,并且创建要由CPU 21B执行的划分程序p2。划分模块113将编译后的划分程序p2记录在数据存储单元100和控制器20中。各种公知的编译器可以用作编译器本身。可以准备执行上述的相关性处理、分组处理和分配处理的编译器,并且这些类型的处理可以由该编译器执行。
[2-1-2.控制器中实现的功能]
数据存储单元200主要由存储单元22实现。数据存储单元200存储控制电机控制设备30所需的数据。例如,数据存储单元200存储程序,其中梯形程序p1、划分程序p1和编译后的划分程序p2已经被编译并被转换为机器语言。数据存储单元200不需要存储梯形程序P1和划分程序p1。已经由划分模块113分配了梯级的两个或更多个处理器核心执行被分配给这些处理器核的一个或多个梯级的处理。也就是说,两个或更多个处理器核心执行编译后的划分程序p2。
数据存储单元200中存储的数据不限于上述示例。例如,数据存储单元200存储可由控制器20或另一设备参考或写入的多个变量。存储各个变量的寄存器被预先确定。例如,用户使用程序创建设备10的工程工具T来定义用于控制电机控制设备30的寄存器。用户可以通过使用工程工具T来执行各种设置,例如,要控制的电机控制设备30的设置和网络通信设置。数据存储单元200可以存储指示通过使用工程工具T执行的设置的文件。
[2-2.第二实施例中要执行的处理]
图24是用于示出要在生产系统S中执行的处理的示例的流程图。如图24所示,程序创建设备10启动工程工具T,并且将用户指定的多个轴设定为同步目标(步骤S100)。在步骤S100中,程序创建设备10创建控制组数据D1,并且将创建的控制组数据D1记录在存储单元12中。
程序创建设备10获取控制器20中存储的梯形程序P1(步骤S101)。在步骤S101中,程序创建设备10在显示单元15上显示阶梯程序P1。当用户执行预定操作时,程序创建设备10将梯形程序P1划分为多个梯级(步骤S102)。程序创建设备10执行上述的相关性标识处理、分组处理和分配处理(步骤S103至步骤S105)。程序创建设备10基于分配处理来创建并编译划分程序p1(步骤S106),并且将编译后的划分程序p2记录在控制器20中(步骤S107)。
控制器20执行编译后的划分程序p2,并且通过与电机控制设备30通信来控制电机40(步骤S108)。在步骤S108中,CPU 21A的处理器核心执行与其自身相对应的划分程序p2,并且执行被分配给其自身的梯级的处理。CPU 21B的处理器核心执行与其自身相对应的划分程序p2,并且执行被分配给其自身的梯级的处理。控制器20基于由CPU 21A和21B的处理器核心获得的处理结果向电机控制设备30传输命令。电机控制设备30通过执行与命令相对应的处理来控制电机40。电机控制设备30基于处理结果向控制器20传输响应。
第二实施例的生产系统S通过将多个梯级中的至少一部分分配给多个处理器核心中的两个或更多个不同的处理器核心并执行处理来缩短处理所需的时间。由每个处理器核心执行的处理量被减少,因此处理器核心上的处理负载可以被减少。因此,可以防止生产系统S中由于处理延迟而发生的异常。通过防止异常的发生,生产系统S中的生产效率也增加。此外,通过本身存储梯形程序P1、同时还存储和执行划分程序p2的控制器20,缩短了处理所需的时间,划分程序p2是通过划分并编译梯形程序P1而获得的。同时,梯形程序P1和划分程序p2可以被称为一个程序,这使得用户能够执行检查和编辑而不会误标识程序。
此外,在生产系统S中,被分配给两个或更多个处理器核心的一个或多个梯级的执行全部在预定控制周期内完成,因此可以防止生产系统S中由于在控制周期内未完成处理而出现的异常。通过防止异常的发生,生产系统S中的生产效率也增加。例如,即使当控制周期在处理器核心之间不同时,处理也可以在与每个处理器核心相对应的控制周期内完成。
此外,生产系统S执行分配,使得维持与要对控制器20的寄存器执行的处理相对应的执行次序,因此可以按照梯形程序P1的创建者所预期的执行次序来执行处理。因此,防止了生产系统S中异常的发生,并且因此提高了生产效率。
此外,生产系统S将多个梯级中的每个梯级分为多个组,并且执行分配,使得多个组中的每个组被分配给多个处理器核心中的一个处理器核心。因此,有效的被分配的处理成为可能。例如,可以使处理器核心X执行组1的处理,使处理器核心Y执行组2的处理,因此,可以通过将要执行每个组的处理的处理器核心分离来有效地执行处理。例如,当使用多个处理器核心来执行某个组时,处理器核心之间发生通信,但是通过使用一个处理器核心来执行某个组,可以防止处理器核心之间的通信,因此可以加速处理。
此外,通过基于要对控制器20的寄存器执行的处理来执行分组,生产系统S可以考虑对寄存器的处理的相关性来精确地执行分组。精确的分组使得被分配的处理更加有效。
此外,生产系统S可以通过基于要对寄存器执行的写入处理和引用处理来标识多个梯级之间的相关性,从而更精确地标识梯级之间的相关性。使得具有精确标识的相关性的梯级属于同一组的分组使得分组能够被精确地执行。精确的分组使得被分配的处理更加有效。
此外,生产系统S可以考虑轴输出,通过使得包括与轴输出相对应的处理的梯级和与该梯级具有相关性的另一梯级属于同一控制组的分组来精确地执行分组。精确的分组使得被分配的处理更加有效。
此外,生产系统S可以通过使得与包括对应于另一控制组的轴输出的处理的梯级不具有相关性的梯级属于特定控制组的分组来精确地执行分组。精确的分组使得被分配的处理更加有效。
此外,通过执行使得属于多个控制组的梯级属于公共组的分组,生产系统S可以将与多个轴输出相关的梯级分类为另一组,这使得被分配的处理更加有效。
此外,通过对不属于控制组的梯级进行的使得这些梯级属于另一组的分组,生产系统S可以通过将属于其他组的梯级分配给空闲处理器核心来有效地处理这些梯级。
此外,当通过执行使得与被设定为同步目标的多个轴中的每个轴相对应的梯级属于同一组来同步被设定为同步目标的多个轴时,生产系统S可以实现有效的被分配的处理。
此外,可以操作生产系统S,以便通过将用户指定的多个轴设定为同步目标来同步用户指定的多个轴。
此外,当对控制器20的寄存器的写入处理和引用处理发生在被分配给两个处理器核心的两个梯级中的每个梯级中时,生产系统S可以通过在写入处理梯级之后和引用处理梯级之前在处理器核心之间插入通信处理来执行处理器核心之间的通信处理以及实现多个处理器核心的被分配的处理。
此外,生产系统S例如可以在工程工具T连接到控制器20时显示梯形程序P1的内容,并且通过将梯形程序P1存储在控制器20中来执行梯形程序P1的划分。
[3.修改示例]
本公开不限于上述实施例,并且可以在不脱离本公开的精神的情况下适当地修改。
[3-1.第一实施例的修改示例]
例如,第一实施例和第二实施例可以进行组合。也就是说,在第一实施例中一样,生产系统S还可以包括划分模块113,划分模块113将梯形程序P1划分为多个梯级,并且将多个梯级中的每个梯级分配给多个处理器核心中的一个处理器核心,使得多个梯级被分配。划分模块113的处理如第二实施例中所述。因此,如第二实施例所述,梯形程序P1的处理所需的时间被缩短。
[3-2.第二实施例的修改示例]
接下来,描述了第二实施例的修改示例。
[修改示例2-1]
例如,划分模块113可以执行分配,使得属于公共组的梯级A、B、C和D由多个控制组1和2中的每个控制组被分配到的两个或更多个处理器核心并行地执行。类似于该实施例,描述了两个或多个处理器核心是CPU 21A的处理器核心和CPU 21B的处理器核心这两者的情况。
图25是用于示出修改示例2-1中的分配的示例的示意图。划分模块113将属于公共组的梯级A、B、C和D分配给CPU 21A的处理器核心。划分模块113还将属于公共组的梯级A、B、C和D分配给CPU 21B的处理器核心。对于其他组的分配可以与该实施例中的相同,但是在修改示例2-1中,公共组被分配给CPU 21A的处理器核心和CPU 21B的处理器核心这两者,并且因此不发生如在第二实施例中参考图23所描述的等待梯级B和D的完成。因此,在修改示例2-1中,不执行用于在处理器核心之间插入通信处理的处理。
此外,在修改示例2-1中,无需等待梯级B和D的完成,因此划分模块113可以执行分配,使得梯级L在梯级N之前。类似地,在第二实施例的示例中,属于导出组的梯级K被放置在梯级L之前,因为存在梯级L之前发生等待梯级D完成的可能性,但是在修改示例2-1中,无需等待梯级D完成,因此划分模块113可以执行分配,使得梯级K在梯级L和N之后。
划分模块113至少可以将控制器20的虚拟寄存器分配给属于公共组的梯级A、B、C和D所使用的寄存器,并且两个或更多个处理器核心可以基于该虚拟寄存器并行地执行属于公共组的梯级A、B、C和D。虚拟寄存器是与最初被分配给控制器20的寄存器不同的寄存器。最初被分配给控制器20的寄存器在下文中被称为“真实寄存器”。
在修改示例2-1中,描述了划分模块113将虚拟寄存器分配给与所有梯级的处理相关的真实寄存器的情况,但是划分模块113可以仅将虚拟寄存器分配给与属于公共组的梯级A、B、C和D的处理相关的真实寄存器。此外,例如,划分模块113可以将虚拟寄存器分配给与属于公共组的梯级A、B、C和D的处理相关的真实寄存器,并且将虚拟寄存器分配给与部分其他梯级的处理相关的真实寄存器。在图19中的寄存器的示例中,存在帧识寄存器reg1至reg13作为与梯级A至N的处理相关的真实寄存器。轴输出Gr1和Gr2也是与梯级L、M和N相关的真实寄存器,因此可以设定与轴输出Gr1和Gr2相对应的虚拟寄存器。控制器20上的空闲寄存器可以用作虚拟寄存器。
例如,被分配给CPU 21A的梯级A、B、C、D、E、F、K、L和N使用真实寄存器reg1、reg2、reg3、reg4、reg5、reg6、reg11和Gr1。因此,划分模块113将对应的虚拟寄存器reg1A、reg2A、reg3A、reg4A、reg5A、reg6A、reg11A和Gr1A设定为CPU 21A的虚拟寄存器。划分模块113将这些真实寄存器和虚拟寄存器之间的关系记录在数据存储单元100中。
例如,被分配给CPU 21B的梯级A、B、C、D、G、H、M、I和J使用真实寄存器reg1、reg2、reg3、reg4、reg7、reg8、reg9、reg10、reg13和Gr2。因此,划分模块113将对应的虚拟寄存器reg1B、reg2B、reg3B、reg4B、reg7B、reg8B、reg9B、reg10B、reg13B和Gr2B设定为CPU 21B的虚拟寄存器。划分模块113将这些真实寄存器和虚拟寄存器之间的关系记录在数据存储单元100中。
划分前的梯形程序p1包括关于真实寄存器的寄存器标识信息,因此当划分模块113创建划分程序p1时,划分模块113用关于对应的虚拟寄存器的寄存器标识信息替换关于每个真实寄存器的寄存器标识信息。因此,可以对虚拟寄存器执行写入处理和引用处理。划分模块113的其他处理与该实施例中的相同。
例如,划分模块113分配虚拟寄存器,使得两个或更多个处理器核心中的一个处理器核心的虚拟寄存器的值被写入到轴输出Gr1和Gr2,轴输出Gr1和Gr2是控制器20的真实寄存器,并且两个或更多个处理器核心中这一个处理器核心将虚拟寄存器的值写入该寄存器中。也就是说,因为与最终输出相关的值需要被写入到真实寄存器Gr1和Gr2,所以虚拟寄存器Gr1A的值被写入到轴输出Gr1(为真实寄存器),并且虚拟寄存器Gr2B的值被写入到轴输出Gr2(为真实寄存器)。划分模块113可以改变梯级N、L和M的内容,以便执行这种写入。
在上述修改示例2-1中,通过执行使得属于公共组的梯级A、B、C和D由多个处理器核心并行地执行的分配,可以防止某个处理器核等待另一处理器核心的处理,因此缩短了处理所需的时间。
此外,通过基于被分配给属于公共组的梯级A、B、C和D所使用的寄存器的虚拟寄存器来并行地执行属于公共组的梯级A,B,C和D,可以由多个处理器核心可靠地执行并行处理。例如,在某个处理器核心A试图写入到某个寄存器而另一处理器核心B正在写入到该寄存器的情况下,处理器核心A可能不能写入到该寄存器,但是通过使用虚拟寄存器,可以防止不能写入到该寄存器的情况。
此外,通过使用两个或更多个处理器核心中的一个处理器核心来将虚拟寄存器的值写入到寄存器,虚拟寄存器的值可以被返回给真实寄存器。
[修改示例2-2]
例如,划分模块113可以执行分组,使得具有不同控制周期的梯级属于不同的组。在修改示例2-2中,假设控制组1的控制周期和控制组2的控制周期不同。可以为每个梯级指定控制周期。通过以与该实施例中相同的方式执行分组,划分模块113可以执行分组,使得具有不同控制周期的梯级属于彼此不同的控制组1和2。例如,当控制组1的控制周期是1ms并且控制组2的控制周期是2ms时,划分模块113执行分组,使得具有1ms的控制周期的梯级属于控制组1并且具有2ms的控制周期的梯级属于控制组2。
划分模块113可以执行分配,使得在将与对应于具有相对早的控制周期的组的处理器核心相关的梯级分配给对应于具有相对晚的控制周期的组的处理器核心时,该梯级被相对早地执行。例如,公共组与具有1ms控制周期的控制组1以及具有2ms控制周期的控制组2相关。在这种情况下,划分模块113执行分配,使得属于公共组的梯级的执行次序早于其他梯级的执行次序(例如,使得这些梯级被首先执行)。
在修改示例2-2中,通过执行使得具有不同控制周期的梯级属于彼此不同的组的分组,具有不同控制周期的控制可以被执行。
此外,在将也与对应于具有相对早的控制周期的组的处理器核心相关的梯级分配给对应于具有相对晚的控制周期的组的处理器核心时,通过执行使得在处理器核心之间公共的梯级被早执行的分配,可以在早的阶段执行这些梯级,从而防止这些梯级等待执行。
例如,控制器20可以包括未被划分模块113分配梯级的处理器核心。例如,控制器20可以包括三个CPU 21,并且在这些CPU 21中,划分模块113可以将梯级分配给CPU 21中的两个CPU 21,而不将梯级分配给剩余的一个CPU 21。多个处理器核心中的每个处理器核心执行被分配给其自身的一个或多个梯级。
[3-3.其他修改示例]
例如,每个功能可以由生产系统S中的任何设备来实现。被描述为由程序创建设备10实现的功能中的部分或全部可以在多个设备之间共享。被描述为由控制器20实现的功能中的部分或全部可以由程序创建设备10、电机控制设备30或另一设备实现。
Claims (15)
1.一种生产系统,包括:
关联模块,被配置为将梯形程序中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有能够指定的执行周期;
分配模块,被配置为将所述多个扫描组中的每个扫描组分配给控制器的多个处理器核心中的一个处理器核心,使得所述多个扫描组中的每个扫描组都被分配;以及
执行模块,被配置为在所述执行周期中的每个执行周期中并行地执行一个或多个梯级,所述一个或多个梯级与被分配给所述多个处理器核心中的每个处理器核心的一个或多个扫描组相关联。
2.根据权利要求1所述的生产系统,还包括:第一标识模块,被配置为通过分析所述梯形程序来标识彼此具有关联性的多个关联梯级。
3.根据权利要求2所述的生产系统,还包括:关联梯级屏幕控制模块,被配置为显示指示所述多个关联梯级的关联梯级屏幕,
其中,所述关联模块被配置为将在显示所述关联梯级屏幕之后选择的多个梯级与所述多个扫描组中的一个扫描组相关联。
4.根据权利要求2或3所述的生产系统,其中,所述第一标识模块被配置为标识多个关联梯级,所述多个关联梯级与一个或多个轴具有关联性,所述一个或多个轴是用户从由所述控制器控制的多个轴中选择的。
5.根据权利要求4所述的生产系统,其中,所述第一标识模块被配置为将至少包括写入处理作为所述关联性的梯级标识为所述多个关联梯级,所述写入处理能够被追溯回到对寄存器的下述写入处理:对寄存器的该写入处理产生对所述一个或多个轴的输出。
6.根据权利要求4所述的生产系统,其中,所述第一标识模块被配置为进一步针对被标识的多个关联梯级中的一个关联梯级来标识一个或多个关联梯级,所述一个或多个关联梯级具有要与所述一个关联梯级共同处理的寄存器或数据。
7.根据权利要求1至3中任一项所述的生产系统,还包括:
预测模块,被配置为预测与被分配给所述多个处理器核心中的一个处理器核心的所述多个扫描组中的每个扫描组相关的处理时间;以及
处理时间屏幕控制模块,被配置为显示处理时间屏幕,所述处理时间屏幕针对所述多个扫描组中每个扫描组示出所述执行周期和所述处理时间之间的关系。
8.根据权利要求7所述的制造系统,
其中,所述预测模块被配置为从一个扫描组中包括的元素中标识下述元素:该元素比除了该元素以外的其他元素需要更多的处理时间,并且
其中,所述处理时间屏幕控制模块被配置为显示负载元素显示屏幕,所述负载元素显示屏幕表示由所述预测模块标识的该元素。
9.根据权利要求1至3中任一项所述的生产系统,还包括:
第二标识模块,被配置为通过分析用于使所述控制器控制轴的运动程序,来标识彼此具有关联性的多个关联部分;以及
关联部分显示控制模块,被配置为显示关联部分屏幕,所述关联部分屏幕示出所述多个关联部分。
10.根据权利要求1至3中任一项所述的生产系统,其中,所述关联模块被配置为将与所述多个扫描组中的一个扫描组相关联的多个梯级与另一扫描组相关联。
11.根据权利要求1至3中任一项所述的生产系统,还包括替换模块,所述替换模块被配置为用与由所述关联模块产生的关联目的地的所述多个扫描组中的一个扫描组相对应的寄存器替换在多个梯级中发生处理的寄存器。
12.根据权利要求1至3中任一项所述的生产系统,还包括划分模块,所述划分模块被配置为将所述梯形程序划分为多个梯级,并且将所述多个梯级中的每个梯级分配给所述多个处理器核心中的一个处理器核心,使得所述多个梯级被分配。
13.一种程序创建设备,包括:
程序创建模块,被配置为创建梯形程序;
关联模块,被配置为将所述梯形程序中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有能够指定的执行周期;以及
分配模块,被配置为将所述多个扫描组中的每个扫描组分配给控制器的多个处理器核心中的一个处理器核心,使得所述多个扫描组中的每个扫描组都被分配。
14.一种制造方法,包括:
将梯形程序中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有能够指定的执行周期;
将所述多个扫描组中的每个扫描组分配给控制器的多个处理器核心中的一个处理器核心,使得所述多个扫描组中的每个扫描组都被分配;以及
在所述执行周期中的每个执行周期中并行地执行一个或多个梯级,所述一个或多个梯级与被分配给所述多个处理器核心中的每个处理器核心的一个或多个扫描组相关联。
15.一种程序,用于使计算机用作:
关联模块,被配置为将梯形程序中包括的多个梯级与多个扫描组中的一个扫描组相关联,每个扫描组具有能够指定的执行周期;以及
分配模块,被配置为将所述多个扫描组中的每个扫描组分配给控制器的多个处理器核心中的一个处理器核心,使得所述多个扫描组中的每个扫描组都被分配。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021114276 | 2021-07-09 | ||
JP2021-114276 | 2021-07-09 | ||
PCT/JP2022/026845 WO2023282291A1 (ja) | 2021-07-09 | 2022-07-06 | 生産システム、プログラム作成装置、生産方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117616352A true CN117616352A (zh) | 2024-02-27 |
Family
ID=84801792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280048383.2A Pending CN117616352A (zh) | 2021-07-09 | 2022-07-06 | 生产系统、程序创建设备、生产方法和程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240231302A9 (zh) |
EP (1) | EP4369123A1 (zh) |
JP (1) | JP7318829B2 (zh) |
CN (1) | CN117616352A (zh) |
WO (1) | WO2023282291A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
JP6879625B2 (ja) * | 2016-12-27 | 2021-06-02 | 東芝インフラシステムズ株式会社 | プログラマブルコントローラ、管理装置および制御システム |
JP7141905B2 (ja) * | 2018-10-12 | 2022-09-26 | 株式会社日立産機システム | コントロール装置及びコントロール方法 |
-
2022
- 2022-07-06 JP JP2022567874A patent/JP7318829B2/ja active Active
- 2022-07-06 CN CN202280048383.2A patent/CN117616352A/zh active Pending
- 2022-07-06 WO PCT/JP2022/026845 patent/WO2023282291A1/ja active Application Filing
- 2022-07-06 EP EP22837705.7A patent/EP4369123A1/en active Pending
-
2024
- 2024-01-03 US US18/403,118 patent/US20240231302A9/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4369123A1 (en) | 2024-05-15 |
JP7318829B2 (ja) | 2023-08-01 |
US20240134336A1 (en) | 2024-04-25 |
US20240231302A9 (en) | 2024-07-11 |
JPWO2023282291A1 (zh) | 2023-01-12 |
WO2023282291A1 (ja) | 2023-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930919B2 (en) | Modernization of legacy software systems based on modeled dependencies | |
CN111241454B (zh) | 一种生成网页代码的方法、系统和装置 | |
CA2181099C (en) | Method and means for scheduling parallel processors | |
CN111796831B (zh) | 一种多芯片兼容的编译方法和装置 | |
Zhang | PARALLEL: ENERGYPLUS AND THE DEVELOPMENT OF A PARAMETRIC ANALYSIS TOOL | |
US20100223213A1 (en) | System and method for parallelization of machine learning computing code | |
CN107729083A (zh) | 一种加载驱动程序的方法及嵌入式设备 | |
JP2016207166A (ja) | 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム | |
JPWO2010047174A1 (ja) | ソース・コード処理方法、システム、及びプログラム | |
JP2005216177A (ja) | コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法 | |
EP3296860A1 (en) | Program processing apparatus and program | |
US11630983B2 (en) | Graph conversion method | |
CN109934507A (zh) | 一种业务流程调度的方法及装置 | |
CN103744684A (zh) | 一种异构软硬件协同开发的方法及系统 | |
CN113961183A (zh) | 可视化编程方法、装置、设备及存储介质 | |
CN104503817A (zh) | 一种连续功能图编程方法 | |
CN117616352A (zh) | 生产系统、程序创建设备、生产方法和程序 | |
JP2009211424A (ja) | 最適化箇所判定装置及び最適化箇所判定システム及びコンピュータプログラム及び最適化箇所判定方法 | |
EP4343468A1 (en) | Development assistance device, control method for development assistance device, information processing program, and recording medium | |
CN104572233A (zh) | 一种连续功能图编程方法 | |
CN113050948B (zh) | 动态库优化方法、装置、设备及存储介质 | |
CN1983168A (zh) | 对自动测试系统仪器装置执行控制与撷取数据的处理方法 | |
RU2786347C1 (ru) | Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти | |
US10379828B2 (en) | Parallelization method, parallelization tool, and in-vehicle device | |
JP3266609B2 (ja) | プログラム作成装置 |
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 |