CN112166409B - 控制系统、控制系统的控制方法以及记录介质 - Google Patents
控制系统、控制系统的控制方法以及记录介质 Download PDFInfo
- Publication number
- CN112166409B CN112166409B CN201980035702.4A CN201980035702A CN112166409B CN 112166409 B CN112166409 B CN 112166409B CN 201980035702 A CN201980035702 A CN 201980035702A CN 112166409 B CN112166409 B CN 112166409B
- Authority
- CN
- China
- Prior art keywords
- shared variable
- shared
- source code
- program
- variables
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013507 mapping Methods 0.000 claims abstract description 60
- 238000011161 development Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 abstract 1
- 239000012636 effector Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 238000009434 installation Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1658—Programme controls characterised by programming, planning systems for manipulators characterised by programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
无需将在不同的程序间定义的共享变量设为同一名称,能够进行更自由的命名,从而能够沿用过去的程序资产。控制系统(100)具备控制装置(10)和开发支持装置(50),所述开发支持装置(50)用于开发在控制装置(10)中执行的多个不同的编程语言,开发支持装置(50)具备:输入部(71),其输入多个不同的编程语言的源代码;映射信息创建部(73a),其对利用各源代码选择的共享变量进行映射,创建共享变量映射信息;以及发送部(73、75),其将源代码及共享变量映射信息发送给控制装置(10),控制装置(10)具备:程序执行部(93a、93b),其执行由源代码表示的程序;和共享变量处理部(93c),其根据共享变量映射信息,将进行了映射的各共享变量作为公共的共享变量进行处理。
Description
技术领域
本发明涉及控制系统、控制系统的控制方法以及控制系统的程序,所述控制系统具备开发支持装置和控制装置,所述开发支持装置用于开发在控制装置中执行的多个不同的编程语言。
背景技术
在控制机器人的系统中,用于机器人控制的程序例如用V+语言来编写,用于顺序控制的程序例如用依照由国际电工委员会(International ElectrotechnicalCommission:IEC)规定的国际标准IEC61131-3记述的由一个或多个命令构成的程序语言(以下称为IEC语言)来编写。
为了使用这些程序构建机器人的应用,需要进行用于在两个程序间交换数据并使定时一致的联锁处理、或者需要使只有在一方的语言侧才能取得的数据与另一方的语言侧共享。
以往,如专利文献1那样,通过共享存储器将执行用于机器人控制的程序的处理器和执行用于顺序控制的程序使用的程序的处理器进行总线结合,进行两个程序间的数据交换。
在两个程序中,通过在各个程序中定义同一名称的共享变量来进行这样的数据交换。
在先技术文献
专利文献
专利文献1:日本特开平7-72920号公报
发明内容
发明要解决的问题
然而,对于共享变量的名称,根据编程语言而存在字符数限制以及能够用于变量的字符类别等的制约,并且,两种语言的程序是在不同的画面中编写的,通常由不同的负责人来编写。因此,将作为两种语言的程序间的接口而决定的共享变量设为同一名称使得只能使用满足全部程序语言中的变量名的制约的变量名,其结果是,对用户施加了很大制约。
此外,在将共享变量设为同一名称的方法中,存在无法沿用过去编写的程序资产的问题。
因此,本发明的课题在于提供控制系统、控制系统的控制方法以及控制系统的程序,无需将在不同的程序间定义的共享变量设为同一名称,能够进行更自由的命名,从而能够沿用过去的程序资产。
用于解决问题的方案
为了解决上述问题,本发明的控制系统具备控制装置和开发支持装置,所述开发支持装置用于开发在所述控制装置中执行的多个不同的编程语言,其中,
所述开发支持装置具备:
输入部,其输入所述多个不同的编程语言的源代码;
映射信息创建部,其对在各个源代码中选择的共享变量进行映射,创建共享变量映射信息;以及
发送部,其将所述源代码及所述共享变量映射信息发送给所述控制装置,
所述控制装置具备:
程序执行部,其执行由所述源代码表示的程序;以及
共享变量处理部,其根据所述共享变量映射信息,将进行了映射的各个所述共享变量作为公共的共享变量进行处理。
在上述控制系统中,通过输入部将多个不同的编程语言的源代码输入到开发支持装置。在各个编程语言的源代码中,分别定义有共享存储器的共享变量,这些共享变量例如能够由用户来选择。所选择的共享变量由映射信息创建部进行映射,创建共享变量映射信息。所创建的共享变量映射信息与源代码一起由发送部发送给控制装置。
在控制装置中,由程序执行部来执行由接收到的源代码表示的程序。此外,接收到的共享变量映射信息由共享变量处理部进行参照,根据共享变量映射信息,将进行了映射的各个共享变量作为公共的共享变量进行处理。
根据上述控制系统,即使在不同的程序间定义了不同名称的共享变量,由于这些共享变量在共享变量映射信息中被彼此映射,因此也被用作各个程序间的公共的共享变量。这样,根据上述控制系统,在各个程序中,无需将共享变量设为同一名称,能够更自由地命名,从而能够消除命名共享变量的名称时的制约。此外,通过进行基于共享变量映射信息的映射,对于在过去的程序资产中记述的变量也能够作为共享变量进行处理,从而能够有效地沿用过去的程序资产。
在一个实施方式的控制系统中,所述共享变量处理部也可以在进行了映射的共享变量间复制数据,或者使参照地址相同。
在该一个实施方式的控制系统中,即使进行了映射的共享变量是互不相同的名称,共享变量处理部也在各个共享变量间复制数据,或者使各个共享变量的参照地址相同。因此,在不同的程序间进行基于共享变量的数据共享。
根据上述实施方式的控制系统,无需将共享变量设为同一名称,能够更自由地命名,从而能够消除命名共享变量的名称时的制约。此外,通过进行基于共享变量映射信息的映射,对于在过去的程序资产中记述的变量也能够作为共享变量进行处理,从而能够有效地沿用过去的程序资产。
在一个实施方式的控制系统中,由所述输入部输入的所述源代码也可以至少包含基于编译语言的源代码和基于解释语言的源代码。
在该一个实施方式的控制系统中,虽然不仅输入基于编译语言的源代码,而且还输入基于解释语言的源代码,但是,对于解释语言,如果不解释源代码并执行包含变量的代码,则不知道是否会发生错误。但是,在该一个实施方式的控制系统中,在源代码的阶段,针对所选择的共享变量进行基于共享变量映射信息的映射,因此能够防止与共享变量相关的错误的发生。
根据上述控制系统,在基于编译语言的源代码和基于解释语言的源代码中,无需将共享变量设为同一名称,能够更自由地命名,从而能够消除命名共享变量的名称时的制约。此外,通过进行基于共享变量映射信息的映射,对于在包含编译语言和解释语言的过去的程序资产中记述的变量,也能够作为共享变量进行处理,从而能够有效地沿用过去的程序资产。
在一个实施方式的控制系统中,也可以具备共享变量参考创建部,该共享变量参考创建部根据所述共享变量映射信息,示出在所输入的所述多个不同的编程语言的源代码中参照了所述共享变量的位置。
在该一个实施方式的控制系统中,在由共享变量参考创建部来创建示出参照了共享变量的位置的共享变量参考时,也参照共享变量映射信息。
在上述控制系统中,即使在多个不同的编程语言的源代码中,共享变量的名称不是同一名称的情况下,也根据共享变量参考来确认共享变量的参照位置。
根据上述控制系统,能够在程序执行前适当地发现在不同的程序间所定义的共享变量的漏安装和共享变量名的错误。
为了解决上述问题,本发明的控制系统的控制方法是如下方法:所述控制系统具备控制装置和开发支持装置,所述开发支持装置用于开发在所述控制装置中执行的多个不同的编程语言,所述控制系统的控制方法具备如下步骤:
在所述开发支持装置中
输入所述多个不同的编程语言的源代码;
对在各个源代码中选择的共享变量进行映射,创建共享变量映射信息;以及
将所述源代码及所述共享变量映射信息发送给所述控制装置,
在所述控制装置中
执行由所述源代码表示的程序;以及
根据所述共享变量映射信息,将进行了映射的各个所述共享变量作为公共的共享变量进行处理。
根据本发明的控制系统的控制方法,即使在不同的程序间定义了不同名称的共享变量,由于这些共享变量在共享变量映射信息中被彼此映射,因此也被用作各个程序间的公共的共享变量。这样,根据上述控制系统,在各个程序中,无需将共享变量设为同一名称,能够更自由地命名,从而能够消除命名共享变量的名称时的制约。此外,通过进行基于共享变量映射信息的映射,对于在过去的程序资产中记述的变量也能够作为共享变量进行处理,从而能够有效地沿用过去的程序资产。
为了解决上述问题,本发明的控制系统的程序是用于使计算机执行上述控制系统的控制方法的程序。
通过使计算机执行本发明的程序,能够实施上述控制系统的控制方法。
发明效果
由以上可知,根据本发明的控制系统、控制系统的控制方法以及控制系统的程序,当在多个编程语言中使用共享变量时,可以不将共享变量设为同一名称。其结果,放松了共享变量的命名规则,能够提高共享变量的命名的自由度。此外,能够在不进行已经创建的程序的修改的情况下使用共享变量,因此能够有效地进行程序资产的沿用。
附图说明
图1是示出第1实施方式中的机器人控制系统100的概略结构的框图。
图2是示出开发支持装置的硬件结构的图。
图3是示出控制装置的硬件结构的图。
图4是开发支持装置的功能框图。
图5是控制装置的功能框图。
图6是示出开发支持装置的显示装置中显示的显示画面的图。
图7是说明臂型机器人和末端执行器(end-effector)的动作的图。
图8是用于实现图6所示的动作的使用V+语言的程序和使用IEC语言的程序的流程图。
图9是示出用于实现图6所示的动作的使用V+语言的程序和使用IEC语言的程序的例子的图。
图10是示出共享变量映射处理的流程的流程图。
图11是示出共享变量检查处理的流程的流程图。
图12是示出共享变量检查处理的流程的流程图。
图13是示出第2实施方式中的开发支持装置的显示装置中显示的显示画面的图。
图14是示出交叉参考显示画面的一例的图。
具体实施方式
以下,参照附图对本发明的实施方式详细进行说明。
(第1实施方式)
图1是示出第1实施方式中的机器人控制系统100的概略结构的框图。如图1所示,机器人控制系统100具备控制器(控制装置)10、臂型机器人20、末端执行器控制器30、末端执行器40以及开发支持装置50。
作为一例,控制器10是PLC(Programmable Logic Controller:可编程逻辑控制器)或产业用计算机,执行控制臂型机器人20的动作的机器人控制程序和控制末端执行器40的动作的顺序控制程序,输出控制信号。
作为一例,臂型机器人20是6轴垂直多关节机器人,与控制器10可通信地连接。臂型机器人20具备伺服马达等动力源,根据机器人控制程序,通过从控制器10输出的控制信号驱动伺服马达而使各关节轴动作。
末端执行器控制器30与控制器10可通信地连接。末端执行器控制器30根据顺序控制程序,通过从控制器10输出的控制信号驱动末端执行器40内的伺服马达。
末端执行器40安装在臂型机器人20的末端部,作为一例,具备把持部件的机构等。末端执行器40与末端执行器控制器30可通信地连接,根据从末端执行器控制器30输出的控制信号驱动末端执行器40内的伺服马达而进行部件的把持等动作。
作为一例,开发支持装置50是个人计算机等计算机,与控制器10可通信地连接。开发支持装置50具有将由控制器10执行的机器人控制程序及顺序控制程序下载到控制器10的功能、调试这些程序的功能、以及模拟这些程序的功能等。
在本实施方式中,开发支持装置50与第1编程终端60及第2编程终端61可通信地连接。机器人控制程序通过个人计算机等第1编程终端60编写,并下载到开发支持装置50。此外,顺序控制程序通过个人计算机等第2编程终端61编写,并下载到开发支持装置50。另外,机器人控制程序及顺序控制程序也可以在开发支持装置50中编写。
开发支持装置50通过启动预先安装在计算机中的软件来实现上述功能。该软件包含本发明的程序。如图2所示,开发支持装置50的硬件结构具备输入装置51、显示装置52、中央运算装置53、存储装置54和通信I/F(接口)55。作为一例,输入装置51由键盘、指示设备构成。作为一例,显示装置52由显示器构成。作为一例,中央运算装置13由CPU构成。存储装置14具备非易失性存储装置和易失性存储装置,非易失性存储装置除了存储机器人控制程序及顺序控制程序之外,还存储共享变量映射信息等。此外,易失性存储装置被适当用作中央运算装置13运行时的工作存储器。通信I/F 55例如是RS232C等串行线路的接口,用于进行与控制器10之间的通信。通信I/F 55也可以是其他通信线路的接口。
控制器10也构成为与开发支持装置50同样的硬件结构。控制器10通过启动预先安装在计算机中的软件来实现上述功能。该软件包含本发明的程序。如图3所示,控制器10的硬件结构具备输入装置81、显示装置82、中央运算装置83、存储装置84和通信I/F 85。作为一例,输入装置81由键盘、指示设备构成。作为一例,显示装置82由显示器构成。作为一例,中央运算装置83由CPU构成。存储装置84具备非易失性存储装置和易失性存储装置,非易失性存储装置除了存储机器人控制程序及顺序控制程序之外,还存储共享变量映射信息等。此外,易失性存储装置被适当用作中央运算装置83运行时的工作存储器。通信I/F 85例如是RS232C等串行线路的接口,用于进行与开发支持装置50之间的通信。通信I/F 85也可以是其他通信线路的接口。
图4是本实施方式中的开发支持装置50的功能框图。开发支持装置50作为输入处理部71、显示处理部72、运算部73、存储部74以及通信处理部75发挥功能。输入处理部71处理来自输入装置51的输入。显示处理部72创建向显示装置52输出的显示数据。运算部73包含映射信息创建部73a、概要信息生成部73b、交叉参考信息生成部73c以及判定部73d。关于运算部73的这些功能的详细情况,在后面进行叙述。存储部74包含用户程序存储部74a、概要信息存储部74b、交叉参考信息存储部74c以及共享变量映射信息存储部74d。关于这些存储部的详细情况,在后面进行叙述。
图5是本实施方式中的控制器10的功能框图。控制器10作为输入处理部91、显示处理部92、运算部93、存储部94以及通信处理部95发挥功能。输入处理部91处理来自输入装置81的输入。显示处理部92创建向显示装置82输出的显示数据。运算部93包含机器人控制部93a、顺序控制部93b以及共享变量处理部93c。关于运算部93的这些功能的详细情况,在后面进行叙述。存储部94包含机器人控制用程序存储部94a、顺序控制程序存储部94b、共享变量映射信息存储部94c以及共享存储器9d。关于这些存储部的详细情况,在后面进行叙述。
图6是示出开发支持装置50的显示装置52中显示的显示画面的图。如图6所示,显示装置52的显示画面具备程序显示部52a、52b和共享变量设定部52c。程序显示部52a、52b分别显示机器人控制程序以及顺序控制程序的源代码。
共享变量设定部52c具备共享变量显示栏52d、52e。在共享变量显示栏52d中,显示在V+程序的源代码中记述的共享变量中的所选择的共享变量。在共享变量显示栏52e中,显示在IEC程序的源代码中记述的共享变量中的所选择的共享变量。
(共享变量映射处理)
接下来,对本实施方式中的共享变量的映射处理进行说明。在本实施方式中,作为一例,对使臂型机器人移动到工件的位置、利用末端执行器抓住工件并以该状态使臂型机器人移动到其他位置时的程序中的共享变量的检查处理进行说明。在本实施方式中,机器人控制程序使用V+语言。顺序控制程序是用IEC语言记述的程序,在本实施方式中,作为一例,使用ST语言。
图7是说明臂型机器人和末端执行器的如上所述的动作的图。图8是用于实现如上所述的动作的使用V+语言的程序和使用IEC语言的程序的流程图。图9是示出用于实现如上所述的动作的使用V+语言的程序和使用IEC语言的程序的源代码的图。
在该例子中,如图7所示,首先,使臂型机器人20的臂20a移动到工件W附近(图8:S1;机械臂的移动)。接下来,使末端执行器40移动,利用末端执行器40拾取工件W(图8:S2;机械臂的移动)。在此期间,臂型机器人20进行待机直到工件W的拾取完成为止(图8:S3;等待直到工件的拾取完成)。然后,当工件W的拾取完成时,使臂型机器人20的臂20a移动到其他位置(图8:S4;机械臂的移动)。
利用图8的流程图对如上所述的动作进行说明。如图8所示,在作为机器人控制程序的用V+语言记述的程序中,首先,使臂型机器人20的臂20a移动到工件W附近的规定位置(S1)。接下来,当臂型机器人20的臂20a向规定位置的移动完成时,使用共享变量将定时标志设为开启(ON)(S1-1)。在用IEC语言记述的程序中也参照该共享变量,将定时标志设为开启成为针对用IEC语言记述的程序的末端执行器控制执行通知。
当定时标志成为开启时,用IEC语言记述的程序开始末端执行器40的控制,拾取工件W(S2)。在此期间,用V+语言记述的程序进行待机(S3)。当末端执行器40对工件W的拾取完成时,用IEC语言记述的程序使用共享变量将定时标志设为关闭(OFF)(S3-1)。将定时标志设为关闭成为针对用V+语言记述的程序的末端执行器控制完成通知。当定时标志成为关闭时,用V+语言记述的程序使臂型机器人20的臂20a移动到其他位置(S4)。
在图9所示的例子中,在用V+语言记述的程序中,reqHandClose被用作共享变量,在用IEC语言记述的程序中,doHandClose被用作共享变量。在用V+语言记述的程序中,reqHandClose=TRUE这一语句表示将定时标志设为开启,在用IEC语言记述的程序中,IFdoHandClose=TRUE THEN这一语句表示如果定时标志为开启,则执行其以下的程序。此外,在用IEC语言记述的程序中,doHandClose:=FALSE;这一语句表示将定时标志设为关闭。此外,在用V+语言记述的程序中,WHILE reqHandClose DO这一语句表示进行待机直到定时标志被设为关闭、工件的拾取完成为止。
如上所述,在本实施方式中,通过确认用V+语言记述的程序中的reqHandClose这一共享变量和用IEC语言记述的程序中的doHandClose这一共享变量的内容,来控制臂型机器人20和末端执行器40的动作。
在本实施方式中,能够利用这样的不同的多个程序间的不同名称的共享变量是因为,在开发支持装置50中创建共享变量映射信息,并在控制器10中执行程序时参照该共享变量映射信息。
例如,在从第1编程终端60输入用作为编译语言的IEC语言记述的程序的源代码A,并且从第2编程终端61输入用作为解释语言的V+语言记述的程序的源代码B之后,进行开发支持装置50中的共享变量映射信息的创建。
图10是本实施方式中的共享变量映射的概略流程图。如图10所示,首先,输入处理部71从第1编程终端60输入用作为编译语言的IEC语言记述的程序的源代码A,执行编译(S10)。
接下来,输入处理部71从第2编程终端61输入用作为解释语言的V+语言记述的程序的源代码B(S11)。
然后,映射信息创建部73a进行源代码A所记述的共享变量和源代码B所记述的共享变量的映射。
如图11所示,为了进行共享变量的映射,要通过在程序显示部52a、52b中显示用IEC语言记述的程序的源代码A和用V+语言记述的程序的源代码B来进行。图11是示出进行共享变量的映射处理时的显示装置52的显示画面中的显示例的图。在图11所示的例子中,在程序显示部52a中显示用V+语言记述的程序的源代码B,并在程序显示部52b中显示用IEC语言记述的程序的源代码A。
这样,在程序显示部52a、52b中显示有源代码A、B的状态下,用户在共享变量设定部52c的共享变量显示栏52d、52e中进行变量的输入,或者将变量拖放到共享变量显示栏52d、52e中,由此将所述变量登记为共享变量。例如,在图11所示的例子中,将reqHandClose这一共享变量和doHandClose这一共享变量输入或者拖放到共享变量显示栏52d、52e。所登记的共享变量通过改变字符的颜色或者画下划线或者背景色不同等能够区别于其他字符的方式来显示。
在图11所示的例子中,在共享变量显示栏52d中显示并登记reqHandClose这一共享变量,在共享变量显示栏52e中显示并登记doHandClose这一共享变量。在共享变量显示栏52d、52e中显示并登记的共享变量由映射信息创建部进行映射,例如创建使reqHandClose和doHandClose进行映射的共享变量映射信息。所创建的共享变量映射信息被存储到共享变量映射信息存储部74d中。
在源代码内存在多个共享变量并且这些共享变量如上所述地进行了登记的情况下,对多个共享变量进行映射而创建共享变量映射信息。
如上所述,在开发支持装置50中创建了共享变量映射信息之后,作为发送部发挥功能的运算部73及通信处理部75将对用IEC语言记述的程序的源代码A进行编译得到的目标代码、用V+语言记述的程序的源代码B、以及共享变量映射信息发送给控制器10。
接下来,对控制器10中的共享变量的检查处理进行说明。在控制器10中,运算部93通过通信处理部95从开发支持装置50接收用IEC语言记述的程序的目标代码、用V+语言记述的程序的源代码B、以及共享变量映射信息。接下来,运算部93将用IEC语言记述的程序的目标代码存储到顺序控制程序存储部94b中,并将用V+语言记述的程序的源代码B存储到机器人控制程序存储部94a中。此外,运算部93将共享变量映射信息存储到共享变量映射信息存储部94c中。
接下来,在控制器10中,当选择了程序执行处理时,作为程序执行部发挥功能的机器人控制部93a一边解释一边执行用V+语言记述的程序的源代码B,同样作为程序执行部发挥功能的顺序控制部93b执行用IEC语言记述的程序的目标代码。
这时,机器人控制部93a及顺序控制部93b进行检查程序中是否包含有共享变量的处理。图12是控制器10中的共享变量的检查处理的概略流程图。该共享变量的检查处理按每规定时间反复进行。如图12所示,机器人控制部93a及顺序控制部93b一边执行程序,一边确认程序中是否存在共享变量(S20)。机器人控制部93a及顺序控制部93b在判断为程序中不存在共享变量的情况下(S21:“否”),退出该处理。但是,机器人控制部93a及顺序控制部93b在判断为程序中存在共享变量的情况下(S21:“是”),参照共享变量映射信息存储部94c中存储的共享变量映射信息(S22)。然后,共享变量处理部93c将进行了映射的各个共享变量作为公共的共享变量进行处理(S23)。
共享变量处理部93c进行的作为共享变量的处理是指,例如,在进行了映射的共享变量间复制数据,或者使参照地址相同。在上述的例子中,在机器人控制部93a在用V+语言记述的程序中参照了reqHandClose这一共享变量的情况下,机器人控制部93a确认共享变量映射信息存储部94c中存储的共享变量映射信息。在共享变量映射信息中,对共享变量reqHandClose映射有共享变量doHandClose。因此,机器人控制部93a将共享变量reqHandClose的数据复制到共享变量doHandClose,或者将共享变量doHandClose的数据复制到共享变量reqHandClose。或者,机器人控制部93a在作为共享变量reqHandClose和共享变量doHandClose公共的参照地址而设定的共享存储器94d的地址中写入数据,或者从该地址读取数据。
此外,在顺序控制部93b在用IEC语言记述的程序中参照了doHandClose这一共享变量的情况下,顺序控制部93b确认共享变量映射信息存储部94c中存储的共享变量映射信息。在共享变量映射信息中,对共享变量doHandClose映射有共享变量reqHandClose。因此,机器人控制部93a将共享变量doHandClose的数据复制到共享变量reqHandClose,或者将共享变量reqHandClose的数据复制到共享变量doHandClose。或者,顺序控制部93b在作为共享变量doHandClose和共享变量reqHandClose公共的参照地址而设定的共享存储器94d的地址中写入数据,或者从该地址读取数据。
如上所述,根据本实施方式,即使在如用V+语言记述的程序和用IEC语言记述的程序那样,在不同的程序间定义了不同名称的共享变量的情况下,通过参照共享变量映射信息,也能够在各个程序间作为公共的共享变量来利用。其结果,根据本实施方式的系统,在各个程序中,无需将共享变量设为同一名称,能够更自由地命名,从而能够消除命名共享变量的名称时的制约。
特别是,在如用V+语言记述的程序那样的解释型语言程序中,如果不解释源代码,则不知道是否会发生与变量相关的错误。但是,根据本实施方式,由于事先进行共享变量的映射,因此能够防止错误的发生。
此外,根据本实施方式,通过进行基于共享变量映射信息的映射,对于在过去的程序资产中记述的变量也能够作为共享变量进行处理,从而能够有效地沿用过去的程序资产。
(第2实施方式)
接下来,参照附图对本发明的第2实施方式进行说明。在第1实施方式中,在开发支持装置50中创建共享变量映射信息,在控制器10中执行程序时参照共享变量映射信息。但是,在本实施方式中,对在创建交叉参考时参照共享变量映射信息的方式进行说明。
在本实施方式中,设通过与第1实施方式同样的方法来创建共享变量映射信息,并存储在共享变量映射信息存储部74d中。
图13是示出本实施方式中的开发支持装置50的显示装置52中显示的显示画面的图。在本实施方式中,如图13所示,在程序显示部52a、52b的下方显示交叉参考窗口52f。
交叉参考窗口52f具备参考对象输入栏52f-1和参考信息显示栏52f-2。通过在参考对象输入栏52f-1中输入操作数,或者通过在V+程序或IEC程序上选择共享变量,在参考对象输入栏52f-1中显示操作数,并将关于具有与该操作数相同操作数的命令的交叉参考信息显示在参考信息显示栏52f-2中。此外,通过在参考对象输入栏52f-1中输入共享变量,将关于使用该共享变量的命令的交叉参考信息显示在参考信息显示栏52f-2中。
图14示出交叉参考窗口52f的显示例。如图14所示,交叉参考窗口200具备参考对象输入栏52f-1和参考信息显示栏52f-2。参考信息显示栏52f-2具备设定项目显示栏52f-20、发生位置显示栏52f-21、详细信息显示栏52f-22以及参考显示栏52f-23等。
在参考对象输入栏52f-1中,显示进行了交叉参考的程序的名称和所选择的变量。图14所示的“机械手控制”表示用IEC语言记述的程序的名称。doHandClose是所选择的共享变量。
在设定项目显示栏52f-20中,显示成为交叉参考的对象的变量。在图14的例子的情况下,显示共享变量doHandClose和reqHandClose。在发生位置显示栏52f-21中,显示参照了设定项目中显示的变量的程序名。在该例子的情况下,显示为机械手控制以及机器人控制。“机器人控制”表示用V+记述的程序的名称。
在详细信息显示栏52f-22中,显示在发生位置显示栏52f-21中显示的程序中,参照了在设定项目显示栏52f-20中显示的变量的程序的源代码中的行编号。在参考显示栏52f-23中,显示在详细信息显示栏52f-22中显示的行编号中的源代码。
在本实施方式中,当交叉参考处理开始,参考对象输入栏52f-1被输入共享变量时,交叉参考信息生成部73c参照共享变量映射信息,进行被映射的共享变量的提取。例如,如图14的例子所示,在参考对象输入栏52f-1被输入了doHandClose的情况下,交叉参考信息生成部73c参照共享变量映射信息,提取被映射到doHandClose的reqHandClose。
接下来,交叉参考信息生成部73c针对输入到参考对象输入栏52f-1的共享变量以及从共享变量映射信息中提取出的共享变量,执行用V+语言记述的程序的源代码B和用IEC语言记述的程序的源代码A中的交叉参考。例如,在上述例子中,交叉参考信息生成部73c对于用V+语言记述的程序的源代码B,参照使用了共享变量reqHandClose的位置,将其程序名、步骤编号、地址、语言、路径等作为交叉参考信息存储到交叉参考信息存储部74c中。此外,交叉参考信息生成部73c对于用IEC语言记述的程序的源代码A,参照使用了共享变量doHandClose的位置,将其程序名、步骤编号、地址、语言、路径等作为交叉参考信息存储到交叉参考信息存储部74c中。
作为如上所述的处理的结果,在交叉参考窗口52f中,如图14所示,在参考信息显示栏52f-2中,不仅显示与共享变量doHandClose相关的交叉参考信息,而且还显示与共享变量reqHandClose相关的交叉参考信息。
如上所述,根据本实施方式,在各个程序中,即使在定义了不同名称的共享变量的情况下,仅通过输入一个共享变量的名称,不仅该共享变量的参照位置显示在交叉参考窗口200中,而且映射到该共享变量的其他共享变量的参照位置也显示在交叉参考窗口200中。
因此,用户通过观看在交叉参考窗口200中显示的内容,就能够容易地掌握在多个不同的程序中是否正确地参照了共享变量。其结果,能够顺利地进行程序的调试。
如上所述,根据本实施方式,在用IEC语言记述的程序和用V+语言记述的程序中的至少任意一方的程序中显示没有使用共享变量的错误消息。其结果,能够确认共享变量的漏安装、共享变量名的错误、无用的共享变量的存在等,从而能够顺利地进行程序的调试。
即使在该情况下,在一个程序的概要(outline)信息中,仅通过选择共享变量,不仅该程序中的共享变量的参照位置显示在交叉参考窗口200中,而且还能够使其他程序中的该共享变量的参照位置也显示在交叉参考窗口200中。
因此,用户通过观看在交叉参考窗口200中显示的内容,就能够容易地掌握在全部程序中是否正确地参照了共享变量。其结果,能够确认共享变量的漏安装、共享变量名的错误、无用的共享变量的存在等,从而能够顺利地进行程序的调试。
以上实施方式是例示,能够在不脱离本发明的范围的情况下进行各种变形。上述的多个实施方式可以分别单独成立,但也可以将实施方式彼此进行组合。此外,不同实施方式中的各种特征也可以分别单独成立,但也可以将不同实施方式中的特征彼此进行组合。
标号说明
10:控制器;50:开发支持装置;71:输入处理部;73a:映射信息创建部;75:通信处理部;93c:共享变量处理部;100:控制系统。
Claims (5)
1.一种控制系统,所述控制系统具备控制装置和开发支持装置,所述开发支持装置用于开发在所述控制装置中执行的多个不同的编程语言,
所述开发支持装置具备:
输入部,其输入所述多个不同的编程语言的源代码;
显示部,其显示通过所述输入部输入的所述源代码;
映射信息创建部,其对由用户在所显示的源代码中选择并登记为共享变量的变量进行映射,创建共享变量映射信息;以及
发送部,其将所述源代码及所述共享变量映射信息发送给所述控制装置,
所述控制装置具备:
程序执行部,其执行由所述源代码表示的程序;以及
共享变量处理部,其根据所述共享变量映射信息,将进行了映射的各个所述共享变量作为公共的共享变量进行处理,
所述共享变量处理部在进行了映射的共享变量间复制数据,或者使参照地址相同。
2.根据权利要求1所述的控制系统,其中,
由所述输入部输入的所述源代码至少包含基于编译语言的源代码和基于解释语言的源代码。
3.根据权利要求1所述的控制系统,其中,
所述开发支持装置具备共享变量参考创建部,该共享变量参考创建部根据所述共享变量映射信息,示出在所输入的所述多个不同的编程语言的源代码中参照了所述共享变量的位置。
4.一种控制系统的控制方法,所述控制系统具备控制装置和开发支持装置,所述开发支持装置用于开发在所述控制装置中执行的多个不同的编程语言,所述控制系统的控制方法具备如下步骤:
在所述开发支持装置中
输入所述多个不同的编程语言的源代码;
显示输入的所述源代码;
对由用户在所显示的源代码中选择并登记为共享变量的变量进行映射,创建共享变量映射信息;以及
将所述源代码及所述共享变量映射信息发送给所述控制装置,
在所述控制装置中
执行由所述源代码表示的程序;以及
根据所述共享变量映射信息,将进行了映射的各个所述共享变量作为公共的共享变量进行处理,在进行了映射的共享变量间复制数据,或者使参照地址相同。
5.一种记录有控制系统的程序的记录介质,所述控制系统具备控制装置和开发支持装置,所述开发支持装置用于开发在所述控制装置中执行的多个不同的编程语言,
所述程序使计算机在所述开发支持装置中执行如下步骤:
输入所述多个不同的编程语言的源代码;
显示输入的所述源代码;
对由用户在所显示的源代码中选择并登记为共享变量的变量进行映射,创建共享变量映射信息;以及
将所述源代码及所述共享变量映射信息发送给所述控制装置,
所述程序使计算机在所述控制装置中执行如下步骤:
执行由所述源代码表示的程序;以及
根据所述共享变量映射信息,将进行了映射的各个所述共享变量作为公共的共享变量进行处理,在进行了映射的共享变量间复制数据,或者使参照地址相同。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-108920 | 2018-06-06 | ||
JP2018108920A JP7067286B2 (ja) | 2018-06-06 | 2018-06-06 | 制御システム、制御システムの制御方法、および制御システムのプログラム |
PCT/JP2019/021212 WO2019235312A1 (ja) | 2018-06-06 | 2019-05-29 | 制御システム、制御システムの制御方法、および制御システムのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112166409A CN112166409A (zh) | 2021-01-01 |
CN112166409B true CN112166409B (zh) | 2023-11-14 |
Family
ID=68770273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980035702.4A Active CN112166409B (zh) | 2018-06-06 | 2019-05-29 | 控制系统、控制系统的控制方法以及记录介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210232370A1 (zh) |
EP (1) | EP3816792A4 (zh) |
JP (1) | JP7067286B2 (zh) |
CN (1) | CN112166409B (zh) |
WO (1) | WO2019235312A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019217848A1 (de) * | 2019-11-20 | 2021-05-20 | Robert Bosch Gmbh | Dynamische Koordination und Ausführung unabhängiger heterogener Programmeinheiten |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5564049A (en) * | 1994-07-29 | 1996-10-08 | Allen-Bradley Company, Inc. | Industrial controller programming method using external connection database |
CN1509433A (zh) * | 2001-05-11 | 2004-06-30 | ���������˼�빫˾ | 把传统软件应用程序转换为现代面向对象系统的方法和系统 |
JP2009009362A (ja) * | 2007-06-28 | 2009-01-15 | Hitachi Information Systems Ltd | プログラムの変数管理システム |
CN101631328A (zh) * | 2009-08-14 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 一种对共享资源互斥访问的同步方法、装置和网络设备 |
CN102866884A (zh) * | 2011-08-31 | 2013-01-09 | 微软公司 | 将操作系统的本机应用编程接口投射到其他编程语言 |
CN103635879A (zh) * | 2011-07-08 | 2014-03-12 | 索尼公司 | 信息处理设备、信息处理方法及计算机程序 |
WO2014141457A1 (ja) * | 2013-03-15 | 2014-09-18 | 株式会社日立製作所 | 異なる言語間のコード変換方法、コード変換プログラムおよびコード変換装置 |
CN104067186A (zh) * | 2012-02-01 | 2014-09-24 | 欧姆龙株式会社 | 支援装置、记录有支援程序的记录介质及生成可执行程序的方法 |
JP2014232361A (ja) * | 2013-05-28 | 2014-12-11 | 株式会社デンソー | プログラムコード生成装置 |
CN107024902A (zh) * | 2016-01-29 | 2017-08-08 | 发那科株式会社 | 通过公共语言规格的程序驱动多种生产装置的生产系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3446256B2 (ja) | 1993-09-03 | 2003-09-16 | 株式会社日立製作所 | Faシステムの制御方法及び装置 |
JPH10334060A (ja) * | 1997-06-02 | 1998-12-18 | Digital Vision Lab:Kk | 演算処理装置、並列分散処理システムおよびデータ伝送方法 |
US20040187077A1 (en) * | 2003-03-19 | 2004-09-23 | International Business Machines Corporation | Dynamic server page meta-engines with data sharing for dynamic content |
JP4367364B2 (ja) | 2005-03-29 | 2009-11-18 | 日本電気株式会社 | ソース解析支援方法及びその装置並びにソース解析支援プログラム |
US20080005727A1 (en) | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity |
US9170805B2 (en) | 2010-07-20 | 2015-10-27 | Hitachi, Ltd. | Software maintenance supporting device for analyzing relationships between variables |
US9733911B2 (en) * | 2015-11-11 | 2017-08-15 | National Instruments Corporation | Value transfer between program variables using dynamic memory resource mapping |
-
2018
- 2018-06-06 JP JP2018108920A patent/JP7067286B2/ja active Active
-
2019
- 2019-05-29 CN CN201980035702.4A patent/CN112166409B/zh active Active
- 2019-05-29 US US15/734,769 patent/US20210232370A1/en not_active Abandoned
- 2019-05-29 WO PCT/JP2019/021212 patent/WO2019235312A1/ja unknown
- 2019-05-29 EP EP19815106.0A patent/EP3816792A4/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5564049A (en) * | 1994-07-29 | 1996-10-08 | Allen-Bradley Company, Inc. | Industrial controller programming method using external connection database |
CN1509433A (zh) * | 2001-05-11 | 2004-06-30 | ���������˼�빫˾ | 把传统软件应用程序转换为现代面向对象系统的方法和系统 |
JP2009009362A (ja) * | 2007-06-28 | 2009-01-15 | Hitachi Information Systems Ltd | プログラムの変数管理システム |
CN101631328A (zh) * | 2009-08-14 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 一种对共享资源互斥访问的同步方法、装置和网络设备 |
CN103635879A (zh) * | 2011-07-08 | 2014-03-12 | 索尼公司 | 信息处理设备、信息处理方法及计算机程序 |
CN102866884A (zh) * | 2011-08-31 | 2013-01-09 | 微软公司 | 将操作系统的本机应用编程接口投射到其他编程语言 |
CN104067186A (zh) * | 2012-02-01 | 2014-09-24 | 欧姆龙株式会社 | 支援装置、记录有支援程序的记录介质及生成可执行程序的方法 |
WO2014141457A1 (ja) * | 2013-03-15 | 2014-09-18 | 株式会社日立製作所 | 異なる言語間のコード変換方法、コード変換プログラムおよびコード変換装置 |
JP2014232361A (ja) * | 2013-05-28 | 2014-12-11 | 株式会社デンソー | プログラムコード生成装置 |
CN107024902A (zh) * | 2016-01-29 | 2017-08-08 | 发那科株式会社 | 通过公共语言规格的程序驱动多种生产装置的生产系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112166409A (zh) | 2021-01-01 |
EP3816792A1 (en) | 2021-05-05 |
EP3816792A4 (en) | 2022-03-09 |
WO2019235312A1 (ja) | 2019-12-12 |
JP2019212122A (ja) | 2019-12-12 |
US20210232370A1 (en) | 2021-07-29 |
JP7067286B2 (ja) | 2022-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110573308B (zh) | 用于机器人设备的空间编程的基于计算机的方法及系统 | |
US20070073444A1 (en) | Offline teaching apparatus for robot | |
CN110275480B (zh) | 程序开发支援系统、方法以及计算机可读记录介质 | |
US20230153486A1 (en) | Method and device for simulation | |
CN110275451B (zh) | 开发支援装置、开发支援方法以及记录介质 | |
EP3960396A1 (en) | Enhancement of human-machine interface (hmi) for controlling a robot | |
CN112166409B (zh) | 控制系统、控制系统的控制方法以及记录介质 | |
US20220016763A1 (en) | Self-learning industrial robotic system | |
CN115816459A (zh) | 机器人控制方法、装置、计算机设备、存储介质和产品 | |
CN113986771A (zh) | 用于调试目标程序代码的方法及装置、电子设备 | |
JPH10143221A (ja) | 機器制御プログラムの開発支援システムおよび開発支援方法 | |
JP4511418B2 (ja) | 教示装置用プログラムのデバッグ方法 | |
JP2007334469A (ja) | プログラマブルコントローラ及びこれを用いた機器制御方法 | |
CN110948480B (zh) | 一种示教器输入输出功能处理系统及方法、工业机器人 | |
CN116390835A (zh) | 系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统 | |
WO2023127056A1 (ja) | ロボットまたは工作機械のシミュレーション装置 | |
JP2009020716A (ja) | ツール装置及びメッセージ送信プログラムの作成方法 | |
CN113419464B (zh) | 开放式汽车下线检测测试台调度控制系统、方法及装置 | |
EP4257303A1 (en) | Apparatus and method for providing development environment for functional modules of robot | |
KR102665088B1 (ko) | 교육용 자동화 설비 제작 시뮬레이션 시스템 및 이를 이용한 교육용 자동화 설비 제작 방법 | |
JP2001005517A (ja) | 制御プログラムのモニター方法および装置 | |
US20240217097A1 (en) | Compiling robot behavior trees | |
Kutzer et al. | The ScorBot Toolbox for MATLAB: An Open-Source Hardware Interaction and Simulation Library for the Intelitek SCORBOT-ER 4u Educational Robot | |
CN117043692A (zh) | 机器人控制装置、机器人控制系统以及机器人控制方法 | |
Valkeapää | AUTOMATIC TEST CREATION ENVIRONMENT WITH AN INDUSTRIAL ROBOT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |