首页 / 国际专利分类库 / 物理 / 控制;调节 / 梯形程序分析装置

梯形程序分析装置

申请号 CN201710353195.1 申请日 2017-05-18 公开(公告)号 CN107402563B 公开(公告)日 2019-08-13
申请人 发那科株式会社; 发明人 松尾敏幸; 望月充;
摘要 本 发明 提供一种梯形程序分析装置,其可提示用于提高梯形程序的执行效率的信息。该梯形程序分析装置具有梯形程序分析部和梯形程序分析结果显示部。所述梯形程序分析部对包含多个梯形 电路 的梯形程序进行分析,并生成执行顺序 信号 表,该执行顺序信号表是将梯形电路的执行顺序、表示输入至梯形电路的信号的参照信号、表示梯形电路输出的信号的更新信号对应起来的表。所述梯形程序分析结果显示部基于执行顺序信号表,对2个梯形电路的执行顺序、参照信号、更新信号进行比较,来判定有无可改善执行效率的梯形电路,并显示判定结果。
权利要求

1.一种梯形程序分析装置,其特征在于,具有:
梯形程序分析部,其对包含多个梯形电路的梯形程序进行分析,并生成执行顺序信号表,该执行顺序信号表是将所述梯形电路的执行顺序、表示输入至所述梯形电路的信号的参照信号、表示所述梯形电路输出的信号的更新信号对应起来的表;以及梯形程序分析结果显示部,其基于所述执行顺序信号表,对2个所述梯形电路的所述执行顺序、所述参照信号、所述更新信号进行比较,来判定有无可改善执行效率的所述梯形电路,并显示所述判定结果。
2.根据权利要求1所述的梯形程序分析装置,其特征在于,
所述梯形程序分析结果显示部至少变更被判定为可改善执行效率的所述梯形电路的显示形式,来显示所述判定结果。
3.一种梯形程序分析装置,其特征在于,具有:
梯形程序分析部,其对包含多个梯形电路的梯形程序进行分析,并生成执行顺序信号表,该执行顺序信号表是将所述梯形电路的执行顺序、表示输入至所述梯形电路的信号的参照信号、表示所述梯形电路输出的信号的更新信号对应起来的表;以及梯形程序排序部,其基于所述执行顺序信号表,对多个所述梯形电路的所述执行顺序、所述参照信号、所述更新信号进行比较,来决定可改善所述梯形程序的执行效率的所述梯形电路的执行顺序。

说明书全文

梯形程序分析装置

技术领域

[0001] 本发明涉及一种梯形程序分析装置,尤其涉及一种可提示用于提高梯形程序的执行效率的信息的梯形程序分析装置。

背景技术

[0002] 梯形程序依次且以一定周期重复执行预先生成的梯形电路。通常,在生成梯形程序的过程中,考虑信号的参照关系来决定梯形电路的顺序,以便通过一次的执行尽可能高效地更新信号状态。
[0003] 作为使梯形程序的生成效率化的技术,在日本特开平05-189012号公报中记载了使用预先部件化的梯形电路自动生成梯形程序的编程装置。
[0004] 在日本专利第3666507号中记载了向梯形中使用的触点输出信号的可自动生成测试输入用梯形程序的模拟辅助工具。
[0005] 在日本专利第4922684号中记载了基于时序图自动生成梯形程序的程序编辑装置。
[0006] 然而,上述文献均不属于改善缘于梯形电路的排列顺序的梯形程序的执行效率。例如,图1所示的梯形程序中,执行一次程序即结束A的信号状态输出至C的处理。另一方面,图2所示的梯形程序中,使A的信号状态输出至C为止,需要执行两次程序。此时,图1的梯形程序的更新时间较短,且执行效率高。换言之,图2的梯形程序的更新时间较长,且执行效率低。
[0007] 有时也会故意构建更新时间长的梯形电路,但大部分梯形程序被设计为执行效率更高。通常,在梯形程序大的情况下,或包括子程序等地结构了程序情况下等,难以确认信号的参照关系,因而难以判断梯形程序的执行效率。亦即,即使梯形电路以执行效率高到低的顺序排列,用户也很难意识到这一点。因此,用户需要通过执行梯形程序,对梯形电路更新的信号进行采样,确认信号在所企图的定时变化等,手动发现可改善梯形电路的排列顺序之处。

