一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

支持装置以及支持程序的制作方法

2022-02-19 03:35:07 来源:中国专利 TAG:


1.本公开涉及辅助开发由对控制对象进行控制的控制装置执行的控制程序的支持装置以及用于实现该支持装置的支持程序。


背景技术:

2.在各种制造现场,导入有plc(programmable logic controller:可编程逻辑控制器)等控制装置。这样的控制装置是一种计算机,执行根据制造装置、制造设备等而设计的用户程序中包含的控制程序。这样的控制程序在与控制装置分开准备的开发环境中生成。如下装置也被称为支持装置:该装置提供开发环境,并且提供对控制装置上传控制程序、或者对控制装置下载控制程序的功能。控制程序包含表示控制序列的序列程序。
3.在序列程序中,准备公共的序列逻辑作为记述该逻辑的功能块,通过在序列程序中记述功能块的调用命令,能够实现功能块的部件化以及再利用,能够提高程序的开发效率。
4.例如,在日本特开2001

5517号公报(专利文献1)中,公开了将作为由控制器执行中的程序的基础的使用功能块记述的控制逻辑图、与控制器中的程序的执行状况关联起来进行显示的装置。
5.另外,日本特开2004

295872号公报(专利文献2)公开了无论用户程序的编辑对象在何处,或者编辑部位变多(包含功能块编辑),都能够进行基于在线(online)编辑的编辑处理的用户程序的编辑方法。
6.现有技术文献
7.专利文献
8.专利文献1:日本特开2001

5517号公报
9.专利文献2:日本特开2004

295872号公报


技术实现要素:

10.发明所要解决的课题
11.通过如上述那样将功能块部件化,在序列程序中记载调用部件的命令代码即可,具有容易掌握序列程序的构造的优点。另一方面,在程序的开发场景中,期望对在功能块内实际记述的逻辑代码进行开发的环境的充实化。
12.本公开的一个目的在于提供一种能够有效地辅助序列程序开发的环境。
13.用于解决课题的手段
14.本公开的一例是一种支持装置,其辅助开发由对控制对象进行控制的控制装置执行的序列程序,其中,序列程序包含构成该序列程序的单位程序的调用命令,支持装置具有:操作受理部,其受理针对支持装置的操作;监视器部,其在序列程序的显示时,将单位程序的调用命令展开并显示为该单位程序定义的序列逻辑所表示的电路;编辑器部,其按照变更所显示的所述电路的操作,将序列逻辑变更为表示变更后的电路的序列逻辑;以及代
码转换部,其将序列程序转换为能够执行的代码,代码转换部按照切换选项,对序列程序中的调用命令分配变更后的序列逻辑的代码和调用命令代码中的一方来实施转换。
15.根据本公开,当在序列程序中调用相同单位程序的调用命令记述在多个部位时,某1个部位的调用命令分配由编辑器部变更后的序列逻辑,其他部位的调用命令保持原来的调用命令代码不变,从而能够转换为可执行的代码。
16.在上述公开中,支持装置具有设定部,所述设定部按照设定操作,在序列程序的调用命令中设定切换选项,监视器部在显示序列程序的情况下,调用命令中设定有切换选项时,将该调用命令展开并显示为电路。
17.根据本公开,在序列程序的显示时,在序列程序中的设定有切换选项的调用命令中,不显示该调用命令,而显示基于要调用的单位程序定义的序列逻辑的电路。
18.在上述公开中,控制装置具有以能够调用的方式保存单位程序的序列逻辑的代码的库,使用变更后的序列逻辑的代码来变更保存在库中的序列逻辑的代码。
19.根据本公开,能够将基于编辑器部的、序列程序中的变更后的序列逻辑的代码用于控制装置的库中的对应单位程序的序列逻辑的代码的编辑。
20.在上述公开中,在上述公开中,控制装置具有以能够调用的方式保存单位程序的序列逻辑的代码的库,序列程序包含1个以上的所述调用命令,按照选择操作,在1个以上的调用命令中,选择具有在库的序列逻辑的代码的变更中使用的、变更后的序列逻辑的调用命令。
21.根据本公开,能够从与序列程序中的变更后的各调用命令对应的序列逻辑的代码中,选择在上述库中的对应单位程序的序列逻辑的代码编辑中使用的代码。
22.在上述公开中,显示1个以上的调用命令中的、由编辑器部进行了序列逻辑的变更的调用命令的一览。
23.根据本公开,用户能够从所显示的调用命令的一览中,选择在上述库中的对应单位程序的序列逻辑的代码编辑中使用的调用命令(即,由编辑器部进行了序列逻辑的变更的调用命令)。
24.在上述公开中,监视器部从控制装置取得表示单位程序定义的序列逻辑的执行状态的电路输出状态,并且基于单位程序定义的序列逻辑所表示的电路和所取得的电路输出状态,将控制装置中的该序列逻辑的执行状态在展开的电路中可视化。
25.根据本公开,能够在支持装置所显示的调用命令的部分中,将控制装置中正在执行的序列程序的执行状态在展开的电路中可视化并提示。
26.本公开的一例是一种支持程序,其用于辅助开发由对控制对象进行控制的控制装置执行的序列程序,其中,序列程序包含构成该序列程序的单位程序的调用命令,支持程序在计算机中具有以下步骤:受理对计算机的操作;在序列程序的显示时,将单位程序的调用命令展开并显示为该单位程序定义的序列逻辑所表示的电路;按照变更所显示的电路的操作,将序列逻辑变更为表示变更后的电路的序列逻辑;以及将序列程序转换为能够执行的代码,转换为能够执行的代码的步骤包含如下步骤:按照切换选项,对序列程序中的调用命令分配变更后的序列逻辑的代码和调用命令代码中的一方来实施转换。
27.根据本公开,通过执行支持程序,当在序列程序中调用相同单位程序的调用命令记述在多个部位时,某1个部位的调用命令分配由编辑器部变更后的序列逻辑,其他部位的
调用命令保持原来的调用命令代码不变,从而能够转换为可执行的代码。
28.发明的效果
29.根据本公开的一例,提供一种能够有效地辅助序列程序开发的环境。
附图说明
30.图1是表示可应用本发明实施方式的支持装置200的plc系统1的结构例的示意图。
31.图2是表示构成图1所示的plc系统的plc 100的硬件结构例的示意图。
32.图3是表示本发明实施方式的支持装置200的硬件结构例的示意图。
33.图4是表示本发明实施方式的plc 100的软件结构的一例的示意图。
34.图5是说明本发明实施方式的plc 100中的用户程序112与变量表间的数据的参照例的图。
35.图6是表示本发明实施方式的支持装置200的软件结构的一例的示意图。
36.图7是示意性地表示本发明实施方式的局部标志表273的一例的图。
37.图8是示意性地表示本发明实施方式的定义标志表274的一例的图。
38.图9是示意性地表示本发明实施方式的序列逻辑的编辑的一例的图。
39.图10是示意性地表示本发明实施方式的fun/fb定义276的一部分的图。
40.图11是示意性地表示本发明实施方式的序列程序271的一部分的图。
41.图12是示意性地表示本发明实施方式的使用了fun/fb定义276的调用命令的序列程序271的一例的图。
42.图13是表示本发明实施方式的处理概要的流程图。
43.图14是说明本发明实施方式的在线编辑处理的流程图。
44.图15是说明本发明实施方式的构建处理的流程图。
45.图16是用于说明本发明实施方式的通过在线编辑功能传送的控制程序的执行开始定时的图。
46.图17是说明由本发明实施方式的开发辅助环境起到的优点的图。
47.图18是说明由本发明实施方式的开发辅助环境起到的优点的图。
48.图19是说明由本发明实施方式的开发辅助环境起到的优点的图。
49.图20是示意性地表示本实施方式的序列电路信息的一例的图。
50.图21是用于示意性地说明本公开的应用例的图。
具体实施方式
51.参照附图详细说明本发明的实施方式。另外,对图中的相同或相应的部分标注相同的标号并不重复其说明。
52.[
§
.应用例]
[0053]
首先,对应用本发明的场景的一例进行说明。图21是用于示意性地说明本公开的应用例的图。参照图21,本公开的支持装置200可与对制造现场的制造设备等对象进行控制的控制装置连接。两者例如通过usb(universal serial bus:通用串行总线)进行通信。支持装置200提供对由控制装置执行的控制程序的开发进行辅助的环境。在以下的说明中,作为控制装置的典型例示出plc 100,但并不限定于plc。
[0054]
支持装置200提供开发包含控制程序在内的各种用户程序的环境。作为开发对象的程序例如可包含依据国际标准iec61131

