CN116917818A - 开发辅助装置、开发辅助方法以及开发辅助程序 - Google Patents

开发辅助装置、开发辅助方法以及开发辅助程序 Download PDF

Info

Publication number
CN116917818A
CN116917818A CN202180094743.8A CN202180094743A CN116917818A CN 116917818 A CN116917818 A CN 116917818A CN 202180094743 A CN202180094743 A CN 202180094743A CN 116917818 A CN116917818 A CN 116917818A
Authority
CN
China
Prior art keywords
variable
control
variables
list
development
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
Application number
CN202180094743.8A
Other languages
English (en)
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 CN116917818A publication Critical patent/CN116917818A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

开发辅助装置(100)从声明在对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的源代码中使用的变量的变量定义列表内的变量中,提取在源代码中不使用的第1变量,并且取得用于确定在控制程序(210)的执行状态下控制对象(300)所使用的第2变量的信息。开发辅助装置(100)判定为能够从变量定义列表中删除第1变量中的不相当于第2变量的第3变量。

Description

开发辅助装置、开发辅助方法以及开发辅助程序
技术领域
本公开涉及用于辅助对控制对象进行控制的控制装置用的控制程序的开发的技术。
背景技术
在以FA(Factory Automation:工厂自动化)系统为代表的各种制造现场,导入有PLC(Programmable Logic Controller:可编程逻辑控制器)等控制装置。这样的控制装置是一种计算机,通过执行根据制造装置、制造设备等控制对象而设计的控制程序,能够对该控制对象进行控制。通常,控制程序使用与控制器分开准备的开发辅助装置来创建。
这样的控制程序通常使用预先声明的变量来记述。例如,在日本特开2005-352612号公报(专利文献1)中,公开了能够通过提高变量的检索性来提高控制程序的开发效率的程序开发辅助装置。在专利文献1的程序开发辅助装置中,在输入了针对规定命令的操作数的情况下,根据关键字(字符串)的指定,进行仅一览显示包含该字符串的变量名的变量的筛选,由此提高变量的检索性。
现有技术文献
专利文献
专利文献1:日本特开2005-352612号公报
发明内容
发明要解决的课题
在上述的控制程序的源程序中,设置有用于声明变量的定义列表,在该定义列表中声明的变量能够在源代码内使用。
另一方面,在变更或编辑该控制程序时,在源代码内删除的变量也残留在定义列表内的情况下,在执行控制程序时确保与该变量对应的存储区域。因此,从高效地使用控制装置的存储区域的观点出发,优选从定义列表中删除不需要的变量。
另一方面,在执行控制程序时,在控制装置和控制对象之间构建网络来对控制对象进行控制,因此当要删除需要的变量时,有可能对控制对象侧造成影响。
本公开是为了解决如上所述的问题点而完成,一个方面的目的在于提供一种开发辅助装置,能够适当地提取对控制对象进行控制的控制装置用的控制程序内的可删除的不需要的变量。另一方面的目的在于提供一种开发辅助方法,能够适当地提取控制程序内的可删除的不需要的变量。又一方面的目的在于提供一种开发辅助程序,能够适当地提取控制程序内的可删除的不需要的变量。
用于解决课题的手段
根据本公开的一例,提供一种开发辅助装置,其用于辅助对控制对象进行控制的控制装置用的控制程序的开发。开发辅助装置具有存储部、提取部、取得部以及判定部。存储部存储控制程序的源代码、和声明在该源代码中使用的多个变量的第1列表。提取部从第1列表内的多个变量中,提取在源代码中不使用的第1变量。取得部在控制程序的执行状态下,取得用于确定多个变量中的、控制对象所使用的第2变量的信息。判定部基于提取部的提取结果、和由取得部取得的信息,判定为能够从第1列表中删除第1变量中的不相当于第2变量的第3变量。
根据本公开,开发辅助装置能够从控制程序的源代码中的不使用变量中,排除在控制对象中使用的第2变量,而判定可从第1列表中删除的变量。其结果,能够将若删除则对外部设备侧造成影响的变量排除,从控制程序中适当地提取可删除的变量。
在上述公开中,控制对象可以构成为通过网络与控制装置连接,并且在控制程序的执行中,从控制装置读出预先创建的第2列表所示的变量。取得部从控制对象直接取得确定第2列表所示的变量的信息,或经由控制装置从控制对象取得确定第2列表所示的变量的信息。
根据该公开,能够使用在控制程序的执行时创建的列表(第2列表),简便地取得确定控制对象所使用的第2变量的信息。
在上述公开中,控制对象可以构成为通过网络与控制装置连接,并且在控制程序的执行中经由该网络来访问控制对象而读出多个变量中的一部分变量。控制装置将在控制程序的执行中从控制对象读出的变量名保持为访问信息。取得部可以在控制程序的执行时从控制装置取得访问信息作为信息。
根据本公开,对于控制对象所使用的第2变量,在无法使用列表来确定的情况下,还能够使用控制装置所保持的访问信息来确定。
在上述公开中,开发辅助装置还可以具有从第1列表中删除第3变量的变量删除部。
根据该公开,能够将第1列表自动更新为由判定部判定为可删除的第3变量已被删除的内容。
在上述公开中,开发辅助装置还可以具有用于输入用户的操作的界面部。提取部、取得部以及判定部可以根据针对界面部的、启动不需要变量的删除处理的第1操作的输入而进行动作。界面部可以输出要求用户是否从第1列表中删除由判定部提取出的第3变量的消息。变量删除部可以根据针对界面部的、与消息对应的指示第3变量的删除的第2操作的输入而进行动作。
根据该公开,在根据用户操作而启动的不需要变量的删除处理中,能够在由用户进行确认后,从第1列表中删除由判定部判定为可删除的第3变量。
在上述公开中,当输入了第1操作时,在控制装置和开发辅助装置之间确保了控制程序的版本同步后,使提取部、取得部以及判定部进行动作。
根据本公开,能够确认源程序内的变量与由控制装置执行的控制程序内的变量一致,并从第1列表中提取可删除的变量。
根据本公开的另一例,提供一种由计算机执行的、对控制对象进行控制的控制装置用的控制程序的开发辅助方法。开发辅助方法具有以下步骤:从声明在控制程序的源代码中使用的多个变量的列表中,提取在源代码中不使用的第1变量;在控制程序的执行状态下,取得用于确定多个变量中的、控制对象所使用的第2变量的信息;以及基于进行提取的步骤中的提取结果和在进行取得的步骤中取得的信息,判定为能够从列表中删除第1变量中的不相当于第2变量的第3变量。
根据本公开的又一例,提供一种对控制对象进行控制的控制装置用的控制程序的开发辅助程序。开发辅助程序使计算机执行以下步骤:从声明在控制程序的源代码中使用的多个变量的列表中,提取在源代码中不使用的第1变量;在控制程序的执行状态下,取得用于确定多个变量中的、控制对象所使用的第2变量的信息;以及基于进行提取的步骤中的提取结果和在进行取得的步骤中取得的信息,判定为能够从列表中删除第1变量中的不相当于第2变量的第3变量。
根据本公开,开发辅助方法和开发辅助程序能够从控制程序的源代码中的不使用变量中,排除在控制对象中使用的第2变量,而判定可从列表中删除的变量。其结果,能够将若删除则对外部设备侧造成影响的变量排除,从控制程序中适当地提取可删除的变量。
发明的效果
根据本公开,能够适当地提取对控制对象进行控制的控制装置用的控制程序内的可删除的不需要的变量。
附图说明
图1是表示应用本实施方式的开发辅助装置的FA系统的结构的一例的概略图。
图2是表示开发辅助装置的硬件结构的一例的示意图。
图3是说明控制程序的运用的概念图。
图4是说明控制程序的一例的概念图。
图5是说明从外部设备向控制装置的访问方式的概略图。
图6是说明本实施方式的开发辅助装置进行不需要变量删除处理用的结构的框图。
图7是由本实施方式的开发辅助装置进行的不需要变量删除处理的流程图。
图8是说明由本实施方式的开发辅助方法进行的不需要变量删除处理的变形例的流程图。
具体实施方式
以下,参照附图说明本发明的各实施方式。在以下的说明中,对相同的部件和结构要素标注相同标号。它们的名称和功能也相同。因此,原则上不重复对它们的详细说明。
<应用例>
图1是表示应用本实施方式的开发辅助装置的FA系统10的结构的一例的概略图。首先,参照图1对FA系统10的系统结构进行说明。
FA系统10具有一个以上的开发辅助装置100、一个以上的控制装置(控制器)200以及由控制装置200控制的外部设备300。
开发辅助装置100例如是笔记本型或台式的PC(Personal Computer:个人计算机)、平板终端、智能手机或其他信息处理装置。
在开发辅助装置100中安装有开发辅助程序50。开发辅助程序50是用于辅助控制装置200用的控制程序210的开发的应用。开发辅助程序50例如是欧姆龙公司创建的“Sysmac Studio”。用户能够在开发辅助程序50上设计控制装置200用的控制程序,并将所设计的控制程序210下载到控制器。或者,开发辅助装置100还能够从控制装置200上传数据等。
控制装置200以及外部设备300与能够连接开发辅助装置100的网络NW1连接。网络NW1采用Ethernet(注册商标)等。控制装置200例如由PLC构成。
控制装置200以及外部设备300与网络NW2连接。网络NW2优选采用保证数据的到达时间的、进行恒定周期通信的现场网络。作为这样的进行恒定周期通信的现场网络,公知有OPC UA(注册商标)等。
外部设备300由用于使生产工序自动化的各种工业用设备、各种传感器类以及HMI(Human Machine Interface:人机界面)设备等构成。外部设备300包含与网络NW1或MMW2连接的器件300A~300C和设备301A~301C。设备301A~301C通过器件300A~300C并经由网络NW1、NW2与控制装置200通信连接。由此,能够通过由控制装置200执行的控制程序控制设备301A~301C。即,外部设备300对应于由控制程序控制的“控制对象”。
在图1的例子中,与设备301A连接的器件300A与应用了OPC UA的网络NW2连接。另外,与设备301B连接的器件300B以及与设备301C连接的器件300C与应用了Ethernet的网络NW1连接。另外,在FA系统10具有多个控制装置(控制器)200的结构中,能够在控制器之间、例如图1中的控制装置200与未图示的其他控制装置之间,例如使用OPC UA来构成控制器间网络(未图示)。
<开发辅助装置的结构>
图2示出表示开发辅助装置100的硬件结构的一例的示意图。
作为一例,开发辅助装置100由基于通用的计算机架构而构成的计算机构成。开发辅助装置100包含CPU(Central Processing Unit:中央处理单元)或MPU(Micro-Processing Unit:微处理单元)等处理器102、主存储器104、通信接口111、I/O(Input/Output:输入输出)接口114、显示接口117、非易失性的存储装置120。这些组件经由内部总线125以能够相互进行通信的方式连接。
处理器102通过将存储装置120中存储的开发辅助程序50在主存储器104中展开并执行,来启动控制程序210(参照图1)的开发工具。存储装置120除了开发辅助程序50以外,还存储各种数据和程序60。控制程序210的源程序存储在主存储器104或存储装置120中。即,主存储器104和存储装置120对应于“存储部”的一个实施例。
通信接口111经由网络与其他通信设备之间交换数据。该其他通信设备例如包含图1所示的控制装置200和外部设备300以及未图示的服务器等。开发辅助装置100也可以构成为能够经由通信接口111从该其他通信设备下载开发辅助程序50等各种程序。
I/O接口114与操作部115连接,取得来自操作部115的表示用户操作的信号。操作部115典型地由键盘、鼠标、触摸面板、触控板等构成,受理来自用户的操作。操作部115可以与开发辅助装置100一体地构成,也可以与开发辅助装置100分开构成。
显示接口117与显示部118连接,按照来自处理器102等的指令,对显示部118发送用于显示图像的图像信号。显示部118由LCD(Liquid Crystal Display:液晶显示器)、有机EL(Electro Luminescence:电致发光)显示器等构成,对用户提示各种信息。显示部118可以与开发辅助装置100一体地构成,也可以与开发辅助装置100分开构成。
此外,在图2中,示出了通过CPU等处理器102执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如,ASIC(Application Specific IntegratedCircuit:专用集成电路)或者FPGA(Field-Programmable Gate Array:现场可编程门阵列)等)来安装这些所提供的功能的一部分或者全部。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个OS,并且在各OS上执行所需的应用。另外,在上述的说明中,例示了开发辅助装置100执行全部处理的方式,但不限于此,也可以是多个装置协作地提供上述那样的功能。进而,也可以利用服务器上的被称为所谓云的计算资源来实现一部分或者全部的功能。
<控制程序>
接着,对控制程序进行说明。
图3表示说明控制程序的运用的概念图。
在开发辅助装置100中,通过用户使用操作部115和118的操作,生成包含源代码51和变量定义列表52的源程序210s。另外,通过用户对开发辅助装置100的操作,适当编辑包含源代码51和变量定义列表52的源程序210s。另外,在图3中,分别记载了源代码51和变量定义列表52,但在源程序210s中,也可以将源代码51和变量定义列表52设为一体的文件。源程序210s典型的是能够以IEC61131-3中规定的LD(梯形图)、IL(指令列表)、ST(结构化文本)、FBD(功能块图)、SFC(序列功能图)等任意语言来记述。在以下的说明中,作为典型例,对通过梯形程序(LD)来记述源程序的情况进行说明。
在开发辅助装置100中,通过构建源程序210s,创建控制程序210的执行代码211,并下载到控制装置200。此时,在控制装置200中,为了用于控制程序210,确保用于存储变量定义列表52中声明的变量的存储区域212。
器件300A~300C通过经由网络接口250的网络NW1或NW2的数据通信,能够访问存储区域212的变量。例如,在图3的例子中,从外部设备300(器件300A~300C)访问存储在标有斜线的区域中的变量。相反地,也能够从器件300A~300C侧对控制装置200(存储区域212)输入数据。
图4中示出对控制程序的一例进行说明的概念图。在图4的(a)中示出通过作为控制程序的一例的梯形程序记述的梯形电路的一例。在图4的(b)示出利用图3说明的变量定义列表的一例。
如图4的(a)所示,梯形程序通过在输入侧母线221与输出侧母线222之间将使用了电路要素和连接线的逻辑电路描绘为梯子状的梯形电路220来表现。
在图4的(a)的例子中,梯形电路220包含根据变量aa的值而接通/断开的触点224、以及将接通/断开结果作为变量bb输出的线圈226。梯形电路通过用连接线227将触点224和线圈226这样的电路要素相互连接来描绘。例如,变量bb还被用作开闭其他梯形电路(未图示)的触点的变量。或者,变量aa是其他梯形电路(未图示)的线圈的输出值。通过这样的梯形电路的分层组合,能够记述控制装置200用于控制外部设备300的控制动作。
如图4的(b)所示,变量定义列表52是通过针对每个变量至少声明变量名和该变量的数据类型而创建的。数据类型从预先定义的“BOOL”、“REAL”以及“LREAL”等中选择性地设定。如利用图3所说明的那样,当创建源程序时,对于变量定义列表52中声明的各个变量,确保具有依照所选择的数据类型的容量的数据区域。
在此,假设通过图4的(a)的梯形电路220和图4的(b)的变量定义列表52构成源程序的情形时,变量aa和bb在梯形电路(源代码)中被使用,另一方面,变量cc虽然被声明,但在梯形电路内不使用。在该情形下,当创建该源程序时,在控制装置200的存储区域212中确保用于存储变量cc的区域。因此,通过从变量定义列表52中删除不使用的变量cc,能够释放控制装置200的存储区域。由此,无需确保不需要的存储区域,因此控制装置200的存储器使用效率提高。
另一方面,即使在梯形电路、即源程序内不使用,也有可能存在经由网络NW1、NW2从外部设备300访问的变量。因此,当在源程序内提取不使用的变量并自动地从变量定义列表52中删除时,上述那样的变量被删除,由此有可能对外部设备300侧造成影响。
<从外部设备的访问>
接着,使用图5,对从外部设备300向控制装置200的访问方式进行说明。
如图5所示,通过构建由开发辅助装置100创建或编辑的源程序,在控制装置200中也创建与变量定义列表52对应的变量列表203。即,变量列表203包含在变量定义列表52中声明的变量。在图5的例子中,假设在变量定义列表52和变量列表203所定义的变量中包含变量OPT1~OPT4。
在通过网络NW2与控制装置200连接的器件300A中,当执行控制程序时,通过该网络的恒定周期通信定期读出的变量由订阅设定305A确定。在图5的例子中,器件300A通过恒定周期通信,按照订阅设定305A访问变量OPT1、OPT2,从控制装置200取得该变量的值。变量OPT1、OPT2的值在设备301A中用于状态量的监视等。
控制装置200在控制程序的执行时,存储来自器件300A~300C的访问历史作为访问信息201。因此,基于访问信息201,能够确定从器件300A访问控制装置200的变量(在此为OPT1、OPT2)。
在通过网络NW1与控制装置200连接的器件300B中,创建有规定从控制装置200读出的变量与器件300B内的变量的对应关系(链接)的数据链接设定305B。
在图5的例子中,按照数据链接设定305B,器件300B访问控制装置200的变量OPT2、OPT3,取得该变量的值。变量OPT2、OPT3的值在设备301B中能够与上述同样地使用。
在控制装置200中,与数据链接设定305B对应地创建表示变量OPT2、OPT3是访问对象的连接设定信息202。
设想器件300C与开发辅助装置100之间协议相同。因此,器件300C能够通过网络NW1经由控制装置200或者直接与开发辅助装置100之间收发数据。例如,器件300C访问在变量映射305C中预先确定的变量OPT1、OPT3,从控制装置200取得该变量的值。例如,器件300C是显示器等HMI设备。变量OPT1、OPT3的值用于该显示器上的显示。
开发辅助装置100能够按照连接设定信息202和变量映射305C分别确定从与网络NW1连接的器件300B和300C访问的变量。
因此,开发辅助装置100能够判断为变量定义列表52和变量列表203所包含的变量OPT1~OPT4中的变量OPT1~OPT3在外部设备300中使用,另一方面,变量OPT4在外部设备300中不使用。即,关于变量OPT4,如果在源程序中不使用,则能够判断为即使删除也不会对外部设备300侧造成影响。
另外,关于从器件300B和器件300C访问的变量,也能够基于控制装置200中的访问信息201来确定,但能够按照连接设定信息202和变量映射305C来简便地取得确定该变量的信息。
<关于本实施方式的不需要变量删除处理>
图6中示出了说明由本实施方式的开发辅助装置进行不需要变量删除处理用的结构的框图。
开发辅助装置100包含提取部55、取得部56、判定部57、用户界面部58和变量删除部59。例如,通过开发辅助装置100的处理器102执行开发辅助程序50,取得部56、判定部57、用户界面部58以及变量删除部59分别作为该程序的功能的一部分来实现。用户界面部58包括图2所示的I/O接口114和显示接口117。
在对操作部115输入不需要变量删除处理的启动指示时,用户界面部58开始不需要变量删除处理。例如,通过对显示于显示部118的菜单画面的选择输入,用户能够输入不需要变量删除处理的启动指示。用于该启动指示的操作对应于“第1操作”。
当不需要变量删除处理开始时,提取部55对照源代码51和变量定义列表52,提取未被源代码51使用的不使用变量V1。例如,在图4的例子中,提取变量cc作为不使用变量V1。不使用变量V1对应于“第1变量”,变量定义列表52对应于“第1列表”或“列表”的一个实施例。
此外,在图6中,考虑与图5的关联性,设想提取图5所示的变量OPT1~OPT4作为不使用变量V1的例子。
如在图5中说明的那样,取得部56从控制装置200取得访问信息201和连接设定信息202。进而,取得部56从器件300C直接或经由控制装置200来取得器件300C的变量映射305C。访问信息201、连接设定信息202以及变量映射305C相当于用于确定在外部设备300(控制对象)中使用的器件使用变量V2的信息的一个实施例。在图5的例子中,可理解根据该信息,能够将变量OPT1~OPT3确定为器件使用变量V2。即,器件使用变量V2对应于“第2变量”,连接设定信息202以及变量映射305C对应于“第2列表”的一个实施例。
判定部57基于由提取部55提取出的不使用变量V1、和根据由取得部56取得的信息确定的器件使用变量V2,将不使用变量V1中的不相当于器件使用变量V2的变量判定为来自控制程序210的可删除变量V3。在图5的例子中,能够提取变量OPT4作为可删除变量V3。
用户界面部58使用显示部118向用户通知可删除变量V3,并且要求确认是否可以执行该可删除变量V3的删除。针对“删除这些变量吗?”的显示,能够将用于点击“是”或“否”的字符和图形输出到显示部118。
用户界面部58在通过对上述显示点击“是”而输入用户的删除指示时,对变量删除部59生成自动删除指示。用于该删除指示的操作对应于“第2操作”。
当输入该自动删除指示时,变量删除部59从变量定义列表52所包含的变量中删除可删除变量V3。由此,变量定义列表52被更新为可删除变量V3被删除的内容。
其结果,根据本实施方式的开发辅助装置100,能够将器件使用变量V2排除而自动判定来自变量定义列表52的可删除变量V3。此外,可以将变量定义列表52更新为自动判定出的可删除变量V3被删除的内容。
另外,当变量定义列表52的更新完成时,用户界面部58能够使用显示部118等对用户输出表示不需要变量删除处理已结束的消息。并且,也可以将促使重新构建源程序(源代码)的消息一并输出给用户。
图7示出了由本实施方式的开发辅助装置进行的不需要变量删除处理的流程图。图7所示的各步骤的处理代表性地能够通过开发辅助装置100的处理器102执行开发辅助程序50的软件处理来实现。
开发辅助装置100在步骤S110中判定是否从用户输入了不需要变量删除处理的启动指示。在未输入用户指示时(S110的“否”判定时),等待步骤S120以后的处理。
当由用户指示了不需要变量删除处理的启动时(S110的“是”判定时),处理前进至步骤S120。开发辅助装置100在步骤S120中判定在开发辅助装置100和控制装置200之间是否取得了控制程序的同步。在取得了同步的状态(S120的“是”判定时)下,能够确认是源程序的变量定义列表52所包含的变量与控制装置200的变量列表203所包含的变量一致的状态。
另一方面,开发辅助装置100在未取得同步的情况下(S120的“否”判定时),在通过步骤S130执行了同步处理后,再次执行步骤S120的判定。这样,在确认出在变量定义列表52和变量列表203之间变量一致的状态后,执行步骤S140以后的处理。
开发辅助装置100在步骤S140中,通过与图6的提取部55同样的处理,提取未被源代码51使用的不使用变量V1。进而,开发辅助装置100在步骤S150中,通过与图6的取得部56同样的处理,取得用于确定在外部设备300(控制对象)中使用的器件使用变量V2的信息,具体而言,取得图5中的访问信息201、连接设定信息202以及变量映射305C。步骤S140和S150可以并行处理,也可以与图7相反地,在步骤S140之前执行步骤S150。
开发辅助装置100接着步骤S140及步骤S150,通过步骤S160,通过与图6的判定部57同样的处理,通过不使用变量V1(S140)和器件使用变量V2(S150)的对照,针对各个不使用变量V1,判定是可删除不可删除中的哪一个。由此,在步骤S170中,能够与图6的判定部57同样地提取可删除变量V3。
开发辅助装置100在步骤S180中,与图6所示的变量删除部59同样地,从变量定义列表52所包含的变量中删除可删除变量V3。
根据图7所示的控制处理,通过响应于用户启动指示而启动不需要变量删除处理,能够将变量定义列表52更新为自动判定出的可删除变量V3被删除的内容。
或者,如图8所示,开发辅助装置100也可以除了图7的控制处理之外,还执行用于在图6中说明的用户界面处理的步骤S172、S175、S185。
开发辅助装置100在步骤S170的可删除变量V3的提取完成时,通过S172,使用显示部118向用户通知可删除变量V3,并且要求确认是否可以执行该可删除变量V3的删除。
进而,开发辅助装置100通过步骤S175,判定针对步骤S172的确认的用户指示。在从用户输入了删除指示的情况下,例如,在对步骤S170的“删除这些变量吗?”的显示点击了“是”的情况下,步骤S175判定为“是”,处理进入用于删除可删除变量V3的步骤S180。
另一方面,在对上述显示点击了“否”的情况下,步骤S175判定为“否”,因此跳过步骤S180,结束不需要变量删除处理。在该情况下,不删除可删除变量V3,变量定义列表52被维持成不需要变量删除处理的启动前的内容。
当通过步骤S180更新了变量定义列表52时,开发辅助装置100通过步骤S185对用户输出表示不需要变量删除处理已结束的消息。此外,在执行了步骤S180的变量删除的情况下,在步骤S185中,也可以进一步输出催促用于反映更新后的变量定义列表52的源程序的重新构建的消息。
如以上所说明那样,根据本公开,通过源程序内的不利用变量(V1)的提取、以及控制程序执行时的从外部设备300(控制对象)访问的变量(V2)的确定,能够适当地提取在控制程序内可删除的不需要的变量。
<附记>
如上所述的本实施方式和变形例包含以下这样的技术思想。
[结构1]
一种开发辅助装置(100),其用于辅助对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的开发,其中,该开发辅助装置(100)具有:
存储部(104、120),其存储所述控制程序的源代码(51)、和声明在该源代码中使用的多个变量的第1列表(52);
提取部(55),其从所述第1列表内的所述多个变量中,提取在所述源代码中不使用的第1变量(V1);
取得部(56),其在所述控制程序的执行状态下,取得用于确定所述多个变量中的、所述控制对象所使用的第2变量(V2)的信息(201、202、305C);以及
判定部(57),其基于所述提取部的提取结果和由所述信息取得部取得的所述信息,判定为能够从所述第1列表中删除所述第1变量中的不相当于所述第2变量的第3变量(V3)。
[结构2]
在结构1所记载的开发辅助装置中,
所述控制对象(300)构成为通过网络与所述控制装置(200)连接,并且在所述控制程序的执行中,从所述控制装置读出预先创建的第2列表(202、305C)所示的变量,
所述取得部(56)从所述控制对象直接取得确定所述第2列表所示的变量的信息,或经由所述控制装置从所述控制对象取得确定所述第2列表所示的变量的信息。
[结构3]
在结构1所记载的开发辅助装置中,
所述控制对象(300)构成为通过网络(NW1)与所述控制装置(200)连接,并且在所述控制程序的执行中经由该网络来访问所述控制对象而读出所述多个变量中的一部分变量,
所述控制装置将在所述控制程序的执行中从所述控制对象读出的变量名保持为访问信息(201),
所述取得部(56)在所述控制程序的执行时从所述控制装置取得所述访问信息作为所述信息。
[结构4]
在结构1~3中的任意一项所记载的开发辅助装置中,
该开发辅助装置还具有从所述第1列表(52)中删除所述第3变量(V3)的变量删除部(59)。
[结构5]
在结构4所记载的开发辅助装置中,
该开发辅助装置还具有用于输入用户的操作的界面部(58),
所述提取部(55)、所述取得部(56)以及所述判定部(57)根据针对界面部的、启动不需要变量的删除处理的第1操作的输入而进行动作,
所述界面部输出要求所述用户是否从所述第1列表(52)中删除由所述判定部提取出的所述第3变量(V3)的消息,
所述变量删除部(59)根据针对所述界面部的、与所述消息对应的指示所述第3变量的删除的第2操作的输入而进行动作。
[结构6]
在结构5所记载的开发辅助装置中,
当输入了所述第1操作时,在所述控制装置(200)和所述开发辅助装置(100)之间确保了所述控制程序(210)的同步后,使所述提取部(55)、所述取得部(56)以及所述判定部(57)进行动作。
[结构7]
一种开发辅助方法,其是对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的、由计算机执行的开发辅助方法,其中,该开发辅助方法具有:
步骤(S140),从声明在所述控制程序的源代码(51)中使用的多个变量的列表(52)中,提取在所述源代码中不使用的第1变量(V1);
步骤(S150),在所述控制程序的执行状态下,取得用于确定所述多个变量中的、所述控制对象所使用的第2变量(V2)的信息(201、202、305C);以及
步骤(S160、S170),基于进行所述提取的步骤中的提取结果和在进行所述取得的步骤中取得的所述信息,判定为能够从所述列表中删除所述第1变量中的不相当于所述第2变量的第3变量(V3)。
[结构8]
一种开发辅助程序,其是对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的开发辅助程序(50),其中,
所述开发辅助程序使计算机执行以下步骤:
步骤(S140),从声明在所述控制程序的源代码(51)中使用的多个变量的列表(52)中,提取在所述源代码中不使用的第1变量(V1);
步骤,在所述控制程序的执行状态下,取得用于确定所述多个变量中的、所述控制对象所使用的第2变量(V2)的信息(201、202、305C);以及
步骤(S160、S170),基于进行所述提取的步骤中的提取结果和在进行所述取得的步骤中取得的所述信息,判定为能够从所述列表中删除所述第1变量中的不相当于所述第2变量的第3变量(V3)。
应认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范围不是由上述说明表示,而是由权利要求书示出,意在包含与权利要求书等同的意思以及范围内的全部变更。
标号说明
10:FA系统;50:开发辅助程序;51:源代码;52:变量定义列表;55:提取部;56:取得部;57:判定部;58:用户界面部;59:变量删除部;100:开发辅助装置;102:处理器;104:主存储器;111:通信接口;114:I/O接口;115:操作部;117:显示接口;118:显示部;120:存储装置;125:内部总线;200:控制装置;201:访问信息;202:连接设定信息;233:变量列表;210:控制程序;210s:源程序;211:执行代码;212:存储区域;220:梯形电路;221:输入侧母线;222:输出侧母线;224:触点;226:线圈;227:连接线;250:网络接口;300:外部设备;300A~300C:器件;301A~301C:设备;305A:订阅设定;305B:数据链接设定;305C:变量映射;NW1、NW2:网络;OPT1~OPT4、aa、bb、cc:变量。

