1.本公开涉及用于辅助对控制对象进行控制的控制装置用的控制程序的开发的技术。
背景技术:
2.在以fa(factory automation:工厂自动化)系统为代表的各种制造现场,导入有plc(programmable logic controller:可编程逻辑控制器)等控制装置。这样的控制装置是一种计算机,通过执行根据制造装置、制造设备等控制对象而设计的控制程序,能够对该控制对象进行控制。通常,控制程序使用与控制器分开准备的开发辅助装置来创建。
3.这样的控制程序一般使用预先声明的变量来记述。例如,在日本特开2005-352612号公报(专利文献1)中,公开了能够通过提高变量的检索性来提高控制程序的开发效率的程序开发辅助装置。在专利文献1的程序开发辅助装置中,在输入了针对规定命令的操作数的情况下,根据关键字(字符串)的指定,进行仅一览显示包含该字符串的变量名的变量的筛选,由此提高变量的检索性。
4.现有技术文献
5.专利文献
6.专利文献1:日本特开2005-352612号公报
技术实现要素:
7.发明要解决的课题
8.在上述的控制程序的源程序中,设置有用于声明变量的定义列表,在该定义列表中声明的变量能够在源代码内使用。
9.另一方面,在变更或编辑该控制程序时,在源代码内删除的变量也残留在定义列表内的情况下,在执行控制程序时确保与该变量对应的存储区域。因此,从高效地使用控制装置的存储区域的观点出发,优选从定义列表中删除不需要的变量。
10.另一方面,在执行控制程序时,在控制装置和控制对象之间构建网络来对控制对象进行控制,因此当要删除所需的变量时,有可能对控制对象造成影响。
11.本公开是为了解决上述那样的问题点而完成的,某个方面的目的在于提供一种开发辅助装置,能够抑制由于在对控制对象进行控制的控制装置用的控制程序内删除不使用变量而对控制对象侧造成影响。另一方面的目的在于提供一种开发辅助方法,能够抑制由于在控制程序内删除不使用变量而对控制对象侧造成影响。又一方面的目的在于提供一种开发辅助程序,能够抑制由于在控制程序内删除不使用变量而对控制对象侧造成影响。
12.用于解决课题的手段
13.根据本公开的一例,提供一种开发辅助装置,其用于辅助对控制对象进行控制的控制装置用的控制程序的开发。开发辅助装置具有存储部、提取部、取得部以及判定部。存储部存储控制程序的源代码、和声明在该源代码中使用的多个变量的第1列表。提取部从第
1列表内的多个变量中,提取在源代码中不使用的第1变量。取得部在控制程序的执行前的状态下,取得用于确定多个变量中的第2变量的信息,所述第2变量具有在控制对象和控制装置之间被收发的可能性。判定部在控制程序的执行前的状态下,基于提取部的提取结果、和由取得部取得的信息,判定为不能从第1列表中删除第1变量中的相当于第2变量的变量。
14.根据本公开,即便是控制程序的源代码中的不使用变量,对于具有在控制程序的执行时被控制对象使用的可能性的第2变量,开发辅助装置也能够设为不能从第1列表中删除。其结果,能够抑制控制程序内的不使用变量的删除对控制对象侧造成的影响。
15.在上述公开中,多个变量各自可以具有属性信息,所述属性信息定义该变量相对于包含控制对象和控制装置的网络的公开有无,取得部可以构成为取得属性信息作为用于确定第2变量的信息。判定部可以构成为将多个变量中的、通过属性信息指定了对网络公开的变量作为第2变量而判定为不能从第1列表中删除。
16.根据本公开,能够基于由各变量定义的属性信息,简便地取得确定第2变量的信息,所述第2变量具有在控制程序的执行时被控制对象使用的可能性。
17.在上述公开中,取得部可以构成为在控制程序的执行前的状态下,取得第2列表作为用于确定第2变量的信息,所述第2列表表示被指定为执行控制程序时的控制对象和该控制对象之间的收发对象的变量。
18.根据该公开,能够使用在控制程序的执行前的状态下创建的列表(第2列表),简便地取得确定控制对象所使用的第2变量的信息。
19.在上述公开中,取得部可以构成为取得由用户指定的一个或多个项目的第2列表作为信息。判定部可以构成为将多个变量中的、在至少任意一个项目中包含于第2列表的变量作为第2变量来执行判定。
20.根据本公开,在包含控制装置和控制对象的网络中应用多个项目时,用户能够选择应用不需要变量删除处理的项目的范围。
21.在上述公开中,判定部可以构成为在控制程序的执行前的状态下,基于提取部的提取结果和由取得部取得的信息,判定为能够从第1列表中删除第1变量中的不相当于第2变量的第3变量。
22.根据该公开,能够从控制程序的源代码中的不使用变量中,将具有在控制程序的执行时被控制对象使用的可能性的第2变量排除,来判定能够从第1列表中删除的变量。
23.在上述公开中,开发辅助装置可以构成为还具有从第1列表中删除第3变量的变量删除部。
24.根据该公开,能够将第1列表自动更新为由判定部判定为可删除的第3变量已被删除的内容。
25.在上述公开中,开发辅助装置可以构成为还具有用于输入用户的操作的界面部。提取部、取得部以及判定部可以构成为根据针对界面部的、启动不需要变量的删除处理的第1操作的输入而进行动作。界面部可以构成为输出要求用户是否从第1列表中删除由判定部提取出的第3变量的消息。变量删除部可以构成为根据针对界面部的、与消息对应的指示第3变量的删除的第2操作的输入而进行动作。
26.根据该公开,在根据用户操作而启动的不需要变量的删除处理中,能够在由用户进行确认后,从第1列表中删除由判定部判定为可删除的第3变量。
27.根据本公开的另一例,提供一种由计算机执行的、对控制对象进行控制的控制装置用的控制程序的开发辅助方法。开发辅助方法具有以下步骤:从声明在控制程序的源代码中使用的多个变量的列表中,提取在源代码中不使用的第1变量;在控制程序的执行前的状态下,取得用于确定多个变量中的第2变量的信息,所述第2变量具有在控制对象和控制装置之间被收发的可能性;以及在控制程序的执行前的状态下,基于进行提取的步骤中的提取结果和在进行取得的步骤中取得的信息,判定为不能从列表中删除第1变量中的相当于第2变量的变量。
28.根据本公开的又一例,提供一种对控制对象进行控制的控制装置用的控制程序的开发辅助程序。开发辅助程序使计算机执行以下步骤:从声明在控制程序的源代码中使用的多个变量的列表中,提取在源代码中不使用的第1变量;在控制程序的执行前的状态下,取得用于确定多个变量中的第2变量的信息,所述第2变量具有在控制对象和控制装置之间被收发的可能性;以及在控制程序的执行前的状态下,基于进行提取的步骤中的提取结果和在进行取得的步骤中取得的信息,判定为不能从列表中删除第1变量中的相当于第2变量的变量。
29.根据本公开,即便是控制程序的源代码中的不使用变量,对于具有在控制程序的执行时被控制对象使用的可能性的第2变量,开发辅助方法和开发辅助程序也能够设为不能从列表中删除。其结果,能够抑制控制程序内的不使用变量的删除对控制对象侧的影响。
30.发明的效果
31.根据本公开,能够抑制对控制对象进行控制的控制装置用的控制程序内的不使用变量的删除对控制对象侧的影响。
附图说明
32.图1是表示应用本实施方式的开发辅助装置的fa系统的结构例的概略图。
33.图2是表示开发辅助装置的硬件结构的一例的示意图。
34.图3是说明控制程序的运用的概念图。
35.图4是说明控制程序的一例的概念图。
36.图5是说明由本实施方式的开发辅助装置进行的不需要变量删除处理的第1例的结构的框图。
37.图6是说明由本实施方式的开发辅助装置进行的不需要变量删除处理的第1例的流程图。
38.图7是说明图6的不需要变量删除处理的变形例的流程图。
39.图8是说明从外部设备向控制装置的访问方式的概略图。
40.图9是说明应用不需要变量删除处理的第2例的控制程序的运用的概念图。
41.图10是说明由本实施方式的开发辅助装置进行的不需要变量删除处理的第2例的结构的框图。
42.图11是说明由本实施方式的开发辅助装置进行的不需要变量删除处理的第2例的流程图。
具体实施方式
43.以下,参照附图说明本发明的各实施方式。在以下的说明中,对相同的部件和结构要素标注相同标号。它们的名称和功能也相同。因此,原则上不重复对它们的详细说明。
44.《应用例》
45.图1是表示应用本实施方式的开发辅助装置的fa系统10的结构的一例的概略图。首先,参照图1对fa系统10的系统结构进行说明。
46.fa系统10具有一个以上的开发辅助装置100、一个以上的控制装置(控制器)200以及由控制装置200控制的外部设备300。
47.开发辅助装置100例如是笔记本型或台式的pc(personal computer:个人计算机)、平板终端、智能手机或其他信息处理装置。
48.在开发辅助装置100中安装有开发辅助程序50。开发辅助程序50是用于辅助控制装置200用的控制程序210的开发的应用。开发辅助程序50例如是欧姆龙公司创建的“sysmac studio”。用户能够在开发辅助程序50上设计控制装置200用的控制程序,并将所设计的控制程序210下载到控制器。或者,开发辅助装置100还能够从控制装置200上传数据等。
49.控制装置200以及外部设备300与能够连接开发辅助装置100的网络nw1连接。网络nw1采用ethernet(注册商标)等。控制装置200例如由plc构成。
50.控制装置200以及外部设备300与网络nw2连接。网络nw2优选采用保证数据的到达时间的、进行恒定周期通信的现场网络。作为这样的进行恒定周期通信的现场网络,公知有opc ua(注册商标)等。
51.外部设备300由用于使生产工序自动化的各种工业用设备、各种传感器类以及hmi(human machine interface:人机界面)设备等构成。外部设备300包含与网络nw1或mmw2连接的器件300a~300c和设备301a~301c。设备301a~301c通过器件300a~300c并经由网络nw1、nw2与控制装置200通信连接。由此,能够通过由控制装置200执行的控制程序控制设备301a~301c。即,外部设备300对应于由控制程序控制的“控制对象”。
52.在图1的例子中,与设备301a连接的器件300a与应用了opc ua的网络nw2连接。另外,与设备301b连接的器件300b以及与设备301c连接的器件300c与应用了ethernett的网络nw1连接。
53.《开发辅助装置的结构》
54.图2示出表示开发辅助装置100的硬件结构的一例的示意图。
55.作为一例,开发辅助装置100由基于通用的计算机架构而构成的计算机构成。开发辅助装置100包含cpu(central processing unit:中央处理单元)或mpu(micro-processing unit:微处理单元)等处理器102、主存储器104、通信接口111、i/o(input/output:输入输出)接口114、显示接口117、非易失性的存储装置120。这些组件经由内部总线125以能够相互进行通信的方式连接。
56.处理器102通过将存储装置120中存储的开发辅助程序50在主存储器104中展开并执行,来启动控制程序210(参照图1)的开发工具。存储装置120除了开发辅助程序50以外,还存储各种数据和程序60。控制程序210的源程序存储在主存储器104或存储装置120中。即,主存储器104和存储装置120对应于“存储部”的一个实施例。
57.通信接口111经由网络与其他通信设备之间交换数据。该其他通信设备例如包含图1所示的控制装置200和外部设备300以及未图示的服务器等。开发辅助装置100也可以构成为能够经由通信接口111从该其他通信设备下载开发辅助程序50等各种程序。
58.i/o接口114与操作部115连接,取得来自操作部115的表示用户操作的信号。操作部115典型地由键盘、鼠标、触摸面板、触控板等构成,受理来自用户的操作。操作部115可以与开发辅助装置100一体地构成,也可以与开发辅助装置100分开构成。
59.显示接口117与显示部118连接,按照来自处理器102等的指令,对显示部118发送用于显示图像的图像信号。显示部118由lcd(liquid crystal display:液晶显示器)、有机el(electro luminescence:电致发光)显示器等构成,对用户提示各种信息。显示部118可以与开发辅助装置100一体地构成,也可以与开发辅助装置100分开构成。
60.此外,在图2中,示出了通过cpu等处理器102执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如,asic(application specific integrated circuit:专用集成电路)或者fpga(field-programmable gate array:现场可编程门阵列)等)来安装这些所提供的功能的一部分或者全部。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个os,并且在各os上执行所需的应用。另外,在上述的说明中,例示了开发辅助装置100执行全部处理的方式,但不限于此,也可以是多个装置协作地提供上述那样的功能。进而,也可以利用服务器上的被称为所谓云的计算资源来实现一部分或者全部的功能。
61.《控制程序》
62.接着,对控制程序进行说明。
63.图3表示说明控制程序的运用的概念图。
64.在开发辅助装置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)来记述源程序的情况进行说明。
65.在开发辅助装置100中,通过构建源程序210s,创建控制程序210的执行代码211,并下载到控制装置200。此时,在控制装置200中,为了用于控制程序210,确保用于存储变量定义列表52中声明的变量的存储区域212。
66.器件300a~300c通过经由网络接口250的网络nw1或nw2的数据通信,能够访问存储区域212的变量。例如,在图3的例子中,从外部设备300(器件300a~300c)访问存储在标有斜线的区域中的变量。或者相反地,也能够从器件300a~300c侧对控制装置200(存储区域212)输入数据。
67.图4中示出对控制程序的一例进行说明的概念图。在图4的(a)中示出通过作为控制程序的一例的梯形程序记述的梯形电路的一例。在图4的(b)示出利用图3说明的变量定义列表的一例。
68.如图4的(a)所示,梯形程序通过在输入侧母线221与输出侧母线222之间将使用了
电路要素和连接线的逻辑电路描绘为梯子状的梯形电路220来表现。
69.在图4的(a)的例子中,梯形电路220包含根据变量aa的值而接通/断开的触点224、以及将接通/断开结果作为变量bb输出的线圈226。梯形电路通过用连接线227将触点224和线圈226这样的电路要素相互连接来描绘。例如,变量bb还被用作开闭其他梯形电路(未图示)的触点的变量。或者,变量aa是其他梯形电路(未图示)的线圈的输出值。通过这样的梯形电路的分层组合,能够记述控制装置200用于控制外部设备300的控制动作。
70.如图4的(b)所示,变量定义列表52是通过针对每个变量至少声明变量名和该变量的数据类型而创建的。数据类型从预先定义的“bool”、“real”以及“lreal”等中选择性地设定。如利用图3所说明的那样,当创建源程序时,对于变量定义列表52中声明的各个变量,确保具有依照所选择的数据类型的容量的数据区域。
71.而且,在本实施方式的开发辅助装置中,各变量具有网络属性信息53。网络属性信息53是定义从控制装置200相对于网络nw1、nw2的该变量值的输入输出有无的信息。网络属性信息53在器件300a~300b经由网络nw1、nw2从控制装置200读出的变量中被声明为“输出”。相反,在从器件300a~300b经由网络nw1、nw2输入到控制装置200的变量中,网络属性信息53被声明为“输入”。与此相对,在从控制装置200相对于网络nw1、nw2既不进行“输入”也不进行“输出”的变量中,网络属性信息53被声明为“非公开”。这样,在变量定义列表52中,关于各变量的网络属性信息53,声明“输出”、“输入”以及“非公开”中的任意一个。
72.在此,假设通过图4的(a)的梯形电路220和图4的(b)的变量定义列表52构成源程序的情形时,变量aa和bb在梯形电路(源代码)中被使用,另一方面,变量cc虽然被声明,但在梯形电路内不使用。在该情形下,当创建该源程序时,在控制装置200的存储区域212中确保用于存储变量cc的区域。因此,通过从变量定义列表52中删除不使用的变量cc,能够释放控制装置200的存储区域。由此,无需确保不需要的存储区域,因此控制装置200的存储器使用效率提高。
73.另一方面,即使在梯形电路、即源程序内不使用,也有可能存在从外部设备300对控制装置200进行访问的变量。因此,当在源程序内提取不使用的变量并自动地从变量定义列表52中删除时,上述那样的变量被删除,由此有可能对外部设备300侧造成影响。
74.《本实施方式的不需要变量删除处理的第1例》
75.图5中示出了说明由本实施方式的开发辅助装置进行的不需要变量删除处理的第1例的结构的框图。
76.开发辅助装置100包含提取部55、取得部56、判定部57、用户界面部58和变量删除部59。例如,通过开发辅助装置100的处理器102执行开发辅助程序50,取得部56、判定部57、用户界面部58以及变量删除部59分别作为该程序的功能的一部分来实现。用户界面部58包括图2所示的i/o接口114和显示接口117。
77.在对操作部115输入不需要变量删除处理的启动指示时,用户界面部58开始不需要变量删除处理。例如,通过对显示于显示部118的菜单画面的选择输入,用户能够输入不需要变量删除处理的启动指示。用于该启动指示的操作对应于“第1操作”。
78.当不需要变量删除处理开始时,提取部55对照源代码51和变量定义列表52,提取未被源代码51使用的不使用变量v1。例如,在图4的例子中,提取变量cc作为不使用变量v1。不使用变量v1对应于“第1变量”,变量定义列表52对应于“第1列表”或“列表”的一个实施
例。
79.取得部56从变量定义列表52取得利用图4说明的网络属性信息53。基于网络属性信息53,能够将该属性不是“非公开”的变量、即声明了相对于网络的“输入”或“输出”的变量判断为在外部设备300中有使用可能性的变量。即,网络属性信息53相当于用于确定在控制程序210的执行时具有在控制装置200和外部设备300之间被收发的可能性的变量(以下,也称为“器件使用变量v2”)的信息的一个实施例。
80.判定部57基于由提取部55提取出的不使用变量v1、以及根据由取得部56所取得的信息确定的器件使用变量v2,对于不使用变量v1中的相当于器件使用变量v2的变量,判定为不能从变量定义列表52中删除。并且,判定部57将不使用变量v1中的不相当于器件使用变量v2的变量判定为来自控制程序210的可删除变量v3。
81.因此,仅将不使用变量v1中的、网络属性信息53被定义为“非公开”的变量判定为可删除变量v3,另一方面,将网络属性信息53被定义为“输入”或“输出”的变量判定为不能从变量定义列表52中删除。
82.用户界面部58使用显示部118向用户通知可删除变量v3,并且要求确认是否可以执行该可删除变量v3的删除。针对“删除这些变量吗?”的显示,能够将用于点击“是”或“否”的字符和图形输出到显示部118。
83.用户界面部58在通过对上述显示点击“是”而输入用户的删除指示时,对变量删除部59生成自动删除指示。用于该删除指示的操作对应于“第2操作”。
84.当输入该自动删除指示时,变量删除部59从变量定义列表52所包含的变量中删除可删除变量v3。由此,变量定义列表52被更新为可删除变量v3被删除的内容。
85.其结果,根据本实施方式的开发辅助装置100,能够在控制程序210的执行前的阶段,将具有在控制程序210的执行时在外部设备300(控制对象)中使用的可能性的变量排除,而自动地判定来自变量定义列表52的可删除变量v3。此外,可以将变量定义列表52更新为自动判定出的可删除变量v3被删除的内容。
86.另外,当变量定义列表52的更新完成时,用户界面部58能够使用显示部118等对用户输出表示不需要变量删除处理已结束的消息。并且,也可以将促使重新构建源程序(源代码)的消息一并输出给用户。
87.图6示出了由本实施方式的开发辅助装置进行的不需要变量删除处理的第1例的流程图。图6所示的各步骤的处理代表性地能够通过开发辅助装置100的处理器102执行开发辅助程序50的软件处理来实现。
88.开发辅助装置100在步骤s110中判定是否从用户输入了不需要变量删除处理的启动指示。在未输入用户指示时(s110的“否”判定时),等待步骤s120以后的处理。
89.当由用户指示了不需要变量删除处理的启动时(s110的“是”判定时),处理前进至步骤s120。开发辅助装置100在步骤s120中,通过与图5的提取部55同样的处理,提取未被源代码51使用的不使用变量v1。进而,开发辅助装置100在步骤s130中,通过与图6的取得部56同样的处理,取得不使用变量v1的网络属性信息53。
90.或者,在s130中,还能够取得变量定义列表52中包含的全部变量的网络属性信息53。在该情况下,步骤s120和s130可以并行处理,也可以与图6相反,在步骤s120之前执行步骤s130。
91.开发辅助装置100接着步骤s120和s130,通过步骤s140,针对各个不使用变量v1(s120),判定网络属性信息53是否为“非公开”。由此,不使用变量v1中的、网络属性信息53为“非公开”的变量通过步骤s150被判定为能删除,另一方面,网络属性信息53不是“非公开”的变量通过步骤s160被判定为不能删除。
92.开发辅助装置100根据步骤s140~s160中的判定,通过步骤s170,将在步骤s150中判定为能删除的变量设定为来自变量定义列表52的可删除变量v3。通过步骤s140~s170中的处理,能够与图5的判定部57同样地提取可删除变量v3。
93.开发辅助装置100在步骤s180中,与图5所示的变量删除部59同样地,从变量定义列表52所包含的变量中删除可删除变量v3。
94.根据图6所示的控制处理,通过响应于用户启动指示而启动不需要变量删除处理,能够将变量定义列表52更新为自动判定出的可删除变量v3被删除的内容。
95.或者,如图7所示,开发辅助装置100也可以除了图6的控制处理之外,还执行用于在图5中说明的用户界面处理的步骤s172、s175、s185。
96.开发辅助装置100在步骤s170的可删除变量v3的提取完成时,通过s172,使用显示部118向用户通知可删除变量v3,并且要求确认是否可以执行该可删除变量v3的删除。
97.进而,开发辅助装置100通过步骤s175,判定针对步骤s172的确认的用户指示。在从用户输入了删除指示的情况下,例如,在对步骤s170的“删除这些变量吗?”的显示点击了“是”的情况下,步骤s175判定为“是”,处理进入用于删除可删除变量v3的步骤s180。
98.另一方面,在对上述显示点击了“否”的情况下,步骤s175判定为“否”,因此跳过步骤s180,结束不需要变量删除处理。在该情况下,不删除可删除变量v3,并且变量定义列表52被维持成不需要变量删除处理的启动前的内容。
99.当通过步骤s180更新了变量定义列表52时,开发辅助装置100通过步骤s185对用户输出表示不需要变量删除处理已结束的消息。此外,在执行了步骤s180的变量删除的情况下,在步骤s185中,也可以进一步输出催促用于反映更新后的变量定义列表52的源程序的重新构建的消息。
100.《本实施方式的不需要变量删除处理的第2例》
101.接下来,将基于由源程序规定的控制装置200和外部设备300的链接设定的信息来判定不使用变量的能删除和不能删除的不需要变量删除处理作为第2例来进行说明。
102.首先,使用图8,对从外部设备300向控制装置200的访问方式进行说明。
103.通过构建由开发辅助装置100创建或编辑的源程序,在控制装置200中也创建与变量定义列表52对应的变量列表203。即,变量列表203包含在变量定义列表52中声明的变量。在图8的例子中,假设在变量定义列表52和变量列表203所定义的变量中包含变量opt1~opt4。
104.在通过网络nw2与控制装置200连接的器件300a中,当执行控制程序时,通过该网络的恒定周期通信定期读出的变量由订阅设定305a确定。在图8的例子中,器件300a通过恒定周期通信,按照订阅设定305a访问变量opt1、opt2,从控制装置200取得该变量的值。变量opt1、opt2的值在设备301a中用于状态量的监视等。
105.在通过网络nw1与控制装置200连接的器件300b中,创建有规定从控制装置200读出的变量与器件300b内的变量的对应关系(链接)的标签数据链接设定305b。
106.在图8的例子中,按照标签数据链接设定305b,器件300b访问控制装置200的变量opt2、opt3,取得该变量的值。变量opt2、opt3的值在设备301b中能够与上述同样地使用。
107.设想器件300c与开发辅助装置100之间协议相同。因此,器件300c能够通过网络nw1经由控制装置200或者直接与开发辅助装置100之间收发数据。例如,器件300c访问在变量映射305c中预先确定的变量opt1、opt3,从控制装置200取得该变量的值。例如,器件300c是显示器等hmi设备。变量opt1、opt3的值用于该显示器上的显示。
108.在图8的例子中,开发辅助装置100能够判断为变量定义列表52(即变量列表203)所包含的变量opt1~opt4中的变量opt1~opt3在外部设备300中使用,另一方面,变量opt4在外部设备300中不使用。即,关于变量opt4,如果在源程序中不使用,则能够判断为即使删除也不会对外部设备300侧造成影响。
109.图9中示出用于说明应用不需要变量删除处理的第2例的控制程序运用的概念图。
110.在图9中,源程序210s除了图3所示的源代码51和变量定义列表52以外,还包含链接设定列表54。在变量定义列表52中,可以不需要图4中说明的网络属性信息53。
111.链接设定列表54记述作为在图8中说明的订阅设定305a、标签数据链接设定305b以及变量映射305c的基础的、控制装置200和外部设备300(器件300a~300c)之间的变量的收发。
112.当创建源程序210s时,在控制程序210中按照链接设定列表54生成器件侧链接设定代码214。通过器件侧链接设定代码214,设定在订阅设定305a、标签数据链接设定305b以及变量映射305中规定的变量。由此,在执行控制程序210时,按照在链接设定列表54中记述的内容,从外部设备300访问在订阅设定305a、标签数据链接设定305b以及变量映射305中规定的变量。
113.因此,在源程序的阶段,链接设定列表54可用作用于确定器件使用变量v2的信息的一个实施例,器件使用变量v2是具有在控制程序210的执行时在控制装置200和外部设备300之间被收发的可能性的变量。即,链接设定列表54对应于“第2列表”的一个实施例。
114.图10中示出了说明由本实施方式的开发辅助装置进行的不需要变量删除处理的第2例的结构的框图。
115.图10的结构与图6相比,不同点在于,取得部56取得链接设定列表54来代替网络属性信息53。在公共网络(图8)中应用多个项目的情况下,能够基于对用户界面部58的用户选择输入来选择应用不需要变量删除处理的一个或多个项目。在该情况下,取得部56取得与用户选择的项目有关的链接设定列表54。
116.在图10所示的不需要变量删除处理的第2例中,除了用于确定器件使用变量v2的信息为链接设定列表54这一点以外,结构与图6相同。即,与不使用变量v1、器件使用变量v2以及可删除变量v3有关的提取部55、判定部57、用户界面部58以及变量删除部59中的处理与图6所示的不需要变量删除处理的第1例相同。
117.在此,设想由提取部55提取图8所示的变量opt1~opt4作为不使用变量v1的例子。可以理解为,判定部57能够使用链接设定列表54,在图8的例子中将变量opt1~opt3确定为器件使用变量v2。因此,判定部57能够针对作为不使用变量v1而提取的变量opt1~opt4,将变量opt1~opt3判定为不能删除,另一方面,将变量opt4判定为能够删除。即,能够提取变量opt4作为可删除变量v3。
118.图11示出了由本实施方式的开发辅助装置进行的不需要变量删除处理的第2例的流程图。关于图11所示的各步骤的处理,代表性地,也能够通过开发辅助装置100的处理器102执行开发辅助程序50的软件处理来实现。
119.在图11所示的流程图中,与图6的流程图相比,不同点在于,开发辅助装置100分别执行步骤s131和s141来代替图6中的步骤s130和s140。
120.开发辅助装置100在步骤s131中,通过与图10的取得部56同样的处理,取得链接设定列表54。如上所述,通过步骤s131,能够取得与由用户选择的一个或多个项目有关的链接设定列表54。因此,当在公共网络(图8)中应用多个项目时,用户能够选择应用不需要变量删除处理的项目的范围。
121.开发辅助装置100在步骤s141中,通过步骤s140,针对各个不使用变量v1(s120),判定是否是在步骤s131中取得的链接设定列表54中未包含的变量。对于未包含于链接设定列表54的变量(s141的“是”判定时),通过步骤s150判定为能删除。另一方面,对于链接设定列表54所包含的变量(s141的“否”判定时),通过与图6相同的步骤s160,判定为能删除。
122.其他的步骤s110、s120、s170、s180的处理与图6相同,因此不重复详细的说明。另外,也可以对图11的流程图追加与图7同样的步骤s172、s175、s185。
123.其结果,根据本实施方式的开发辅助装置所进行的不需要变量删除处理的第2例,也与上述第1例同样地,能够将具有在执行控制程序210时在外部设备300(控制对象)中被使用的可能性的变量排除,而自动判定来自变量定义列表52的可删除变量v3。此外,可以将变量定义列表52更新为自动判定出的可删除变量v3被删除的内容。
124.如以上所说明那样,根据本公开,通过源程序内的不利用变量(v1)的提取、以及控制程序执行时的从外部设备300(控制对象)访问的变量(v2)的确定,能够抑制控制程序内的不使用变量(v1)的删除对控制对象侧造成的影响。
125.《附记》
126.如上所述的本实施方式和变形例包含以下这样的技术思想。
127.[结构1]
[0128]
一种开发辅助装置(100),其用于辅助对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的开发,其中,该开发辅助装置(100)具有:
[0129]
存储部(104、120),其存储所述控制程序的源代码(51)、和声明在该源代码中使用的多个变量的第1列表(52);
[0130]
提取部(55),其从所述第1列表内的所述多个变量中,提取在所述源代码中不使用的第1变量(v1);
[0131]
取得部(56),其在所述控制程序的执行前的状态下,取得用于确定所述多个变量中的第2变量(v2)的信息(53、54),所述第2变量(v2)具有在所述控制对象和所述控制装置之间被收发的可能性;以及
[0132]
判定部(57),其在所述控制程序的执行前的状态下,基于所述提取部的提取结果、和由所述取得部取得的所述信息,判定为不能从所述第1列表中删除所述第1变量中的相当于所述第2变量的变量。
[0133]
[结构2]
[0134]
在结构1所记载的开发辅助装置中,
[0135]
所述多个变量各自具有属性信息(53),所述属性信息(53)定义该变量相对于包含所述控制对象(300)和所述控制装置(200)的网络(nw1、nw2)的公开有无,
[0136]
所述取得部(56)取得所述属性信息作为用于确定所述第2变量的信息,
[0137]
所述判定部(57)将所述多个变量中的、通过所述属性信息指定了对所述网络公开的变量作为所述第2变量(v2)而判定为不能从所述第1列表中删除。
[0138]
[结构3]
[0139]
在结构1所记载的开发辅助装置中,
[0140]
所述取得部(56)在所述控制程序(210)的执行前的状态下,取得第2列表(54)作为用于确定所述第2变量(v2)的信息,所述第2列表(54)表示被指定为执行所述控制程序时的所述控制对象(300)和所述控制对象(200)之间的收发对象的变量。
[0141]
[结构4]
[0142]
在结构3所记载的开发辅助装置中,
[0143]
所述取得部(56)取得由用户指定的一个或多个项目的所述第2列表(54)作为所述信息,
[0144]
所述判定部(57)将所述多个变量中的、在至少任意一个所述项目中包含于所述第2列表(54)的变量作为所述第2变量(v2)来执行所述判定。
[0145]
[结构5]
[0146]
在结构1~4中的任意一项所记载的开发辅助装置中,
[0147]
所述判定部(57)在所述控制程序(210)的执行前的状态下,基于所述提取部(55)的提取结果、和由所述取得部(56)取得的所述信息,判定为能够从所述第1列表(52)中删除所述第1变量(v1)中的不相当于所述第2变量(v2)的第3(v3)。
[0148]
[结构6]
[0149]
在结构5所记载的开发辅助装置中,
[0150]
该开发辅助装置还具有从所述第1列表(52)中删除所述第3变量(v3)的变量删除部(59)。
[0151]
[结构7]
[0152]
在结构6所记载的开发辅助装置中,
[0153]
该开发辅助装置还具有用于输入用户的操作的界面部(58),
[0154]
所述提取部(55)、所述取得部(56)以及所述判定部(57)根据针对界面部的、启动不需要变量的删除处理的第1操作的输入而进行动作,
[0155]
所述界面部输出要求所述用户是否从所述第1列表(52)中删除由所述判定部提取出的所述第3变量(v3)的消息,
[0156]
所述变量删除部(59)根据针对所述界面部的、与所述消息对应的指示所述第3变量的删除的第2操作的输入而进行动作。
[0157]
[结构8]
[0158]
一种开发辅助方法,其是对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的、由计算机执行的开发辅助方法,其具有:
[0159]
步骤(s120),从声明在所述控制程序的源代码(51)中使用的多个变量的列表(52)中,提取在所述源代码中不使用的第1变量(v1);
[0160]
步骤(s130),在所述控制程序的执行前的状态下,取得用于确定所述多个变量中的第2变量(v2)的信息(53、54),所述第2变量(v2)具有在所述控制对象和所述控制装置之间被收发的可能性;以及
[0161]
步骤(s140、s141、s160),在所述控制程序的执行前的状态下,基于进行所述提取的步骤中的提取结果和在进行所述取得的步骤中取得的所述信息,判定为不能从所述列表中删除所述第1变量中的相当于所述第2变量的变量。
[0162]
[结构9]
[0163]
一种开发辅助程序,其是对控制对象(300)进行控制的控制装置(200)用的控制程序(210)的开发辅助程序,其中,
[0164]
所述开发辅助程序使计算机执行以下步骤:
[0165]
步骤(s120),从声明在所述控制程序的源代码(51)中使用的多个变量的列表(52)中,提取在所述源代码中不使用的第1变量(v1);
[0166]
步骤(s130),在所述控制程序的执行前的状态下,取得用于确定所述多个变量中的第2变量(v2)的信息(53、54),所述第2变量(v2)具有在所述控制对象和所述控制装置之间被收发的可能性;以及
[0167]
步骤(s140、s141、s160),在所述控制程序的执行前的状态下,基于进行所述提取的步骤中的提取结果和在进行所述取得的步骤中取得的所述信息,判定为不能从所述列表中删除所述第1变量中的相当于所述第2变量的变量。
[0168]
应认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范围不是由上述说明表示,而是由权利要求书示出,意在包含与权利要求书等同的意思以及范围内的全部变更。
[0169]
标号说明
[0170]
10:fa系统;50:开发辅助程序;51:源代码;52:变量定义列表;53:网络属性信息;54:链接设定列表;55:提取部;56:取得部;57:判定部;58:用户界面部;59:变量删除部;60:程序;100:开发辅助装置;102:处理器;104:主存储器;111:通信接口;114:i/o接口;115:操作部;117:显示接口;118:显示部;120:存储装置;125:内部总线;200:控制装置;203:变量列表;210:控制程序;210s:源程序;211:执行代码;212:存储区域;214:器件侧链接设定代码;220:梯形电路;221:输入侧母线;222:输出侧母线;224:触点;226:线圈;227:连接线;250:网络接口;300:外部设备;300a、300b、300c:器件;301a、301b、301c:设备;305、305c:变量映射;305a:订阅设定;305b:标签数据链接设定;nw1、nw2:网络;opt1~opt4、aa~cc:变量。