3的程序。在国际标准iec61131

3中,作为包含控制程序的plc应用的编程语言,规定梯形图(ld:ladder diagram)、功能块图(fbd:function block diagram)、序列功能图(sfc:sequential function chart)、指令列表(il:instrution list)、结构化文本(st:structured text)这5种。本实施方式的控制程序是序列程序271,也可以是以任意编程语言记述的序列程序271。以下,作为典型例,对以梯形图记述的序列程序271进行说明。
[0055]
plc 100具有库275,库275保存包含函数和功能块的多个单位程序的能够执行的代码。序列程序271包含调用构成该序列程序271的1个或多个单位程序的调用命令。因此,plc 100中,在序列程序271的执行中,通过执行调用命令,从库275调用并执行对应的单位程序。
[0056]
支持装置200提供开发由plc 100执行的序列程序271的环境。开发环境具有监视器224、编辑器222、构建器223等。监视器224在将序列程序271显示于显示器214时,将单位程序的调用命令展开并显示为该单位程序定义的序列逻辑所表示的电路。编辑器222按照变更显示于显示器214的电路的操作,变更电路的序列逻辑。在将序列程序271转换为能够在plc 100中执行的代码的情况下,构建器223按照切换选项,一边对序列程序271中的调用命令分配变更后的序列逻辑的代码以及调用命令代码中的一方,一边实施该转换。
[0057]
由此,例如在序列程序271的编辑时,能够将所调用的单位程序展开并显示为该单位程序定义的序列逻辑所表示的电路。这使得在序列程序271的编辑时等开发现场,能够通过序列电路掌握在由调用命令调用的单位程序内实际记述的序列逻辑代码。
[0058]
另外,通过进行变更所显示的序列电路的操作,用户能够将该电路的原来的序列逻辑变更为变更后的电路所表示的序列逻辑。
[0059]
在对能够执行序列程序271的代码进行转换的情况下,通过切换选项,能够一边对各调用命令分配变更后的序列逻辑的代码以及调用命令代码中的一方,一边转换为能够执行的代码。这样,通过切换选项的设定,能够仅针对期望的调用命令,取得被分配了变更后的序列逻辑的代码的能够执行的代码。因此,plc 100中,在执行转换为该能够执行的代码后的序列程序271的情况下,即使在记述有多个原本调用相同的单位程序的命令代码的情况下,也能够在某1个调用命令代码中执行由用户变更后的序列逻辑代码,并且在另1个命令代码中执行从库275读出的序列逻辑代码。由此,能够针对序列程序271的每个使用部位来变更作为公共部件的单位程序。
[0060]
另外,支持装置200使用变更后的序列逻辑的代码来变更plc 100的库275中保存的单位程序的序列逻辑的代码。由此,在能够确认作为上述某1个调用命令代码而执行的变更后的序列逻辑代码的执行结果恰当时,用户能够将保存在库275中的对应的单位程序的序列逻辑的代码变更(更新)为已确认恰当的变更后的序列逻辑代码。由此,即使在序列程序271中作为公共部件的单位程序在多个部位被调用的情况下,也能够仅在1个部位,使执行的序列逻辑代码与其他部位不同来执行序列程序271,在得到其结果的基础上,变更库275的单位程序的序列逻辑的代码。
[0061]
以下,作为本发明的更具体的应用例,对本实施方式的支持装置200的更详细的结构以及处理进行说明。
[0062]
<a.软件结构>
[0063]
对用于实现上述的应用例的软件结构进行说明。图6是表示本发明实施方式的支持装置200的软件结构的一例的示意图。
[0064]
在该软件结构中,提供“在线监视器”,该“在线监视器”是确认根据控制对象任意创建的用户程序(序列程序271)在控制装置中的执行状态的功能。在线监视器是包含上述的电力流动(power flow)显示的概念。
[0065]
另外,还提供“在线编辑器”,该“在线编辑器”是编辑并更新由用户程序(序列程序271)的控制装置执行的序列程序271的功能。
[0066]
在本实施方式中,支持装置200构成为提供“在线编辑器”和包含电力流动显示的“在线监视器”这两种环境,但也可以提供任意1种环境。例如,支持装置200也可以构成为不具有“在线监视器”而仅提供“在线编辑器”。
[0067]
在图6中,与和plc 100的数据交换相关联地表示支持装置200的软件结构。参照图6,支持装置200根据序列程序271生成中间代码272,并传送至plc 100。plc100将从支持装置200接收到的中间代码272转换为本地代码。plc 100的运算处理部执行本地代码。通过本地代码的执行,实现对控制对象的控制。序列程序271包含调用命令部,该调用命令部调用构成该序列程序271的单位程序。在本实施方式中,作为单位程序,例示作为功能(fun:function)或功能块(fb:function block)的定义的fun/fb定义。fun/fb定义作为用于使序列程序271的记述高效化的公共部件,登记在plc 100的库等中,在序列程序271的执行时,适当地执行从库调用而定义的序列逻辑。另外,单位程序的定义内容依赖于记述该单位块的程序语言的规格,而在本实施方式中,规定基于按照上述梯形图的序列逻辑的电路结构。该电路结构主要包含逻辑性的电路结构。
[0068]
另外,支持装置200将用于在支持装置200中实现监视器224的画面显示的对象代码2788保存在存储部201中。在支持装置200的存储部201中,还保存有根据plc100用的用户程序生成并规定序列程序的电路结构的序列电路信息279和定义电路信息280。定义电路信息280表示由上述的fun/fb定义规定的电路结构。
[0069]
支持装置200具有用于创建序列程序271的编辑器222。在编辑时,编辑器222所具有的选项设定模块2311按照操作受理部221从操作部203受理的用户操作,从序列程序271的单位程序的调用命令中选择1个以上的调用命令,并在所选择的调用命令中设定显示方式的切换选项。
[0070]
因此,在编辑时,一边通过监视器224显示序列程序271一边进行命令代码的追加、删除、变更等,而在该情况下,1个以上的调用命令基于所设定的上述选项被切换为对应的单位程序定义的序列逻辑所表示的电路结构的图像。由此,作为单位程序的调用命令,该单位程序所规定的电路结构被内联(inline)展开并显示。这样,通过用户操作,在1个以上的调用命令部中选择性地设定选项,由此在1个以上的调用命令部中对应的单位程序所规定的电路结构被可视化。
[0071]
这样的可视化也在在线编辑时实施。在线编辑器232的局部编辑器233按照对序列程序271的被内联展开的电路结构的图像的变更操作,编辑(变更)序列程序271。另外,定义编辑器234按照对内联展开的电路结构的图像的变更操作,编辑(变更)在plc 100的库中登记的fun/fb定义的定义内容(序列逻辑)。
[0072]
另外,支持装置200具有用于提供在线监视的在线监视模块238。在线监视模块238从plc 100取得表示本地代码的执行状态的电路输出状态156(后述)。即,支持装置200(在线监视模块238)与plc 100之间交换电路输出状态156。然后,支持装置200的在线监视模块238基于序列电路信息279、定义电路信息280以及所取得的电路输出状态156,使plc 100中的序列程序的执行状态可视化(即,提供在线监视)。通过该执行状态的可视化,提供信息以辅助用户用来判断对序列逻辑进行编辑(变更)。
[0073]
通过这样的具有内联展开的选项的编辑器以及在plc 100中使执行状态可视化的在线监视器,提供辅助单位程序以及序列程序等的高效开发的环境。
[0074]
以下,作为本发明的更具体的应用例,对本实施方式的支持装置200的更详细的结构以及处理进行说明。
[0075]
<b.系统结构>
[0076]
图1是表示可应用本实施方式的支持装置200的plc系统1的结构例的示意图。
[0077]
参照图1,plc系统1包含多个的plc 100