Claims (8)

1.一种开发辅助装置,其用于辅助对控制对象进行控制的控制装置用的控制程序的开发,其中,该开发辅助装置具有:
存储部,其存储所述控制程序的源代码、和声明在该源代码中使用的多个变量的第1列表;
提取部,其从所述第1列表内的所述多个变量中,提取在所述源代码中不使用的第1变量;
取得部,其在所述控制程序的执行状态下,取得用于确定所述多个变量中的、所述控制对象所使用的第2变量的信息;以及
判定部,其基于所述提取部的提取结果和由所述取得部取得的所述信息,判定为能够从所述第1列表中删除所述第1变量中的不相当于所述第2变量的第3变量。
2.根据权利要求1所述的开发辅助装置,其中,
所述控制对象构成为通过网络与所述控制装置连接,并且在所述控制程序的执行中,从所述控制装置读出预先创建的第2列表所示的变量,
所述取得部从所述控制对象直接取得确定所述第2列表所示的变量的信息,或经由所述控制装置从所述控制对象取得确定所述第2列表所示的变量的信息。
3.根据权利要求1所述的开发辅助装置,其中,
所述控制对象构成为通过网络与所述控制装置连接,并且在所述控制程序的执行中经由该网络来访问所述控制对象而读出所述多个变量中的一部分变量,
所述控制装置将在所述控制程序的执行中从所述控制对象读出的变量名保持为访问信息,
所述取得部在所述控制程序的执行时从所述控制装置取得所述访问信息作为所述信息。
4.根据权利要求1~3中的任意一项所述的开发辅助装置,其中,
该开发辅助装置还具有从所述第1列表中删除所述第3变量的变量删除部。
5.根据权利要求4所述的开发辅助装置,其中,
该开发辅助装置还具有用于输入用户的操作的界面部,
所述提取部、所述取得部以及所述判定部根据针对所述界面部的、启动不需要变量的删除处理的第1操作的输入而进行动作,
所述界面部输出要求所述用户是否从所述第1列表中删除由所述判定部提取出的所述第3变量的消息,
所述变量删除部根据针对所述界面部的、与所述消息对应的指示所述第3变量的删除的第2操作的输入而进行动作。
6.根据权利要求5所述的开发辅助装置,其中,
当输入了所述第1操作时,在所述控制装置和所述开发辅助装置之间确保了所述控制程序的同步后,使所述提取部、所述取得部以及所述判定部进行动作。
7.一种开发辅助方法,其是对控制对象进行控制的控制装置用的控制程序的、由计算机执行的开发辅助方法,其中,该开发辅助方法具有以下步骤:
从声明在控制程序的源代码中使用的多个变量的列表中,提取在所述源代码中不使用的第1变量;
在所述控制程序的执行状态下,取得用于确定所述多个变量中的、所述控制对象所使用的第2变量的信息;以及
基于进行所述提取的步骤中的提取结果和在进行所述取得的步骤中取得的所述信息,判定为能够从所述列表中删除所述第1变量中的不相当于所述第2变量的第3变量。
8.一种开发辅助程序,其是对控制对象进行控制的控制装置用的控制程序的开发辅助程序,其中,
所述开发辅助程序使计算机执行以下步骤:
从声明在控制程序的源代码中使用的多个变量的列表中,提取在所述源代码中不使用的第1变量;
在所述控制程序的执行状态下,取得用于确定所述多个变量中的、所述控制对象所使用的第2变量的信息;以及
基于进行所述提取的步骤中的提取结果和在进行所述取得的步骤中取得的所述信息,判定为能够从所述列表中删除所述第1变量中的不相当于所述第2变量的第3变量。
CN202180094743.8A 2021-03-11 2021-09-21 开发辅助装置、开发辅助方法以及开发辅助程序 Pending CN116917818A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021-039322 2021-03-11
JP2021039322A JP2022139087A (ja) 2021-03-11 2021-03-11 開発支援装置、開発支援方法、及び、開発支援プログラム
PCT/JP2021/034614 WO2022190428A1 (ja) 2021-03-11 2021-09-21 開発支援装置、開発支援方法、及び、開発支援プログラム

