编程辅助程序、编程辅助装置及编程辅助方法与流程

文档序号:32163915发布日期:2022-11-12 03:38阅读:53来源:国知局
编程辅助程序、编程辅助装置及编程辅助方法与流程

1.本发明涉及由可编程逻辑控制器执行的程序的创建辅助所使用的编程辅助程序、编程辅助装置及编程辅助方法。


背景技术:

2.当前,可编程逻辑控制器所执行的程序通常是由梯形图语言及fbd(function block diagram)语言这样的可读性高的程序来记述的。与此相对,近年来,取代梯形图语言等,使用st(structured text)语言这样的过程式语言对程序进行记述的需求也正在升高。
3.在程序的开发中,广泛地进行以下操作,即,沿用过去开发出的程序而高效地进行新程序的创建作业。这里,在创建新程序的情况下,例如即使是在相同的硬件中使用的程序,也无法直接沿用由与想要创建的程序不同的程序语言记述的程序。因此,提出了将由某种程序语言记述的程序转换为由其它程序语言记述的程序的技术(例如,专利文献1)。
4.专利文献1:日本特开2001-22412号公报


技术实现要素:

5.在将由梯形图语言记述的程序转换为由过程式语言记述的程序的情况下,存在程序的可读性下降的问题。转换前的程序的程序块越是复杂的结构,则可读性越是下降。如果可读性下降,则程序的开发及编辑这样的作业的效率也下降。
6.本发明就是鉴于上述情况而提出的,其目的在于,得到在将由过程式语言以外的程序语言记述的程序转换为由过程式语言记述的程序的情况下,能够防止与程序的可读性的下降相伴的作业效率下降的编程辅助程序。
7.为了解决上述课题,达到目的,本发明涉及的编程辅助程序包含:第1转换步骤,将由梯形图语言记述的第1程序转换为由中间语言记述的第2程序;以及第2转换步骤,将第2程序转换为由过程式语言记述的第3程序。另外,编程辅助程序使计算机执行以下步骤:电路显示部件生成步骤,如果第2程序的1个程序块的解析结果满足规定的条件,则生成表示满足条件的程序块的内容的电路显示部件;以及显示步骤,以能够识别电路显示部件对应于第3程序的哪个程序块的形式对第3程序及电路显示部件进行显示。
8.发明的效果
9.本发明涉及的编程辅助程序具有下述效果,即,在将由过程式语言以外的程序语言记述的程序转换为由过程式语言记述的程序的情况下,能够防止与程序的可读性的下降相伴的作业效率下降。
附图说明
10.图1是表示实施方式涉及的编程辅助装置的功能模块结构的一个例子的图。
11.图2是表示由编程辅助装置进行的第一st程序生成动作的流程图。
12.图3是表示转换对象程序指定画面的一个例子的图。
13.图4是表示编程辅助装置将梯形图程序转换为st程序的动作的概要的图。
14.图5是表示编程辅助装置所具有的机器学习装置的功能模块结构的图。
15.图6是表示机器学习装置在机器学习中使用的学习用数据的结构例的图。
16.图7是表示神经网络的结构例的图。
17.图8是表示机器学习装置中的学习所使用的学习用数据的第1例的图。
18.图9是表示机器学习装置中的学习所使用的学习用数据的第2例的图。
19.图10是表示由编程辅助装置进行的第二st程序生成动作的流程图。
20.图11是表示转换代码对应表的一个例子的图。
21.图12是表示由编程辅助装置进行的程序显示动作的流程图。
22.图13是表示由编程辅助装置进行的电路显示部件编辑动作的流程图。
23.图14是用于对由编程辅助装置实现的电路显示部件的显示方法进行说明的图。
24.图15是表示由编程辅助装置实现的电路显示部件的显示方法的第2例的图。
25.图16是表示由编程辅助装置实现的电路显示部件的显示方法的第3例的图。
26.图17是表示电路显示部件的显示属性设定画面的一个例子的图。
27.图18是表示对电路显示部件进行显示的触发条件的一个例子的图。
具体实施方式
28.以下,基于附图,对本发明的实施方式涉及的编程辅助程序、编程辅助装置及编程辅助方法详细地进行说明。
29.实施方式
30.在本实施方式中,对由可编程逻辑控制器执行的程序的开发所使用的编程辅助装置进行说明。该编程辅助装置具有将由梯形图语言记述的程序即梯形图程序转换为由st语言记述的程序即st程序的功能。图1是表示实施方式涉及的编程辅助装置的功能模块结构的一个例子的图。图1所示的编程辅助装置1被用于由可编程逻辑控制器执行的程序的开发。
31.编程辅助装置1具有梯形图程序数据储存部2、p代码生成部3、数据操作部4、显示部5、电路显示部件储存部6、st程序数据储存部7及st程序生成部8。
32.梯形图程序数据储存部2对梯形图程序的数据即梯形图程序数据21进行储存。p代码生成部3将梯形图程序转换为由中间语言即p代码记述的程序。p代码生成部3是将由梯形图语言记述的第1程序转换为由中间语言记述的第2程序的转换的第1转换部。这里,计算机无法理解由编程语言记述的程序的内容。因此,需要将由编程语言记述的程序转换为计算机可解读的机器语言。此时,通常,不将由编程语言记述的程序直接转换为机器语言的程序,而是在先转换为中间表达的程序之后,进而再转换为机器语言的程序。中间语言是在将由编程语言记述的程序设为中间表达的情况下使用的。中间语言存在各种各样的种类,有时也将中间语言称为中间代码。p代码是在创建中间表达的程序的情况下所使用的各种各样的种类的中间语言中的1种。数据操作部4从用户接收针对编程辅助装置1所处理的数据的编辑操作等操作。显示部5向用户显示程序的确认画面、编辑画面等各种画面。电路显示部件储存部6对后述的电路显示部件进行储存。st程序数据储存部7对st程序的数据即st程序数据71进行储存。st程序生成部8将由p代码记述的程序转换为st程序。
33.st程序生成部8具有p代码解析部81、机器学习装置82、st模板储存部83及程序转换部84。p代码解析部81及机器学习装置82构成电路显示部件生成部80。
34.p代码解析部81对由p代码记述的程序即p代码程序进行解析而生成与程序的构造相关的数据,并且在生成的数据满足规定的条件的情况下生成电路显示部件。机器学习装置82基于p代码解析部81所生成的数据及从数据操作部4输入的数据对p代码解析部81生成电路显示部件的条件进行学习。st模板储存部83对用于将p代码程序转换为st程序的模板进行储存。程序转换部84将p代码程序转换为st程序。程序转换部84是将第2程序转换为由过程式语言记述的第3程序的第2转换部。
35.这里,编程辅助装置1如图1所示由电子计算机100实现。电子计算机100例如是个人计算机,由cpu(central processing unit)、存储装置、显示装置、输入装置、通信装置等构成。存储装置是ram(random access memory)、rom(read only memory)、闪存等非易失性或易失性的半导体存储器、磁盘等。显示装置是液晶显示器等,实现显示部5。输入装置是鼠标、键盘等。通信装置是网络接口卡等。此外,在图1中,示出了电子计算机100具有显示装置的结构例,但显示装置也可以是与电子计算机100独立的其它装置。
36.编程辅助装置1所具有的各功能由电子计算机100的cpu及存储装置实现。即,通过将用于实现编程辅助装置1所具有的各功能的程序即编程辅助程序预先储存于存储装置,由cpu读出、执行在存储装置中储存的程序而实现编程辅助装置1所具有的各功能。另外,编程辅助装置1的梯形图程序数据储存部2、电路显示部件储存部6及st程序数据储存部7由电子计算机100的存储装置实现。此外,电子计算机100的输入装置是在用户对编程辅助装置1进行操作的情况下使用的。电子计算机100的通信装置是在编程辅助装置1与电子计算机100的外部的装置进行通信的情况下使用的。上述的编程辅助程序例如是在被写入至cd(compact disc)-rom、dvd(digital versatile disc)-rom等存储介质中的状态下提供给用户的。上述的编程辅助程序也可以是经由互联网等而提供给用户的方式。
37.接着,对编程辅助装置1的动作的详情进行说明。具体地说,对以下动作分别进行说明:在尚未完成由机器学习装置82进行的学习的状态下对梯形图程序进行转换而生成st程序的动作(设为第一st程序生成动作);在已完成由机器学习装置82进行的学习的状态下对梯形图程序进行转换而生成st程序的动作(设为第二st程序生成动作);与转换后的st程序一起对电路显示部件进行显示的动作(设为程序显示动作);以及对已生成的电路显示部件进行编辑的动作(设为电路显示部件编辑动作)。
38.[第一st程序生成动作]
[0039]
对第一st程序生成动作进行说明,该第一st程序生成动作是在尚未完成由机器学习装置82进行的学习的状态时,由编程辅助装置1对梯形图程序进行转换而生成st程序。在该第一st程序生成动作中,编程辅助装置1将梯形图程序转换为st程序,并且进行电路显示部件的生成条件的学习。
[0040]
图2是表示由编程辅助装置1进行的第一st程序生成动作的流程图。编程辅助装置1当在接收到作出开始生成st程序这一指示的操作的时间点尚未完成由机器学习装置82进行的学习即电路显示部件的生成条件的学习的情况下,开始第一st程序生成动作。
[0041]
在第一st程序生成动作中,首先,数据操作部4接收要转换的程序的指定(步骤s101)。在该步骤s101中,数据操作部4与显示部5协同地例如使图3所示的转换对象程序指
定画面301显示于显示部5,接收来自用户的操作。图3是表示转换对象程序指定画面301的一个例子的图。数据操作部4从用户接收将梯形图程序数据21所包含的梯形图程序中的哪个梯形图程序设为向st程序的转换对象的指定。另外,针对被设为转换对象的梯形图程序的每一者,数据操作部4接收实际上进行转换的范围的选择(转换范围选择)。此外,转换范围选择的接收并非是必须的,用户也可以省略转换范围选择的输入。在省略了转换范围选择的输入的情况下,编程辅助装置1将被设为转换对象的程序的整体作为转换范围而进行处理。此外,用户通过选择被记载为“整体”的栏中的程序后点击左箭头按钮302,从而能够将所选择的程序追加至作为转换对象的程序。另外,用户通过选择被记载为“转换对象”的栏中的程序(作为转换对象的程序)后点击右箭头按钮303,从而能够将所选择的程序从作为转换对象的程序去除。另外,转换对象程序指定画面301包含用于接收强制性地创建电路显示部件的指定的复选框304。在复选框304被选中的情况下,针对构成作为转换对象的程序的全部程序块,无论是否满足创建电路显示部件的条件,编程辅助装置1都创建电路显示部件。此外,下面,对复选框304未被选中者的情况进行说明。
[0042]
如果点击转换按钮,则步骤s101结束,转移至步骤s102。
[0043]
如果步骤s101结束,则接下来,p代码生成部3从梯形图程序数据21取得在步骤s101中指定的梯形图程序(步骤s102),将构成取得的梯形图程序的各程序块转换为p代码而生成p代码程序(步骤s103)。
[0044]
接下来,p代码解析部81针对p代码程序的每个程序块而对条件部和执行部进行判定(步骤s104)。这里,通常,梯形图程序能够区分为由触点命令及比较运算命令这样的命令构成的条件部和由字符串处理、实数处理、输出命令等构成的执行部。它们在转换为st程序的情况下能够置换为if语句中的条件式和执行语句。因此,在步骤s104中,p代码解析部81如图4的步骤2所示,对由p代码记述的程序(p代码程序)进行解析,对if语句的与条件语句相当的代码和与执行语句相当的代码进行判别而分别设为条件部及执行部。图4是表示编程辅助装置1将梯形图程序转换为st程序的动作的概要的图。在图4中示出将梯形图程序的1个程序块转换为st程序的动作的概要。图4所示的步骤1与上述的步骤s103相当。
[0045]
在步骤s104的处理结束之后,将在步骤s104中进行了判定处理的1个程序块作为对象而并行地执行步骤s105~s107所示的st程序生成处理和步骤s401~s403所示的学习处理。以下,分别说明步骤s105~s107的st程序生成处理和步骤s401~s403的学习处理。
[0046]
(st程序生成处理)
[0047]
在st程序生成处理中,在上述的步骤s104之后,程序转换部84从st模板储存部83取得转换处理用的模板(步骤s105),使用模板而创建st程序(步骤s106)。即,如图4的步骤3所示,程序转换部84将由p代码解析部81对p代码程序进行解析得到的结果填入至模板而创建st程序。程序转换部84将所创建的st程序储存于st程序数据储存部7(步骤s107)。
[0048]
(学习处理)
[0049]
步骤s401~s403的学习处理由机器学习装置82进行。机器学习装置82的功能模块结构如图5所示。图5是表示编程辅助装置1所具有的机器学习装置82的功能模块结构的图。即,机器学习装置82具有:数据取得部821,其取得机器学习所使用的教师数据;状态观测部822,其对从p代码解析部81输入的状态变量进行观测;以及学习部823,其基于数据取得部821所取得的教师数据及由状态观测部822得到的状态变量的观测结果而对电路显示部件
的生成条件进行学习。
[0050]
图6是表示机器学习装置82在机器学习中使用的学习用数据的结构例的图。学习用数据由数据取得部821所取得的教师数据和状态观测部822所观测的状态变量构成。图6所示的输入1~输入3是从p代码解析部81输入至机器学习装置82的数据,与状态观测部822所观测的状态变量相当。输入1~输入3的数据包含与要转换的对象的梯形图程序的结构相关的信息。输入1的“用于执行1个命令的条件数”表示对执行1个命令带来影响的条件的数量。这仅仅是因为如果构成电路的条件的数量增加,则if语句的条件语句的项数增加,条件式变得复杂。输入2的“共享1个条件的命令数”是针对每个条件示出共享1个条件的命令的数量。该条件中的由and、or组合起来的部位是一起设定的。输入2的“共享1个条件的命令数”影响if语句的分支数。输入3的“构成电路的anb、orb、mps、mrd、mpp的数量”表示电路模块串联连接命令即anb的数量、电路模块并联连接命令即orb的数量、运算结果进栈(push)命令即mps的数量、运算结果读出命令即mrd的数量和运算结果出栈(pop)命令即mpp的数量。输入3的数据表示电路结构的复杂度。在本实施方式中,教师数据是确认了对梯形图程序进行转换所得到的st程序后的用户对是否需要生成与确认过的st程序对应的电路显示部件进行判断所得到的结果的数据。
[0051]
在由机器学习装置82进行的学习处理中,在上述的步骤s104之后,状态观测部822从p代码解析部81取得程序的解析结果(步骤s401)。即,在步骤s401中,状态观测部822将被从p代码解析部81输入的图6所示的输入1~输入3的数据作为状态变量而进行观测。
[0052]
接下来,用户基于在上述的步骤s106中创建的st程序而对有无生成电路显示部件进行判定,将判定结果设为教师数据(步骤s402)。在该步骤s402中,显示部5从st程序数据储存部7读出在步骤s106中由程序转换部84生成的st程序而进行显示。另外,数据操作部4从用户接收是否需要生成与显示部5所显示的st程序对应的电路显示部件的判定结果的输入,作为图6所示的教师数据而输出至机器学习装置82。在机器学习装置82中,数据取得部821从数据操作部4取得教师数据。如果步骤s401及s402结束,则得到图6所示的结构的学习用数据。
[0053]
接下来,学习部823基于学习用数据对电路显示部件的生成条件进行学习(步骤s403)。
[0054]
对步骤s403详细地进行说明。在步骤s403中,学习部823基于数据集对电路显示部件的生成条件进行学习,该数据集是基于状态观测部822所观测到的状态变量及数据取得部821所取得的教师数据的组合而创建的。这里,数据集是将状态变量及教师数据彼此关联起来的数据。
[0055]
此外,机器学习装置82在编程辅助装置1中用于对电路显示部件的生成条件进行学习,但例如也可以是经由网络与编程辅助装置1连接的独立于该编程辅助装置1的装置。在这种情况下,机器学习装置82也可以存在于云服务器上。
[0056]
学习部823例如按照神经网络模型,通过所谓的有教师学习对电路显示部件的生成条件进行学习。这里,有教师学习是指通过将某个输入与结果(标签)的数据的组即数据集大量地提供给学习部823,从而对这些数据集所具有的特征进行学习,根据输入来推定结果的模型。
[0057]
神经网络是通过由多个神经元构成的输入层、由多个神经元构成的中间层(隐藏
层)和由多个神经元构成的输出层构成的。中间层可以是1层,或者大于或等于2层。
[0058]
图7是表示神经网络的结构例的图。例如,如果是图7所示这样的3层的神经网络,如果多个输入被输入至输入层输入层(x1-x3),则对该值乘以权重w1(w11-w16)而输入至中间层(y1-y2),对该结果再乘以权重w2(w21-w26)而从输出层(z1-z3)输出。该输出结果根据权重w1及w2的值而改变。
[0059]
在本实施方式中,神经网络按照上述数据集,通过所谓的有教师学习,对在将梯形图程序转换为st程序时用户易于观察的电路显示部件的生成条件进行学习。即,神经网络通过以使得向输入层输入状态变量而从输出层输出的结果接近教师数据的值的方式对权重w1及w2进行调整,从而对电路显示部件的生成条件进行学习。
[0060]
另外,神经网络也能够通过所谓的无教师学习对电路显示部件的生成条件进行学习。无教师学习是指通过只将输入数据大量地提供给机器学习装置,从而对输入数据呈什么样的分布进行学习,即使不提供对应的教师输出数据,也对针对输入数据进行压缩、分类、整形等的装置进行学习的方法。神经网络能够将输入数据所具有的特征相似的数据彼此进行聚类等。能够使用该结果,通过设置某种基准并进行使其优化这样的输出的分配,从而实现输出的预测。另外,作为无教师学习与有教师学习的中间的问题设定,还存在被称为半有教师学习者。在半有教师学习中,仅存在一部分输入数据与教师数据的数据集,除此以外使用只有输入数据的学习用数据。
[0061]
学习部823也可以按照针对多个编程辅助装置1而创建的数据集对电路显示部件的生成条件进行学习。此外,学习部823也可以从在相同的现场中使用的多个编程辅助装置1取得数据集,也可以从在不同的现场中独立地使用的编程辅助装置1取得数据集。并且,也可以在学习的中途将收集数据集的编程辅助装置1追加至对象中,或者相反,从对象中去除。另外,也可以将针对某个编程辅助装置1对电路显示部件的生成条件进行学习后的机器学习装置82安装于另外的编程辅助装置1,针对该另外的编程辅助装置1对电路显示部件的生成条件进行再学习而更新。
[0062]
另外,作为学习部823所使用的学习算法,也能够使用对特征量自身的提取进行学习的深度学习(deep learning)。另外,学习部823也可以按照其它的公知方法,例如遗传编程、功能逻辑编程、支持向量机等执行学习。
[0063]
对在本实施方式中使用的学习用数据的具体例进行说明。图8是表示机器学习装置82的学习所使用的学习用数据的第1例的图。在图8中,一并记载有成为学习用数据的基础的梯形图程序和转换后的st程序。图8所示的第1例的学习用数据是教师数据为“不生成电路显示部件”的情况下,即,用户选择了不生成电路显示部件的情况下的例子。
[0064]
输入1的数据包含“y0,8”及“y1,8”。“y0,8”表示影响输出y0的值的条件部为x0~x7这8个条件。“y1,8”也同样如此。
[0065]
输入2的数据包含“x0 and x1,2”、“x2 and x3,2”、“x4and x5,2”及“x6 and x7,2”。“x0 and x1,2”表示将x0和x1通过and运算进行组合而视作1个条件,由y0及y1这2个命令使用该条件。“x2 and x3,2”、“x4 and x5,2”及“x6 and x7,2”也同样如此。
[0066]
输入3的数据包含“anb,1”、“orb,2”、“mps,0”、“mrd,0”及“mpp,0”。“anb,1”表示电路模块串联连接命令即anb为1处。“orb,2”表示电路模块并联连接命令即orb为2处。“mps,0”表示不存在运算结果进栈命令即mps。“mrd,0”表示不存在运算结果读出命令即mrd。“mpp,0”表示不存在运算结果出栈命令即mpp。
[0067]
在第1例中,if语句的深度为2层,if语句的条件式的逻辑运算项数最大为2项,能够根据转换后的st程序而容易地推测出原来的梯形图程序,因此,用户判断为不需要生成电路显示部件。
[0068]
图9是表示机器学习装置82中的学习所使用的学习用数据的第2例的图。与图8同样地,在图9中,一并记载有成为学习用数据的基础的梯形图程序和转换后的st程序。图9所示的第2例的学习用数据是教师数据为“生成电路显示部件”的情况下,即,用户选择了生成电路显示部件的情况下的例子。
[0069]
输入1的数据包含“y0,9”、“y1,9”、“y2,10”、“y3,1”。输入2的数据包含“x0,4”、“x1 or x4 or x5,3”、“x2,3”、“x3,1”、“x6,3”、“x7 or x8,3”、“x9,2”及“x10,1”。输入3的数据包含“anb,3”、“orb,1”、“mps,2”、“mrd,0”及“mpp,2”。
[0070]
在第2例中,输入1的数据表示用于执行1个命令的条件数多,输入2的数据表示x1~x10的条件与y0~y2的输出值相关,输入3的数据表示存在串联电路模块及并联电路模块,是需要进行使用了堆栈的计算的电路。由于难以根据转换后的st程序来推测原来的梯形图程序的结构,因此,用户判断为需要生成电路显示部件。
[0071]
返回图2的说明,如果步骤s105~s107的st程序生成处理及步骤s401~s403的学习处理结束,则st程序生成部8对作为转换对象的程序的全部程序块的解析是否都已结束进行确认,即,针对全部程序块确认向st程序的转换处理及电路显示部件的生成条件的学习处理是否都已结束(步骤s108)。在全部程序块的解析都已结束的情况下(步骤s108:yes),图2所示的动作结束。另一方面,在尚未结束全部程序块的解析的情况下(步骤s108:no),返回步骤s104。
[0072]
反复进行上述步骤s401~s403所示的学习动作,直至充分地推进了电路显示部件的生成条件的学习为止进行以上的第一st程序生成动作。例如,通过步骤s401~s403的反复执行次数是否达到了规定的值来判断电路显示部件的生成条件的学习是否已充分地推进。
[0073]
[第二st程序生成动作]
[0074]
接着,对第二st程序生成动作进行说明,该第二st程序生成动作是在已完成由机器学习装置82进行的学习的状态时,由编程辅助装置1对梯形图程序进行转换而生成st程序。在该第二st程序生成动作中,编程辅助装置1将梯形图程序转换为st程序,并且,使用由机器学习装置82得到的学习结果来判断是否需要生成电路显示部件。即,由机器学习装置82得到的学习结果被用于电路显示部件的生成条件是否成立的判定处理。编程辅助装置1如果判断为需要生成电路显示部件,则生成电路显示部件。
[0075]
图10是表示由编程辅助装置1进行的第二st程序生成动作的流程图。编程辅助装置1当在接收到作出开始生成st程序这一指示的操作的时间点已完成了由机器学习装置82进行的学习即电路显示部件的生成条件的学习的情况下,开始第二st程序生成动作。
[0076]
图10所示的流程图是从图2所示的流程图中将步骤s401~s403删除,追加步骤s109~s111后的结构。图10所示的流程图的步骤s101~s108与图2所示的流程图的步骤s101~s108相同,因此省略说明。
[0077]
在第二st程序生成动作中,在步骤s104之后,与上述步骤s105~s107的st程序生
成处理并行地执行步骤s109~s111。具体地说,p代码解析部81对是否生成电路显示部件进行判定(步骤s109)。在步骤s109中,p代码解析部81基于由机器学习装置82得到的学习结果和作为转换对象的梯形图程序的解析结果来判定是否生成电路显示部件。这里的作为转换对象的梯形图程序的解析结果是与机器学习装置82在对电路显示部件的生成条件进行学习时所使用者相同的解析结果,具体地说,是与图6等所示的学习用数据的输入1~输入3相同的数据。
[0078]
在判断为生成电路显示部件的情况下(步骤s109:yes),p代码解析部81生成电路显示部件而储存于电路显示部件储存部6(步骤s110),将信息储存于转换代码对应表(步骤s111)。在步骤s110中,p代码解析部81从梯形图程序提取1个程序块,将其作为电路显示部件而储存于电路显示部件储存部6。从梯形图程序提取的作为对象的程序块是与在步骤s104中设为判定对象的p代码程序内的程序块对应的程序块,例如,是在图4所示的步骤1中被置换为p代码的梯形图程序内的1个程序块。在步骤s111中对信息进行储存的转换代码对应表是指登记有表示转换前的梯形图程序与转换后的st程序之间的对应关系的各种信息的表。更详细而言,转换代码对应表是登记有以下信息等的表,即,表示转换前的梯形图程序的哪个部分(程序块)与转换后的st程序的哪个部分(程序块)相对应的信息,针对构成st程序的程序块各自而表示是否存在相应的电路显示部件的信息,表示已生成的电路显示部件各自与st程序的哪个程序块相对应的信息。转换代码对应表例如由电路显示部件储存部6保存。此外,也可以由电路显示部件生成部80或显示部5保存转换代码对应表。
[0079]
图11是表示转换代码对应表的一个例子的图。在构成转换代码对应表的各记录中储存与构成作为转换对象的梯形图程序的各程序块中的某一者相关的信息。即,在转换代码对应表中包含与构成作为转换对象的梯形图程序的程序块各自对应的记录。在转换代码对应表的1个记录中登记有梯形图程序名、st程序名、ld位置信息、有无部件、部件编号及st位置信息。“梯形图程序名”是转换前的梯形图程序的名称,“st程序名”是转换后的st程序的名称。“ld位置信息”是表示转换前的梯形图程序内的位置的信息,示出构成梯形图程序的各程序块中的1者。即,“ld位置信息”示出是梯形图程序内的哪个位置的程序块。“有无部件”是表示与ld位置信息所示的程序块对应的电路显示部件的有无的信息。“有无部件=true”表示存在电路显示部件,“有无部件=false”表示不存在电路显示部件。“部件编号”是赋予电路显示部件的管理编号,在“有无部件=true”的情况下写入数值,在“有无部件=false”的情况下为
“‑”
。“st位置信息”是表示与同一记录的ld位置信息所示的梯形图程序内的位置(程序块)对应的st程序内的位置(程序块)的信息。
[0080]
在判断为不生成电路显示部件的情况下(步骤s109:no),p代码解析部81不执行步骤s110就执行步骤s111。此外,转换代码对应表是在将对梯形图程序进行转换而生成的st程序显示于显示部5时使用的。
[0081]
在执行了步骤s111之后,st程序生成部8对作为转换对象的程序的全部程序块的解析是否都已结束进行确认(步骤s108)。
[0082]
此外,在本实施方式中,在已完成机器学习的情况下由编程辅助装置1对是否需要生成电路显示部件进行判断,在判断为需要的情况下生成电路显示部件。即,在第一st程序生成动作中,由用户判断是否需要生成电路显示部件,但不进行实际生成电路显示部件的动作。但是,也可以是在第一st程序生成动作中也生成电路显示部件。当在第一st程序生成
动作中也生成电路显示部件的情况下,例如,当在表示第一st程序生成动作的图2的流程图的步骤s402中由用户判断为需要生成电路显示部件时,执行与上述步骤s110及s111相同的处理即可。或者,在尚未完成机器学习的状态时使用预先确定的条件对是否需要生成电路显示部件进行判断,在判断为需要的情况下生成电路显示部件即可。在这种情况下,例如,与图2所示的流程图的步骤s105~s107的处理及步骤s401~s403的处理并行地进行与图10所示的步骤s109~s111相同的处理。此时的用于判断是否生成电路显示部件的条件例如设为“if的嵌套大于或等于3个且条件语句的项数大于或等于5个的if语句包含于st程序的情况”。if的嵌套的数量及条件语句的项数是一个例子,不限定于这些数量。
[0083]
[程序显示动作]
[0084]
接着,对将在st程序数据储存部7储存的st程序数据71显示于显示部5的程序显示动作进行说明。
[0085]
图12是表示由编程辅助装置1进行的程序显示动作的流程图。编程辅助装置1如果从用户接收到指示在st程序数据储存部7储存的st程序数据71的向显示部5的显示开始的操作,则开始程序显示动作。
[0086]
在程序显示动作中,首先,显示部5取得转换代码对应表(参照图11)的1个记录(步骤s201),对是否存在电路显示部件进行确认(步骤s202)。即,显示部5在步骤s201中对在步骤s201中取得的记录内的“有无部件”是否表示出存在电路显示部件这一内容(是否为true)进行确认。
[0087]
当存在电路显示部件的情况下(步骤s202:yes),显示部5从电路显示部件储存部6取得相应的电路显示部件即与在步骤s201中取得的记录内的“部件编号”对应的电路显示部件(步骤s203)。接下来,显示部5对在步骤s203中取得的电路显示部件进行显示(步骤s204),并且对st程序进行显示(步骤s205)。在步骤s205中,显示部5对在步骤s201中取得的记录内的“st位置信息”所示的st程序内的程序块进行显示。显示部5在对电路显示部件及st程序进行显示时,以用户能够识别电路显示部件表示的是st程序的哪个部分(程序块)的形式进行显示。关于显示部5以什么样的形式对电路显示部件及st程序进行显示的详情,会另行说明。
[0088]
当不存在电路显示部件的情况下(步骤s202:no),显示部5不执行步骤s203及s204,对st程序进行显示(步骤s205)。
[0089]
显示部5在执行了步骤s205之后,对转换代码对应表的全部记录的处理是否都已结束,即,是否已针对全部记录都执行了步骤s201~s205进行确认(步骤s206)。在全部记录的处理都已结束的情况下(步骤s206:yes),图12所示的动作结束。另一方面,在尚未结束全部记录的处理的情况下(步骤s206:no),返回步骤s201。
[0090]
[电路显示部件编辑动作]
[0091]
接着,说明对已生成的电路显示部件进行编辑的动作。
[0092]
图13是表示由编程辅助装置1进行的电路显示部件编辑动作的流程图。编程辅助装置1如果从用户接收到指示在电路显示部件储存部6储存的电路显示部件的编辑开始的操作,则开始电路显示部件编辑动作。
[0093]
在电路显示部件编辑动作中,首先,数据操作部4接收电路显示部件的内容变更操作(步骤s301)。电路显示部件的内容变更操作只要能够实现已生成的电路显示部件的编辑
即可,可以是任意的形式。对接收电路显示部件的内容变更操作的动作的一个例子简单进行说明。例如,编程辅助装置1如果通过数据操作部4接收到指示在电路显示部件储存部6储存的电路显示部件的编辑开始的操作,则将已储存于电路显示部件储存部6的电路显示部件的列表显示于显示部5,通过数据操作部4而接收作为编辑对象的电路显示部件的指定。接下来,编程辅助装置1将被指定的电路显示部件的编辑作业画面显示于显示部5,由数据操作部4接收对电路显示部件进行变更的操作。在本实施方式中,电路显示部件是构成梯形图程序的1个程序块,因此,对电路显示部件进行变更的操作是与对梯形图程序进行变更的通常的操作相同的操作。
[0094]
如果由用户进行的电路显示部件的内容变更操作结束,则将变更后的电路显示部件储存于电路显示部件储存部6(步骤s302)。如果步骤s302结束,则编程辅助装置1执行步骤s103~s111,但这些步骤是与图10所示的流程图的步骤s103~s111相同的处理,因此省略说明。
[0095]
接着,说明编程辅助装置1对电路显示部件进行显示的方法的具体例。图14是用于对由编程辅助装置1实现的电路显示部件的显示方法进行说明的图。如上所述,编程辅助装置1在将梯形图程序转换为st程序时,如果判断为电路显示部件的生成条件成立,即,如果将构成梯形图程序的某个程序块转换为st程序(以st语言进行的记述)则可读性下降,则生成电路显示部件。另外,编程辅助装置1在对st程序进行显示时,如果存在与st程序内的程序块对应的电路显示部件,则以用户能够识别电路显示部件对应于st程序内的哪个程序块的形式进行显示。通过将电路显示部件与st程序一起进行显示,从而能够防止对st程序进行确认时的可读性下降,能够防止st程序的编写及调试这样的作业的效率下降。在图14所示的例子的情况下,编程辅助装置1的显示部5通过不同的窗口对st程序和电路显示部件501进行显示,另外,针对正在显示的电路显示部件501对应于st程序的哪个部分(程序块),通过虚线将相应的部分包围而通知给用户。
[0096]
在图14所示的显示方法中,通过不同的窗口对st程序和电路显示部件501进行显示,但作为其它显示方法,也可以是图15及图16所示的显示方法。图15是表示由编程辅助装置1实现的电路显示部件的显示方法的第2例的图,图16是表示由编程辅助装置1实现的电路显示部件的显示方法的第3例的图。
[0097]
在图15所示的第2例中,编程辅助装置1的显示部5将电路显示部件502与st程序的对应部位一起进行显示。在图16所示的第3例中,编程辅助装置1的显示部5通过气泡显示而将电路显示部件503在st程序的对应部位处重叠地进行显示。在图16所示的例子的情况下,显示部5例如在鼠标的光标被放置于st程序之上的状态时,如果存在与光标位置处的st程序的程序块对应的电路显示部件,则对电路显示部件503进行显示。显示部5也可以设为如下方式等,即,在通过鼠标选择了st程序的程序块的1者并且点击了右键的情况下,如果存在对应的电路显示部件,则对电路显示部件503进行显示。
[0098]
另外,编程辅助装置1具有从用户接收电路显示部件的显示属性的设定的功能。显示属性的设定能够针对每个电路显示部件单独地进行。图17是表示电路显示部件的显示属性设定画面的一个例子的图。编程辅助装置1在从用户接收到电路显示部件的显示属性的设定的情况下,通过显示部5对图17所示这样的显示属性设定画面401进行显示,接收显示属性的设定。
[0099]
在显示属性设定画面401的情况下,用户能够对以下内容进行设定,即,是否对电路显示部件进行显示(不对电路显示部件进行显示),在对电路显示部件的显示进行填充的情况下使用的颜色(填充色),电路显示部件的显示的透明率,电路显示部件的显示的缩放率,对电路显示部件进行显示的条件(显示条件),是否将电路显示部件的编辑禁止(禁止编辑电路显示部件)。
[0100]
在选中了显示属性设定画面401的“不对电路显示部件进行显示”的复选框的情况下,编程辅助装置1在对st程序进行显示时不对相应的电路显示部件一起进行显示。
[0101]
关于显示条件的“始终显示”的复选框及“设备指定”的复选框,能够选中某一者。在选中了显示条件的“始终显示”的复选框的情况下,编程辅助装置1在对st程序进行显示时始终对相应的电路显示部件一起进行显示。在选中了显示条件的“设备指定”的复选框的情况下,编程辅助装置1接收设备的指定及触发条件的指定,在对st程序进行显示时,在被指定的设备满足所指定的触发条件的情况下,始终对相应的电路显示部件一起进行显示。此外,设备表示可编程逻辑控制器所具有的内部存储器的特定的区域。“设备满足所指定的触发条件的情况”意味着“在设备所示的存储区域中储存的数据满足触发条件的情况”。编程辅助装置1使用户指定图18所示的8个种类的条件式中的1者作为触发条件。图18是表示对电路显示部件进行显示的触发条件的一个例子的图。编程辅助装置1也可以从用户接收与图18所示者不同的触发条件的指定。
[0102]
如上所述,本实施方式涉及的编程辅助程序所实现的编程辅助装置1具有以程序块为单位将梯形图程序转换为st程序的功能。另外,编程辅助装置1如果在将梯形图程序的1个程序块转换为st程序时满足规定的条件,则生成电路显示部件。即,编程辅助装置1在满足规定的条件(生成条件)的情况下判断为转换后的st程序的可读性下降,将要转换的梯形图程序的1个程序块保存为电路显示部件。另外,编程辅助装置1在对转换后的st程序进行显示时,与判断为可读性下降的部位关联地对电路显示部件进行显示。另外,编程辅助装置1具有对电路显示部件的生成条件进行学习的机器学习装置82,基于学习结果对是否生成电路显示部件进行判断。编程辅助装置1针对st程序的可读性低的部位而预先生成由可读性高的梯形图语言记述的电路显示部件,在对st程序进行显示时对预先生成的电路显示部件一起进行显示,因此,能够防止与转换为st程序相伴的可读性下降和对转换后的st程序进行的作业的效率下降。
[0103]
以上的实施方式所示的结构表示的是内容的一个例子,也可以与其它的公知技术进行组合,也可以在不脱离主旨的范围将结构的一部分省略、变更。
[0104]
标号的说明
[0105]
1编程辅助装置,2梯形图程序数据储存部,3p代码生成部,4数据操作部,5显示部,6电路显示部件储存部,7st程序数据储存部,8st程序生成部,21梯形图程序数据,71st程序数据,80电路显示部件生成部,81p代码解析部,82机器学习装置,83st模板储存部,84程序转换部,100电子计算机,821数据取得部,822状态观测部,823学习部,301转换对象程序指定画面,302左箭头按钮,303右箭头按钮,304复选框,401显示属性设定画面,501~503电路显示部件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1