1、100

2、100

3、100

4、

(以下,也总称为“plc 100”。)。plc 100分别是对继电器、传感器等现场设备即控制对象进行控制的控制装置的一例。支持装置200可连接于plc 100,提供辅助plc 100开发控制程序的环境。plc系统1也可以是包含1台plc 100的结构。以下,为了简化说明,对以1台plc 100为对象的开发环境进行说明。
[0078]
典型地,plc 100包含:cpu单元10,其是执行包含控制程序在内的各种程序的主体;电源单元12,其向cpu单元10等供给电力;以及i/o(input/output:输入/输出)单元14,其交换来自现场的信号。i/o单元14经由系统总线11与cpu单元10连接。
[0079]
支持装置200所提供的开发辅助环境可具有控制程序的编辑器(编辑)、调试器、模拟器以及用于将这些输出信息输出至显示器等监视器的监视器功能等。支持装置200还具有取得运转中的plc 100的状态值并输出至显示器等监视器的功能等。
[0080]
通过将保存在记录介质250中的应用程序即支持程序安装在支持装置200中,实现如上所述的用于开发辅助环境的各种功能。也可以代替记录介质250而从外部的服务器装置等经由网络下载支持程序。作为一例,支持装置200经由连接线缆而与plc100的cpu单元10连接。支持装置200典型的是由个人计算机来实现。
[0081]
<c.plc 100的硬件结构例>
[0082]
接着,对plc 100的硬件结构例进行说明。图2是表示构成图1所示的plc系统的plc 100的硬件结构例的示意图。
[0083]
参照图2,plc 100通过处理器执行预先安装的程序来实现对控制对象的控制。更具体而言,plc 100包含cpu(central processing unit:中央处理器)或mpu(micro

processing unit:微处理器)等处理器102、芯片组104、主存储器106、闪存108、usb接口116、存储卡接口118、内部总线控制器122以及现场总线控制器124。闪存108保存系统程序110和用户程序112。
[0084]
处理器102读出保存在闪存108中的系统程序110和用户程序112,在主存储器106中展开并执行,由此实现对控制对象的控制。在本说明书中,“控制程序”是根据控制对象而任意设计的程序的一种,是包含系统程序110以及用户程序112的概念。但是,在安装方式中,控制程序有时也仅包含用户程序112。
[0085]
系统程序110包含用于提供数据的输入输出处理、执行定时控制等plc 100的基本功能的命令代码。用户程序112包含用于执行序列控制的序列程序112a(与序列程序271对应)以及库275。库275包含在执行序列程序112a时能够从序列程序112a调用的各种函数以及1个或多个fun/fb定义276。
[0086]
此外,用户程序112可包含运动程序等其他程序,但在本实施方式中,为了说明而以序列程序112a为主体进行说明。另外,在本实施方式中,作为序列程序112a,例如包含“梯形图程序”,该“梯形图程序”通过由iec61131

