CN110275451A - 开发支援装置、开发支援方法以及记录介质 - Google Patents

开发支援装置、开发支援方法以及记录介质 Download PDF

Info

Publication number
CN110275451A
CN110275451A CN201910110944.7A CN201910110944A CN110275451A CN 110275451 A CN110275451 A CN 110275451A CN 201910110944 A CN201910110944 A CN 201910110944A CN 110275451 A CN110275451 A CN 110275451A
Authority
CN
China
Prior art keywords
shared variable
source code
program
variable
shared
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.)
Granted
Application number
CN201910110944.7A
Other languages
English (en)
Other versions
CN110275451B (zh
Inventor
丸野良太
铃木悠司
丹羽祥実
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Publication of CN110275451A publication Critical patent/CN110275451A/zh
Application granted granted Critical
Publication of CN110275451B publication Critical patent/CN110275451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23251Use two or more different programming languages in same program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Abstract

本发明提供一种开发支援装置、开发支援方法以及记录介质,可以在执行程序前适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。本发明的开发支援装置(50)用于开发控制装置(10)中执行的多个不同的编程语言,且包括:共享变量参照(TBL1),预先制作,并且用于在多个不同的编程语言的源代码中参照且共享存储器的共享变量;输入部(71),输入多个不同的编程语言的源代码;以及判定部(73d),基于共享变量参照(TBL1),判定所输入的多个不同的编程语言的源代码中是否参照了共享变量。

Description

开发支援装置、开发支援方法以及记录介质
技术领域
本发明涉及一种用于开发控制装置中执行的多个不同的编程语言的开发支援装置、开发支援方法以及开发支援程序。
背景技术
在控制机器人的系统中,用于机器人控制的程序例如是以V+语言所制作,用于顺序控制的程序例如是以包含按照国际电工委员会(International ElectrotechnicalCommission,IEC)所规定的国际标准IEC61131-3而记述的一个或多个命令的程序语言(以下记作IEC语言)所制作。
为了使用这些程序来构筑机器人的应用(application),需要进行用于在两程序间交换数据而使时机一致的互锁(interlock)处理,或将仅其中一语言侧可获取的数据与另一语言侧共享。
以前,如专利文献1那样,通过共享存储器将执行用于机器人控制的程序的处理器、与执行用于顺序控制的程序的处理器进行总线结合,进行两程序间的数据交换。
这种数据交换是通过在两程序中由各程序定义同一名称的共享变量而进行。
[现有技术文献]
[专利文献]
专利文献1:日本专利特开平7-72920号公报
但是,两种语言的程序是以不同画面来制作,通常是由不同的负责人进行制作。因此,设想产生下述情况:当遗忘配置作为两种语言的程序间的接口而约定的共享变量,或弄错共享变量名而配置时,两程序未正确地发挥功能。
发明内容
因此,本发明提供一种开发支援装置、开发支援方法以及开发支援程序,能够在执行程序前,适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
本公开的开发支援装置用于开发控制装置中执行的多个不同的编程语言,所述开发支援装置包括:共享变量参照,预先制作,并且用于在所述多个不同的编程语言的源代码中参照且共享存储器的共享变量;输入部,输入所述多个不同的编程语言的源代码;以及判定部,基于所述共享变量参照,判定所输入的所述多个不同的编程语言的源代码中是否参照了所述共享变量。
在所述开发支援装置中,定义多个不同的编程语言的源代码中参照且共享存储器的共享变量,从而制作用于所述共享变量的共享变量参照。所述共享变量参照既可输入至开发支援装置,或也可存储在开发支援装置可访问的外部装置中。
多个不同的编程语言的源代码是由与所述开发支援装置不同的装置制作,并通过所述开发支援装置的输入部而输入至所述开发支援装置。
所述开发支援装置的判定部参照所述共享变量参照而读取所述共享变量,判定所输入的所述多个不同的编程语言的源代码中是否参照了所述共享变量。
根据所述开发支援装置,基于共享变量参照来判定多个不同的编程语言的源代码中是否参照了共享变量,因而可在执行程序前适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
一实施方式的开发支援装置包括错误消息输出部,输出错误消息。在判定为所述多个不同的编程语言的源代码中一个编程语言的源代码中参照了所述共享变量时,所述判定部判定此所参照的所述共享变量是否在其他编程语言的源代码中被参照。所述判定部当判定为未参照时,输出为错误状态。所述错误消息输出部在由所述判定部输出了为所述错误状态时,输出错误消息。
在所述一实施方式的开发支援装置中,判定部判定多个不同的编程语言的源代码中一个编程语言的源代码中是否参照了共享变量。当判定为一个编程语言的源代码中参照了共享变量时,所参照的共享变量被判定是否在其他编程语言的源代码中被参照。其结果,当判定为未参照时,输出为错误状态,并输出错误消息。
根据所述开发支援装置,能够在执行程序前,适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
一实施方式的开发支援装置包括错误消息输出部,输出错误消息。在判定为所述共享变量在所述多个不同的编程语言的源代码中的任一编程语言的源代码中均未被参照时,或判定为所述共享变量仅在任一编程语言的源代码中被参照时,所述判定部输出为错误状态。在由所述判定部输出了为所述错误状态时,所述错误消息输出部输出错误消息。
在所述一实施方式的开发支援装置中,判定部判定共享变量是否在多个不同的编程语言的源代码中被参照。在判定为在任一编程语言的源代码中均未被参照时,输出为错误状态,并输出错误消息。而且,在判定为仅在任一编程语言的源代码中被参照时,也输出为错误状态,并输出错误消息。
根据所述开发支援装置,能够确认共享变量的配置遗漏、共享变量名的错误、浪费的共享变量的存在等,而可顺利地进行程序的除错(debug)。
一实施方式的开发支援装置包括:显示部,显示所述多个不同的编程语言的源代码、及所述源代码的框架(outline)的至少任一者;选择部,选择所述显示部中显示的所述共享变量;以及参照部,当由所述判定部判定为参照了所述共享变量时,显示所述源代码中的所述共享变量的参照部位。在所述显示部中显示的所述多个不同的编程语言的源代码或框架中,当所述选择部在一个编程语言的源代码或框架中选择了所述共享变量时,所述判定部判定此一个编程语言的源代码、及其他编程语言的源代码中是否参照了所述共享变量。
在所述一实施方式的开发支援装置中,判定部判断在显示部中显示的多个不同的编程语言的源代码或框架中,在一个编程语言的源代码或框架中是否由选择部选择了共享变量。判断的结果,当选择了共享变量时,不仅对此一个编程语言的源代码判定是否参照了共享变量,而且对其他编程语言的源代码也判定是否参照了共享变量。
根据所述开发支援装置,能够容易地把握是否在所有程序中正确地参照了共享变量。其结果,能够确认共享变量的配置遗漏、共享变量名的错误、浪费的共享变量的存在等,而可顺利地进行程序的除错。
本公开的开发支援方法用于开发控制装置中执行的多个不同的编程语言,所述开发支援方法包括下述步骤:输入所述多个不同的编程语言的源代码;基于预先制作、并且用于在所述多个不同的编程语言的所述源代码中参照且共享存储器的共享变量的共享变量参照,判定所输入的所述多个不同的编程语言的所述源代码中是否参照了所述共享变量。
根据本公开的开发支援方法,能够在执行程序前,适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
本公开的记录介质记录有开发支援程序,用于使计算机执行所述开发支援方法。
通过使计算机执行本公开的程序,能够实施所述开发支援方法。
由以上内容表明,根据本公开的开发支援装置、开发支援方法以及开发支援程序,基于共享变量参照来判定多个不同的编程语言的源代码中是否参照了共享变量,因而能够在执行程序前,适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
附图说明
图1是表示第一实施方式的机器人控制系统100的概略结构的框图。
图2是表示开发支援装置的硬件结构的图。
图3是开发支援装置的功能框图。
图4是表示显示装置中显示的显示画面的图。
图5是说明臂型机器人和末端执行器的动作的图。
图6是表示用于实现图5所示的动作的、V+语言的程序与IEC语言的程序的流程图。
图7是表示用于实现图5所示的动作的、V+语言的程序与IEC语言的程序的图。
图8是表示共享变量的检查处理的流程的流程图。
图9是表示共享变量的检查处理的流程的流程图。
图10是表示参照信息显示部中显示的全局变量表的示例的图。
图11是表示错误消息框的一例的图。
图12A是表示将配置有零件的基板安装于散热片的处理的图,图12B是用于说明利用第二实施方式的臂型机器人和末端执行器来执行图12A的处理时的这些动作的图。
图13是用于实现图12B所示的动作的、V+语言的程序与IEC语言的程序的流程图。
图14是表示用于实现图12B所示的动作的、V+语言的程序与IEC语言的程序的一例的图。
图15是表示全局变量表的一例的图。
图16是表示第三实施方式的项目菜单的一例的图。
图17是表示共享变量的检查处理的流程的流程图。
图18是表示交叉参照显示画面的一例的图。
图19是表示以梯形图语言记述的程序的一例的图。
图20是表示以结构文本(structured text,ST)语言记述的程序的一例的图。
图21是表示以V+语言记述的程序的一例的图。
图22是表示输出窗口的一例的图。
图23是第四实施方式的开发支援装置的功能框图。
图24是表示程序显示部中显示的以V+语言记述的程序的源代码(source code)、与以IEC语言记述的程序的源代码的示例的图。
图25是表示共享变量检查处理的流程的流程图。
图26是表示交叉参照窗口的一例的图。
符号的说明
10:控制器(控制装置)
20:臂型机器人
20a:臂
30:末端执行器控制器
40:末端执行器
50:开发支援装置
51:输入装置(输入部)
52:显示装置
52a:程序显示部
52b:框架信息显示部
52c:参照信息显示部
52c-1:参照对象输入栏
52c-2:参照信息显示栏
53:中央运算装置(判定部)
54:存储装置
55:通信接口
60:第一编程终端
61:第二编程终端
71:输入处理部
72:显示处理部
73:运算部
73a:用户程序编辑部
73b:框架信息生成部
73c:交叉参照信息生成部
73d:判定部
73e:结构要素选择部
73f:共享变量处理部
74:存储部
74a:用户程序存储部
74b:框架信息存储部
74c:交叉参照信息存储部
74d:全局变量表存储部
75:通信处理部
80:基板
81:散热片
90:项目标签
91:项目菜单
92:共享变量检查的项目
100:机器人控制系统
103:交叉参照显示画面
110:输出窗口
200:交叉参照窗口
201:参照对象显示栏
202:设定项目显示栏
203:发生部位显示栏
204:详细信息显示栏
205:参照显示栏
M1:错误消息框
M11:错误消息
M12:错误对象的共享变量的名称
M13:“是”按钮
M14:“否”按钮
S1、S1-1、S2、S3、S3-1、S4、S10~S17、S20~S25、S30~S34、S40~S47、S50~S56:步骤
TBL1:全局变量表(共享变量参照)
TBL2:全局变量表
W:工件
具体实施方式
以下,一面参照附图一面对本发明的实施方式进行详细说明。
(第一实施方式)
图1是表示第一实施方式的机器人控制系统100的概略结构的框图。如图1所示,机器人控制系统100包括控制器(控制装置)10、臂型机器人20、末端执行器控制器(endeffector controller)30、末端执行器(end effector)40及开发支援装置50。
作为一例,控制器10是可编程逻辑控制器(Programmable Logic Controller,PLC),执行控制臂型机器人20的动作的机器人控制程序、和控制末端执行器40的动作的顺序控制程序,输出控制信号。
作为一例,臂型机器人20为六轴的垂直多关节机器人,与控制器10可通信地连接。臂型机器人20具备伺服电机(servo motor)等动力源,通过基于机器人控制程序从控制器10输出的控制信号而驱动伺服电机,使各关节轴动作。
末端执行器控制器30与控制器10可通信地连接。末端执行器控制器30通过基于顺序控制程序从控制器10输出的控制信号而驱动末端执行器40内的伺服电机。
末端执行器40安装于臂型机器人20的前端部,作为一例,具备握持零件的机构等。末端执行器40与末端执行器控制器30可通信地连接,基于从末端执行器控制器30输出的控制信号而驱动末端执行器40内的伺服电机,进行零件的握持等动作。
作为一例,开发支援装置50是个人计算机(personal computer)等计算机,与控制器10可通信地连接。开发支援装置50具有将由控制器10执行的机器人控制程序及顺序控制程序下载到控制器10中的功能、对这些程序进行除错的功能、以及模拟(simulate)这些程序的功能等。
本实施方式中,开发支援装置50与第一编程终端60及第二编程终端61可通信地连接。机器人控制程序是由个人计算机等第一编程终端60所制作,并下载到开发支援装置50中。而且,顺序控制程序是由个人计算机等第二编程终端61所制作,并下载到开发支援装置50中。此外,机器人控制程序及顺序控制程序也可在开发支援装置50中制作。
开发支援装置50通过在计算机中启动预先安装的软件而实现所述功能。此软件中包含本发明的开发支援程序。如图2所示,开发支援装置50的硬件结构包括输入装置51、显示装置52、中央运算装置53、存储装置54及通信接口(Interface,I/F)55。作为一例,输入装置51是由键盘、点击设备所构成。作为一例,显示装置52是由显示器所构成。作为一例,中央运算装置53是由中央处理器(Central Processing Unit,CPU)所构成。存储装置54包括非易失性存储装置(non-volatile storage device)及易失性存储装置(volatile storagedevice),非易失性存储装置除了存储机器人控制程序及顺序控制程序以外,还存储后述的框架(outline)信息、交叉参照信息(cross reference information)及全局变量表(global variable table)等。而且,适当使用易失性存储装置作为中央运算装置53的执行时的工作存储器(work memory)。通信I/F 55例如是RS232C等串行线路的接口,进行与控制器10的通信。通信I/F 55也可为其他通信线路的接口。
图3是本实施方式的开发支援装置50的功能框图。开发支援装置50作为输入处理部71、显示处理部72、运算部73、存储部74及通信处理部75发挥功能。输入处理部71对来自输入装置51的输入进行处理。显示处理部72制作输出至显示装置52的显示数据。运算部73包含用户程序编辑部73a、框架信息生成部73b、交叉参照信息生成部73c及判定部73d。关于运算部73的这些功能的详细情况,将于后述。存储部74包含用户程序存储部74a、框架信息存储部74b、交叉参照信息存储部74c及全局变量表存储部74d。关于这些存储部的详细情况,将于后述。
图4表示显示装置52中显示的显示画面。如图4所示,显示装置52的显示画面包括程序显示部52a、框架信息显示部52b及参照信息显示部52c。程序显示部52a显示机器人控制程序及顺序控制程序的源代码(source code)。框架信息显示部52b显示表示机器人控制程序及顺序控制程序的结构的框架信息。
框架信息显示部52b中显示的框架信息是由框架信息生成部73b所制作,并保存在存储部74内的框架信息存储部74b中。另外,显示处理部72将与程序显示部52a中显示的机器人控制程序或顺序控制程序有关的框架信息显示在框架信息显示部52b中。
框架信息是表示机器人控制程序或顺序控制程序的结构概要的信息,是将机器人控制程序或顺序控制程序中使用的规定的结构要素从所述程序的开头起依次提取所得。
参照信息显示部52c包括参照对象输入栏52c-1及参照信息显示栏52c-2。通过在参照对象输入栏52c-1中输入运算元(operand),而将和具有与此运算元相同的运算元的命令有关的交叉参照信息显示于参照信息显示栏52c-2。而且,通过在参照对象输入栏52c-1中输入共享变量,而将和使用此共享变量的命令有关的交叉参照信息显示于参照信息显示栏52c-2。
本实施方式中,能够与相当于命令的运算元的节点编号或存储器编号分别对应地标注变量名,可进行使用变量名的程序编辑。能够在程序显示部52a、框架信息显示部52b及参照信息显示部52c中也以变量名来显示运算元。当然,也可不利用这种变量名而利用节点编号或存储器编号来显示。
本实施方式中,可检查机器人控制程序与顺序控制程序两者所参照的共享变量。当进行共享变量的检查时,通过在参照信息显示部52c的参照对象输入栏52c-1中输入共享变量,而在参照信息显示栏52c-2中显示交叉参照信息。详细情况将于后述。
接下来,对本实施方式的共享变量的检查处理进行说明。本实施方式中,作为一例,对使臂型机器人移动到工件的位置,用末端执行器抓住工件,在此状态下使臂型机器人移动到其他位置时的程序中的共享变量的检查处理进行说明。本实施方式中,机器人控制程序使用V+语言。顺序控制程序是以IEC语言记述的程序,作为一例,本实施方式中使用结构文本(structured text,ST)语言。
图5是说明臂型机器人和末端执行器以上述动作的示意图。图6是用于实现以上那样的动作的、V+语言的程序与IEC语言的程序的流程图。图7是表示用于实现以上那样的动作的、V+语言的程序与IEC语言的程序的源代码的示意图。
本示例中,如图5所示,首先使臂型机器人20的臂20a移动到工件W的附近(步骤S1:机器人臂的移动)。接着,使末端执行器40移动并利用末端执行器40拾取工件W(步骤S2:末端执行器的控制)。此期间中,臂型机器人20在工件W的拾取完成之前待机(步骤S3:在工件的拾取完成之前等待)。然后,当工件W的拾取完成时,使臂型机器人20的臂20a移动到其他位置(步骤S4:机器人臂的移动)。
以图6的流程图对以上那样的动作进行说明。如图6所示,在作为机器人控制程序的以V+语言记述的程序中,首先使臂型机器人20的臂20a移动到工件W附近的规定位置(步骤S1)。接着,当臂型机器人20的臂20a向规定位置的移动完成时,使用共享变量将时机旗标设为开(ON)(步骤S1-1)。此共享变量在以IEC语言记述的程序中也被参照,因而将时机旗标开(ON)成为针对被以IEC语言记述的程序所控制的末端执行器的执行通知。
当时机旗标成为开(ON)时,以IEC语言记述的程序开始控制末端执行器40,拾取工件W(步骤S2)。此期间中,以V+语言记述的程序待机(步骤S3)。当末端执行器40进行的工件W的拾取完成时,以IEC语言记述的程序使用共享变量将时机旗标设为关(OFF)(步骤S3-1)。将时机旗标关(OFF)成为针对末端执行器完成的通知给以V+语言记述的程序。当时机旗标成为关(OFF)时,以V+语言记述的程序使臂型机器人20的臂20a移动到其他位置(步骤S4)。
图7所示的示例中,将reqHandClose用作共享变量,reqHandClose是由以V+语言记述的程序与以IEC语言记述的程序两者参照。reqHandClose=真(reqHandClose=TRUE)的文字表示将时机旗标设为开(ON),reqHandClose=假(reqHandClose=FALSE)的文字表示将时机旗标设为关(OFF)。
如以上那样,本实施方式中,通过在以V+语言记述的程序与以IEC语言记述的程序之间互相确认reqHandClose的共享变量,而控制臂型机器人20和末端执行器40的动作。因此,当在任一程序中忘记使用reqHandClose的共享变量,或使用了名称与reqHandClose不同的共享变量时,程序随即停止,臂型机器人20和末端执行器40不进行预期的动作。
因此,本实施方式中,为了防止这种共享变量的配置错误,在以IEC语言记述的程序的编译处理时,进行共享变量的检查处理。图8及图9是表示本实施方式的共享变量的检查处理的流程的流程图。
图8中,将共享变量的检查处理以外的编译处理所需要的步骤的记载省略。当在开发支援装置50中下载以V+语言记述的程序和以IEC语言记述的程序并开始编译处理时,开发支援装置50的输入处理部71进行源代码A的读入(步骤S10)和源代码B的读入(步骤S11)。本示例中,将以V+语言记述的程序的源代码设为源代码A,将以IEC语言记述的程序的源代码设为源代码B。
当源代码A和源代码B的读入完成时,判定部73d进行共享变量检查处理(步骤S12)。图9是表示共享变量检查处理的子例程(subroutine)的流程图。如图9所示,中央运算装置53首先进行源代码A中的共享变量的存在确认。共享变量的存在确认是使用图10所示的全局变量表TBL1来进行。
本实施方式中,全局变量表TBL1是在第二编程终端61中以IEC语言制作程序时制作,并在将以IEC语言记述的程序下载到开发支援装置50中时一起下载。
当进行共享变量的检查时,需要将共享变量预先登记在程序显示部52a中显示的全局变量表TBL1中。
如图10所示,全局变量表TBL1具有表示共享变量的名称的栏、表示数据型的栏、表示是否进行变量共享的栏、表示是否进行共享变量检查的栏等。设有表示是否进行变量共享的栏、及表示是否进行共享变量检查的栏是考虑到先预约此后有可能使用的共享变量等。
图10所示的示例中,在变量reqHandClose的表示是否进行变量共享的一栏的复选框中打勾,还在表示是否进行共享变量检查的一栏的复选框中打勾。中央运算装置53从全局变量表TBL1中读取共享变量reqHandClose,并确认源代码B(即以IEC语言记述的程序的源代码)中是否记述了共享变量(步骤S20)。本示例的情况下,确认是否记述了共享变量reqHandClose。
确认的结果,判定部73d在判断为源代码B中不存在共享变量时(步骤S21:否(NO)),将检查结果设定为合格(OK)(步骤S24),退出子例程。在图7所示的示例中,在以IEC语言记述的程序的源代码中记述了共享变量reqHandClose,因而判定部73d判断为源代码B中存在共享变量(步骤S21:是(YES))。接着,确认源代码A(即以V+语言记述的程序的源代码)中是否记述了共享变量(步骤S22)。本示例的情况下,确认是否记述了共享变量reqHandClose。在图7所示的示例中,在以V+语言记述的程序的源代码中记述了共享变量reqHandClose,因而判定部73d判断为源代码A中存在共享变量(步骤S23:是(YES))。此时,判定部73d将检查结果设定为合格(OK)(步骤S24),退出子例程。但是,判定部73d在判断为源代码A中不存在共享变量时(步骤S23:否(NO)),将检查结果设定为不合格(NG)(步骤S25),退出子例程。
如图8所示,共享变量检查(步骤S12)的结果,当检查结果为合格(OK)时(步骤S13:是(YES)),中央运算装置53在开发支援装置50的显示装置52的画面中进行表示编译成功的显示(步骤S14)。但是,共享变量检查(步骤S12)的结果,当检查结果为不合格(NG)时(步骤S13:否(NO)),中央运算装置53将图11所示那样的错误消息框M1显示于开发支援装置50的显示装置52的画面(步骤S15)。
图11是表示错误消息框M1的一例的图。如图11所示,在错误消息框M1中显示错误消息M11、错误对象的共享变量的名称M12、“是”按钮M13及“否”按钮M14。图11的示例中,显示“以下的共享变量在程序中并未使用。继续编译?”的消息作为错误消息M11。作为错误对象的共享变量的名称M12,显示reqHandClose的名称。
用户确认这种错误消息框M1,当继续编译时点击“是”按钮M13,当中止编译时点击“否”按钮M14。
如图8那样,判定部73d在判断为错误消息框M1中选择了“是”按钮M13时(步骤S16:是(YES)),在开发支援装置50的显示装置52的画面中进行表示编译成功的显示(步骤S14)。但是,判定部73d在判断为错误消息框M1中选择了“否”按钮M14时(步骤S16:否(NO)),在开发支援装置50的显示装置52的画面中进行表示编译失败的显示(步骤S17)。
如以上那样,根据本实施方式,在编译处理时使用全局变量表来进行共享变量的检查,因而能够在执行程序前,适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
所述实施方式中,对以IEC语言记述程序时制作全局变量表的示例进行了说明,但也可在以V+语言记述程序时制作全局变量表。
所述实施方式中,对在全局变量表中设置表示是否进行变量共享的栏、及表示是否进行共享变量检查的栏的形态进行了说明,但也可为未设置这些栏的形态。
(第二实施方式)
接下来,一面参照附图一面对本公开的第二实施方式进行说明。图12A及图12B是用于说明本实施方式的臂型机器人和末端执行器的动作的图。本实施方式中,对用于实现臂型机器人的按压动作的程序中的共享变量的检查处理进行说明。
本示例中,如图12A所示,为了将配置有零件的基板80安装于散热片81,而利用臂型机器人20来进行将配置有零件的基板80按压于散热片81的动作。
此时的末端执行器40中具备省略图示的力传感器,利用力传感器来获取按压动作中的压力值。如图12B所示,在臂型机器人20上安装有具备力传感器的末端执行器40。
进行按压动作时,首先将安装于臂型机器人20的臂20a上的末端执行器40按压于工件W(步骤S30:机器人臂的按压)。此时,利用末端执行器40所具备的力传感器来获取按压中的压力值,将压力值代入至共享变量,与臂型机器人20共享压力值(步骤S31:压力值的共享)。臂型机器人20经由共享变量而获取压力值(步骤S32:压力值的获取),在压力值超过阈值之前持续按压动作(步骤S33:在压力值超过阈值之前持续)。当压力值超过阈值时,臂型机器人20停止按压动作,离开工件W。
以图13的流程图来说明以上那样的动作。如图13所示,在作为机器人控制程序的以V+语言记述的程序中,将臂型机器人20的臂20a按压于工件W(步骤S30)。以IEC语言记述的程序通过末端执行器40所具备的力传感器而获取按压中的压力值,将压力值代入至共享变量,与臂型机器人20共享压力值(步骤S31)。以V+语言记述的程序经由共享变量而获取压力值(步骤S32),在压力值超过阈值之前持续按压动作(步骤S33)。当压力值超过阈值时,以V+语言记述的程序停止按压动作,使臂型机器人20的臂20a离开工件W(步骤S34)。
图14所示的示例中,将presValue用作共享变量,presValue是由以V+语言记述的程序与以IEC语言记述的程序两者参照。在以IEC语言记述的程序中presValue:=N1_Ch1_Analog_Input_Value的文字表示,将压力值代入至共享变量的处理。而且,在以V+语言记述的程序中WHILE presValue<2000DO的文字表示,在压力值超过阈值之前持续按压动作的处理。
本实施方式的共享变量的检查处理的流程图与第一实施方式中说明的图8和图9所示的流程图相同,因而省略说明。其中,共享变量的存在确认是使用图15所示的全局变量表TBL2来进行。图15所示的全局变量表TBL2中,登记了presValue作为共享变量。
如以上那样,根据本实施方式,在编译处理时使用全局变量表来进行共享变量的检查,因而能够在执行程序前,适当发现在不同程序间定义的共享变量的配置遗漏或共享变量名的弄错。
(第三实施方式)
接下来,一面参照附图一面对本公开的第三实施方式进行说明。在第一实施方式及第二实施方式中,对在以IEC语言记述的程序的编译处理时进行共享变量的检查处理的形态进行了说明。但是,本实施方式中,当执行编译处理后选择共享变量检查的项目92时,进行共享变量的检查处理。
本实施方式的开发支援装置50的硬件结构及功能框的结构与图2及图3所示的第一实施方式的开发支援装置50的硬件结构及功能框的结构相同。
本实施方式中,如图16所示,当在开发支援装置50的显示装置52的画面上选择了项目标签90时,显示项目菜单91。通过从所述项目菜单91中选择共享变量检查的项目92,而进行共享变量的检查处理。此外,本实施方式中,以V+语言记述的程序的源代码和以IEC语言记述的程序的源代码的输入已完成,以IEC语言记述的程序的编译处理也已完成。
而且,本实施方式中,作为以IEC语言记述的程序,使用图19所示那样的以梯形图语言记述的程序、和图20所示那样的以ST语言记述的程序。
图17是表示本实施方式的共享变量的检查处理的流程的流程图。当开始共享变量的检查处理时,交叉参照信息生成部73c从全局变量表中进行共享变量的提取(步骤S40)。全局变量表是使用与第一实施方式及第二实施方式所示的全局变量表TBL1、全局变量表TBL2相同的全局变量表。
接着,交叉参照信息生成部73c针对所提取的共享变量,执行以V+语言记述的程序的源代码、与以IEC语言记述的程序的源代码的交叉参照(步骤S41)。即,交叉参照信息生成部73c针对以V+语言记述的程序的源代码与以IEC语言记述的程序的源代码,参照使用了共享变量的部位,并使其程序名、步骤编号、地址、语言、路径等作为交叉参照信息而存储在交叉参照信息存储部74c中。当所提取的共享变量有多个时,依次对各个共享变量执行以上那样的交叉参照。
例如,如图19所示那样,以梯形图语言记述的程序中使用共享变量shared1、共享变量shared2、共享变量in1、共享变量in2,如图20所示那样,以ST语言记述的程序中使用共享变量shared3及共享变量shared4。进而,如图21所示那样,以V+语言记述的程序中使用共享变量shared1及共享变量shared4。
判定部73d首先对共享变量shared1执行交叉参照(步骤S41),判定是否未在以IEC语言记述的程序与以V+语言记述的程序两者中使用(步骤S42)。随后,判定是否仅在以IEC语言记述的程序中使用,或是否仅在以V+语言记述的程序中使用(步骤S43)。
本示例的情况下,共享变量shared1在以梯形图语言记述的程序与以V+语言记述的程序中使用(步骤S42:否(NO),步骤S43:否(NO)),因而进入步骤S46。判定部73d判断是否对所有共享变量完成了检查(步骤S46),此时尚未完成(步骤S46:否(NO)),因而再次回到步骤S41,接着对共享变量shared2执行交叉参照(步骤S41)。
共享变量shared2仅在以梯形图语言记述的程序中使用(步骤S42:否(NO),步骤S43:是(YES)),因而判定部73d生成错误消息(步骤S44),显示处理部72在图22所示的输出窗口110中,登记为“警告:共享变量"shared2"仅在IEC程序中使用。:Program0”(步骤S45)。此处,Program0表示图19所示的以梯形图语言记述的程序。
判定部73d判断是否对所有共享变量完成了检查(步骤S46),此时尚未完成(步骤S46:否(NO)),因而再次回到步骤S41,接着对共享变量shared3执行交叉参照(步骤S41)。
共享变量shared3仅在以ST语言记述的程序中使用(步骤S42:否(NO),步骤S43:是(YES)),因而判定部73d生成错误消息(步骤S44),显示处理部72在图22所示的输出窗口110中,登记为“警告:共享变量"shared3"仅在V+程序中使用。:Program2”。此处,Program2表示图21所示的以V+语言记述的程序。
以后,同样地对所有共享变量进行检查,当判定部73d判定为对所有共享变量完成了检查时(步骤S46:是(YES)),显示处理部72使所述那样登记的错误消息显示于输出窗口110(步骤S47),判定部73d结束共享变量的检查。
以上那样的处理的结果,最终显示图22所示的输出窗口110。输出窗口110既可显示于参照信息显示部52c,也可显示于程序显示部52a。
而且,本实施方式中,也可除了输出窗口110以外,还显示图18那样的交叉参照显示画面103。交叉参照显示画面103显示于参照信息显示部52c。
图18中,Program0相当于图19所示的以梯形图语言记述的程序,Program1相当于图20所示的以ST语言记述的程序。而且,Program2相当于图21所示的以V+语言记述的程序。
如图18所示那样,共享变量shared1在以梯形图语言记述的程序、与以V+语言记述的程序中使用。共享变量shared2仅在以梯形图语言记述的程序中使用。共享变量shared3仅在以ST语言记述的程序中使用。
而且,共享变量shared4在以ST语言记述的程序与以V+语言记述的程序中使用。另外,共享变量shared5在任一程序中均未使用。此外,变量in1、变量in2并非共享变量。
因此,图18所示的示例的情况下,针对共享变量shared2、共享变量shared3、共享变量shared5,显示图22所示那样的错误消息。
如以上那样,根据本实施方式,显示在以IEC语言记述的程序与以V+语言记述的程序的至少任一程序中未使用共享变量的错误消息。结果,能够确认共享变量的配置遗漏、共享变量名的错误、浪费的共享变量的存在等,而可顺利地进行程序的除错。
(第四实施方式)
接下来,一面参照附图一面对本公开的第四实施方式进行说明。第一实施方式及第二实施方式中,对在以IEC语言记述的程序的编译处理时进行共享变量的检查处理的形态进行了说明。而且,第三实施方式中,对在执行编译处理后进行共享变量的检查处理的形态进行了说明。
本实施方式中,使以IEC语言记述的程序的源代码或以V+语言记述的程序的源代码显示于程序显示部52a,当在源代码中选择了共享变量时,在以IEC语言记述的程序与以V+语言记述的程序两者中,显示所选择的共享变量的参照部位作为交叉参照信息。
图23是本实施方式的开发支援装置50的功能框图。与第一实施方式中图3所示的功能框图的不同之处在于,运算部73包括结构要素选择部73e、及作为本实施方式中的判定部的共享变量处理部73f。当由用户在框架信息显示部52b中显示的框架信息中点击了变量等时,结构要素选择部73e选择所述变量作为进行共享变量检查处理的变量。而且,共享变量处理部73f在由结构要素选择部73e所选择的变量存在于共享变量参照中时,判定在以IEC语言记述的程序与以V+语言记述的程序中是否作为共享变量而被参照。本实施方式中,在由共享变量处理部73f判定为以IEC语言记述的程序或以V+语言记述的程序中参照了所选择的共享变量时,作为参照部发挥功能的交叉参照信息生成部73c确定使用了此共享变量的部位。
图24表示本实施方式中,程序显示部52a中显示的以V+语言记述的程序的源代码与以IEC语言记述的程序的源代码的示例。图24中,点线表示的部位为共享变量。本示例的情况下,reqHandClose为共享变量。
程序显示部52a中既可显示任一程序的源代码,也可显示两程序的源代码。此外,本实施方式中,以V+语言记述的程序的源代码和以IEC语言记述的程序的源代码的输入已完成,以IEC语言记述的程序的编译处理也已完成。
图25是表示本实施方式的共享变量检查处理的流程的流程图。图25所示的处理是每隔规定时间而反复执行。当开始共享变量的检查处理时,共享变量处理部73f判断是否由用户点击了变量等,是否由结构要素选择部73e选择了变量(步骤S50)。共享变量处理部73f在判断为未选择变量时(步骤S50:否(NO)),退出图25所示的处理。然而,共享变量处理部73f在判断为选择了变量时(步骤S50:是(YES)),随后判断所选择的变量是否存在于共享变量参照中(步骤S51)。本实施方式中的共享变量参照与所述实施方式同样地,既可为全局变量表,也可为与全局变量表不同的参照。
共享变量处理部73f在判断为所选择的变量不存在于共享变量参照中时(步骤S51:否(NO)),退出图25所示的处理。然而,共享变量处理部73f在判断为所选择的变量存在于共享变量参照中时(步骤S51:是(YES)),从共享变量参照中进行此变量的提取(步骤S52)。
接着,共享变量处理部73f针对所提取的变量,例如判定在以IEC语言记述的程序的源代码中是否被参照(步骤S53)。在由共享变量处理部73f判定为所提取的变量在以IEC语言记述的程序的源代码中被参照时,交叉参照信息生成部73c针对以IEC语言记述的程序的源代码,参照使用了所提取的变量的部位,使其程序名、步骤编号、地址、语言、路径等作为交叉参照信息而存储于交叉参照信息存储部74c(步骤S54)。
接着,共享变量处理部73f判断是否对所有程序完成了与共享变量有关的交叉参照(步骤S55)。本示例的情况下,共享变量处理部73f判断为尚未在以V+语言记述的程序的源代码中完成与共享变量有关的交叉参照(步骤S55:否(NO)),再次回到步骤S53的处理。
共享变量处理部73f针对所述提取的变量,判定在以V+语言记述的程序的源代码中是否被参照(步骤S53)。在由共享变量处理部73f判定为所提取的变量在以V+语言记述的程序的源代码中被参照时,交叉参照信息生成部73c针对以V+语言记述的程序的源代码,参照使用了所提取的变量的部位,使其程序名、步骤编号、地址、语言、路径等作为交叉参照信息而存储于交叉参照信息存储部74c(步骤S54)。
共享变量处理部73f判断是否在所有程序中完成了与共享变量有关的交叉参照(步骤S55)。本示例的情况下,判断为针对所有程序完成了共享变量的交叉参照(步骤S55:是(YES)),使交叉参照信息存储部74c中存储的交叉参照信息显示于交叉参照窗口(步骤S56),结束图25所示的处理。
图26中表示交叉参照窗口200的一例。交叉参照窗口200显示于参照信息显示部52c。图26所示的交叉参照窗口200包括参照对象显示栏201、设定项目显示栏202、发生部位显示栏203、详细信息显示栏204、参照显示栏205等。
参照对象显示栏201中显示进行了共享变量的交叉参照的程序的名字、及所选择的共享变量。图26所示的“机器人手控制”表示以IEC语言记述的程序的名字。“reqHandClose”为所选择的共享变量。
设定项目显示栏202中显示成为交叉参照的对象的共享变量。图26的示例的情况下,显示reqHandClose。发生部位显示栏203中显示参照了设定项目中显示的共享变量的程序名。本示例的情况下,显示机器人手控制及机器人控制。“机器人控制”表示以V+语言记述的程序的名字。
详细信息显示栏204中,在显示发生部位显示栏203中显示的程序中,参照了设定项目显示栏202中显示的共享变量的程序的源代码中的行编号。参照显示栏205中,显示详细信息显示栏204中显示的行编号的源代码。
如以上那样,根据本实施方式,仅在一个程序中选择共享变量,而不仅使此程序中的共享变量的参照部位显示于交叉参照窗口200,而且也使另一程序中的此共享变量的参照部位显示于交叉参照窗口200。
因此,用户通过观看交叉参照窗口200中显示的内容,而能够容易地把握是否在所有程序中正确地参照了共享变量。其结果,能够确认共享变量的配置遗漏、共享变量名的错误、浪费的共享变量的存在等,而可顺利地进行程序的除错。
所述说明中,对在程序显示部52a中显示的程序的源代码上选择变量的形态进行了说明,但本发明不限定于这种形态。例如,也可适用于使框架信息显示于框架显示部52b,并在框架信息上选择变量的形态。
框架信息是表示以IEC语言记述的程序或以V+语言记述的程序的结构概要的信息,是将这些程序中使用的规定的结构要素从这些程序的开头起依次提取所得。
此时,也仅在一个程序的框架信息中选择共享变量,而可不仅使此程序中的共享变量的参照部位显示于交叉参照窗口200,而且使另一程序中的此共享变量的参照部位也显示于交叉参照窗口200。
因此,用户通过观看交叉参照窗口200中显示的内容,而能够容易地把握是否在所有程序中正确地参照了共享变量。其结果,能够确认共享变量的配置遗漏、共享变量名的错误、浪费的共享变量的存在等,而可顺利地进行程序的除错。
第一实施方式、第二实施方式及第四实施方式中,对仅使用以ST语言记述的程序来作为以IEC语言记述的程序的形态进行了说明,但这些实施方式中,也可与第三实施方式同样地,使用以ST语言记述的程序、与以梯形图语言记述的程序两者来作为以IEC语言记述的程序。
以上的实施方式为例示,可不偏离本发明的范围而进行各种变形。所述多个实施方式可分别单独成立,但也可将实施方式彼此组合。而且,不同实施方式中的各种特征也可分别单独成立,但也可将不同实施方式中的特征彼此组合。

Claims (6)

1.一种开发支援装置,用于开发控制装置中执行的多个不同的编程语言,所述开发支援装置的特征在于,包括:
共享变量参照,预先制作,并且用于在所述多个不同的编程语言的源代码中参照且共享存储器的共享变量;
输入部,输入所述多个不同的编程语言的所述源代码;以及
判定部,基于所述共享变量参照,判定所输入的所述多个不同的编程语言的所述源代码中是否参照了所述共享变量。
2.根据权利要求1所述的开发支援装置,其特征在于,包括:
错误消息输出部,输出错误消息,
其中所述判定部在判定为所述多个不同的编程语言的所述源代码中一个编程语言的源代码中参照了所述共享变量时,判定所述参照的所述共享变量是否在其他编程语言的源代码中被参照,并在判定为未参照时,输出为错误状态,
所述错误消息输出部在由所述判定部输出了为所述错误状态时,输出所述错误消息。
3.根据权利要求1所述的开发支援装置,其特征在于,包括:
错误消息输出部,输出错误消息,
其中所述判定部在判定为所述共享变量在所述多个不同的编程语言的所述源代码中的任一编程语言的源代码中均未被参照时,或判定为所述共享变量仅在任一编程语言的源代码中被参照时,输出为错误状态,
所述错误消息输出部在由所述判定部输出了为所述错误状态时,输出所述错误消息。
4.根据权利要求1所述的开发支援装置,其特征在于,包括:
显示部,显示所述多个不同的编程语言的所述源代码、及所述源代码的框架的至少任一者;
选择部,选择所述显示部中显示的所述共享变量;以及
参照部,当由所述判定部判定为参照了所述共享变量时,确定所述源代码中的所述共享变量的参照部位,
其中当所述选择部在一个编程语言的源代码或框架中选择了所述共享变量时,所述判定部在所述显示部中显示的所述多个不同的编程语言的源代码或框架中,判定所述一个编程语言的源代码、及其他编程语言的源代码中是否参照了所述共享变量。
5.一种开发支援方法,用于开发控制装置中执行的多个不同的编程语言,所述开发支援方法的特征在于,包括下述步骤:
输入所述多个不同的编程语言的源代码;以及
基于预先制作、并且用于在所述多个不同的编程语言的所述源代码中参照且共享存储器的共享变量的共享变量参照,判定所输入的所述多个不同的编程语言的所述源代码中是否参照了所述共享变量。
6.一种记录介质,其特征在于,所述记录介质记录有开发支援程序,是用于开发控制装置中执行的多个不同的编程语言的开发支援装置的开发支援程序,所述开发支援程序使计算机执行下述步骤:
输入所述多个不同的编程语言的源代码;以及
基于预先制作、并且用于在所述多个不同的编程语言的所述源代码中参照且共享存储器的共享变量的共享变量参照,判定所输入的所述多个不同的编程语言的所述源代码中是否参照了所述共享变量。
CN201910110944.7A 2018-03-15 2019-02-12 开发支援装置、开发支援方法以及记录介质 Active CN110275451B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018048504A JP6891838B2 (ja) 2018-03-15 2018-03-15 開発支援装置、開発支援方法、および開発支援プログラム
JP2018-048504 2018-03-15

Publications (2)

Publication Number Publication Date
CN110275451A true CN110275451A (zh) 2019-09-24
CN110275451B CN110275451B (zh) 2022-06-14

Family

ID=65411794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910110944.7A Active CN110275451B (zh) 2018-03-15 2019-02-12 开发支援装置、开发支援方法以及记录介质

Country Status (4)

Country Link
US (1) US10747507B2 (zh)
EP (1) EP3540536B1 (zh)
JP (1) JP6891838B2 (zh)
CN (1) CN110275451B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6969460B2 (ja) * 2018-03-15 2021-11-24 オムロン株式会社 プログラム開発支援システム、プログラム開発支援方法及びプログラム開発支援プログラム
CN111158663B (zh) * 2019-12-26 2021-07-02 深圳逻辑汇科技有限公司 用于处理程序代码中的变量的引用的方法和系统
US11709659B1 (en) * 2020-03-25 2023-07-25 Stripe, Inc. Systems and methods for a code generation tool for software development systems
CN111618846A (zh) * 2020-04-10 2020-09-04 中国科学院软件研究所 一种面向机械臂程序开发编程语言的调试器

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347894A (ja) * 1999-06-09 2000-12-15 Fujitsu Ltd ソースプログラムチェック装置およびそのプログラム記録媒体
US7035781B1 (en) * 1999-12-30 2006-04-25 Synopsys, Inc. Mixed language simulator
CN102419730A (zh) * 2011-12-08 2012-04-18 北京控制工程研究所 一种51汇编语言软件安全性编码规则自动检查方法
US20140123104A1 (en) * 2011-07-06 2014-05-01 Abb Ag Method and device for the programming and configuration of a programmable logic controller
CN104067186A (zh) * 2012-02-01 2014-09-24 欧姆龙株式会社 支援装置、记录有支援程序的记录介质及生成可执行程序的方法
US20140380101A1 (en) * 2013-06-19 2014-12-25 Electronics And Telecommunications Research Nstitute Apparatus and method for detecting concurrency error of parallel program for multicore
US20160246622A1 (en) * 2015-02-23 2016-08-25 Karlen Simonyan Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages
JP2016186697A (ja) * 2015-03-27 2016-10-27 日本電気株式会社 関数間変数共有方法及び機構
CN106200445A (zh) * 2015-05-06 2016-12-07 西门子工厂自动化工程有限公司 逻辑控制器的调试方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3446256B2 (ja) 1993-09-03 2003-09-16 株式会社日立製作所 Faシステムの制御方法及び装置
JP2003241997A (ja) * 2002-02-20 2003-08-29 Denso Corp 割込命令チェック装置及び割込命令チェックプログラム
US20040010780A1 (en) * 2002-07-11 2004-01-15 Nortel Networks Limited Method and apparatus for approximate generation of source code cross-reference information
US7464065B2 (en) * 2005-11-21 2008-12-09 International Business Machines Corporation Object specific language extension interface for a multi-level data structure
EP3249893A1 (en) * 2008-06-03 2017-11-29 Whirlpool Corporation Appliance development toolkit
JP6969460B2 (ja) * 2018-03-15 2021-11-24 オムロン株式会社 プログラム開発支援システム、プログラム開発支援方法及びプログラム開発支援プログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347894A (ja) * 1999-06-09 2000-12-15 Fujitsu Ltd ソースプログラムチェック装置およびそのプログラム記録媒体
US7035781B1 (en) * 1999-12-30 2006-04-25 Synopsys, Inc. Mixed language simulator
US20140123104A1 (en) * 2011-07-06 2014-05-01 Abb Ag Method and device for the programming and configuration of a programmable logic controller
CN103814333A (zh) * 2011-07-06 2014-05-21 Abb股份公司 用于对可编程控制装置编程和配置的方法和设备
CN102419730A (zh) * 2011-12-08 2012-04-18 北京控制工程研究所 一种51汇编语言软件安全性编码规则自动检查方法
CN104067186A (zh) * 2012-02-01 2014-09-24 欧姆龙株式会社 支援装置、记录有支援程序的记录介质及生成可执行程序的方法
US20140380101A1 (en) * 2013-06-19 2014-12-25 Electronics And Telecommunications Research Nstitute Apparatus and method for detecting concurrency error of parallel program for multicore
US20160246622A1 (en) * 2015-02-23 2016-08-25 Karlen Simonyan Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages
JP2016186697A (ja) * 2015-03-27 2016-10-27 日本電気株式会社 関数間変数共有方法及び機構
CN106200445A (zh) * 2015-05-06 2016-12-07 西门子工厂自动化工程有限公司 逻辑控制器的调试方法

Also Published As

Publication number Publication date
EP3540536B1 (en) 2023-08-23
CN110275451B (zh) 2022-06-14
JP6891838B2 (ja) 2021-06-18
US10747507B2 (en) 2020-08-18
EP3540536A2 (en) 2019-09-18
EP3540536A3 (en) 2020-02-26
JP2019160079A (ja) 2019-09-19
US20190286423A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
CN110275451A (zh) 开发支援装置、开发支援方法以及记录介质
JP5506822B2 (ja) プログラム作成支援装置
CN100460161C (zh) 机械手控制装置及机械手控制方法
US7302676B2 (en) Method for debugging flowchart programs for industrial controllers
US5485620A (en) Integrated control system for industrial automation applications
Rossano et al. Easy robot programming concepts: An industrial perspective
CN103970087A (zh) 动作程序生成装置
KR20180081774A (ko) 매니퓰레이터 프로그램의 그래픽 사용자 인터페이스를 만들기 위한 방법 및 컴퓨터 프로그램
JP2009297877A (ja) ロボット教示プログラム作成装置及び作成方法
JPH10143221A (ja) 機器制御プログラムの開発支援システムおよび開発支援方法
JP2982187B2 (ja) プログラマブルコントローラ
JPH07191717A (ja) 制御プログラム自動作成装置
JP4556787B2 (ja) プログラマブルコントローラの編集装置
JP4511418B2 (ja) 教示装置用プログラムのデバッグ方法
JP2000259216A (ja) 産業用制御装置のプログラミングのためのシステムおよび方法ならびにそのソフトウェアが記録された記録媒体
JP5862236B2 (ja) 制御プログラム編集装置及び制御プログラムの作成支援プログラム
US7133738B2 (en) System and method for programming an automation system, based on pulse timing diagrams
CN113204210A (zh) 信息处理设备、信息处理方法、生产设备、制造产品的方法、以及记录介质
JP3940389B2 (ja) 検査装置及びプログラミングツール
US20230173670A1 (en) Information processing apparatus, system, information processing method, method of manufacturing products, and recording medium
JP2001005517A (ja) 制御プログラムのモニター方法および装置
JP4052590B2 (ja) シーケンス制御装置
JP5008520B2 (ja) 表示画面内へのデータ入力状況表示方法
WO2020189142A1 (ja) 制御システム、制御方法、および制御プログラム
Tilbury et al. Discrete Event Control of Manufacturing Systems

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