发明内容

[0008] 本发明是为解决这种问题而提出的,其目的在于提供一种可提示用于提高梯形程序的执行效率的信息的梯形程序分析装置。
[0009] 本发明的一实施方式所涉及的梯形程序分析装置,其特征在于,具有:梯形程序分析部,其对包含多个梯形电路的梯形程序进行分析,并生成执行顺序信号表,该执行顺序信号表是将所述梯形电路的执行顺序、表示输入至所述梯形电路的信号的参照信号、表示所述梯形电路输出的信号的更新信号对应起来的表;以及梯形程序分析结果显示部,其基于所述执行顺序信号表,对2个所述梯形电路的所述执行顺序、所述参照信号、所述更新信号进行比较,来判定有无可改善执行效率的所述梯形电路,并显示所述判定结果。
[0010] 其他实施方式所涉及的梯形程序分析装置,其特征在于,所述梯形程序分析结果显示部至少变更被判定为可改善执行效率的所述梯形电路的显示形式,来显示所述判定结果。
[0011] 其他实施方式所涉及的梯形程序分析装置,其特征在于,具有:梯形程序分析部,其对包含多个梯形电路的梯形程序进行分析,并生成执行顺序信号表,该执行顺序信号表是将所述梯形电路的执行顺序、表示输入至所述梯形电路的信号的参照信号、表示所述梯形电路输出的信号的更新信号对应起来的表;以及梯形程序排序部,其基于所述执行顺序信号表,对多个所述梯形电路的所述执行顺序、所述参照信号、所述更新信号进行比较,来决定可改善所述梯形程序的执行效率的所述梯形电路的执行顺序。
[0012] 根据本发明,可以提供一种可提示用于提高梯形程序的执行效率的信息的梯形程序分析装置。附图说明
[0013] 根据参照附图的以下实施例的说明,使本发明的上述以及其他目的和特征变得更加明确。
[0014] 图1是用于说明本发明的课题的图。
[0015] 图2是用于说明本发明的课题的图。
[0016] 图3是表示梯形程序的示例的图。
[0017] 图4是表示执行顺序信号表120的示例的图。
[0018] 图5是表示梯形程序分析结果显示部130的输出示例的图。
[0019] 图6是表示梯形程序分析结果显示部130的输出示例的图。
[0020] 图7是表示梯形程序分析结果显示部130的输出示例的图,其中,(a)是主程序在调用梯形电路P1和梯形电路P2时的示例,(b)是执行顺序信号表。
[0021] 图8是表示梯形程序排序部140的动作示例的图,其中,(a)是梯形程序排序部140进行排序之前的梯形程序的示例,(b)是对应于该梯形程序的执行顺序信号表。
[0022] 图9是表示梯形程序排序部140的动作示例的图。
[0023] 图10是表示梯形程序排序部140的动作示例的图。
[0024] 图11是表示梯形程序排序部140的动作示例的图。
[0025] 图12是表示梯形程序排序部140的动作示例的图。
[0026] 图13是表示梯形程序排序部140的动作示例的图。
[0027] 图14是表示梯形程序排序部140的动作示例的图。
[0028] 图15是表示梯形程序排序部140的动作示例的图。
[0029] 图16是表示梯形程序排序部140的动作示例的图。
[0030] 图17是表示梯形程序排序部140的动作示例的图。
[0031] 图18是表示梯形程序分析部110的执行顺序信号表生成处理的示例的图。
[0032] 图19A是表示梯形程序分析结果显示部130的梯形图显示处理的示例的图。
[0033] 图19B是表示梯形程序分析结果显示部130的梯形图显示处理的示例的图。
[0034] 图20是表示梯形程序排序部140的排序处理的示例的图。
[0035] 图21是表示删除梯形程序排序部140的未更新的参照信号的处理的示例的图。
[0036] 图22A是表示梯形程序排序部140的执行顺序表生成处理的示例的图。
[0037] 图22B是表示梯形程序排序部140的执行顺序表生成处理的示例的图。
[0038] 图23A是表示梯形程序排序部140的参照信号的删除处理的示例的图。
[0039] 图23B是表示梯形程序排序部140的参照信号的删除处理的示例的图。
[0040] 图24是表示本发明的实施方式1所涉及的梯形程序分析装置100的结构的图。
[0041] 图25是表示本发明的实施方式2所涉及的梯形程序分析装置100的结构的图。