3等规定的梯形图语言,记述由梯形图逻辑电路(逻辑电路)或梯形图逻辑电路的组合表示的运算的命令代码。
[0087]
库275的fun/fb定义276表示fun或fb的定义内容。fun/fb定义276所定义的fun或fb相当于构成序列程序的单位程序(以下,也称为pou(program organization unit:程序组织单元))。由fun或fb定义的序列逻辑的代码表示由逻辑电路或逻辑电路的组合构成的序列逻辑电路(例如,梯形图逻辑电路)。
[0088]
芯片组104通过控制各组件,实现作为plc 100整体的处理。
[0089]
内部总线控制器122是与i/o单元14之间交换数据的接口,i/o单元14通过内部总线与plc 100连接。现场总线控制器124是与i/o单元16之间交换数据的接口,i/o单元16通过未图示的现场总线与plc 100连接。内部总线控制器122和现场总线控制器124取得分别输入至对应的i/o单元14和16的状态值,并且将处理器102中的运算结果从对应的i/o单元14和16分别作为指令值输出。
[0090]
usb(universal serial bus:通用串行总线)接口116通过usb来控制数据的交换。支持装置200经由usb接口116与plc 100进行通信。存储卡接口118构成为能够装卸存储卡120,能够对存储卡120写入数据,并从存储卡120读出数据。
[0091]
在图2中,示出了通过处理器102执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如,asic(application specific integrated circuit:专用集成电路)或者fpga(field

programmable gate array:现场可编程门阵列)等)来安装这些所提供的功能的一部分或者全部。或者,也可以使用遵循通用架构的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现plc 100的主要部分。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个os(operating system:操作系统),并且在各os上执行所需的应用。
[0092]
<d.支持装置200的硬件结构例>
[0093]
图3是表示本发明实施方式的支持装置200的硬件结构例的示意图。参照图3,支持装置200典型的是由通用的计算机构成。此外,从配置plc 100的制造现场的维护性的观点出发,优选便携性优异的笔记本型的个人计算机。
[0094]
支持装置200具有存储部201、以及执行包含操作系统(os)在内的各种程序的cpu 202。存储部201包含:保存bios、各种数据的rom(read only memory:只读存储器)204;提供cpu 202中的程序执行所需的数据保存用的作业区域的存储器ram(random access memory:随机存取存储器)206;以及非易失性地存储由cpu202执行的程序等的硬盘(hdd)208。
[0095]
支持装置200还包含:操作部203,其包含用户为了对支持装置200输入指示而操作的键盘210和鼠标212;以及显示器214,其用于将信息提示给用户。支持装置200包含用于与
plc 100(cpu单元10)等进行通信的通信接口218。通信接口218可包含用于与usb接口116进行通信的usb通信模块。
[0096]
支持装置200包含光学记录介质读取装置216,该光学记录介质读取装置216用于从记录介质250读取保存于其中的用于提供开发辅助环境的支持程序。
[0097]
在图3中,示出了通过cpu 202等处理器执行程序而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如asic或fpga等)来安装这些所提供的功能的一部分或全部。在该情况下,也可以使用虚拟化技术并行地执行用途不同的多个os,并且在各os上执行所需的应用。
[0098]
<e.plc的软件结构例>
[0099]
图4是表示本发明实施方式的plc 100的软件结构的一例的示意图。
[0100]
参照图4,在plc 100中,管理程序111管理plc 100的硬件资源,并且对实时os 114和通用os 1161一面调停一面分配这些硬件资源,由此在公共的硬件资源上执行相互独立的实时os 114和通用os 1161。即,使用管理程序111,实现执行多个不同的os的虚拟化环境。实时os 114与通用os 1161之间经由管理程序111而构成逻辑性网络。
[0101]
在实时os 114中,执行包含序列程序的用户程序112。在执行用户程序112时,任务调度器1142、程序管理器1144、i/o(input/output:输入/输出)控制过程1146相关联。用户程序112被预先转换为执行形式,该执行形式的代码与任务调度器1142、程序管理器1144、i/o控制过程1146协作,并且反复进行来自控制对象的信号的取得、控制逻辑的执行、执行结果的反映(致动器的控制)。
[0102]
i/o控制过程1146负责与控制对象之间交换各种信号的处理。任务调度器1142针对用户程序112所包含的每个任务,控制执行周期或执行定时。在本实施方式中,任务调度器1142在按照任务的执行周期的开始定时到来的情况下,在从程序管理器1144受理了定时信号时,执行该任务。使用程序管理器1144的定时信号的执行控制的细节将在后面叙述。
[0103]
在通用os 1161中,执行任意的用户应用1164和通用应用1162。
[0104]
典型地,用户应用1164是由在实时os 114中执行的用户程序112的开发供应商等创建的应用,执行取得和/或提供用户程序112的处理结果所涉及的数据和/或处理所需的数据的处理。
[0105]
通用应用1162是能够在通用os 1161中执行的标准的应用,通过与用户应用1164协作,能够使用通用的处理、功能,以更少的工时构建系统。
[0106]
<f.plc 100的软件间的参照例>
[0107]
图5是说明本发明实施方式的plc 100中的用户程序112与变量表间的数据的参照例的图。
[0108]
参照图5,在plc 100中,在执行控制程序的情况下,执行系统程序110和用户程序112。系统程序110具有i/o模块160作为其功能的一部分。i/o模块160将i/o单元与设置有控制对象装置的现场侧交换的数据与全局变量表150构建关联。
[0109]
在plc 100中,能够进行变量编程,用户程序112能够使用在全局变量表150中定义的与现场数据相关联的变量值来执行各种处理。
[0110]
用户程序112的序列程序112a主要由梯形图区段130和库275构成。用户程序112表示能够由处理器102执行的形式的本地代码154。
[0111]
梯形图区段130包含以梯形图语言记述的梯形图程序。当执行梯形图程序中包含的调用命令时,调用并执行库275中包含的fun/fb定义276,其执行结果被返回调用源的梯形图程序。
[0112]
<g.支持装置200的软件结构例>
[0113]
图6是表示本发明实施方式的支持装置200的软件结构的一例的示意图。在图6中,与支持装置200的软件结构相关联地表示存储部201中保存的信息的一例。图7是示意性地表示本发明实施方式的局部标志表273的一例的图。图8是示意性地表示本发明实施方式的定义标志表274的一例的图。图9是示意性地表示本发明实施方式的序列逻辑的编辑的一例的图。
[0114]
(g1.保存在支持装置200中的信息)
[0115]
存储部201中保存的信息包含作为程序源代码的序列程序271、根据序列程序271生成的中间代码272、局部标志表273、定义标志表274、对象代码2788、序列电路信息279以及定义电路信息280。
[0116]
参照图7,在局部标志表273中,针对由序列程序271中的调用命令调用、且其序列逻辑(序列电路)在序列程序271中被展开(以下,也称为内联展开)的fun/fb定义276,分别登记信息。与该fun/fb定义276分别对应的信息关联地包含识别该fun/fb定义276的名称(pou名等)即调用名称2731、该fun/fb定义276的调用命令在序列程序271中出现的行(line)的位置2732、以及非同步标志2733。
[0117]
参照图8,定义标志表274针对库275的每个fun/fb定义276,将作为该fun/fb定义276的标识符(pou名等)的定义名2741、以及定义非同步标志2742关联起来进行登记。
[0118]
在此,说明非同步标志2733以及定义非同步标志2742。支持装置200按照用户操作,变更在序列程序271中被内联展开的序列逻辑(以下称为局部编辑)。此外,支持装置200变更库275的对应fun/fb定义276的定义内容(以下,称为定义编辑)。通过进行这样的局部编辑或定义编辑,可能产生在序列程序271中被内联展开的fun/fb定义276的序列逻辑与库275的对应fun/fb定义276的序列逻辑不一致的状态(以下,也称为非同步),通过解除非同步而成为两者的序列逻辑一致的状态(以下,也称为同步)。原本,两者的序列逻辑是同步的。因此,非同步标志2733在序列程序271中被内联展开的序列逻辑非同步时被设置为“1”,在同步时被设置为“0”。同样地,定义非同步标志2742在对应的fun/fb定义276所定义的序列逻辑非同步时被设置为“1”,在同步时被设置为“0”。
[0119]
另外,参照图8,定义标志表274的fun/fb定义276的定义名2741与在序列程序271中的调用命令所设定的后述的选项277相关联。
[0120]
对象代码2788、序列电路信息279以及定义电路信息280用于将作为控制程序的序列程序271所表示的序列逻辑电路显示于显示器214。具体而言,对象代码2788表示用于实现序列逻辑电路的画面显示的对象代码。序列电路信息279规定序列程序271的序列逻辑电路结构。定义电路信息280根据库275的fun/fb定义276的定义内容即序列逻辑2761(后述)而生成,规定序列逻辑2761所表示的电路结构。
[0121]
(g2.用于提供开发辅助环境的模块)
[0122]
参照图6,用于提供开发辅助环境的支持程序包含:支持程序700,其通过被执行而实现包含内联展开在内的在线监视;以及支持程序710,其通过被执行而实现在线编辑。支
持程序700包含实现用于受理经由操作部203的用户操作的操作受理部221及监视器224等的程序。支持程序710包含实现操作受理部221及监视器224等的程序。这些模块由程序或电路、或者程序和电路的组合构成。
[0123]
编辑器222按照用户操作实施包含序列程序271的用户程序的编辑(创建)。编辑器222包含在线编辑器232。在线编辑器232提供不使plc 100的控制对象停止地编辑plc 100的控制程序等的环境。即,在运用plc 100的制造现场等,多数情况下不容易使控制对象停止。基于这样的背景,在即使想要变更由plc 100执行的控制程序的一部分的情况下,如果不使plc 100暂时停止就无法变更控制程序,则使用便利性差。因此,在线编辑器232能够一边与plc 100协作,一边改写(编辑)在plc100的运转中执行的控制程序的一部分。
[0124]
编辑器222与在线编辑器232不同,还能够不依赖于plc 100(或plc 100的运转状态)地编辑控制程序(也称为离线编辑)。在离线编辑时,编辑器222按照操作受理部221所受理的操作内容,创建包含序列程序271的用户程序。所创建的程序作为源程序即序列程序271被保存在存储部201中。另外,在离线编辑时,选项设定模块2311按照用户操作内容,对从序列程序271中的调用命令中选择的1个以上设定指示显示方式的切换的选项277。
[0125]
在线编辑器232包含实施局部编辑的局部编辑器233和实施定义编辑的定义编辑器234。
[0126]
图9是示意性地表示本发明实施方式的编辑的一例的图。参照图9,说明序列程序271的序列逻辑或fun/fb定义276的序列逻辑2761(后述)规定例如图9的(a)那样的电路结构的情形。在该情形下,表示序列逻辑的电路结构的图像显示于显示器214。用户通过使用编辑器222操作图像,能够将图9的(a)的电路的序列逻辑2761变更为例如图9的(b)或图9的(c)那样追加了新的电路的逻辑。
[0127]
作为应用例,例如,在对由在线监视器显示的电路输出状态156进行监视的结果是用户判断为由于控制对象的故障而在电路的一部分中产生了错误的情况下,如图9的(c)所示,以追加与故障相关的电路部件的旁通电路的方式变更显示图像。另外,在线编辑器232的编辑的应用例并不限定于故障等错误应对。
[0128]
构建器223是“代码转换部”的一个实施例。构建器223对序列程序271进行构建处理(包含解析、最优化、编译等)而生成中间代码272。支持装置200将中间代码272载入plc 100。plc 100的处理器102根据中间代码,一边参照库275的fun/fb定义276的定义内容,一边生成本地代码154。本地代码154是plc 100能够直接解释并执行的可执行的代码。另外,中间代码272也是plc 100能够执行的形式的代码。plc 100在执行中间代码272的情况下,例如一边按照解释器方式对每1行进行解释一边执行。在本实施方式中,说明plc 100执行本地代码154的情况。
[0129]
监视器224将开发辅助环境中的各模块的执行结果的信息及序列程序271显示于显示器214。在序列程序271显示于显示器214的情况下,监视器224在设定有选项277的调用命令的部分,显示内联展开后的序列电路的图像,在未设定选项277的调用命令的部分仅显示以往的调用命令。这样,用户通过选择序列程序271的1个以上的调用命令,并对所选择的调用命令设定选项277,在序列程序271的显示时,能够将通过该调用命令调用的fun/fb定义276内联展开并显示。因此,在序列程序271的逻辑的显示画面中,在该序列程序271的调用命令中的用户所希望的1个以上的调用命令的部分中,能够使通过该调用命令调用的
fun/fb定义276的序列逻辑(例如图9那样的电路结构)可视化。
[0130]
另外,监视器224包含用于通过序列程序271的序列逻辑(序列电路)来监视plc 100的执行状态的在线监视模块238。
[0131]
具体而言,在线监视模块238从plc 100取得表示本地代码154的执行状态的电路输出状态156。即,在线监视模块238与plc 100之间交换电路输出状态156。然后,在线监视模块238基于序列电路信息279、定义电路信息280以及所取得的电路输出状态156,经由显示器214使plc 100中的序列程序271的执行状态可视化(即,提供在线监视)。在线监视中,在序列程序271具有内联展开后的电路结构的情况下,内联展开后的序列电路中,也可视化地示出序列逻辑的执行状态。
[0132]
通过采用这样的结构,用户能够在支持装置200中实时地监视由plc 100执行的包含序列程序271的用户程序的执行状态。
[0133]
<h.fun/fb定义和调用命令>
[0134]
图10是示意性地表示本发明实施方式的fun/fb定义276的一部分的图。参照图10,fun/fb定义276包含用于fun或fb的运算的自变量等变量名、输入输出的类别和数据类型的定义、序列逻辑2761。在调用并执行fun/fb定义276(单位程序)的情况下,使用对所定义的变量分配的值来执行按照序列逻辑2761的运算。执行结果作为来自单位程序的返回值而输出。
[0135]
图11是示意性地表示本发明实施方式的序列程序271的一部分的图。图12是示意性地表示本发明实施方式的使用了fun/fb定义276的调用命令的序列程序271的一例的图。参照图11,序列程序271例如包含命令0、1及2。命令0和命令1记载相同的序列逻辑,因此命令0、1能够用定义该序列逻辑的公共部件即图10的fun/fb定义276的调用命令278来置换(参照图12)。
[0136]
另外,在图12的序列程序271中,通过选项设定模块2311对命令0和命令1设定了选项277,但在命令2中未设定选项277。在该情况下,监视器224对设定有选项277的命令0和命令1的调用命令278实施内联展开。由此,在命令0和命令1的调用命令278的部分中,显示按照对应的fun/fb定义276的序列逻辑2761的电路结构的图像。
[0137]
<i.整体处理>
[0138]
图13是表示本发明实施方式的处理概要的流程图。在图13的流程图中,关联地示出支持装置200与plc 100的处理。
[0139]
参照图13,用户操作支持装置200,创建包含与控制对象相应的plc用的序列程序271的用户程序(步骤s1)。具体而言,编辑器222通过离线编辑,按照用户操作编辑序列程序271,并将编辑后的序列程序271保存在存储部201中。在离线编辑中,选项设定模块2311按照用户操作,对序列程序271的被选择的1个以上的调用命令设定选项277。
[0140]
在编辑时,监视器224将序列程序271显示于显示器214(步骤s3)。监视器224对设定有选项277的调用命令实施内联展开。因此,在离线编辑时,在设定有选项277的调用命令的部分中,对应的序列逻辑2761(序列电路结构)通过图像被可视化。在此,内联展开的fun/fb定义276所声明的输入和输出的变量名使用在调用命令部分指定的参数名来显示。
[0141]
另外,在显示序列程序271的情况下,设定有选项277的调用命令被内联展开,但在本实施方式中,选项设定模块2311还按照用户操作,使已经设定在调用命令中的选项277有
效化或无效化。由此,按照用户的选择操作,在已经设定有选项277的调用命令的部分中,能够切换是进行内联展开来显示序列逻辑2761(序列电路结构)(使选项277有效化),还是直接显示调用命令(使选项277无效化)。
[0142]
另外,对于内联展开的fun,用户能够进行实例名的指定操作(也可以不进行指定操作)以用于监视。此外,fb具有实例名,因此不需要指定。当用户对内联展开后的fun进行实例名的指定操作时,在序列程序271中保持实例名。此外,在未指定实例名的情况下,在构建时分配任意的唯一的实例名。
[0143]
当序列程序271的创建完成时,按照用户操作,启动构建器223,实施构建处理(步骤t1)。在构建处理中,构建器223生成与序列程序271对应的中间代码272和对象代码2788。此时,支持装置200根据序列程序271一并生成序列电路信息279。序列电路信息279是用于提供在线监视的显示用的信息。关于序列电路信息279的详细情况,将在后面叙述。
[0144]
支持装置200将与序列程序271对应的中间代码272传送至plc 100(步骤t2)。
[0145]
plc 100从支持装置200接收并保存中间代码272(步骤u1)。plc 100使用接收到的中间代码272来实施启动处理(步骤u2)。此时,plc 100根据中间代码272生成选项表1165,该选项表1165保存有设定了选项的各调用命令的行、和定义名的组。
[0146]
plc 100执行本地代码154(序列程序271)(步骤u3)。当通过在plc 100中执行序列程序271来实现控制对象的控制处理时,执行以下所示的与在线监视相关的处理。
[0147]
即,用户对支持装置200指示执行在线监视。响应于经由操作受理部221受理的执行命令,在线监视模块238被启动。在线监视模块238执行在线监视处理(步骤p1)。
[0148]
在线监视模块238对plc 100请求电路输出状态156(步骤p11)。响应于该请求,plc 100的用户应用1164基于序列程序271所规定的序列电路的输入输出变量,检索全局变量表150。通过该检索,从全局变量表150取得表示执行中的序列程序271(本地代码154)的执行状态的电路输出状态156。用户应用1164将所取得的电路输出状态156发送至支持装置200(步骤u31)。
[0149]
电路输出状态156的值包含内联电路状态1166的值。内联电路状态1166表示在执行中的序列程序271中设定有选项277的各fun/fb定义276的序列逻辑2761所规定的序列电路(即内联展开后的序列电路)的状态的值。内联电路状态1166针对选项表1165所示的调用了该fun/fb定义276的各行(line),包含行编号、和在该行调用的fun/fb定义276所规定的序列电路的电路输出状态的值。
[0150]
在线监视模块238基于来自plc 100的序列电路信息、电路输出状态156及内联电路状态1166,将包含内联展开后的序列电路的序列程序271的序列在显示器214中可视化(步骤p12)。由此,能够在包含内联展开后的序列电路的序列程序271整体的序列电路中,实现反映了电路输出状态的值的电力流动显示。
[0151]
用户能够根据在线监视模块238提供的显示器214的画面,确认plc 100中的序列程序271的执行中的状态。
[0152]
在本实施方式中,在序列程序271中被内联展开后的调用命令不是作为(实例名.fun/fb定义内的局部变量名),而是作为(fun/fb定义内的局部变量名)来显示序列逻辑。因此,在线监视模块238基于(fun/fb定义内的局部变量名)和实例名的组合,从plc 100取得与(实例名.fun/fb定义内的局部变量名)对应的内联电路状态1166下的当前值,在内联
展开后的序列电路图像中进行电力流动显示。
[0153]
另外,在线监视模块238在序列程序271中实施电力流动显示的情况下,也可以在显示器214中显示观察窗口,在观察窗口中输出(实例名.fun/fb定义内的局部变量名)及其当前值。
[0154]
此外,支持装置200也可以对plc 100仅请求内联电路状态1166,以使得仅在内联展开后的序列电路图像中进行电力流动显示。
[0155]
另外,在线监视模块238也可以实施对序列程序271的整体进行电力流动显示的模式、和仅在内联展开后的序列电路图像中进行电力流动显示的模式的切换。该切换例如能够按照用户操作来实施。
[0156]
当通过在plc 100中执行序列程序271来实现控制对象的控制处理时,能够实施以下所示的与在线编辑相关的处理。
[0157]
即,在plc 100中执行序列程序271的过程中,操作受理部221根据从用户受理的执行指示,启动在线编辑器232(步骤q1)。在线编辑器232按照经由操作受理部221受理的用户操作,编辑序列程序271。此时,在线监视器提供的序列电路的电路输出状态值能够成为用户用于判断应变更序列逻辑的部位的、可视化的辅助信息。根据可视化的电路输出状态值,例如,用户能够判断图9的(a)的序列电路的故障,并如图9的(b)或(c)那样变更判断出的故障部位。在线编辑器232按照从操作受理部221受理的用户操作,变更(编辑)序列程序271。变更后的序列程序271保存在存储部201中。
[0158]
按照用户操作,启动构建器223。构建器223执行进行了在线编辑处理的序列程序271的构建处理(步骤r1)。构建器223将通过构建处理而获得的中间代码272保存在存储部201中,并且传送至plc 100(步骤r2)。
[0159]
传送后,支持装置200例如按照用户操作来判断是否结束处理(步骤r3),在判断为结束的情况下(在步骤r3中为“是”),结束处理。在判断为不结束的情况下(在步骤r3中为“否”),转移到步骤p1等下一处理。
[0160]
plc 100判断是否从支持装置200接收到在线编辑后的中间代码272(步骤u4)。plc 100在从支持装置200接收到中间代码272的情况下(在步骤u4中为“是”),保存接收到的中间代码272(步骤u5),然后转移至步骤u2。由此,能够实施按照在线编辑后的序列程序271的控制对象的控制、以及在线监视处理。
[0161]
此外,在未接收到中间代码272的情况下(在步骤u4中为“否”),结束处理。
[0162]
(i1.在线编辑处理)
[0163]
图14是说明本发明实施方式的在线编辑处理的流程图。参照图14,详细说明图13的在线编辑处理(步骤q1)。另外,假设在线编辑的对象是在调用命令部分中被内联展开后的序列逻辑或库275的fun/fb定义276。内联展开后的序列逻辑或fun/fb定义276的在线编辑包含逻辑电路结构或输入输出变量的创建或编辑(追加、变更、删除等)。
[0164]
首先,在线编辑器232在启动后,根据操作受理部221受理的用户操作,判断编辑对象是内联展开后的序列逻辑的局部(部分)还是fun/fb定义276的定义内容(步骤q11)。
[0165]
当判断为是局部时(步骤q11中(局部)),在线编辑器232按照用户操作,编辑在1个以上的调用命令部分中被内联展开后的序列逻辑(步骤q13),对局部标志表273的非同步标志2733设定“1”(步骤q17)。具体而言,在线编辑器232针对在步骤q13中进行了编辑的各调
用命令的部分,在该调用命令的部分处,将被调用的fun/fb定义276的名称即调用名称2731、记述有该调用命令的行(line)的位置2732以及非同步标志2733关联起来,登记在局部标志表273中。在该登记时,在线编辑器232对非同步标志2733设定“1”。
[0166]
编辑器222按照用户操作,指示监视器224一览显示序列程序271中的非同步的调用命令的部分(步骤q19)。具体而言,编辑器222通过扫描序列程序271,将表示由局部标志表273的位置2732表示的调用命令中的、对应的非同步标志为“1”的调用命令的位置2732的位置信息输出到监视器224。监视器224在正显示于显示器214的序列程序271中,将来自编辑器222的位置信息所表示的各行的调用命令部变更为预先确定的显示方式(例如,反转显示等)。
[0167]
上述一览显示提供辅助信息,该辅助信息由用户用来判断在序列程序271中被内联展开后的序列逻辑中的、将该序列逻辑反映到对应的fun/fb定义276的内容中的序列逻辑。
[0168]
在线编辑器232根据操作受理部221受理的用户操作,判断是否变更fun/fb定义276的内容(步骤q21)。在线编辑器232在判断为不变更fun/fb定义276的定义内容时(在步骤q21中为“否”),结束处理。
[0169]
另一方面,在线编辑器232在判断为变更fun/fb定义276的定义内容时(在步骤q21中为“是”),变更plc 100的库275的fun/fb定义276(步骤q23)。具体而言,在线编辑器232从局部标志表273提取非同步标志2733为“1”的调用名称2731。在线编辑器232基于提取出的调用名称2731来检索库275。通过检索,确定与调用名称2731对应的fun/fb定义276,使用在步骤q13中受理的编辑内容来变更所确定的fun/fb定义276的定义内容。该变更也可以包含使fun/fb定义276的定义内容与内联展开的序列逻辑的编辑(变更)后的内容一致(复制)。在线编辑器232将与进行了变更的调用命令的部分对应的非同步标志2733从“1”变更为“0”。
[0170]
返回步骤q11。另一方面,在线编辑器232判断为是fun/fb定义276的编辑时(步骤q11中(定义)),在线编辑器232按照用户操作,通过编辑来变更库275的1个以上的fun/fb定义276的定义内容(步骤q25),对定义标志表274的定义非同步标志2742设定“1”(步骤q27)。具体而言,在线编辑器232将在步骤q25中进行了编辑的fun/fb定义276的名称即定义名2741和定义非同步标志2742关联起来,登记在定义标志表274中。在该登记时,在线编辑器232将定义非同步标志2742设定为“1”。
[0171]
在线编辑器232按照用户操作,判断是否使用fun/fb定义276的变更后的定义内容来变更序列程序271的对应的内联展开部的序列逻辑(步骤q29)。在线编辑器232在判断为不变更的情况下(在步骤q29中为“否”),处理结束。
[0172]
另一方面,在线编辑器232判断为要变更内联展开部的序列逻辑时(在步骤sq29中为“是”),在线编辑器232将序列程序271的内联展开后的序列逻辑的电路更新为与对应的fun/fb定义276的变更后的定义内容一致(步骤q31)。具体而言,在线编辑器232使用fun/fb定义276的变更后的定义内容来变更定义电路信息280。由此,定义电路信息280被更新为表示如下的序列电路结构的信息,该序列电路结构表示fun/fb定义276的变更后的定义内容。另外,在线编辑器232指示监视器224进行内联展开部的显示更新。监视器224根据指示,使用更新后的定义电路信息280来更新序列程序271的内联展开部的序列电路结构的图像。在
步骤q31中,在线编辑器232将登记在局部标志表273中的所有非同步标志2733设置为“0”。
[0173]
这样,在线编辑器232和监视器224将显示于显示器214中的序列程序271的内联展开部的序列电路结构的图像一并更新为变更后的fun/fb定义276的序列逻辑所规定的电路结构的图像。由此,内联展开部的序列逻辑的电路结构的图像被更新为表示fun/fb定义276的变更(编辑)后的定义内容。在进行该更新的情况下,还能够提供如下的可视化信息,该可视化信息还能够用来确认序列程序271的外围电路与该序列逻辑电路的关联性。
[0174]
(i1

1.局部编辑的具体例)
[0175]
在图14的步骤q23中,关于fun/fb定义276的定义内容的变更,能够实施2个情形中的任意一个。在第一种情形下,在与序列程序271非同步的调用命令的部分有多个的情况下,以多个调用命令的部分的全部为对象,实施对应的fun/fb定义276的定义内容的变更。在第二种情形下,不是以多个调用命令的部分的全部为对象来实施定义内容的变更,而是以多个调用命令的部分中通过用户操作选择的1个以上的调用命令的部分为对象,实施对应的fun/fb定义276的定义内容的变更。
[0176]
在第二种情形下,说明如下情况:以所选择的1个以上的调用命令的部分为对象,实施对应的fun/fb定义276的定义内容的变更。在该情形下,不更新与未通过用户操作选择的调用命令部分对应的fun/fb定义276,仅变更在序列程序271的调用命令部分中被内联展开后的序列逻辑。此时,在线编辑器232将用户变更后的序列逻辑新保存(覆盖等)到序列程序271中。另外,将局部标志表273的对应的非同步标志2733保持为表示非同步状态的“1”。
[0177]
构建器223对具有变更后的序列逻辑的序列程序271进行构建处理。在构建处理中,构建器223将对应的fun/fb定义276未被更新的内联展开部的序列逻辑的局部变量名构建为(实例名.fun/fb定义内的局部变量名)。构建而获得的中间代码272被传送至plc 100。在plc 100中,生成基于从支持装置200接收的中间代码272的本地代码154,plc 100执行序列程序271(本地代码154)。支持装置200的在线监视模块238从plc 100接收电路输出状态156,并使用所接收的电路输出状态156,在上述非同步状态的内联展开部的序列逻辑中实施电力线路(power line)显示。用户能够根据这样可视化的电路输出状态156,使用非同步状态的内联展开部的序列逻辑,得到用于判断是否更新对应的fun/fb定义276的辅助信息。
[0178]
另外,作为局部编辑的主用例,在本实施方式中,记载了应用于在线编辑时的情形,但用例并不限定于在线编辑。具体而言,当内联展开后的内容与对应的fun/fb定义276的定义内容一致时,用户在在线编辑时不想反映fun/fb定义276的变更的情况下,通过进行预先确定的操作,能够设为非同步状态。
[0179]
(i2.构建处理)
[0180]
图15是说明本发明实施方式的构建处理的流程图。参照图15,详细说明图13的在线编辑后的构建处理(步骤r1)。图15的构建处理主要以调用命令部的处理为主体进行说明。
[0181]
构建器223从开头起按每1行扫描序列程序271(步骤r11)。当通过扫描检测到调用命令部时(在步骤r13中为“是”),转移到步骤r15,但在未检测到调用命令部的情况下(在步骤r13中为“否”),转移到步骤r23。
[0182]
在步骤r15中,构建器223确定调用命令部有无设定选项277(步骤r15)。当判断为在调用命令部中没有设定选项277时(在步骤r15中为“无”),转移到步骤r21。当判断为设定
有选项277时(在步骤r15中为“有”),构建器223根据定义标志表274的对应的定义非同步标志2742是否为“1”,判断由该调用命令部调用的fun/fb定义276是否处于在线编辑中(步骤r17)。
[0183]
当定义非同步标志2742为“1”,判断为处于在线编辑中时(在步骤r17中为“是”),转移到步骤r21。在步骤r21中,构建器223向该调用命令部分配预先确定的(通常的)调用命令的代码。当定义非同步标志2742为“0”,即判断为不处于在线编辑中时(在步骤r17中为“否”),构建器223对该调用命令部分配按照对应的fun/fb定义276的序列逻辑2761的代码(步骤r19)。在该分配的代码中,由fun/fb定义276定义的局部变量名被分配(实例名.fun/fb定义内的局部变量名)。
[0184]
构建器223判断序列程序271的所有行的扫描是否已结束,若判断为扫描未结束(在步骤r23中为“否”),则返回步骤r11。另一方面,构建器223判断为扫描结束时(在步骤r23中为“是”),构建器223根据序列程序271生成中间代码272(步骤r25)。
[0185]
对上述的构建处理中的步骤r17、r21进一步进行说明。在步骤r17中,构建器223在判断为由调用命令部调用的fun/fb定义276的对应的定义非同步标志2742是“1”时(在步骤r17中为“是”),对该调用命令部分配通常的调用命令的代码(步骤r21),并执行构建处理。由此,能够通过通常的调用命令,执行进行了fun/fb定义276的在线编辑的序列逻辑。此外,还能够对内联展开的(设定有选项277的调用命令部的)序列逻辑施加基于在线编辑的变更。
[0186]
(i3.序列电路信息)
[0187]
图20是示意性地表示本实施方式的序列电路信息的一例的图。参照图20,例如记述由plc用的用户程序规定的、每个电路所包含的电路部件的信息。
[0188]
图20表示由1个触点2781和1个线圈2791构成的电路的例子。在该例子中,序列电路信息279的电路定义2811包含表示“电路”等类别的类别信息2821、和表示各电路中包含的电路部件的信息的电路部件信息2831、2841。图20所示的电路定义2811重复由序列程序271规定的电路的数量。
[0189]
同样地,定义电路信息280也按照由fun/fb定义276的序列逻辑2761规定的电路结构的数量来重复电路定义。另外,图20所示的电路定义2811的记载例是一例,可以按照任何格式。
[0190]
<j.plc中的程序执行开始定时>
[0191]
本实施方式中,在将基于在线编辑的变更后的序列程序271(中间代码272)传送至plc 100,且plc 100进行变更后的序列程序271的情况下,能够适当地设定执行开始的定时。
[0192]
图16是用于说明本发明实施方式的通过在线编辑功能传送的控制程序的执行开始定时的图。该控制程序是包含序列程序271的概念。图16表示传送s

