本發明涉及一種對定序程序的執行時間進行推定的執行時間推定程序以及執行時間推定裝置。
背景技術:
伴隨著對生產裝置所要求的功能的高級化、復雜化,對生產裝置的動作進行控制的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執行時間推定程序。