具体实施方式

[0042] 首先,对本发明的概要进行说明。本发明的特征在于分析梯形程序的执行效率的方法,本发明的实施方式中,将该分析结果的两个利用方法一并公开。
[0043] 首先,作为实施方式1,公开一种利用分析梯形程序而得的结果在梯形图中显示关于梯形程序的执行效率低的部分的信息的方法。例如,对于高效地处理信号的触点用蓝色显示,对于效率低的触点用红色显示等。
[0044] 接下来,作为实施方式2,公开一种对于任意范围的梯形程序,自动对梯形电路进行排序以便成为效率高的执行顺序的方法。
[0045] <实施方式1>
[0046] 作为实施方式1,对分析梯形程序的执行效率,并可以在梯形图中至少显示执行效率低的部分的信息的梯形程序分析装置100进行说明。
[0047] 利用图24的框图,对梯形程序分析装置100的结构进行说明。梯形程序分析装置100包括:梯形程序分析部110、执行顺序信号表120以及梯形程序分析结果显示部130。此外,典型地,梯形程序分析装置100是具备中央处理装置、存储装置以及输入输出装置,并通过中央处理装置执行存储于存储装置中的程序来实现预定功能的信息处理装置。
[0048] 梯形程序分析部110分析梯形程序中梯形电路的排列顺序来生成执行顺序信号表120,并基于执行顺序信号表120进行评价执行效率的处理。
[0049] 执行顺序信号表120是一种执行梯形程序时表示以何种顺序执行梯形电路的表。典型地,在未图示的存储装置中的存储区域内生成执行顺序信号表120。
[0050] 如图3所示,通常,梯形程序包括多个程序(主程序、从主程序或子程序调用的一个以上的子程序)。各程序包括一个以上的由梯形电路构成的网(net)。各网被赋予编号,并以编号的升序依次执行。
[0051] 图4是分析图3所示的梯形程序而生成的执行顺序信号表120。梯形程序分析部110对梯形程序按照梯形电路的执行顺序从开头至终端依次对各网进行分析。梯形程序分析部110将各网的位置信息、参照信号、更新信号登记到执行顺序信号表120中。这里,位置信息包括该网所属的程序名和网的位置。但是,当梯形程序由一个程序构成时,可以不包括程序名。所谓的参照信号,是在该网被参照的信号的名称。所谓的更新信号,是在该网被更新的信号的名称。
[0052] 梯形程序分析结果显示部130参照执行顺序信号表120判定梯形程序的最佳化状况,并进行提示用户的处理。典型地,从梯形程序中提取执行效率低的部分,并将该部分显示于梯形图中。
[0053] 更具体而言,在画面中显示梯形图时,梯形程序分析结果显示部130从执行顺序信号表120中提取欲显示的梯形电路自身相关的条目(a)和作为更新信号包括该梯形电路中的触点的条目(b)。图5示出了一示例。当前,梯形程序分析结果显示部130想要描绘子程序P2的网1(P2-1)。描绘之前,梯形程序分析结果显示部130从执行顺序信号表120中提取相当于P2-1的条目(a)。这里,条目(a)包括触点(即参照信号)Y。因此,梯形程序分析结果显示部130还从执行顺序信号表120中提取包括Y的条目(b)作为更新信号。
[0054] 接下来,梯形程序分析结果显示部130对条目(a)和条目(b)的执行顺序进行比较。然后,向梯形电路的显示形式反映两个条目的执行顺序的大小关系。梯形程序分析结果显示部130根据该显示形式的不同提示用户梯形程序中执行效率低的部分。由此,用户可以容易判断梯形电路的执行顺序是否最佳。
[0055] 例如,若条目(a)的执行顺序>条目(b)的执行顺序,则梯形电路的顺序为最佳,且执行效率高。此时,梯形程序分析结果显示部130可以用蓝色显示梯形电路P2-1的触点Y。一方面,若条目(a)的执行顺序≤条目(b)的执行顺序,则梯形电路的顺序并非最佳,且执行效率也并不高。此时,梯形程序分析结果显示部130可以用红色显示梯形电路P2-1的触点Y。此外,执行效率的高低可以用任意一种方法表现。例如,可以用触点的背景色表现,而不是用触点本身来表现。或者,可以通过在触点近旁显示预定记号、图形、消息等来表现。
[0056] 利用图5至图7示出梯形程序分析结果显示部130所进行的显示的一示例。图5所示的示例中,条目(a)的执行顺序>条目(b)的执行顺序。
[0057] 从而,梯形程序分析结果显示部130在梯形电路P2-1中用蓝色显示触点Y。一方面,图6所示的示例中,条目(a)的执行顺序≤条目(b)的执行顺序。从而,梯形程序分析结果显示部130在梯形电路P1-1中用红色显示触点C。同样,梯形程序分析结果显示部130用红色显示主程序的网1的触点A,用蓝色显示主程序的网3的触点D。
[0058] 接着,利用图18、图19A、19B对梯形程序分析装置100的动作的一示例进行说明。图18是示出梯形程序分析部110生成表示梯形程序的执行次数和信号的关系的执行顺序信号表120的处理(执行顺序信号表生成处理)的示例的流程图
[0059] S101:
[0060] 梯形程序分析部110首先对执行顺序信号表120进行初始化。对记录程序的执行次数的变量“执行次数”设定1。在存储梯形程序的执行网位置的变量“执行网位置”设定程序的开头的网编号。
[0061] S102:
[0062] 梯形程序分析部110判断“执行网位置”中是否有可执行的网。当不存在网时,结束处理。
[0063] S103:
[0064] 梯形程序分析部110获取相当于“执行网位置”的梯形电路的一个网。其中,当获取的梯形电路为CALL指令或RET指令以及类似于这些的指令时,下一个执行的网,在CALL指令中是调用目的地子程序的开头的网,在RET指令中是所对应的CALL指令的下一个网。
[0065] 步骤S104:
[0066] 梯形程序分析部110判断获取的梯形电路中是否包括触点。若包括,移至步骤S105,若不包括,移至步骤S107。
[0067] 步骤S105:
[0068] 梯形程序分析部110获取梯形电路在触点读取的信号作为“参照信号”,获取写入信号作为“更新信号”。此外,将当前“执行次序”作为“执行顺序”,将“执行网位置”作为“位置信息”。然后,在执行顺序信号表120中分别登记“执行顺序”、“位置信息”、“参照信号”、“更新信号”。
[0069] 步骤S106:
[0070] 为了在执行顺序信号表120中登记下一个条目,梯形程序分析部110对“执行次序”加1。
[0071] 步骤S107:
[0072] 梯形程序分析部110将紧接着当前“执行网位置”执行的网的位置设定为新的“执行网位置”。此时,如S103的说明中所描述的那样,当存在当前“执行网位置”CALL指令或RET指令时,考虑这些设定下一个执行的网。
[0073] 之后,梯形程序分析部110依次获取“执行网位置”中存在的梯形电路,直到“执行网位置”中不存在可执行的网为止,并对获取的梯形电路,在执行顺序信号表120中设定“执行顺序”、“位置信息”、“参照信号”、“更新信号”。以此,完成“执行顺序信号表”。
[0074] 图19A、图19B是表示梯形程序分析结果显示部130将各梯形电路的执行效率的判定结果反映于梯形图中的处理(梯形图显示处理)的流程图。
[0075] 步骤S201:
[0076] 梯形程序分析结果显示部130首先存储欲显示于画面中的梯形程序的开始位置(程序和网)作为“显示位置信息”。
[0077] 步骤S202:
[0078] 梯形程序分析结果显示部130生成相当于所存储的“显示位置信息”的一个网的梯形图的显示数据。
[0079] 步骤S203:
[0080] 梯形程序分析结果显示部130参照由上述执行顺序信号表生成处理生成的执行顺序信号表120,提取执行顺序信号表120的“位置信息”与所存储的“显示位置信息”一致的条目。然后,获取该条目的“执行顺序”(a)。
[0081] 步骤S204至S206:
[0082] 当步骤S202中生成的一个网的梯形图中包括触点时,梯形程序分析结果显示部130获取触点的“信号”。然后,按从“执行顺序”小的条目至最终条目的顺序对执行顺序信号表120进行检索,检索有无与所获取的“信号”相同的“更新信号”。
[0083] 步骤S207至S208:
[0084] 当发现了从触点获取的信号与“更新信号”一致的条目时,梯形程序分析结果显示部130获取该条目的“执行顺序”(b)。另一方面,若不一致,移至S212,并获取所生成的梯形图的下一个指令。
[0085] 步骤S209至S211:
[0086] 梯形程序分析结果显示部130对“执行顺序”(a)和“执行顺序”(b)进行比较。当“执行顺序”(a)大时,将触点的颜色属性变更为蓝色。在其他情况下,将触点的颜色属性变更为红色。
[0087] 步骤S212至S213:
[0088] 梯形程序分析结果显示部130获取梯形图所包括的下一个指令。
[0089] 若所获取的指令为触点,则对该触点再次执行S206之后的处理。
[0090] 梯形程序分析结果显示部130通过直到到达一个网的末端为止,即直到梯形图结束为止重复执行相同的处理,生成一个网的梯形图的显示数据。
[0091] 步骤S214:
[0092] 梯形程序分析结果显示部130在画面中显示所生成的一个网的梯形图的显示数据。
[0093] 步骤S215:
[0094] 当梯形图显示未到达画面终端时,梯形程序分析结果显示部130将“显示位置信息”更新为下一个网的信息。梯形程序分析结果显示部130对下一个网同样执行S202之后的处理。通过到达画面终端为止重复执行该处理,梯形程序分析结果显示部130可以显示将执行效率的判定结果反映于梯形图的触点的显示颜色的一系列的梯形图。
[0095] 根据本实施方式,梯形程序分析部110分析梯形程序,生成执行顺序信号表120,梯形程序分析结果显示部130基于执行顺序信号表120显示反映了执行效率的判定结果的梯形图。以此,在梯形图中明示可改善执行效率的部分,从而为研究梯形程序的优化提供线索。
[0096] <实施方式2>
[0097] 作为实施方式2,将对分析梯形程序的执行效率,为提高执行效率可自动排序梯形电路的梯形程序分析装置100进行说明。
[0098] 利用图25的框图,对梯形程序分析装置100的结构进行说明。梯形程序分析装置100包括:梯形程序分析部110、执行顺序信号表120以及梯形程序排序部140。
[0099] 梯形程序分析部110、执行顺序信号表120的结构与实施方式1相同,因而不再赘述。
[0100] 梯形程序排序部140进行自动排序并优化梯形程序中预定范围的网的执行顺序的处理。梯形程序排序部140根据执行顺序信号表120和各网所参照的信号一览自动对任意范围的网的执行顺序进行优化。这里,所谓的预定范围,可以是根据用户的选择等决定的梯形程序的一部分,或者,也可以是整体梯形程序。
[0101] 梯形程序排序部140所实施的梯形程序的排序作业是,对以各梯形电路为节点,以各信号的参照关系为边缘(edge)的有向图表,以将全节点排列为一列时多个边缘的方向尽量成为相同方向的方式决定节点的排列顺序的作业,对此,可以考虑若干个可获得相同效果的不同算法。这里,示出了其中一个具体示例,但也可以利用可获得相同效果的其他算法进行排序。
[0102] 利用图8至图17进一步详细说明梯形程序排序部140所进行的处理。图8中的(a)为梯形程序排序部140进行排序之前的梯形程序和进行排序后的梯形程序,图8中的(b)为对应于该梯形程序的执行顺序信号表120。
[0103] (1)梯形程序排序部140首先从图8中的(b)的执行顺序信号表120中删除在预定范围内未更新的“参照信号”。图9中,用虚线圈住的信号为未更新的“参照信号”。
[0104] (2)接下来,梯形程序排序部140在执行顺序信号表120中搜索“参照信号”为空的网,并将该网的位置信息追加至“执行顺序表”中。图10中,用虚线圈住的部分表示“参照信号”为空。
[0105] (3)梯形程序排序部140从“执行顺序信号表”的“参照信号”中删除所有与加至“执行顺序表”的网的更新信号相同的“参照信号”。图11中,用虚线圈住的部分为删除的“参照信号”。
[0106] (4)梯形程序排序部140从执行顺序信号表120中删除加至“执行顺序表”的网。图12中,用虚线圈住的部分表示被删除的网。
[0107] (5)梯形程序排序部140重复(2)至(4)的动作,直到执行顺序信号表120为空。此外,当在(2)中找不到该网时,可以以某种评价基准选择一个网。图13至图17示出了从执行顺序信号表120中依次删除网的状况。
[0108] (6)梯形程序排序部140从“执行顺序表”中按照“执行顺序”获取“位置信息”的网,并以获取的顺序重新对网排序。以此,生成优化了执行顺序的梯形程序。
[0109] 接着,利用图20至图23A、图23B,对梯形程序分析装置100自动重新排列并优化规定范围的网的执行顺序的情形的动作进行说明。图20是示出梯形程序排序部140以一个网单位向效率良好的执行顺序自动排序梯形程序中预定范围内的梯形电路的处理(排序处理)的流程图。
[0110] 步骤S301:
[0111] 梯形程序分析部110执行“执行顺序信号表生成处理”,并生成“执行顺序信号表120”。
[0112] 步骤S302:
[0113] 梯形程序排序部140从所生成的执行顺序信号表120中提取梯形程序中预定范围的网的表信息,生成“执行顺序选择信号表”。
[0114] 步骤S303:
[0115] 梯形程序排序部140执行“删除未更新的参照信号的处理”(后述),并从“执行顺序选择信号表”中删除未更新的“参照信号”。
[0116] 步骤S304:
[0117] 梯形程序排序部140执行“执行顺序表生成处理”(后述),生成“执行顺序表”。
[0118] 步骤S305:
[0119] 梯形程序排序部140按照所生成的“执行顺序表”,以从旧到新的顺序对梯形电路进行排序。以此,向效率高的执行顺序自动修改预定范围的梯形程序。
[0120] 图21是表示基于“执行顺序选择信号表”中的“更新信号”,将无法写入的“参照信号”全部删除的处理(删除未更新的参照信号的处理)的流程图。
[0121] 步骤S401:
[0122] 梯形程序排序部140准备指示“执行顺序选择信号表”的条目位置的变量“指数(index)”,并对“指数”设定开头条目位置。
[0123] 步骤S402:
[0124] 梯形程序排序部140从“执行顺序选择信号表”的“指数”所指的条目获取“位置信息”和“参照信号”。
[0125] 步骤S403:
[0126] 当获取的“位置信息”为空时,梯形程序排序部140对“指数”加1。若未超出“执行顺序选择信号表”的终端,则利用新的“指数”,再次执行步骤S402之后的处理。
[0127] 步骤S404:
[0128] 当获取的“参照信号”为空时,梯形程序排序部140对“指数”加1。若未超出“执行顺序选择信号表”的终端,则利用新的“指数”,再次执行步骤S402之后的处理。
[0129] 步骤S405:
[0130] 当获取的“位置信息”和“参照信号”均不为空时,梯形程序排序部140检索“执行顺序选择信号表”的“更新信号”中是否存在与“参照信号”相同的信号。若存在,则删除“执行顺序选择信号表”的“参照信号”。
[0131] 步骤S406至S407:
[0132] 当存在“执行顺序选择信号表”的“指数”所指示的条目的“参照信号”的下一个“参照信号”时,梯形程序排序部140对下一个“参照信号”再次执行S405之后的处理。亦即,重复删除“执行顺序选择信号表”的“参照信号”的处理。
[0133] 步骤S408:
[0134] 一方面,当不存在下一个“参照信号”时,梯形程序排序部140对“指数”加1。只要“指数”超出终端,则重复步骤S402之后的处理。“指数”超出终端时,结束处理。
[0135] 图22A、图22B是表示梯形程序排序部140利用“执行顺序选择信号表”和“执行顺序表”决定梯形电路的最佳的执行序列的处理(执行顺序表生成处理)的流程图。
[0136] 步骤S501:
[0137] 梯形程序排序部140准备表示“执行顺序表”的条目位置的变量“指数B”,设定开头条目的位置。
[0138] 步骤S502:
[0139] 梯形程序排序部140对表示“执行顺序选择信号表”的条目位置的变量“指数A”设定开头条目的位置。
[0140] 步骤S503:
[0141] 梯形程序排序部140分别对存储从“执行顺序选择信号表”向“执行顺序表”追加了“位置信息”的次数的变量“处理网数”、存储未能追加“位置信息”的次数的变量“处理网数”、存储未能追加“位置信息”的“执行顺序选择信号表”的指数的变量“未处理的指数”进行初始化。
[0142] 步骤S504:
[0143] 梯形程序排序部140从“执行顺序选择信号表”的“指数A”所指示的条目获取“位置信息”和“参照信号”。
[0144] 步骤S505:
[0145] 当“位置信息”中不存在数据时,梯形程序排序部140对“指数A”加1。这里,确认“指数A”是否超出终端,若未超出,则利用新的“指数A”再次执行步骤S504之后的处理。
[0146] 步骤S506、S509:
[0147] 当“位置信息”中存在数据,且“参照信号”中不存在数据时,梯形程序排序部140将其判断为应优先执行的梯形电路。梯形程序排序部140将根据“指数A”获取的“位置信息”追加至“执行顺序表”的“指数B”所指示的条目。
[0148] 步骤S510至S511:
[0149] 梯形程序排序部140对“处理网数”加1,并对“执行顺序表”的“指数B”加1。
[0150] 步骤S512:
[0151] 梯形程序排序部140根据“参照信号的删除处理”(后述),检索并删除参照“执行顺序选择信号表”的“指数A”所指示的条目的“更新信号”的所有“参照信号”。
[0152] 步骤S513:
[0153] 梯形程序排序部140删除“执行顺序选择信号表”的“指数A”所指示的条目的“位置信息”和“更新信号”。
[0154] 步骤S514:
[0155] 梯形程序排序部140对“执行顺序选择信号表”的“指数A”加1。
[0156] 步骤S515:
[0157] 当“指数A”未超出终端时,梯形程序排序部140利用新的“指数A”再次执行步骤S504之后的处理。当指数A超出“执行顺序选择信号表”的终端时,移至步骤S516。
[0158] 步骤S507至S508、步骤S514至S515:
[0159] 当“位置信息”中存在数据,且“参照信号”中存在数据时,梯形程序排序部140对“未处理网数”加1,并将“执行顺序选择信号表”的“指数A”存储至“未处理的指数”。此外,对“执行顺序选择信号表”的“指数A”加1。重复上述处理,直到“指数A”超出“执行顺序选择信号表”的终端。
[0160] 步骤S516至S517:
[0161] 当“指数A”超出“执行顺序选择信号表”的终端,“未处理网数”为0,且“处理网数”为0以上时,梯形程序排序部140重复对“执行顺序选择信号表”的“指数A”设定开头条目位置的步骤S502之后的处理。
[0162] 当“指数A”超出“执行顺序选择信号表”的终端、“未处理网数”为0,且“处理网数”为0时,梯形程序排序部140从所存储的“未处理的指数”中获取“执行顺序选择信号表”的“指数A”,并查找“指数A”所指示的条目的“参照信号”的数量最少的“指数A”,删除“参照信号”后,重复对“执行顺序选择信号表”的“指数A”设定开头条目位置的步骤S502之后的上述处理。
[0163] 当“指数A”超出“执行顺序选择信号表”的终端,且“未处理网数”为0时,梯形程序排序部140结束处理。通过以上处理,在“执行顺序表”的“位置信息”中存储梯形电路的最佳化的执行顺序。
[0164] 图23A、图23B是表示梯形程序排序部140利用“执行顺序选择信号表”的“更新信号”删除与“更新信号”一致的所有“参照信号”的处理(参照信号的删除处理)的流程图。
[0165] 步骤S601:
[0166] 梯形程序排序部140根据“执行顺序选择信号表”的“指数”所指示的条目获取“更新信号”。
[0167] 步骤S602至S603:
[0168] 当获取到“更新信号”时,梯形程序排序部140对表示“执行顺序选择信号表”的条目位置的“指数”设定开头条目的位置。
[0169] 步骤S604:
[0170] 梯形程序排序部140根据“执行顺序选择信号表”的“指数”所指示的“条目”获取“参照信号”。
[0171] 步骤S605至S606:
[0172] 在步骤S604中能够获取到“参照信号”时,梯形程序排序部140确认“更新信号”中是否包括“参照信号”。
[0173] 步骤S607:
[0174] 当“更新信号”中包括“参照信号”时,梯形程序排序部140删除“执行顺序选择信号表”的“指数”所指示的条目的“参照信号”。
[0175] 步骤S608、S610:
[0176] 当条目中残留有下一个“参照信号”时,梯形程序排序部140获取下一个“参照信号”,并对新的“参照信号”重复步骤S605之后的处理。
[0177] 步骤S609:
[0178] 当条目中不存在下一个“参照信号”时,梯形程序排序部140对“执行顺序选择信号表”的“指数”加1。
[0179] 步骤S611:
[0180] 当“指数”未超出“执行顺序选择信号表”的终端时,梯形程序排序部140根据“执行顺序选择信号表”的“指数”所指示的条目获取最初的“参照信号”(步骤S604),并重复步骤S605之后的处理。
[0181] 若“指数”超出“执行顺序选择信号表”的终端,则梯形程序排序部140结束处理。
[0182] 根据本实施方式,梯形程序排序部140基于梯形程序分析部110生成的执行顺序信号表120,按能够高效执行的顺序自动排序预定范围的梯形程序所包括的梯形电路。从而,用户无需手动修改梯形电路。
[0183] 另外,本发明不限于上述各种实施方式,在不脱离本发明的宗旨的范围内可以实施构成要素的置换、省略、附加、顺序更换等变更。
QQ群二维码
意见反馈