a、s

b、s

c所示的3个序列程序271时的处理例。
[0193]
在图16中,示出当各个序列程序271的传送完成时,开始执行该传送完成的序列程序271的例子。在图16中,1个箭头(

)表示任务调度器1142的任务的1次执行周期。另外,图16的“检查”的步骤由程序管理器1144执行。
[0194]
程序管理器1144在“检查”的步骤中,在图13的步骤t2、r2中,判断从支持装置200
传送的序列程序271的接收是否完成。即,由于编辑后的序列程序271的大小可变等各种因素,该传送耗费的时间产生偏差。为了使得即使存在这样的时间偏差,在plc 100中也能够维持按照序列程序271的任务的执行循环,程序管理器1144在完成了基于传送的序列程序271的接收时,将接收完成的定时信号输出到任务调度器1142。任务调度器1142从程序管理器1144接收定时信号,并且在执行周期到来时,使传送来的序列程序271转移到能够执行的状态。
[0195]
在图16中,对传送序列程序271的情形进行了说明,但在支持装置200中对库275的fun/fb定义276进行在线编辑,然后传送至plc 100的情况下,也与图16同样地,程序管理器1144检测接收已完成的情况,并输出定时信号。任务调度器1142从程序管理器1144接收定时信号,并且在执行周期到来时,转移到能够调用所传送的fun/fb定义276的状态。
[0196]
<k.程序>
[0197]
用于执行本实施方式所示的各流程图的处理的、提供开发辅助环境的支持程序被保存在支持装置200的存储部201中。cpu 202通过从存储部201读出并执行支持程序700、710,能够实现在本实施方式中说明的各部分。
[0198]
支持程序700、710也可以记录在附属于支持装置200的软盘、cd

