本发明涉及一种对定序程序的执行时间进行推定的执行时间推定程序以及执行时间推定装置。
背景技术:
伴随着对生产装置所要求的功能的高级化、复杂化,对生产装置的动作进行控制的FA控制器的程序也复杂化、容量也不断扩大。在FA控制器中主要使用的编程语言是梯形图程序。该梯形图程序与在通用机中广泛使用的C、C++这种高级语言相比,对大规模的程序开发进行辅助的工具并不齐备。
梯形图程序是将由继电器和线圈这种电子部件来产生定序控制信号的控制盘抽象化(metaphor)的编程语言,是以没有编程知识的电气设计人员、现场的技术人员也能够容易地理解为目的而制作的。在这种梯形图程序中,能够容易地记述如下处理,即,根据数量众多的输入设备的值以及内部状态的值,通过逻辑式而决定输出设备的值。另外,梯形图程序中的控制的流向基本上是反复执行如下处理,即,从梯形图程序的上至下按顺序执行,执行到末尾后返回至开头再次执行。
如上所述,梯形图程序存在大规模化的倾向。即使在这种情况下,如果考虑到生产装置的控制,则由于与外围装置的协调动作、错误判定的需要,需要以使从上至下执行一遍梯形图程序的时间即扫描时间限定于一定时间内的方式进行梯形图程序的设计。然而,在梯形图程序变得大规模的情况下,难以准确地估计扫描时间。
因此,专利文献1所记载的PLC模拟器利用了梯形图程序所使用的各命令在PLC中的执行处理时间数据。并且,PLC模拟器在梯形图程序的模拟执行处理中,对构成梯形图程序的每个助记指令的处理时间以及通信的外围处理时间进行累加,由此生成执行逻辑时间。
专利文献1:日本特开2001-209411号公报
技术实现要素:
然而,在上述现有技术中,存在下述问题,即,仅能够求出梯形图程序的平均执行时间,不能估计在最花费时间的情形下的扫描时间。
本发明就是鉴于上述而提出的,其目的在于得到一种能够针对梯形图程序而估计在最花费时间的情形下的扫描时间的执行时间推定程序以及执行时间推定装置。
为了解决上述问题,实现目的,本发明是一种执行时间推定程序,其使计算机执行对控制器所使用的梯形图程序的执行时间进行推定的处理,所述执行时间推定程序的特征在于,使所述计算机执行下述步骤:组合提取步骤,将由固件执行的软件命令和该软件命令的执行条件的组从所述梯形图程序中提取多个,作为组信息;共通组生成步骤,通过针对所提取的多个组信息,以在所述执行条件中使用共通的设备的组信息的集合即第1组集合为单位进行分组,从而以所述第1组集合为单位而生成放入有所述第1组集合的设备共通组;同时执行组生成步骤,通过以所述设备共通组之中具有存在同时执行的可能性的软件命令的组信息的集合即第2组集合为单位进行分组,从而以所述第2组集合为单位而生成放入有第2组集合的同时执行组;组提取步骤,从所述设备共通组内的同时执行组之中,提取所述软件命令的执行时间最长的同时执行组;以及扫描时间计算步骤,基于执行了所提取的同时执行组的情况下的所述软件命令的执行时间,对将所述梯形图程序执行了一遍的情况下的扫描时间中的、执行时间最长的情况下的扫描时间进行计算。
发明的效果
根据本发明,实现下述效果,即,能够针对梯形图程序而估计在最花费时间的情形下的扫描时间。
附图说明
图1是表示本发明的实施方式涉及的执行时间推定装置的结构的图。
图2是表示以梯形图表达出的梯形图程序的一个例子的图。
图3是表示以IL(Instruction List)表达出的梯形图程序的一个例子的图。
图4是表示通过执行时间推定装置进行的执行时间的推定处理顺序的流程图。
图5是用于说明梯形图枝干的提取处理的图。
图6是表示设备共通组的生成处理顺序的流程图。
图7是用于说明设备共通组的生成处理的图。
图8是表示同时执行组的生成处理顺序的流程图。
图9是用于说明同时执行组的生成处理的图。
图10是用于说明最大扫描时间的计算处理例的图。
图11是表示执行时间推定装置的硬件结构的图。
具体实施方式
下面,基于附图对本发明的实施方式涉及的执行时间推定程序以及执行时间推定装置进行详细说明。此外,本发明并不受本实施方式限定。
实施方式
图1是表示本发明的实施方式涉及的执行时间推定装置的结构的图。执行时间推定装置10是对定序程序的执行时间进行推定的计算机等。下面,说明定序程序为在PLC(Programmable Logic Controller)等控制器中使用的梯形图程序的情况。
执行时间推定装置10将从上至下执行一遍梯形图程序的时间即扫描时间作为梯形图程序的执行时间而进行计算。本实施方式的执行时间推定装置10对梯形图程序的执行时间最长的情况下的扫描时间(下面,称作最大扫描时间30)进行推定。
梯形图程序包含有仅在执行条件为真时执行的SW(软件)命令。因此,在执行了梯形图程序的情况下,执行SW命令的情况下和不执行SW命令的情况下的梯形图程序的执行时间不同。执行时间推定装置10对在从开头至末尾为止执行了梯形图程序的情况下最花费时间的情形下的最大扫描时间30进行推定。
执行时间推定装置10具有接收部11、电路模块提取部12、组合信息提取部13、SW命令群提取部(同时执行组生成部)14、执行时间推定部(组提取部、扫描时间计算部)15、输出部16、存储部17、共通组生成部18。
接收部11接收IL表达信息20,该IL表达信息20示出梯形图程序的IL(Instruction List)表达。接收部11将从数据库等外部装置输入的IL表达信息20发送至电路模块提取部12。
梯形图程序是由梯形图表达、IL表达来表示的。图2是表示以梯形图表达出的梯形图程序的一个例子的图。图3是表示以IL表达出的梯形图程序的一个例子的图。图2和图3所示的梯形图程序相同。
梯形图程序包含有由硬件执行的HW(硬件)命令和由固件执行的SW命令。在PLC的架构中,HW命令无论前级中的逻辑式的值如何均会执行,SW命令仅在前级的逻辑式为真时执行。
HW命令是需要一定时间的命令。是否执行SW命令是由连在SW命令的前级处的逻辑式(下面,称作执行条件部)的值决定的。具体而言,SW命令仅在执行条件部的值成为真的情况下执行。因此,SW命令仅在执行条件部的值成为真的情况下需要执行时间。本实施方式的执行时间推定装置10基于SW命令之中的不会同时执行的SW命令群而推定最大扫描时间30。
HW命令是
LD X0
AND X1
OUT Y102等。
SW命令是SwOp0~SwOp5等。而且,SwOp0的执行条件部是
LD X0
AND X1。
因此,仅在
LD X0
AND X1
为真时,执行SwOp0。
电路模块提取部12从IL表达信息20内对由IL表达而示出的电路模块进行提取。电路模块提取部12将所提取的各电路模块发送至组合信息提取部13。
组合信息提取部13从以IL表达出的电路模块内对组信息(下面,称作梯形图枝干)进行提取,其中,该组信息具有SW命令和SW命令的执行条件部的组。组合信息提取部13将所提取的梯形图枝干发送至共通组生成部18。
共通组生成部18基于梯形图枝干而以梯形图枝干为单位对在执行条件部使用共通的设备的梯形图枝干的集合即第1组集合进行分组。共通组生成部18通过生成在执行条件部使用共通的设备的梯形图枝干集合(下面,称为设备共通组),从而对梯形图枝干进行分组。
换言之,共通组生成部18针对所提取的多个梯形图枝干,以在执行条件部使用共通的设备的梯形图枝干(下面,称作共通梯形图枝干)的集合为单位进行分组。由此,共通组生成部18以共通梯形图枝干为单位而生成放入有共通梯形图枝干的设备共通组。共通组生成部18将设备共通组发送至SW命令群提取部14。
SW命令群提取部14以梯形图枝干集合(下面,称作SW命令群)为单位,对设备共通组之中存在同时执行的可能性的梯形图枝干集合即第2组集合进行分组。由此,SW命令群提取部14以SW命令群为单位而生成放入有SW命令群的组、即后述的同时执行组。
在执行条件部使用共通的设备的梯形图枝干集合是共通梯形图枝干,放入有该共通梯形图枝干的组是设备共通组。因此,以共通梯形图枝干为单位而生成设备共通组。而且,设备共通组内存在同时执行的可能性的梯形图枝干集合是SW命令群,放入有该SW命令群的组是同时执行组。
通过在设备共通组内以同时执行组为单位将梯形图枝干分组,从而将设备共通组内不会同时执行的梯形图枝干集合设定于不同的组。因此,放入至相同的同时执行组的梯形图枝干彼此是存在同时执行的可能性的梯形图枝干,放入至不同的同时执行组的梯形图枝干彼此是不会同时执行的梯形图枝干。SW命令群提取部14将分组结果发送至执行时间推定部15。
存储部17是对指令执行时间数据21进行存储的例如存储器。指令执行时间数据21包含有各SW命令的执行时间以及各HW命令的执行时间的信息。具体而言,在指令执行时间数据21中,SW命令与执行时间相关联,HW命令与执行时间相关联。
执行时间推定部15基于分组结果以及指令执行时间数据21而对最大扫描时间30进行推定。具体而言,执行时间推定部15针对作为不会同时执行的梯形图枝干集合的SW命令群、即同时执行组,对每个SW命令群的执行时间进行推定。执行时间推定部15以设备共通组为单位对SW命令群进行设定,以设备共通组为单位对每个SW命令群的执行时间进行推定。
而且,执行时间推定部15将设备共通组之中的SW命令群中各命令的执行时间的合计最长的SW命令群采用为对最大扫描时间30作出贡献的SW命令群。执行时间推定部15以设备共通组为单位而设定对最大扫描时间30作出贡献的SW命令群。
执行时间推定部15针对对最大扫描时间30作出贡献的SW命令群,基于指令执行时间数据21,计算对最大扫描时间30作出贡献的SW命令群的执行时间。另外,执行时间推定部15针对HW命令,基于指令执行时间数据21而对HW命令的执行时间进行计算。
执行时间推定部15通过将每个设备共通组的SW命令群的执行时间全部相加,从而推定SW命令的最大的执行时间。执行时间推定部15通过将SW命令的最大的执行时间与HW命令的执行时间相加而推定最大扫描时间30。
换言之,执行时间推定部15通过执行下述处理而对最大扫描时间30进行计算,即:以设备共通组为单位而对SW命令的执行时间进行计算的处理;以及将计算出的各执行时间的合计时间与HW命令的执行时间的合计时间相加的处理。执行时间推定部15将最大扫描时间30发送至输出部16。输出部16将最大扫描时间30输出至外部装置。
下面,对通过执行时间推定装置10进行的执行时间的推定处理顺序进行说明。图4是表示通过执行时间推定装置进行的执行时间的推定处理顺序的流程图。执行时间推定装置10的接收部11如果接收到IL表达信息20,则将IL表达信息20发送至电路模块提取部12。
电路模块提取部12从IL表达信息20内提取由IL表达而示出的电路模块(步骤S10)。组合信息提取部13从电路模块提取SW命令和SW命令的执行条件部。具体而言,组合信息提取部13针对各电路模块的IL表达而将AND节点和OR节点变换为使用了嵌套的树表达(下面,称作梯形图树)。然后,组合信息提取部13针对各梯形图树而从开头起按顺序对梯形图树进行轮巡,从梯形图树提取SW命令和SW命令的执行条件部的组即梯形图枝干(步骤S20)。
图5是用于说明梯形图枝干的提取处理的图。各电路模块的IL表达被变换为梯形图树。然后,从各梯形图树提取SW命令和SW命令的执行条件部的组即梯形图枝干。组合信息提取部13将所提取的梯形图枝干发送至共通组生成部18。
共通组生成部18基于梯形图枝干而以在执行条件部使用共通的设备的梯形图枝干为单位进行分组(步骤S30)。共通组生成部18通过生成在执行条件部使用共通的设备的共通梯形图枝干的集合、即设备共通组,从而对梯形图枝干进行分组。共通组生成部18将放入有共通梯形图枝干的设备共通组发送至SW命令群提取部14。
SW命令群提取部14对设备共通组之中存在同时执行的可能性的梯形图枝干集合进行分组。由此,SW命令群提取部14对设备共通组之中不会同时执行的梯形图枝干集合进行分组(步骤S40)。SW命令群提取部14以设备共通组为单位而对梯形图枝干集合进行分组。SW命令群提取部14将设备共通组之中不会同时执行的梯形图枝干集合作为不会同时执行的SW命令群而发送至执行时间推定部15。
执行时间推定部15基于不会同时执行的SW命令群而推定最大扫描时间30(步骤S50)。具体而言,执行时间推定部15在各设备共通组内对每个SW命令群的执行时间进行比较。在进行该比较时,执行时间推定部15基于指令执行时间数据21而对各SW命令群的执行时间进行计算,对SW命令群的执行时间彼此进行比较。
执行时间推定部15以设备共通组为单位而提取SW命令群之中执行时间最长的SW命令群的执行时间,将所提取的各执行时间全部进行累加。执行时间推定部15将累加结果作为SW命令的最大的执行时间,与HW命令的执行时间相加,由此推定最大扫描时间30。
下面,对设备共通组的生成处理进行说明。图6是表示设备共通组的生成处理顺序的流程图。图7是用于说明设备共通组的生成处理的图。
在图7中,将在图5的说明中所提取的全部的梯形图枝干集合作为全体梯形图枝干集合50而示出。在全体梯形图枝干集合50内包含有与SwOp0~SwOp5相对应的梯形图枝干41~45。共通组生成部18生成1个设备共通组(步骤S21)。在图7中,示出生成了设备共通组51的情况。该设备共通组51在被生成的时刻为空(st100),尚未放入梯形图枝干集合。
共通组生成部18在生成设备共通组51之后,从全体梯形图枝干集合50之中选择1个任意的梯形图枝干,放入至所生成的设备共通组51内(步骤S22)。放入至设备共通组51内的梯形图枝干被从全体梯形图枝干集合50内删除。在图7中,示出选择SwOp0的梯形图枝干41(st101)而放入至设备共通组51内的情况(st102)。
共通组生成部18确认在全体梯形图枝干集合50内是否存在其他能够选择的梯形图枝干(步骤S23)。当在全体梯形图枝干集合50内存在能够选择的梯形图枝干的情况下(步骤S23、Yes),共通组生成部18确认在全体梯形图枝干集合50内是否针对在梯形图枝干41中使用的全部的设备X0、X1进行了调查(步骤S24)。
在未针对全部的设备进行调查的情况下(步骤S24、No),共通组生成部18在设备共通组51内的梯形图枝干41所具有的执行条件部所使用的设备X0、X1中,选择1个未调查的设备(步骤S25)。共通组生成部18例如选择设备X0。
共通组生成部18从全体梯形图枝干集合50之中,对在执行条件部使用了所选择的设备X0的全部梯形图枝干进行选择(步骤S26)。共通组生成部18将所选择的梯形图枝干放入至具有共通设备X0的设备共通组,并且从全体梯形图枝干集合中删除(步骤S27)。在图7中,示出选择SwOp3的梯形图枝干43而放入至设备共通组51内的情况(st103)。
随后,共通组生成部18确认在全体梯形图枝干集合50内是否存在其他能够选择的梯形图枝干(步骤S23)。当在全体梯形图枝干集合50内存在能够选择的梯形图枝干的情况下(步骤S23、Yes),共通组生成部18确认在全体梯形图枝干集合50内是否针对在梯形图枝干41中使用的全部的设备X0、X1进行了调查(步骤S24)。
在未针对全部的设备X0、X1进行调查的情况下(步骤S24、No),共通组生成部18在设备共通组51内的梯形图枝干41所具有的执行条件部所使用的设备X0、X1中,选择1个未调查的设备(步骤S25)。共通组生成部18例如选择设备X1。
共通组生成部18从全体梯形图枝干集合50之中,对在执行条件部使用了所选择的设备X1的梯形图枝干进行选择(步骤S26)。共通组生成部18将所选择的梯形图枝干放入至具有共通设备的设备共通组,并且从全体梯形图枝干集合中删除(步骤S27)。在图7中,示出选择SwOp5的梯形图枝干45而放入至设备共通组51内的情况(st104)。
随后,共通组生成部18确认在全体梯形图枝干集合50内是否存在其他能够选择的梯形图枝干(步骤S23)。当在全体梯形图枝干集合50内存在能够选择的梯形图枝干的情况下(步骤S23、Yes),共通组生成部18确认是否针对在梯形图枝干41中使用的全部的设备X0、X1进行了调查(步骤S24)。
在针对全部的设备X0、X1进行了调查的情况下(步骤S24、Yes),共通组生成部18针对全体梯形图枝干集合50,反复进行步骤S21~S27的处理直至梯形图枝干穷尽为止。
即,共通组生成部18生成1个设备共通组(步骤S21)(st105)。在图7中,示出生成了设备共通组52的情况。该设备共通组52在被生成的时刻为空,尚未放入梯形图枝干集合。
共通组生成部18在设定了设备共通组52之后,从全体梯形图枝干集合50之中选择1个任意的梯形图枝干,放入至所生成的设备共通组52内(步骤S22)。放入至设备共通组52内的梯形图枝干被从全体梯形图枝干集合50内删除。在图7中,示出选择SwOp4的梯形图枝干44而放入至设备共通组52内的情况(st106)。
共通组生成部18确认在全体梯形图枝干集合50内是否存在其他能够选择的梯形图枝干(步骤S23)。当在全体梯形图枝干集合50内存在能够选择的梯形图枝干的情况下(步骤S23、Yes),共通组生成部18确认在全体梯形图枝干集合50内是否针对在梯形图枝干44中使用的全部的设备X11进行了调查(步骤S24)。
在未针对全部的设备进行调查的情况下(步骤S24、No),共通组生成部18在设备共通组52内的梯形图枝干44所具有的执行条件部所使用的设备中,选择1个未调查的设备(步骤S25)。共通组生成部18例如选择设备X11。
共通组生成部18从全体梯形图枝干集合50之中,对在执行条件部使用了所选择的设备X11的梯形图枝干进行选择(步骤S26)。共通组生成部18将所选择的梯形图枝干放入至具有共通设备的设备共通组,并且从全体梯形图枝干集合中删除(步骤S27)。在图7中,示出选择SwOp1的梯形图枝干42而放入至设备共通组52内的情况(st107)。
随后,共通组生成部18确认在全体梯形图枝干集合50内是否存在其他能够选择的梯形图枝干(步骤S23)。当在全体梯形图枝干集合50内不存在能够选择的梯形图枝干的情况下(步骤S23、No),共通组生成部18结束设备共通组的生成处理。
这样,共通组生成部18将具有与所选择的任意的梯形图枝干所具有的执行条件部相同的执行条件部的梯形图枝干设定于相同的设备共通组内。由此,共通组生成部18以使得具有相同的执行条件部的梯形图枝干收容于相同的设备共通组内的方式对各梯形图枝干进行分组。在图7中,示出分组为在执行条件部具有设备X0、X1、X2的SwOp0、SwOp3、SwOp5和在执行条件部具有设备X11、X10的SwOp4、SwOp1这两组的情况。
下面,对生成各设备共通组之中存在同时执行的可能性的梯形图枝干集合(同时执行组)的处理进行说明。图8是表示同时执行组的生成处理顺序的流程图。图9是用于说明同时执行组的生成处理的图。
图8所示的处理是针对具有共通设备的梯形图枝干集合各自进行的。换言之,图8所示的处理是以设备共通组为单位而进行的处理。在图8、图9中,对将设备共通组51内的各梯形图枝干分配至任意的同时执行组的处理进行说明。
如图9所示,设备共通组51包含有SwOp0的梯形图枝干41、SwOp3的梯形图枝干43、SwOp5的梯形图枝干45。SW命令群提取部14生成1个同时执行组而作为存在同时执行的可能性的梯形图枝干集合(步骤S31)。在图9中,示出生成了同时执行组61的情况。该同时执行组61在被生成的时刻为空(st200),尚未放入梯形图枝干集合。
SW命令群提取部14在生成同时执行组61之后,从设备共通组51之中选择1个任意的梯形图枝干,放入至所生成的同时执行组61内(步骤S32)。放入至同时执行组61内的梯形图枝干被从设备共通组51内删除。在图9中,示出选择SwOp0的梯形图枝干41(st201)而放入至同时执行组61内的情况(st202)。
SW命令群提取部14对具有共通设备的梯形图枝干集合的要素是否为空进行确认(步骤S33)。换言之,SW命令群提取部14对在任意的设备共通组是否残留有梯形图枝干进行确认。
当在设备共通组51内存在能够选择的梯形图枝干的情况下(步骤S33、No),SW命令群提取部14从设备共通组51内选择1个未调查的梯形图枝干(步骤S34)。SW命令群提取部14例如选择SwOp3的梯形图枝干43。
SW命令群提取部14对属于同时执行组61的梯形图枝干41的执行条件与所选择的梯形图枝干43的执行条件之积是否具有解进行判断(步骤S35)。在存在梯形图枝干41与梯形图枝干43同时执行的可能性的情况下,梯形图枝干41、43的执行条件之积具有解。另一方面,在梯形图枝干41与梯形图枝干43不会同时执行的情况下,梯形图枝干41、43的执行条件之积不具有解。
这里的SW命令群提取部14判定(X0*X1)*((NOT X0)+(NOT X2))=TRUE是否成立。SW命令群提取部14在梯形图枝干41、43的执行条件之积具有解的情况下(步骤S36、Yes),将所选择的梯形图枝干43放入至同时执行组61,并从设备共通组51中删除(步骤S37)。在图9中,示出了选择SwOp3的梯形图枝干43而放入至同时执行组61内的情况(st203)。
SW命令群提取部14例如基于SMT(SATISFIABLE MODULO THEORIES)而进行执行条件之积是否具有解的判定。SMT是表示特定领域的数学体系的算术理论、集合理论等。依靠数个SMT解算器,能够解决一阶谓词逻辑的可满足性判定问题。此外,SMT不仅包含约束满足的可否,还包含在约束满足的情况下的向变量的分配法的信息。
SW命令群提取部14确认在设备共通组51内是否存在未调查的梯形图枝干(步骤S38)。在存在未调查的梯形图枝干的情况下(步骤S38、Yes),SW命令群提取部14对具有共通设备的梯形图枝干集合的要素是否为空进行确认(步骤S33)。
当在设备共通组51内存在能够选择的梯形图枝干的情况下(步骤S33、No),SW命令群提取部14从设备共通组51内选择1个未调查的梯形图枝干(步骤S34)。SW命令群提取部14例如选择SwOp5的梯形图枝干45。
SW命令群提取部14判定属于同时执行组61的梯形图枝干41、43的执行条件与所选择的梯形图枝干45的执行条件之积是否具有解(步骤S35)。这里的SW命令群提取部14判定(X0*X1)*((NOT X0)+(NOT X2))*(NOT X1)=TRUE是否成立。
SW命令群提取部14在梯形图枝干41、43、45的执行条件之积不具有解的情况下(步骤S36、No),将所选择的梯形图枝干45放入至与同时执行组61不同的其他同时执行组,并从设备共通组51中删除。
SW命令群提取部14在已经生成了与同时执行组61不同的其他同时执行组的情况下,判定已生成的同时执行组内的梯形图枝干的执行条件与所选择的梯形图枝干45的执行条件之积是否具有解。SW命令群提取部14在具有解的情况下,将梯形图枝干45放入至已生成的同时执行组内。
另一方面,SW命令群提取部14在未生成与同时执行组61不同的其他同时执行组的情况下,生成新的同时执行组,将所选择的梯形图枝干45放入其中。在图9中,示出选择SwOp5的梯形图枝干45而放入至新的同时执行组62内的情况(st204、st205)。
随后,SW命令群提取部14对具有共通设备的梯形图枝干集合的要素是否为空进行确认(步骤S33)。如果不为空,则SW命令群提取部14进行步骤S34~S38的处理。
而且,在步骤S38的处理中,在SW命令群提取部14判断为设备共通组51中不存在未调查的梯形图枝干的情况下(步骤S38、No),SW命令群提取部14针对与设备共通组51不同的其他设备共通组进行步骤S31~S38的处理。例如,SW命令群提取部14针对设备共通组52进行步骤S31~S38的处理。
而且,在步骤S33的处理中,如果SW命令群提取部14判断为具有共通设备的梯形图枝干集合的要素为空(步骤S33、Yes),则使通过SW命令群提取部14进行的同时执行组的生成处理结束。
这样,SW命令群提取部14通过将设备共通组51之中存在同时执行的可能性的梯形图枝干集合作为同时执行组而生成,从而对梯形图枝干进行分组。
通过SW命令群提取部14而分类后的同时执行组之中的、根据相同的设备共通组生成的同时执行组彼此是不会同时执行的SW命令群。换言之,根据相同的设备共通组生成的不同的同时执行组是不会同时执行的SW命令群。例如,同时执行组61、62均是根据设备共通组51而生成的,因此同时执行组61、62是不会同时执行的SW命令群。
SW命令群提取部14在根据图7所示的设备共通组52生成了同时执行组的情况下,生成包含SwOp4的梯形图枝干44的同时执行组和包含SwOp1的梯形图枝干42的同时执行组。
这样,在生成了同时执行组后可知,SwOp0、SwOp3有时被同时执行,“SwOp0、SwOp3”与“SwOp5”不会被同时执行。另外可知,SwOp1与SwOp4不会被同时执行。
基于上述的向同时执行组的分类结果,执行时间推定部15对最大扫描时间30进行推定。图10是用于说明最大扫描时间的计算处理例的图。
在图10中,示出SW命令或者HW命令与执行时间的对应关系。另外,在图10中,示出最大扫描时间30的推定值。在存在不会被同时执行的SW命令群的情况下,认为SW命令的执行时间较长的SW命令群的执行时间对最大扫描时间30作出贡献。因此,执行时间推定部15将执行时间较长的SW命令群应用于最大扫描时间30的计算处理。
例如,HW命令的“LD X0”的执行时间为Tld,HW命令的“AND X1”的执行时间为Tand。另外,如果将SW命令的“SwOpi”的执行时间记述为Ti,则SwOp0~SwOp5的执行时间分别为T0~T5。在该情况下,关于设备共通组51内的SwOp0、SwOp3、SwOp5,“T0+T3”与T5的较大的一个被应用于最大扫描时间30的计算处理。另外,关于设备共通组52内的SwOp1、SwOp4,T1与T4的较大的一个被应用于最大扫描时间30的计算处理。
在图10中,示出(T0+T3)>T5且T1>T4的情况下的最大扫描时间30的计算结果。执行时间推定部15将SW命令群之中的、未应用于最大扫描时间30的计算处理的SW命令群的执行时间设为0而对最大扫描时间30进行计算。
执行时间推定部15将(T0+T3)与T5之中的(T0+T3)应用于最大扫描时间30的计算处理,将T1与T4之中的T1应用于最大扫描时间30的计算处理。因此,执行时间推定部15将T0+T3+T1计算为SW命令的执行时间。
另外,执行时间推定部15将全部的HW命令的执行时间的合计时间计算为HW命令的执行时间。具体而言,执行时间推定部15将4Tld+2Tldi+Tand+Tani+Tori+Tout计算为HW命令的执行时间。然后,执行时间推定部15将SW命令的执行时间与HW命令的执行时间的合计时间作为最大扫描时间30的推定值。
图11是表示执行时间推定装置的硬件结构的图。执行时间推定装置10具有CPU(Central Processing Unit)91、ROM(Read Only Memory)92、RAM(Random Access Memory)93、显示部94、输入部95。在执行时间推定装置10中,上述CPU 91、ROM 92、RAM 93、显示部94以及输入部95经由总线B而连接。
CPU 91利用作为计算机程序的执行时间推定程序90而进行最大扫描时间30的推定。显示部94是液晶监视器等显示装置,基于来自CPU 91的指示,对梯形图程序、SW命令、HW命令、执行条件部、梯形图枝干、设备共通组、同时执行组、最大扫描时间30等进行显示。输入部95具有鼠标或者键盘而构成,输入由使用者从外部输入的指示信息(最大扫描时间30的推定所需的参数等)。向输入部95输入的指示信息被发送至CPU 91。
执行时间推定程序90储存于作为计算机能够进行读取且非暂时性的存储介质(nontransitory computer readable medium)的ROM 92等之中,经由总线B而向RAM 93载入。
CPU 91执行被载入至RAM 93内的执行时间推定程序90。具体而言,在执行时间推定装置10中,按照由使用者从输入部95输入的指示,CPU 91从ROM 92内读取出执行时间推定程序90,在RAM 93内的程序储存区域展开而执行各种处理。CPU 91使在该各种处理时所产生的各种数据暂时存储于在RAM 93内形成的数据储存区域。
由执行时间推定装置10执行的执行时间推定程序90成为包含电路模块提取部12、组合信息提取部13、SW命令群提取部14、执行时间推定部15、共通组生成部18的模块结构,它们被载入至主存储装置上,它们是在主存储装置上生成的。由此,执行时间推定程序90能够作为计算机即执行时间推定装置10上的软件而实现。此外,电路模块提取部12的功能也可以储存在与执行时间推定程序90不同的其他程序中。
此外,在本实施方式中,对接收部11接收梯形图程序的情况进行了说明,但接收部11也可以接收梯形图树。在接收部11接收梯形图树的情况下,组合信息提取部13从梯形图树中提取梯形图枝干。另外,在接收部11接收梯形图树的情况下,执行时间推定装置10也可以不具有电路模块提取部12。
根据本实施方式,从设备共通组内的同时执行组之中,基于软件命令的执行时间最长的同时执行组,计算最大扫描时间30,因此能够估计最花费时间的情形下的扫描时间。
工业实用性
如以上所述,本发明涉及的执行时间推定程序以及执行时间推定装置适用于定序程序的执行时间的推定。
标号的说明
10执行时间推定装置,12电路模块提取部,13组合信息提取部,14SW命令群提取部,15执行时间推定部,18共通组生成部,20IL表达信息,21指令执行时间数据,41~45梯形图枝干,50全体梯形图枝干集合,51、52设备共通组,61、62同时执行组,90执行时间推定程序。