Publications (1)

Publication Number Publication Date
CN116917818A true CN116917818A (zh) 2023-10-20

Family

ID=83227814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180094743.8A Pending CN116917818A (zh) 2021-03-11 2021-09-21 开发辅助装置、开发辅助方法以及开发辅助程序

Country Status (5)

Country Link
US (1) US20240143287A1 (zh)
EP (1) EP4307060A1 (zh)
JP (1) JP2022139087A (zh)
CN (1) CN116917818A (zh)
WO (1) WO2022190428A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07239788A (ja) * 1994-02-28 1995-09-12 Hokuriku Nippon Denki Software Kk 不要変数型宣言チェック機能付きコンパイラ
US7024463B1 (en) * 1999-10-15 2006-04-04 Omron Corporation Network system, control method, control apparatus, and multiprocessor
JP2002062910A (ja) * 2000-08-22 2002-02-28 Digital Electronics Corp エディタ装置およびエディタプログラムを記録した記録媒体
JP4379687B2 (ja) * 2003-07-25 2009-12-09 オムロン株式会社 シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品
JP4420210B2 (ja) 2004-06-08 2010-02-24 オムロン株式会社 プログラム開発支援装置および処理方法
JP2012118715A (ja) * 2010-11-30 2012-06-21 Fuji Electric Co Ltd Plcシステム、その開発支援装置、プログラム
JP6551565B2 (ja) * 2017-06-02 2019-07-31 オムロン株式会社 工程解析装置、工程解析方法、及び工程解析プログラム
JP7047700B2 (ja) * 2018-10-16 2022-04-05 オムロン株式会社 制御システム、制御装置、端末装置、及びプログラム