rom(compact disk

read only memory:只读式光盘)、rom、ram及记录介质250等计算机可读取的记录介质中,作为程序产品来提供。记录介质250是以计算机及其他装置、机械等能够读取所记录的程序等信息的方式,通过电、磁、光学、机械或化学作用来存储该程序等信息的介质。
[0199]
另外,还能够通过将支持程序700、710记录在内置于支持装置200的hdd 208等记录介质中来提供程序。另外,还能够通过经由通信接口从未图示的网络下载来提供程序。
[0200]
<l.优点>
[0201]
图17、图18以及图19是说明由本发明实施方式的开发辅助环境起到的优点的图。图17~图19是在已执行的情况下都输出相同的执行结果的序列程序271的一例,在图17~图19中,用粗线表示作为执行结果输出的电力流动显示。
[0202]
具体而言,在图17中,在命令0和命令1中记述有序列逻辑,因此容易掌握电力流动,但在程序的开发效率方面,存在想要将这样的相同的序列逻辑部件化的期望。图18是满足该要求的情形,在命令0和命令1中,定义了该序列逻辑的fun/fb定义276(部件)被置换为从库275中调用并执行的调用命令。在图18中,通过对库275的fun/fb定义276(部件)进行编辑,能够在通过序列程序271的命令0和命令1调用的fun/fb定义276(部件)中同时反映该编辑内容。
[0203]
然而,对于图18的命令0和命令1,虽然公共的调用命令以不记载内部的序列逻辑的部件图像来显示,但存在想要确认表示部件中的序列逻辑的执行结果的电力线路的期望。此外,还存在即使命令0的序列逻辑被变更,也不想变更命令1的序列逻辑的期望。图19是能够通过满足这两方的要求的本实施方式的开发辅助环境来创建的序列程序271。
[0204]
在图19中,命令0和命令1表示调用相同的fun/fb定义276的调用命令,但在调用命令部中,fun/fb定义276的序列逻辑2761被内联展开。在线监视模块238在内联展开后的序列逻辑中,实施表示其执行结果的电力线路显示。此外,如在(i1

1.局部编辑的具体例)中说明的那样,即使通过在线编辑器232编辑了命令0的内联展开后的序列逻辑,命令1的序列逻辑也能够不被该编辑后的内容变更。
[0205]
<m.变形例>
[0206]
对本发明实施方式的变形例进行说明。
[0207]
在本实施方式中,支持装置200将在序列程序271中被内联展开后的非同步的序列逻辑作为源程序,与库275的对应的fun/fb定义276的定义内容(序列逻辑2761等)进行比较,并输出表示其差异的信息。
[0208]
另外,在本实施方式中,在通过编辑变更了被内联展开后的序列逻辑的情况下,将变更后的序列逻辑作为与库275的对应的fun/fb定义276独立的完整的局部逻辑,追加到序列程序271中。此时,支持装置200将对应的fun/fb定义276的局部变量合并到该fun/fb定义276的调用命令代码部的变量表中。
[0209]
另外,在本实施方式的开发辅助环境中,也可以是具有监视器224的、监视器224不是必需的构成要件的开发辅助环境。即,也可以作为至少具有编辑器222(更特定的是局部编辑器233)的开发辅助环境来提供。
[0210]
在局部编辑器233中,以在序列程序271中被内联展开的部件(fun/fb定义276)为对象实施处理。另一方面,若内联展开的部件增加,则该序列程序271中记述的变量增加,伴随着这样的变量增加,存储器的使用量增加。为了应对这样的存储器使用量的增加,该变量名不是记述为(实例名.fun/fb定义内的局部变量名),而是缩短为(fun/fb定义内的局部变量名),由此能够减少伴随变量增加的存储器的使用量。另外,构建器223在同步中不利用内联展开,仅在由局部编辑器233进行局部变更的情况下进行内联展开并实施构建处理,由此能够减少作为构建处理对象的序列程序271的步骤数。
[0211]
<n.附记>
[0212]
如上所述的本实施方式包含以下这样的技术思想。
[0213]
[结构1]
[0214]
一种支持装置(200),其辅助开发由对控制对象进行控制的控制装置(100)执行的序列程序(271),其中,
[0215]
所述序列程序包含构成该序列程序的单位程序(276)的调用命令,
[0216]
所述支持装置具有:
[0217]
操作受理部(221),其受理针对所述支持装置的操作;
[0218]
监视器部(224),其在所述序列程序的显示时,将所述单位程序的调用命令展开并显示为该单位程序定义的序列逻辑所表示的电路;
[0219]
编辑器部(222),其按照变更所显示的所述电路的操作,将所述序列逻辑变更为表示变更后的电路的序列逻辑;以及
[0220]
代码转换部(223),其将所述序列程序转换为能够执行的代码,
[0221]
所述代码转换部按照切换选项,对所述序列程序中的调用命令分配所述变更后的序列逻辑的代码和调用命令代码中的一方来实施所述转换。
[0222]
[结构2]
[0223]
在结构1所记载的支持装置中,
[0224]
该支持装置还具有设定部(2311),所述设定部(2311)按照设定操作,在所述序列程序的调用命令中设定所述切换选项,
[0225]
所述监视器部在显示所述序列程序的情况下,所述调用命令中设定有所述切换选
项时,将该调用命令展开并显示为所述电路。
[0226]
[结构3]
[0227]
在结构1或2所记载的支持装置中,
[0228]
所述控制装置具有以能够调用的方式保存所述单位程序的序列逻辑的代码的库(275),
[0229]
使用所述变更后的序列逻辑的代码来变更保存在所述库中的所述序列逻辑的代码。
[0230]
[结构4]
[0231]
在结构1~3中的任意一项所记载的支持装置中,
[0232]
所述控制装置具有以能够调用的方式保存所述单位程序的序列逻辑的代码的库(275),
[0233]
所述序列程序包含1个以上的所述调用命令,
[0234]
按照选择操作,在所述1个以上的调用命令中,选择具有在所述库的序列逻辑的代码的变更中使用的、所述变更后的序列逻辑的调用命令。
[0235]
[结构5]
[0236]
在结构4所记载的支持装置中,
[0237]
显示所述1个以上的调用命令中的、由所述编辑器部进行了序列逻辑的变更的调用命令的一览。
[0238]
[结构6]
[0239]
在结构1~5中的任意一项所记载的支持装置中,
[0240]
所述监视器部从所述控制装置取得表示所述单位程序定义的序列逻辑的执行状态的电路输出状态(156;1166),并且基于所述单位程序定义的序列逻辑所表示的电路和所取得的所述电路输出状态,将所述控制装置中的该序列逻辑的执行状态在所述展开的电路中可视化。
[0241]
[结构7]
[0242]
一种支持程序(710),其用于辅助开发由对控制对象进行控制的控制装置(100)执行的序列程序(271),其中,
[0243]
所述序列程序包含构成该序列程序的单位程序(276)的调用命令,
[0244]
所述支持程序在计算机(200)中具有以下步骤:
[0245]
受理对所述计算机的操作;
[0246]
在所述序列程序的显示时,将所述单位程序的调用命令展开并显示为该单位程序定义的序列逻辑所表示的电路;
[0247]
按照变更所显示的所述电路的操作,将所述序列逻辑变更为表示变更后的电路的序列逻辑;以及
[0248]
将所述序列程序转换为能够执行的代码,
[0249]
转换为所述能够执行的代码的步骤包含如下步骤:按照切换选项,对所述序列程序中的调用命令分配所述变更后的序列逻辑的代码和调用命令代码中的一方来实施所述转换。
[0250]
应该认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范
围由权利要求书、而不由上述的说明来表示,意在包含与权利要求书等同的意思以及范围内的所有变更。
[0251]
标号说明
[0252]
100:plc;112a、271:序列程序;130:梯形图区段;150:全局变量表;154:本地代码;156:电路输出状态;279:序列电路信息;200:支持装置;221:操作受理部;222:编辑器;223:构建器;224:监视器;277:选项;232:在线编辑器;233:局部编辑器;234:定义编辑器;238:在线监视模块;272:中间代码;273:局部标志表;274:定义标志表;275:库;276:fun/fb定义;278:调用命令;280:定义电路信息;1142:任务调度器;1144:程序管理器;1165:选项表;2761:序列逻辑。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献