Also Published As

Publication number Publication date
WO2022190428A1 (ja) 2022-09-15
US20240143287A1 (en) 2024-05-02
JP2022139087A (ja) 2022-09-26
EP4307060A1 (en) 2024-01-17

Similar Documents

Publication Publication Date Title
EP2889707B1 (en) Control device and communication control method
CN112602025A (zh) 工业控制器的数字孪生的自动设置
CN108563579B (zh) 白盒测试方法、装置、系统及存储介质
JP2006268836A (ja) パラメータ設定装置
CN111417907A (zh) 创建和管理智能可编程逻辑控制器解决方案的方法和装置
JPWO2015136970A1 (ja) 制御装置及び制御システム
CN114237676A (zh) 一种fpga逻辑更新方法、装置、设备及可读存储介质
JP2007095107A (ja) パラメータ設定装置
CN111984248A (zh) 页面编辑方法和装置、存储介质及电子装置
CN115129574A (zh) 一种代码测试方法和装置
CN112639636B (zh) 开发支援装置、开发支援方法以及存储介质
CN111052010B (zh) 控制系统、开发辅助装置和存储介质
CN116917818A (zh) 开发辅助装置、开发辅助方法以及开发辅助程序
CN116888544A (zh) 开发辅助装置、开发辅助方法以及开发辅助程序
CN112685051A (zh) 自动执行shell脚本的方法、装置、平台及存储介质
KR20220108967A (ko) 외부 전자 장치를 제어하기 위한 어플리케이션을 생성하는 방법 및 이를 지원하는 전자 장치
JP6680313B2 (ja) 制御装置および通信制御方法
WO2022190417A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
CN113254018B (zh) 网页视图的自动化操作方法及装置
WO2020026738A1 (ja) サポート装置およびサポートプログラム
US10782982B2 (en) Information processing apparatus and system, and method and recording medium for generating user interface
JP2007172128A (ja) I/oシミュレータ装置
CN115952376A (zh) 一种网页访问方法、装置、电子设备及存储介质
JP2018088277A (ja) 制御装置および通信制御方法
JP6357769B2 (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