Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5762154B2 - Information processing apparatus, information processing method, and program - Google Patents
[go: Go Back, main page]

JP5762154B2 - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
JP5762154B2
JP5762154B2 JP2011128468A JP2011128468A JP5762154B2 JP 5762154 B2 JP5762154 B2 JP 5762154B2 JP 2011128468 A JP2011128468 A JP 2011128468A JP 2011128468 A JP2011128468 A JP 2011128468A JP 5762154 B2 JP5762154 B2 JP 5762154B2
Authority
JP
Japan
Prior art keywords
directed
devices
node
extracted
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011128468A
Other languages
Japanese (ja)
Other versions
JP2012256178A (en
Inventor
弘典 岡原
弘典 岡原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011128468A priority Critical patent/JP5762154B2/en
Publication of JP2012256178A publication Critical patent/JP2012256178A/en
Application granted granted Critical
Publication of JP5762154B2 publication Critical patent/JP5762154B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、制御プログラムのデバッグ作業を容易化させる技術に関する。   The present invention relates to a technique for facilitating a debugging operation of a control program.

≪対象とする領域について≫
今日、FA(ファクトリーオートメーション)システムやPA(プロセスオートメーション)システムではシーケンス制御を行う機器としてプログラミング可能なCPU機器、すなわち、プログラマブルコントローラ(PLC、シーケンサ機器)が用いられている。
FAシステムの制御プログラマ(システムインテグレータや、FAシステムを構成するコンポーネントの装置メーカなど)は、パソコンで動作するFA専用のエンジニアリング環境ソフトウェア上にてシーケンサ機器用の制御プログラムを作成(クロス開発)するのが一般的である。
エンジニアリング環境ソフトウェアは、プログラマが作成した制御プログラムを、シーケンサ機器内で解釈可能な中間言語プログラムにコンパイルし、シーケンサ機器へダウンロードする。
中間言語プログラムがダウンロードされたシーケンサ機器は、その制御プログラムに従って、様々な入出力ユニットやネットワークを介してセンサやモータを制御して、FA・PAシステムを動作させる。
FA・PAシステム用の制御プログラムが通常の組込みシステムと異なる点は、プログラミングを行うのがシーケンサ機器のメーカではなく一般エンドユーザであることと、制御プログラムの制御対象がユーザのFAシステム内の比較的マクロな要素であること、つまり制御対象は、FA・PAシステム全体の中で意味のある単位となりうること、が挙げられる。
この意味のある制御対象(変数、デバイス)の単位は、ラベルやシステムラベルと呼ばれることもある。
≪Regarding target area≫
Today, in FA (factory automation) systems and PA (process automation) systems, programmable CPU devices, that is, programmable controllers (PLCs, sequencer devices) are used as devices for sequence control.
FA system control programmers (system integrators, component manufacturers of FA system components, etc.) create (cross-develop) control programs for sequencer devices on FA dedicated engineering environment software that runs on a personal computer. Is common.
The engineering environment software compiles the control program created by the programmer into an intermediate language program that can be interpreted in the sequencer device, and downloads it to the sequencer device.
The sequencer device having the intermediate language program downloaded operates the FA / PA system by controlling sensors and motors via various input / output units and networks according to the control program.
The control program for the FA / PA system is different from a normal embedded system in that the programming is performed by the general end user, not the manufacturer of the sequencer device, and the control program is controlled in the user's FA system. That it is a macro element, that is, the control target can be a meaningful unit in the entire FA / PA system.
This meaningful unit of control target (variable, device) is sometimes called a label or a system label.

≪制御プログラムの運用について≫
プログラマが作成する制御プログラムは、国際規格IEC61131−3で定義された5言語、インストラクションリスト(IL)、ラダー(LD)、ストラクチャードテキスト(ST)、ファンクションブロックダイアグラム(FBD)、シーケンシャルファンクションチャート(SFC)などで記述されることが多い。
また、CやC++などの汎用プログラミング言語で記述されることもある。
FA・PAシステムは組み込みシステムであり、通常、制御対象は物理的な機械である。
このため、机上で制御プログラムをデバッグするだけでなく、プログラム作成の最終段階、あるいは工場等においてラインを立ち上げる段階において、制御プログラムと制御対象である実機システムとを組み合わせて、動作タイミング等の確認や微調整を行う必要がある。
また、FA・PAシステムはその性質上、数十年にわたって稼動するものも珍しくない。
しかし、その長期間にわたって制御プログラムが変更されないわけではない。
例えば工場の製造ラインなどの場合は、製造する製品の仕様などの変化に伴って、制御プログラムに少しずつ修正が加えられることがある。
これらの修正過程では、ラインの運用中にシーケンサ機器へエンジニアリング端末を接続して、その場で変更などを行うことも多い。
この調整や変更は、ラダー(LD)やインストラクションリスト(IL)という、中間言語とほぼ一対一に対応した、機械語レベルの低級言語により行われることがある。
なぜならば、この作業を行うのは制御プログラマ(装置メーカ)ではなく、機械や製造ラインの専門家(エンドユーザ)であることが多く一般的に高級言語に不慣れなことや、微調整や少しの修正のために上流の設計(高級言語)を変更するのは時間がかかることを理由に、この手順が省略されるためである。
このため、計画的なバックアップ作業を行っていない限り、稼働中の実機システムを動作させている制御プログラムと整合性の取れている「マスタプログラム」が事務所などに保管されていないことがある。
そもそも、稼働中の実機システムのシーケンサ機器内に格納されている中間言語プログラムを「マスタプログラム」と考えているユーザも少なくない。
したがって、FA・PAシステムにおいて、特に保守時に対象とする制御プログラムは、ILやLDなどの機械語レベルの言語で記述されたものを前提として考える必要がある。
≪Control program operation≫
The control program created by the programmer includes five languages defined in the international standard IEC61131-3, instruction list (IL), ladder (LD), structured text (ST), function block diagram (FBD), and sequential function chart (SFC). It is often described by.
It may also be written in a general-purpose programming language such as C or C ++.
The FA / PA system is an embedded system, and the control target is usually a physical machine.
For this reason, not only debugging the control program on the desk, but also checking the operation timing etc. by combining the control program and the actual machine system to be controlled at the final stage of program creation or at the stage of starting up the line at the factory. It is necessary to make fine adjustments.
Also, it is not uncommon for FA / PA systems to operate for decades due to their nature.
However, the control program is not not changed over the long term.
For example, in the case of a factory production line, etc., the control program may be modified little by little as the specifications of the product to be manufactured change.
In these correction processes, engineering terminals are often connected to sequencer equipment during line operation, and changes are often made on the spot.
This adjustment or change may be performed by a low-level language at a machine language level that corresponds to an intermediate language, such as a ladder (LD) or an instruction list (IL).
This is because it is not a control programmer (device manufacturer) that performs this work, but is often an expert (end user) of the machine or production line. This is because this procedure is omitted because it takes time to change the upstream design (high-level language) for correction.
For this reason, unless a planned backup operation is performed, a “master program” that is consistent with the control program that operates the actual machine system in operation may not be stored in an office or the like.
In the first place, there are not a few users who consider the intermediate language program stored in the sequencer device of the operating real system as the “master program”.
Therefore, in the FA / PA system, it is necessary to consider that the control program targeted particularly at the time of maintenance is written in a machine language level language such as IL or LD.

≪デバッグ・保守作業の困難性について≫
FA・PAシステムでは「制御プログラム設計段階における構造化支援」と「制御プログラム試験段階におけるデバッグ効率の向上」と「実機システム運用段階における障害発生時の早急な復旧」が大きな課題となっている。
IEC61131−3でも定義されているファンクションブロック(FB)などを用い、制御プログラムの標準化と構造化を支援しているエンジニアリング環境も数多くあるが、FBを有効に使用できているユーザ(特にエンドユーザ)は多くはないのが実情である。
FBなどを用いた構造化プログラミングを阻害しているのは、制御プログラムのどの部分を切り出して構造化し、再利用可能なプログラム部品として定義すべきかを、プログラミング前にあらかじめ設計しにくいことが原因の一つと考えられる。
実機システムの運用中に発生する、工場の製造ラインを停止してしまうような障害については、復旧に費やされる時間がそのままラインの停止時間になり、エンドユーザの損失に直結するために、早急な復旧が必要である。障害の原因究明に費やされる時間を短縮するため、可読性の高い制御プログラムが必要である。
しかしFA・PAシステムの制御プログラムをLDやILにて作成する場合、何千何万行となる「巻物」プログラムを記述することになる。LDやILで記述されたプログラムは構造を持たせにくく、これらは言語仕様上コメント等が入れにくいことなどもあり、他人が見たときに分かりづらいプログラムとなりがちである。LDやILで記述されたプログラムを短時間で正しく解釈するためには、LDやIL言語、制御プログラムに熟練している必要がある。
例えば実機システムの保守時に障害が顕在化したデバイスに注目し、制御プログラムに対して、このデバイスがコイル(出力)となっているラング(LD言語の回路ブロック)を検索し、そのラングで条件として使用されている接点(入力条件)のデバイス(通常は複数)を特定し、それがコイルとなっているラングを検索し...と順を追って検索を行うことで、障害が顕在化したデバイスに影響を与えているデバイスおよび処理を網羅してチェックすることが可能となる。
しかしながら、この方法では、コイル→接点と遡るたびに、探索木の分岐が行われるため、ユーザが途中の状態を記憶しておく必要がある。
また接点とコイルが循環していないか(探索木に繰返しが存在しないか)を随時チェックする必要がある。
なお、制御プログラマは通常、コイルに登場するデバイスを基準に処理を記述する。
つまり、2重コイル(プログラム中の複数個所で同一コイル出力が登場すること)は好まれないことが多い。
しかし、ラダー言語の接点−コイルの関係には、接点デバイスの条件によってコイルに書かれたデバイスのON/OFFが同時に定義されており、C言語などの汎用プログラミング言語に慣れているユーザにとっては分かりづらいところがある。
このため、SET命令やRESET命令によって明示的にデバイスのON/OFFを記すプログラマも増えてきている。
つまり、この場合は、コイル→接点デバイス検索における毎回の分岐の幅が増えることになり、ユーザに対して更なる負担を強いることになる。
≪About the difficulty of debugging / maintenance work≫
In the FA / PA system, “structuring support at the control program design stage”, “improvement of debugging efficiency at the control program test stage”, and “rapid recovery at the time of failure in the actual system operation stage” are major issues.
There are many engineering environments that support the standardization and structuring of control programs using function blocks (FB) defined in IEC 61131-3, but users who can effectively use FB (especially end users) The fact is that there are not many.
The reason why structured programming using FB is hindered is that it is difficult to design in advance before programming which part of the control program should be cut out and structured and defined as a reusable program part. One is considered.
For faults that occur during the operation of the actual system and stop the production line of the factory, the time spent for recovery becomes the line stop time as it is, which is directly linked to the loss of the end user. Recovery is necessary. In order to shorten the time spent investigating the cause of the failure, a highly readable control program is required.
However, when a control program for the FA / PA system is created by LD or IL, a “roll” program having thousands of lines is described. Programs written in LD or IL are difficult to have a structure, and these are difficult to put comments in language specifications, and thus tend to be difficult to understand when viewed by others. In order to correctly interpret a program written in LD or IL in a short time, it is necessary to be skilled in the LD, IL language, and control program.
For example, paying attention to a device that has failed during maintenance of the actual system, search the control program for the rung (LD language circuit block) in which this device is a coil (output), and use that rung as a condition. Identify the contact (input condition) device (usually multiple) being used, and search for the rung that is the coil. . . Thus, it is possible to comprehensively check devices and processes that have an influence on a device in which a failure has become apparent.
However, in this method, the search tree is branched every time it goes back from the coil to the contact point, so the user needs to memorize the intermediate state.
Also, it is necessary to check from time to time whether the contacts and the coil are circulating (whether there is no repetition in the search tree).
Note that the control programmer usually describes the processing based on the device appearing in the coil.
That is, the double coil (the same coil output appears at a plurality of locations in the program) is often not preferred.
However, the ladder language contact-coil relationship defines ON / OFF of the device written on the coil at the same time depending on the contact device condition, which is understandable for users who are used to general-purpose programming languages such as C language. There is a difficult point.
For this reason, an increasing number of programmers explicitly write device ON / OFF by a SET command or a RESET command.
That is, in this case, the width of each branch in the coil-> contact device search increases, which imposes a further burden on the user.

≪先行技術について≫
制御プログラムのデバッグ時の容易化技術として、制御プログラムの解析結果やモニタ結果をGUI(Graphical User Interface)を用いて可視的にユーザへ提供する技術については、これまでに幾つか開示されている。
例えば、特許文献1では、デバッグを行うための制御プログラムのモニタ方法として、制御プログラムのSFC言語表現などのフロー図を画面上に表示して、この上に制御プログラムのブロックの活性/非活性状態を表示することなどによって、可視的にモニタ結果が表現される方法が開示されている。
また特許文献2では、FB言語などによって構造化された制御プログラムを対象として、その制御ブロックの呼出関係をツリー構造に変換し、元の制御プログラムと対応する形で表示する方法が開示されている。
特許文献3では、制御プログラムを走査して出力命令部分について抽出し、利用デバイスの出力が、制御プログラム全体のどの位置で実行されているのかを示すアウトラインを作成することで、デバッグの容易化を実現する方法について開示している。
特許文献4では、障害発生時に原因となるデバイスの特定のために、1画面中に表示可能なLD言語形式の情報量を増やすため、LD言語表示には簡略形式で制御プログラムを表示して、別の詳細画面内に、関連する詳細情報を表示する方法について開示している。
以上のようにいずれも、制御プログラム自体や、制御プログラム内でのデバイス検索結果を、SFC言語やLD言語の形式もしくはそれに類似したアウトライン形式で表示することによって、制御プログラムのデバッグ作業を容易化させる技術である。
≪About prior art≫
As techniques for facilitating debugging of a control program, several techniques have been disclosed so far for visually providing the analysis result and monitor result of the control program to the user using a GUI (Graphical User Interface).
For example, in Patent Document 1, as a method for monitoring a control program for debugging, a flow diagram such as an SFC language expression of the control program is displayed on the screen, and the activation / inactivation state of the block of the control program is displayed on this screen. A method is disclosed in which a monitor result is visibly expressed, for example, by displaying.
Further, Patent Document 2 discloses a method of converting a control block call relationship into a tree structure and displaying the control program in a form corresponding to the original control program for a control program structured by the FB language or the like. .
In Patent Document 3, the control program is scanned and an output command part is extracted, and by creating an outline indicating where the output of the used device is executed in the entire control program, debugging is facilitated. Disclosed is a method to realize.
In Patent Document 4, in order to increase the amount of information in the LD language format that can be displayed in one screen in order to identify a device that causes a failure, a control program is displayed in a simplified format in the LD language display, A method for displaying related detailed information in another detail screen is disclosed.
As described above, the control program itself and the device search result in the control program are displayed in the SFC language, LD language format or similar outline format, thereby facilitating debugging of the control program. Technology.

また、一般的なプログラムの解析技術として「フローグラフ」がある。
これはプログラムスライシング技術(非特許文献1)等で使用されるプログラム内の処理(制御)間の依存関係を有向グラフにて表したものである。
A general program analysis technique is a “flow graph”.
This is a directed graph showing the dependency between processes (controls) in a program used in the program slicing technology (Non-patent Document 1) or the like.

特開2001−154711号公報JP 2001-154711 A 特開2004−303217号公報JP 2004-303217 A 特開2006−318504号公報JP 2006-318504 A 特開2003−084811号公報Japanese Patent Laid-Open No. 2003-084811

「プログラムスライシング技術と応用」、ISBN4−320−02743−4、下村隆夫、共立出版、1995"Program Slicing Technology and Applications", ISBN4-320-02743-4, Takao Shimomura, Kyoritsu Shuppan, 1995

上述したように、制御プログラムはその性質上、実機システム内で稼働中の機械語レベルのコードをマスタプログラムと考えることが多い。またそれらの機械語レベルの中間コードと整合性のとれた、より可読性の高い上級言語プログラムや内部仕様書がユーザの元に存在するとは限らない。
このことからFA・PAシステムを対象とする場合、その制御プログラムはLDやIL言語で記述されていることを前提とする必要がある。
しかし一方で、LDやILなどの機械語レベルのコードをプログラミングすることや、これらのコードのみを使用してデバッグや障害発生時の原因究明を短時間で行うには、熟練した技術が必要である。
つまり、FA・PAシステムの課題として「LDやIL言語などの機械語レベルの言語をターゲットとしながら、それを熟練者でないユーザでも短時間でデバッグや障害要因の究明を行えるようにする」という課題がある。
As described above, due to the nature of the control program, a machine language level code operating in the actual machine system is often considered as a master program. In addition, there is no guarantee that a user can have a more readable advanced language program or internal specification that is consistent with the intermediate code at the machine language level.
Therefore, when targeting the FA / PA system, it is necessary to assume that the control program is written in the LD or IL language.
On the other hand, skillful techniques are required to program machine language level codes such as LD and IL, and to use only these codes to perform debugging and investigate the cause of failure in a short time. is there.
In other words, the FA / PA system has the problem of "targeting machine language level languages such as LD and IL, while enabling non-expert users to debug and investigate failure factors in a short time." There is.

本発明は、このような課題を解決することを主な目的としており、制御プログラムで定義されている制御アルゴリズムを理解しやすい形式で可視化するグラフを生成することを主な目的とする。   The main object of the present invention is to solve such a problem, and it is a main object of the present invention to generate a graph that visualizes a control algorithm defined in a control program in an easily understandable format.

本発明に係る情報処理装置は、
複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出部と、
前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出部と、
前記デバイス抽出部により抽出されたデバイスの記述と前記依存関係抽出部により抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成部とを有することを特徴とする。
An information processing apparatus according to the present invention includes:
From a control program in which a plurality of devices are described and dependencies between the devices are described, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependencies between the devices. A device extractor for extracting the description;
A dependency extraction unit that extracts a description of the dependency between devices from the control program;
Based on the description of the device extracted by the device extraction unit and the description of the dependency relationship between the devices extracted by the dependency relationship extraction unit, the node represents the device, the directed edge represents the dependency relationship between the devices, And a graph generation unit that generates a directed directed graph of a circuit representing a control algorithm defined by the control program as a connection between a node and a directed edge.

本発明によれば、制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成する。
このため、制御プログラムで定義されている制御アルゴリズムを理解しやすい形式で可視化することができ、制御プログラムのデバッグ作業等を容易にすることができる。
According to the present invention, a directed directed graph in which a control algorithm defined in a control program is represented by a connection between a node and a directed edge is generated.
For this reason, the control algorithm defined in the control program can be visualized in a format that is easy to understand, and debugging of the control program can be facilitated.

実施の形態1〜3に係る情報処理装置の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of an information processing device according to first to third embodiments. 実施の形態1に係る情報処理装置のグラフ表示動作のフローチャート図。FIG. 3 is a flowchart of graph display operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置の対応制御部分プログラム表示動作のフローチャート図。FIG. 6 is a flowchart of a corresponding control partial program display operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置の特定デバイス仕様出力動作のフローチャート図。FIG. 3 is a flowchart of a specific device specification output operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置の影響範囲図示動作のフローチャート図。FIG. 3 is a flowchart of an influence range illustrating operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置の未使用箇所検出動作のフローチャート図。FIG. 3 is a flowchart of an unused part detection operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置の循環定義検出動作のフローチャート図。FIG. 3 is a flowchart of a circulation definition detection operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置のデバイス値モニタ動作のフローチャート図。FIG. 4 is a flowchart of device value monitoring operation of the information processing apparatus according to the first embodiment. 実施の形態1に係る情報処理装置の障害可能性要因図示動作のフローチャート図。FIG. 6 is a flowchart of a failure possibility factor illustrating operation of the information processing apparatus according to the first embodiment. 実施の形態2に係るLD言語による制御プログラムの例を示す図。The figure which shows the example of the control program by LD language concerning Embodiment 2. FIG. 実施の形態2に係る制御プログラムのグラフ表示例1(模式図)を示す図。The figure which shows the graph display example 1 (schematic diagram) of the control program which concerns on Embodiment 2. FIG. 実施の形態2に係るノード構造体の例を示す図。FIG. 10 shows an example of a node structure according to the second embodiment. 実施の形態2に係るエッジ構造体の例を示す図。FIG. 6 shows an example of an edge structure according to the second embodiment. 実施の形態2に係る接続情報の例を示す図。FIG. 10 is a diagram illustrating an example of connection information according to the second embodiment. 実施の形態3に係る制御プログラムのグラフ表示例2(模式図)を示す図。The figure which shows the graph display example 2 (schematic diagram) of the control program which concerns on Embodiment 3. FIG. 実施の形態3に係る影響範囲図示のグラフ表示例(模式図)を示す図。FIG. 10 is a diagram showing a graph display example (schematic diagram) illustrating an influence range according to the third embodiment. 実施の形態3に係る循環定義検出のグラフ表示例(模式図)を示す図。The figure which shows the graph display example (schematic diagram) of the circulation definition detection which concerns on Embodiment 3. FIG. 実施の形態2に係る制御プログラム例のIL言語表現を示す図。FIG. 10 is a diagram showing an IL language expression of a control program example according to the second embodiment. 実施の形態1〜3に係る情報処理装置のハードウェア構成例を示す図。FIG. 3 is a diagram illustrating a hardware configuration example of the information processing apparatus according to the first to third embodiments.

実施の形態1.
≪概要≫
まず、本実施の形態に係る情報処理装置の動作の概要を説明し、その後、構成例及び動作手順の詳細を説明する。
Embodiment 1 FIG.
≪Overview≫
First, an outline of the operation of the information processing apparatus according to the present embodiment will be described, and then a configuration example and details of an operation procedure will be described.

本実施の形態に係る情報処理装置は、制御プログラムで制御される変数(デバイス)を抽出してノードとし、デバイス間の相互作用を依存関係として抽出してエッジとすることで、制御プログラムを有閉路有向グラフとしてみて、その構造を保持することで、制御プログラム設計時あるいは保守時に、ユーザ作業の効率化、作業の時間短縮を支援する。
また、本実施の形態に係る情報処理装置は、例えば、制御プログラム設計時に制御プログラム内で使用されているデバイス間の関係を、GUIにて可視的に表示することや、制御プログラム保守時にGUIにて可視的に表示された依存関係グラフ上にて、デバイス値をモニタする、などの機能を持つ。
The information processing apparatus according to the present embodiment has a control program by extracting a variable (device) controlled by the control program as a node and extracting an interaction between devices as a dependency to obtain an edge. By holding the structure as a closed-circuit directed graph, it helps to improve the efficiency of user work and shorten the work time when designing or maintaining a control program.
Further, the information processing apparatus according to the present embodiment, for example, visually displays the relationship between devices used in the control program at the time of designing the control program, or displays the GUI at the time of control program maintenance. It has functions such as monitoring the device value on the dependency graph visually displayed.

ここでは、本実施の形態に係る情報処理装置が対象とする言語の1つとして、ラダー(LD)言語を説明するとともに、LD言語で記述された制御プログラムから有閉路有向グラフを生成する例を説明する。   Here, a ladder (LD) language will be described as one of the languages targeted by the information processing apparatus according to the present embodiment, and an example of generating a closed-circuit directed graph from a control program written in the LD language will be described. To do.

ラダー(LD)言語は電気回路をモデル化した言語である。
LD言語では、左右の母線間をラング(回路ブロック)の単位で通常一つの意味のある処理が記述される。
回路ブロックにはその処理に必要な変数(デバイス)が接点やコイルの形で登場する。
したがって、LD言語はデバイス間の処理を列挙した「処理志向型言語」と考えることができる。
なお、インストラクションリスト(IL)言語についても、構成する命令は基本的にLD言語の要素と一対一に対応可能である。
しかしながら、制御プログラムの目的は、物理的な機械の駆動や電子デバイスへの電圧付加など、実際の物理的なデバイスへの指示が基本である。
例えば、ある生産ラインにおいて以下の仕様にて制御を行う必要があるとする。
1)センサAがONで、押しボタンB1押下時に、ベルトコンベアCのモータが正転する
2)センサAがONで、押しボタンB2押下時に、ベルトコンベアCのモータが逆転する
この制御プログラムを考えた場合、上記の1)の文と2)の文をそれぞれ記述するのがラダー言語(処理指向型言語)である。
LD言語において1)及び2)の文(処理)が、それぞれラングで表現され、それぞれのラングには、以下のように、A、B1、C(正転)およびA、B2、C(逆転)の3つのデバイス間の関係が記述されることになる。
・センサA:ベルトコンベアCの正転・逆転に影響を与える
・押しボタンB1:ベルトコンベアCの正転に影響を与える
・押しボタンB2:ベルトコンベアCの逆転に影響を与える
・ベルトコンベアC(正転):センサA、押しボタンB1に影響を受ける
・ベルトコンベアC(逆転):センサA、押しボタンB2に影響を受ける
Ladder (LD) language is a language that models electrical circuits.
In the LD language, one meaningful process is usually described in units of rungs (circuit blocks) between left and right buses.
In the circuit block, variables (devices) necessary for the processing appear in the form of contacts and coils.
Therefore, the LD language can be considered as a “processing-oriented language” that enumerates the processes between devices.
In the instruction list (IL) language, the constituent instructions can basically correspond one-to-one with the elements of the LD language.
However, the purpose of the control program is basically instructions to an actual physical device such as driving a physical machine or applying a voltage to an electronic device.
For example, suppose that it is necessary to control with the following specifications in a certain production line.
1) When the sensor A is ON and the push button B1 is pressed, the motor of the belt conveyor C rotates forward. 2) When the sensor A is ON and the push button B2 is pressed, the motor of the belt conveyor C rotates reverse. In this case, a ladder language (processing-oriented language) describes the above sentence 1) and sentence 2).
In the LD language, the sentences (processing) 1) and 2) are expressed as rungs, and each rung has A, B1, C (forward rotation) and A, B2, C (reverse rotation) as follows: The relationship between the three devices is described.
Sensor A: affects the forward / reverse rotation of the belt conveyor C. Push button B1: affects the forward rotation of the belt conveyor C. Push button B2: affects the reverse rotation of the belt conveyor C. Belt conveyor C ( Forward rotation): affected by sensor A and push button B1 Belt conveyor C (reverse rotation): affected by sensor A and push button B2

上記のように、制御対象であるデバイス間の関係を表現するのが本実施の形態に係る表示形式の考え方であり、本実施の形態では、それを有閉路有向グラフ構造として保持する方法をとる。
前述のとおり、FA・PAシステムの制御プログラムはその目的が、具体的な「デバイス」を制御することである。
LD言語やIL言語で記述される制御プログラムのほとんどは「接点→コイル」の組合せで記述され、その単位処理自体は単純なものである。
またFA・PAシステムの制御プログラムは、デバイスに対する操作として間接アドレシング(ポインタ)などを使用することは少ない特徴もある。
基本的に、物理的に実在する機器に対応するものとして各デバイスが定義されるため、デバイスをポインタやインデクスとして使用する例は多くない。
As described above, the concept of the display format according to the present embodiment expresses the relationship between the devices to be controlled, and in this embodiment, a method of holding it as a closed-circuit directed graph structure is used.
As described above, the purpose of the control program of the FA / PA system is to control a specific “device”.
Most of the control programs described in the LD language or IL language are described in a combination of “contact → coil”, and the unit processing itself is simple.
In addition, the FA / PA system control program has few features that use indirect addressing (pointer) or the like as an operation for the device.
Basically, since each device is defined as corresponding to a physically existing device, there are not many examples in which the device is used as a pointer or an index.

本実施の形態の手法と類似した、一般的なプログラムの解析技術として「フローグラフ」がある。
これは、前述したように、プログラムスライシング技術(非特許文献1)等で使用されるプログラム内の処理(制御)間の依存関係を有向グラフにて表したものである。
フローグラフは一般的なプログラム全てに適用可能であり、本実施の形態に係る情報処理装置が対象とするFA・PAシステムの制御プログラムに対しても定義可能である。
しかし、フローグラフはプログラムの構造を抽象的に表現したものであって、個々のグラフ要素(ノード、エッジ)が具体的な何かに対応するものではない。
またフローグラフのノードは、それ自体が何らかの処理を内包しており、その処理自体の依存関係がエッジとして表現される。
しかしFA・PAシステムの制御プログラムは、通常プログラムの制御の構造が浅い。
つまりIF文やループ文などの構造を持つことがほとんど無い。
これはサイクリック演算によって繰返し実行されることにも起因している。
本実施の形態では、処理間の依存関係を表現する理由が少なく、むしろ変数(デバイス)と処理を明確に分離した方が可視化の際にユーザに理解されやすいと考える。
このように、フローグラフのようなノードとエッジの定義による可視化は、少なくともFA・PAシステムの制御プログラムを対象とする場合には適していない。
そもそも一般的なプログラムの場合は、使用される変数自体が抽象的なものであり、ポインタや配列などを頻繁に使用するため、その変数の実体(メモリ領域)が固定していないことが多い。
このため、本実施の形態で開示するようなグラフ構造を構築するのは困難である。
しかし、対象をFA・PAシステムの制御プログラムに限定した場合は、より詳細なデバイス単位でのグラフ構築が可能になる。
つまり、デバイスをノードとして表現することでそのイメージが固定され、表示される有閉路有向グラフは、実機システムを構成する要素群のイメージに近いものとなる。
本実施の形態は、FA・PAシステムの制御プログラムのこの特徴を拠りどころとしている。
グラフ表示による可視化は、ユーザに対して制御プログラムの直感的な理解の手助けになると考える。
There is a “flow graph” as a general program analysis technique similar to the method of the present embodiment.
As described above, this is a directed graph showing the dependency relationship between processes (controls) in a program used in the program slicing technique (Non-patent Document 1) or the like.
The flow graph can be applied to all general programs, and can also be defined for the control program of the FA / PA system targeted by the information processing apparatus according to the present embodiment.
However, the flow graph is an abstract representation of the structure of the program, and does not correspond to anything specific to each graph element (node, edge).
In addition, the nodes of the flow graph itself include some processing, and the dependency of the processing itself is expressed as an edge.
However, the control program of the FA / PA system usually has a shallow control structure.
In other words, there is almost no structure such as an IF statement or a loop statement.
This is also due to repeated execution by cyclic calculation.
In the present embodiment, there are few reasons for expressing the dependency relationship between processes, but rather, it is considered that a user clearly understands that a variable (device) and a process are clearly separated in visualization.
As described above, visualization based on node and edge definitions such as a flow graph is not suitable for at least the control program of the FA / PA system.
In the first place, in the case of a general program, the variables themselves used are abstract, and pointers and arrays are frequently used, so the substance (memory area) of the variables is often not fixed.
For this reason, it is difficult to construct a graph structure as disclosed in the present embodiment.
However, when the target is limited to the control program of the FA / PA system, it is possible to construct a graph in more detailed device units.
In other words, the image is fixed by expressing the device as a node, and the displayed directed directed graph of a closed circuit is close to the image of the element group constituting the real machine system.
This embodiment is based on this feature of the control program of the FA / PA system.
I think that visualization by graph display helps the user to understand the control program intuitively.

本実施の形態は、制御プログラム内のデバイス間の関係を一度すべて解析し、有向グラフという形式で、直感的に分かりやすい形で可視化することを特徴としている。
例えばLDやIL言語で使われる接点とコイルの関係「A⇒B」(条件Aならば結果B)は、接点とコイルをノードとしたときに、有向エッジによって表す方法が最も簡単であり、これ以上簡略また有効な可視化方法はない。
本実施の形態で開示する有閉路有向グラフは、FA・PAシステムの制御プログラムの設計フェーズおよび保守フェーズにて有用である。
前者については、対象となる制御プログラムの解析を行うことより、プログラムの構造化・再利用化の支援となる。また後者については、グラフ上でモニタを行うことで、視覚的にデバッグ作業を実施することが可能となるほか、制御プログラム全体に対して問題箇所(バグ)を最小の手順で見つけ出すことを容易にするため、障害発生時の早急な原因究明の支援となる。
This embodiment is characterized in that all the relationships between devices in a control program are once analyzed and visualized in a form of a directed graph in an intuitively understandable form.
For example, the relationship between the contact and coil used in LD and IL languages “A⇒B” (result B if condition A) is the simplest way to represent with a directed edge when the contact and coil are nodes. There is no simpler and more effective visualization method.
The directed graph with closed circuit disclosed in the present embodiment is useful in the design phase and maintenance phase of the control program of the FA / PA system.
For the former, analysis of the target control program helps support the structuring and reuse of the program. For the latter, monitoring on the graph makes it possible to visually perform debugging work, and it is easy to find the problem part (bug) in the entire control program with the minimum procedure. Therefore, it becomes a support for prompt investigation of the cause when a failure occurs.

≪構成の説明≫
以降に、図1を用いて、本実施の形態に係る情報処理装置100の構成例を説明する。
<Description of configuration>
Hereinafter, a configuration example of the information processing apparatus 100 according to the present embodiment will be described with reference to FIG.

図1において、制御プログラム中間コード記憶部101は、FA・PAシステムの制御プログラムが格納されているメモリである。
制御プログラム中間コード記憶部101で記憶されている制御プログラムのソースコードはどのような言語で記述されていても良い。
なお、制御プログラム中間コード記憶部101で記憶されている制御プログラムの中間コードは、制御プログラム中間コード1010と表記する。
この制御プログラム中間コード1010は、FA・PAシステムのエンジニアリング開発環境により、ユーザのプログラミングによって作成されたソースコードをコンパイルした結果である。
後述するように、この制御プログラムは作成中である場合と全て完成されている場合がある。
通常この制御プログラム中間コード1010はエンジニアリング環境のコンパイル生成物であり、シーケンサ機器にダウンロードされる対象でもある。
前述したように、制御プログラム中間コード1010には、複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、複数のデバイスの記述とデバイス間の依存関係の記述により複数のデバイスに対する制御アルゴリズムが定義される。
In FIG. 1, a control program intermediate code storage unit 101 is a memory in which a control program for the FA / PA system is stored.
The source code of the control program stored in the control program intermediate code storage unit 101 may be described in any language.
The intermediate code of the control program stored in the control program intermediate code storage unit 101 is expressed as a control program intermediate code 1010.
This control program intermediate code 1010 is the result of compiling a source code created by user programming in the engineering development environment of the FA / PA system.
As will be described later, this control program may be being created or may be completely completed.
Normally, this control program intermediate code 1010 is a compilation product of the engineering environment and is also a target to be downloaded to the sequencer device.
As described above, in the control program intermediate code 1010, a plurality of devices are described and dependency relationships between the devices are described, and a control algorithm for the plurality of devices is described based on the description of the plurality of devices and the description of the dependency relationship between the devices. Is defined.

デバイス抽出部102は、制御プログラムの中で使用されているデバイスの記述を抽出する。
抽出されるデバイスは、制御プログラムがLD言語の場合は接点デバイスやコイルデバイスであり、IL言語である場合はオペランドとして指定するソースデバイスやデスティネーションデバイスである。
デバイス抽出部102で抽出されたデバイスは、ノード情報としてノード構造体記憶部104に格納される。
デバイスの抽出は、例えば制御プログラムの設計段階においては、ユーザが制御プログラムを作成し、意味のある単位(LD言語では例えばラング)を作成するたびに抽出処理をおこなってもよいし、例えば実機システムの保守段階においては、障害が発生した段階で、稼働中の制御プログラム全体に対して一括して行ってもよい。
The device extraction unit 102 extracts a description of a device used in the control program.
The extracted device is a contact device or a coil device when the control program is in the LD language, and a source device or a destination device specified as an operand when the control program is in the IL language.
The device extracted by the device extraction unit 102 is stored in the node structure storage unit 104 as node information.
For example, in the design stage of a control program, the device may be extracted every time a user creates a control program and creates a meaningful unit (for example, a rung in the LD language). In the maintenance stage, the entire control program that is in operation may be collectively performed when a failure occurs.

依存関係抽出部103は、制御プログラムの中のデバイス間の依存関係の記述を抽出する。
抽出される依存関係は、制御プログラムがLD言語の場合は、例えば接点で指定されたデバイスAとコイルで指定されたデバイスBの間の依存関係や、比較条件Cと演算対象Dの間の依存関係である。
依存関係抽出部103で抽出された依存関係は、エッジ情報としてエッジ構造体記憶部105に格納される。
依存関係の抽出は、例えば制御プログラムの設計段階においては、ユーザが制御プログラムを作成し、意味のある単位(LD言語では例えばラング)を作成するたびに抽出処理をおこなってもよいし、例えば実機システムの保守段階においては、障害が発生した段階で、稼働中の制御プログラム全体に対して一括して行ってもよい。
The dependency relationship extraction unit 103 extracts a description of dependency relationships between devices in the control program.
When the control program is in the LD language, for example, the dependency relationship between the device A specified by the contact and the device B specified by the coil, or the dependency between the comparison condition C and the operation target D is used. It is a relationship.
The dependency relationship extracted by the dependency relationship extraction unit 103 is stored in the edge structure storage unit 105 as edge information.
For example, in the design stage of the control program, the dependency relationship may be extracted every time a user creates a control program and creates a meaningful unit (for example, rung in LD language). In the system maintenance stage, the entire control program in operation may be collectively performed at the stage where a failure occurs.

ノード構造体記憶部104は、デバイス抽出部102によって抽出されたデバイスの情報を記憶しておく領域である。
ノード構造体記憶部104で記憶される情報は、ノード構造体1040と表記する。
ノード構造体1040では、デバイスに対して、デバイス名あるいは、ユーザによって命名されたラベル名が格納される。
また、ノード構造体1040にはモニタを行うためのデバイスの現在値の格納エリアも設けてある。
The node structure storage unit 104 is an area for storing device information extracted by the device extraction unit 102.
Information stored in the node structure storage unit 104 is expressed as a node structure 1040.
In the node structure 1040, a device name or a label name named by the user is stored for the device.
The node structure 1040 is also provided with a storage area for the current value of the device for monitoring.

エッジ構造体記憶部105は、依存関係抽出部103によって抽出されたデバイス間の依存関係を記憶しておく領域である。
デバイス間の依存関係はいくつか種別がある。
LD言語を例に取ると例えば、A接点−コイルの関係(D1⇒D2)、B接点−コイルの関係(D1⇒D2)、演算式の関係(D2=D1+1)、条件式の関係(IF D1>0THEN D2=1)などである。
これらの例では全てデバイスD2はデバイスD1に依存している。
依存関係抽出部103では、これらの依存関係の種別と、対象となる2つ以上のデバイスの組合せを抽出する。
依存関係の種別はエッジ構造体1050として格納する。
対象デバイスの組合せは、エッジ構造体1050もしくは、後述する接続情報1060として保存する。
The edge structure storage unit 105 is an area for storing the dependency relationship between devices extracted by the dependency relationship extraction unit 103.
There are several types of dependencies between devices.
Taking the LD language as an example, for example, a contact A-coil relationship (D1⇒D2), a contact B-coil relationship (D1⇒D2), an arithmetic expression relationship (D2 = D1 + 1), and a conditional expression relationship (IF D1). > 0THEN D2 = 1).
In all these examples, device D2 is dependent on device D1.
The dependency relationship extraction unit 103 extracts combinations of these dependency relationships and two or more target devices.
The type of dependency relationship is stored as an edge structure 1050.
The combination of target devices is stored as an edge structure 1050 or connection information 1060 described later.

接続情報記憶部106は、デバイスを記憶しているノード構造体1040と、デバイス間の依存関係を記憶しているエッジ構造体1050の間の接続関係を保持しておく記憶領域である。
接続情報記憶部106で記憶されている情報を接続情報1060と表記する。
接続情報1060は、ノード構造体1040とエッジ構造体1050、つまり、デバイス抽出部102で抽出されたデバイスと依存関係抽出部103で抽出された依存関係を対応付ける情報である。
The connection information storage unit 106 is a storage area that holds a connection relationship between a node structure 1040 that stores devices and an edge structure 1050 that stores dependency relationships between devices.
The information stored in the connection information storage unit 106 is referred to as connection information 1060.
The connection information 1060 is information that associates the node structure 1040 and the edge structure 1050, that is, the device extracted by the device extraction unit 102 with the dependency extracted by the dependency extraction unit 103.

グラフ生成部112は、デバイス抽出部102により抽出されたデバイスの記述と依存関係抽出部103により抽出されたデバイス間の依存関係の記述とに基づき、有閉路有向グラフを生成する。
より具体的には、グラフ生成部112は、ノード構造体1040とエッジ構造体1050と接続情報1060を用い、接続情報1060に示されている対応付けに従って、ノード構造体1040のデバイスとエッジ構造体1050の依存関係を組み合わせて、有閉路有向グラフを生成する。
有閉路有向グラフは、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表すグラフである。
有閉路有向グラフの例は、後述する。
The graph generation unit 112 generates a closed circuit directed graph based on the description of the device extracted by the device extraction unit 102 and the description of the dependency relationship between devices extracted by the dependency relationship extraction unit 103.
More specifically, the graph generation unit 112 uses the node structure 1040, the edge structure 1050, and the connection information 1060, and uses the node structure 1040 device and the edge structure according to the association indicated in the connection information 1060. A cycle directed graph is generated by combining 1050 dependency relationships.
The directed circuit directed graph is a graph in which a node represents a device, a directed edge represents a dependency between devices, and a control algorithm defined by a control program is represented by a connection between the node and the directed edge.
An example of a directed circle directed graph will be described later.

条件入力部107は、グラフ生成部112で生成された有閉路有向グラフに対して、グラフ内の要素を検索するための条件やフィルタリングするための条件をユーザがGUIを通して入力する手段である。
例えばGUIによって表示されたグラフに対して、その任意のノードを指定することでノードが特定される。
またはグラフに対して、任意の領域を選択することで、そのデバイス群が選択される。
The condition input unit 107 is a means for the user to input a condition for searching for an element in the graph and a condition for filtering through the GUI with respect to the closed-circuit directed graph generated by the graph generation unit 112.
For example, a node is specified by designating an arbitrary node on a graph displayed by the GUI.
Alternatively, the device group is selected by selecting an arbitrary region with respect to the graph.

グラフ解析部108は、用途に応じて有閉路有向グラフをグラフ解析するエンジン部分である。
例えば、条件入力部107で選択されたデバイス群「が」影響を与え得る範囲(当該デバイス群から有向エッジを介して到達可能なノード全て)を抽出することや、逆に条件入力部107で指定されたデバイス「に」影響を与え得る範囲(当該デバイスから有向エッジを逆向きに介して到達可能なノード)を段階的に抽出するなどを行う。
また、グラフ全体のクラスタ性について計測を行い、制御プログラムのデバイス間の結合度合いを算出する、などを行う。
グラフ解析部108は、一般的なグラフ解析ロジックを用いることもできる。
The graph analysis unit 108 is an engine part that performs a graph analysis of the closed-circuit directed graph according to the application.
For example, the range of devices that can be influenced by the device group “selected” selected by the condition input unit 107 (all nodes that can be reached from the device group via the directed edge), or conversely, the condition input unit 107 For example, a range that can affect the designated device “at” (a node that can be reached from the device via the directed edge in the reverse direction) is extracted step by step.
In addition, the clustering of the entire graph is measured, and the degree of coupling between devices in the control program is calculated.
The graph analysis unit 108 can also use general graph analysis logic.

結果出力部109は、グラフ全体や、グラフ解析部108によってフィルタリングされた部分グラフをGUIを通してユーザに表示する手段である。
FA・PAシステムの制御プログラムで用いられるデバイスの数や処理の数は膨大なものになりうるため、本実施の形態で開示している有閉路有向グラフも大規模なものになる可能性がある。
このため、この結果出力部109にはグラフの拡大縮小表示機能や、選択デバイス/依存関係のみを表示する機能、あるいは選択されたデバイス群を縮約して、単一な仮想デバイスとして表示する機能などを持つことができる。
結果出力部109の一部機能は、一般的な複雑グラフ表示技術やツールを用いることもできる。
結果出力部109は表示部の例である。
The result output unit 109 is a means for displaying the entire graph or the partial graph filtered by the graph analysis unit 108 to the user through the GUI.
Since the number of devices and the number of processes used in the control program of the FA / PA system can be enormous, the directed circle directed graph disclosed in the present embodiment may be large.
Therefore, the result output unit 109 has a graph enlargement / reduction display function, a function to display only the selected device / dependency, or a function to reduce the selected device group and display it as a single virtual device. Can have.
As a partial function of the result output unit 109, a general complex graph display technique or tool can be used.
The result output unit 109 is an example of a display unit.

リンク管理部110は、制御プログラムのコードと、それを変換した有閉路有向グラフの要素(ノード:デバイス、エッジ:ラング(LDの場合))を対応付ける手段である。
リンク管理部110は、GUIを通してユーザに表示されるグラフと、元の制御プログラムコードを対応付けるために用いられる。
例えばグラフのノードを選択すると、それに対応するデバイスが、元の制御プログラムコードの中から検索され、当該デバイスが使用されている全てのラング(LDの場合)が一覧表示される。またエッジを選択すると、それに対応するラング(LDの場合)が表示される。
リンク管理部110は、これらの機能を実現するために使用される。
リンク管理部110はプログラムコード抽出部の例である。
The link management unit 110 is a means for associating the code of the control program with the elements (node: device, edge: rung (in the case of LD)) of the closed circuit directed graph obtained by converting the control program code.
The link management unit 110 is used to associate the graph displayed to the user through the GUI with the original control program code.
For example, when a node of the graph is selected, a corresponding device is searched from the original control program code, and all rungs (in the case of LD) in which the device is used are displayed in a list. When an edge is selected, a corresponding rung (in the case of LD) is displayed.
The link management unit 110 is used to realize these functions.
The link management unit 110 is an example of a program code extraction unit.

オンラインモニタ部111は、実際のシーケンサ機器と通信を行って、デバイスの現在値を取得する手段である。
ここで取得されたデバイス値は、グラフ表示を用いて現在値モニタを行う際に結果出力部109を介してGUI表示される。
一般的なFA・PAシステムのエンジニアリング開発環境は、既存のプログラミング言語エディタ上にてデバイスのオンラインモニタ機能を実現しているものが多い。
したがって、オンラインモニタ部111は、このオンラインモニタ機能で使用しているデバイス値取得機能部分を流用してもよい。
オンラインモニタ部111は計測値入力部の例である。
The online monitor unit 111 is means for communicating with an actual sequencer device and acquiring a current value of the device.
The device value acquired here is displayed on the GUI via the result output unit 109 when the current value is monitored using the graph display.
Many engineering development environments for general FA / PA systems realize an online monitoring function of devices on an existing programming language editor.
Therefore, the online monitor unit 111 may divert the device value acquisition function part used in this online monitor function.
The online monitor unit 111 is an example of a measurement value input unit.

≪動作の説明≫
≪1.グラフの表示≫
制御プログラム内で使用されているデバイス間の関係をGUIにて可視的に表示する手順について図2をもとに以下に述べる。
≪Description of operation≫
<< 1. Graph display >>
The procedure for visually displaying the relationship between devices used in the control program on the GUI will be described below with reference to FIG.

まず、処理202にて、ユーザが制御プログラムを入力する。
続いて、処理203にて、コンパイルを実行する。
しかし、コンパイル可能な単位の入力が完了していない場合は、再び処理202に戻って、制御プログラムの入力を待つ。
コンパイル可能な単位での入力が完了したら、コンパイル操作によって制御プログラム中間コード1010を作成する。
ここまでの処理は一般的なFA・PAシステムのエンジニアリング環境が持つ機能を流用することもできる。
First, in process 202, the user inputs a control program.
Subsequently, in process 203, compilation is executed.
However, if the input of the compilable unit is not completed, the process returns to the process 202 again and waits for the input of the control program.
When the input in the compilable unit is completed, the control program intermediate code 1010 is created by the compiling operation.
The processing up to this point can utilize the functions of a general FA / PA system engineering environment.

続いて、処理204にて、デバイス抽出部102が制御プログラム中間コード1010からデバイスの抽出を行う。
これにより対象とする制御プログラムの全体あるいは部分で使用されるデバイスの一覧が取得できる。
これらのデバイス情報はノード構造体1040としてノード構造体記憶部104に格納される。
この際、デバイスに関する種々の情報(例えばデバイス種別やラベル名など)も格納する。
同様に、処理205にて、依存関係抽出部103が制御プログラム中間コード1010から依存関係の抽出を行う。
これにより対象とする制御プログラムの全体あるいは部分で処理されているデバイス間の依存関係が抽出される。
これらの情報はエッジ構造体1050としてエッジ構造体記憶部105に格納される。
エッジ構造体1050には後述するように、グラフ解析に利用するための、正論理/負論理の情報なども格納する。
ここでもエッジに関する種々の情報(例えばエッジのタイプなど)も格納する。
同様に、処理206にて、依存関係抽出部103が制御プログラム中間コード1010とエッジ構造体1050から、接続情報1060を構築する。
次に、処理207にて、ノード構造体1040とエッジ構造体1050の間の接続関係を表す接続情報1060およびそれにリンクしたノード構造体1040とエッジ構造体1050から、グラフ生成部112が有閉路有向グラフを生成し、結果出力部109が表示する。
これらの処理を処理201と処理208間で繰り返す。
このループは制御プログラムの作成が完了するまで繰り返される。
Subsequently, in process 204, the device extraction unit 102 extracts a device from the control program intermediate code 1010.
As a result, a list of devices used in the whole or part of the target control program can be acquired.
Such device information is stored in the node structure storage unit 104 as a node structure 1040.
At this time, various information about the device (for example, device type and label name) is also stored.
Similarly, in processing 205, the dependency relationship extraction unit 103 extracts dependency relationships from the control program intermediate code 1010.
As a result, the dependency relationship between the devices being processed in the whole or part of the target control program is extracted.
These pieces of information are stored in the edge structure storage unit 105 as the edge structure 1050.
As described later, the edge structure 1050 also stores positive logic / negative logic information and the like for use in graph analysis.
Again, various information about the edge (for example, the type of edge) is also stored.
Similarly, in processing 206, the dependency relationship extraction unit 103 constructs connection information 1060 from the control program intermediate code 1010 and the edge structure 1050.
Next, in process 207, the graph generation unit 112 uses the connection information 1060 representing the connection relationship between the node structure 1040 and the edge structure 1050 and the node structure 1040 and the edge structure 1050 linked to the connection information 1060 to direct the closed-circuit directed graph. Is generated and displayed by the result output unit 109.
These processes are repeated between the process 201 and the process 208.
This loop is repeated until the creation of the control program is completed.

上記の流れ以外にも、制御プログラムのコンパイルが完了したことをトリガとして、デバイスの抽出処理204を開始する方法を取ることもできる。
また制御プログラムを保存したタイミング、シーケンサ機器へダウンロードしたタイミングをトリガとする方法もとることができる。
また、処理203のコンパイル時に、前回のコンパイル結果との照合を行い、修正のあった箇所についてのみ処理204以降の処理を行うことで、差分描画処理を行うこともできる。
In addition to the above flow, it is also possible to take a method of starting the device extraction process 204 triggered by the completion of compilation of the control program.
It is also possible to use a method that uses the timing when the control program is saved and the timing when it is downloaded to the sequencer device as a trigger.
Further, when the process 203 is compiled, it is possible to perform the difference drawing process by comparing with the previous compilation result and performing the process after the process 204 only for the corrected part.

≪2.対応制御部分プログラム表示≫
GUIにて可視化されたグラフの要素(ノード/エッジ)を選択することで、対応する元の制御プログラムの要素の検索結果を表示する手順について、図3をもとに以下に述べる。
≪2. Corresponding control program display >>
A procedure for displaying the search result of the element of the corresponding original control program by selecting the element (node / edge) of the graph visualized by the GUI will be described below with reference to FIG.

まず、処理301にて、グラフを構築する(接続情報1060構築)段階で、デバイス抽出部102及び依存関係抽出部103が、元の制御プログラムの各要素とグラフの要素(ノード/エッジ)とのリンクを作成する。
グラフのノードと元の制御プログラムのデバイス間のリンク情報はノード構造体1040に、構造体の要素として格納される。
また、グラフのエッジと元の制御プログラムの処理(LD言語であればラング)間のリンク情報はエッジ構造体1050に、構造体の要素として格納される。
これにより、表示されるグラフの各要素が元の制御プログラムの要素と関連づいた状態となる。
処理302により、ユーザがGUIに表示されたグラフの要素を選択する。
すると処理303において、グラフ解析部108により、そのグラフ要素がノードであるかエッジであるかが判別される。
ノードである場合は処理304にて、リンク管理部110により、ノード構造体1040とそこからリンクを辿った先の制御プログラム中間コード1010から、該当ノードが表すデバイスを使用した全ての処理(LD言語であればラング)が検索される。
エッジである場合は処理305にて、リンク管理部110により、エッジ構造体1050とそこからリンクを辿った先の制御プログラム中間コード1010から、該当エッジが表す処理(LD言語であればラング)が抽出される。
最後に、処理306にて、結果出力部109により、処理304もしくは処理305で抽出した制御プログラム中間コード1010が表示される。
この表示は、例えば、グラフと制御プログラム中間コード1010とを並べて表示することが考えられる。
First, in the process 301, at the stage of constructing a graph (connection information 1060 construction), the device extraction unit 102 and the dependency relationship extraction unit 103 determine whether each element of the original control program and each element (node / edge) of the graph. Create a link.
Link information between the nodes of the graph and the device of the original control program is stored in the node structure 1040 as an element of the structure.
Also, link information between the graph edge and the original control program processing (Lang in LD language) is stored in the edge structure 1050 as an element of the structure.
As a result, each element of the displayed graph is associated with the element of the original control program.
By processing 302, the user selects an element of the graph displayed on the GUI.
Then, in process 303, the graph analysis unit 108 determines whether the graph element is a node or an edge.
If it is a node, in the process 304, the link management unit 110 performs all processes using the device represented by the corresponding node from the node structure 1040 and the control program intermediate code 1010 that has followed the link (LD language). Then rung) is searched.
In the case of an edge, in processing 305, the link management unit 110 performs processing represented by the corresponding edge from the edge structure 1050 and the control program intermediate code 1010 that has followed the link (the rung in the case of LD language). Extracted.
Finally, in process 306, the result output unit 109 displays the control program intermediate code 1010 extracted in process 304 or process 305.
For example, the graph and the control program intermediate code 1010 may be displayed side by side.

処理304および処理305によりグラフ上の対応要素が特定され、制御プログラム中間コード1010内の対応要素が特定された後は、一般的なエンジニアリング環境で実現されている検索結果表示機能を用いて、対応する制御プログラム検索結果表示処理306を行うこともできる。   After the corresponding elements on the graph are specified by the processing 304 and the processing 305 and the corresponding elements in the control program intermediate code 1010 are specified, the correspondence is performed using the search result display function realized in a general engineering environment. The control program search result display processing 306 to be performed can also be performed.

≪3.特定デバイス仕様出力≫
GUIにて可視化されたグラフの特定ノードを選択することで、当該ノードの仕様を日本語(自然言語の一例)にて表示する手順について、図4をもとに以下に述べる。
≪3. Specific device specification output >>
A procedure for displaying the specification of the node in Japanese (an example of a natural language) by selecting a specific node of the graph visualized by the GUI will be described below with reference to FIG.

まず、処理401にて、ユーザによってGUIに表示されたグラフから、対象となるノードが選択される。
次に、処理402にて、グラフ解析部108によるグラフ解析により、指定されたノードに至る全てのパスを構成するノード、エッジを含む部分グラフを抽出する。
つまり、グラフ解析部108は、指定されたノードに影響を与える可能性のあるノードとエッジを全て抽出する。
この処理は対象ノードから全ての有向エッジを逆向きに辿り、見つかったノードとエッジを部分グラフに追加していき、新しいノードが見つからなくなるまで続けることで実行可能である。
これは一般的なグラフ解析ロジックを用いてもよい。
処理403にて、グラフ解析部108は、作成した部分グラフ内で入出力デバイスを表現しているノードのみを抽出する。
これは特定デバイスの仕様を出力する際に、実機システムとのインタフェースとしてユーザに分かりやすいデバイスを表示する意味がある。
しかし、入出力デバイスに限定する必要はなく、内部デバイスに対しても実行してもよい。
また、この処理を行うため、ノード構造体1040にはあらかじめ対応するデバイスの種別情報を格納しておく必要がある。
入出力デバイスそれぞれについて処理を行うため、処理404から処理407でループ処理を行う。
この内部では、処理405にて、グラフ解析部108は、対象となる入出力デバイスから出ている有向エッジについて日本語へ変換する。
例えば、特定デバイスが「モータC(正転)」であり、対象となった入力デバイスのラベル名が「センサA」であり、そこから出る有向エッジのタイプが「A接点−コイル」だとすると、「モータC(正転)はセンサAに依存する」という説明文が作成される。
また、もう一つの入力デバイスのラベルが「非常停止ボタンB」であり、エッジのタイプが「B接点−コイル」だとすると、「モータC(正転)は非常停止ボタンBに依存する」という説明文が作成される。
処理406にてこれらの説明文が、結果出力部109により、一文ずつユーザに提示される。
処理405にて、入出力デバイスに隣接するエッジのみを考慮に入れているが、これは出力される仕様の文章を単純化するためである。
より厳密に、入出力デバイスから特定デバイスに至るパスを有向エッジに沿った形で連ね、全て日本語化することも可能である。
また、逆に、405の処理は割愛し、入出力デバイスのみを持って、簡単な仕様として表示する方法もある。
この場合は入出力デバイスに隣接するエッジの情報は使用されず、一様に「[入出力デバイス]に依存する」という記述になる。
First, in process 401, a target node is selected from the graph displayed on the GUI by the user.
Next, in process 402, the graph analysis by the graph analysis unit 108 extracts a subgraph including nodes and edges that constitute all paths to the designated node.
That is, the graph analysis unit 108 extracts all nodes and edges that may affect the designated node.
This process can be executed by tracing all directed edges backward from the target node, adding the found nodes and edges to the subgraph, and continuing until no new nodes are found.
For this, general graph analysis logic may be used.
In process 403, the graph analysis unit 108 extracts only nodes that represent input / output devices in the created subgraph.
This means that when a specific device specification is output, a user-friendly device is displayed as an interface with the actual system.
However, the present invention is not limited to input / output devices, and may be executed for internal devices.
In order to perform this process, it is necessary to store the corresponding device type information in the node structure 1040 in advance.
In order to perform processing for each input / output device, loop processing is performed from processing 404 to processing 407.
Inside, in step 405, the graph analysis unit 108 converts the directed edge from the target input / output device into Japanese.
For example, if the specific device is “motor C (forward rotation)”, the label name of the target input device is “sensor A”, and the type of the directed edge coming out from it is “A contact-coil”. An explanatory note “Motor C (forward rotation) depends on sensor A” is created.
Also, if the label of the other input device is “emergency stop button B” and the edge type is “B contact-coil”, the explanation is “Motor C (forward rotation) depends on emergency stop button B”. Is created.
In processing 406, these explanatory texts are presented to the user one sentence at a time by the result output unit 109.
In the process 405, only the edge adjacent to the input / output device is taken into consideration, in order to simplify the text of the output specification.
More strictly, it is possible to link all the paths from the input / output device to the specific device along the directed edge so that all are translated into Japanese.
On the other hand, there is a method in which the processing of 405 is omitted, and only an input / output device is provided and displayed as a simple specification.
In this case, the information on the edge adjacent to the input / output device is not used, and the description is uniformly “dependent on [input / output device]”.

≪4.影響範囲図示≫
GUIにて可視化されたグラフの特定領域を選択することで、それらの範囲に変更を行った場合の、制御プログラムに与える影響範囲を図示する手順について、図5をもとに以下に述べる。
<< 4. Range of influence >>
A procedure for illustrating the range of influence on the control program when a specific region of the graph visualized by the GUI is selected and the range is changed will be described with reference to FIG.

まず、処理501にて、ユーザによってGUIに表示されたグラフから、対象となる領域(部分グラフ)が選択される。
次に、処理502にて、グラフ解析部108が、グラフ解析により、指定された領域に至る全てのパスを構成するノード、エッジを含む部分グラフを抽出する。
この処理は対象領域内にある全てのノードについて、そのノードに隣接する有向エッジを逆向きに辿って、見つかったノードとエッジを部分グラフに追加していき、新しいノードが見つからなくなるまで続けることで実行可能である。
この処理により、グラフ解析部108は、ユーザによって指定された対象領域内の要素(指定要素)に変更があった場合に当該変更の影響を受ける影響範囲を抽出することができる。
なお、この影響範囲の抽出処理は、一般的なグラフ解析ロジックを用いてもよい。
処理503にて、結果出力部109が、既に表示されている全体グラフの中で、作成した部分グラフについて強調表示等を行って、影響範囲が分かるようにする。
First, in a process 501, a target region (partial graph) is selected from a graph displayed on the GUI by the user.
Next, in process 502, the graph analysis unit 108 extracts a partial graph including nodes and edges that constitute all paths to the specified region by graph analysis.
This process continues for all nodes in the target area, tracing the directed edge adjacent to that node backwards, adding the found nodes and edges to the subgraph, and continuing until no new nodes are found. It can be executed with.
By this processing, the graph analysis unit 108 can extract the affected range affected by the change when the element (designated element) in the target area designated by the user is changed.
The extraction process of the influence range may use a general graph analysis logic.
In processing 503, the result output unit 109 highlights the created partial graph in the already displayed whole graph so that the affected range can be understood.

なお、ここでは、結果をグラフ上に図示する例のみを載せているが、制御プログラム中間コード内の処理(LD言語ではラング)を表示する方法も取ることができる。   Although only an example in which the result is illustrated on the graph is shown here, a method of displaying the processing in the control program intermediate code (Lang in LD language) can also be taken.

≪5.未使用箇所検出≫
GUIにて可視化されたグラフ上で、制御プログラム内のどの出力デバイスにも影響を与えないデバイス群(未使用デバイス群)を図示する手順について、図6をもとに以下に述べる。
≪5. Unused part detection >>
A procedure for illustrating a device group (unused device group) that does not affect any output device in the control program on the graph visualized by the GUI will be described with reference to FIG.

まず処理601から処理603にて、全ての出力デバイスについて繰り返す。
処理602にて、グラフ解析部108が、グラフ解析により、出力デバイスへ至る全てのパスを構成するノード、エッジを含む部分グラフを抽出する。
この処理は出力デバイスを表すノードについて、そのノードに隣接する有向エッジを逆向きに辿って、見つかったノードとエッジを部分グラフに追加していき、新しいノードが見つからなくなるまで続けることで実行可能である。
これは一般的なグラフ解析ロジックを用いてもよい。
また、この部分は前述した影響範囲図示と同じアルゴリズムを流用することもできる。
また出力デバイス以外にも外部システムとのインタフェースとなるデバイスが存在する可能性がある。
これらについて、ユーザが任意にデバイス群を指定する、あるいはデバイス種別を選択することができても良い。
処理604にて、グラフ解析部108は、既に表示されている全体グラフの中から、処理603にて抽出した部分グラフに含まれない、全てのノード(未使用デバイス)とエッジを抜き出す。
また未使用デバイスのみを一覧表示するため、ここで抜き出す要素をノードのみに限っても良い。
そして、処理605にて、結果出力部109が、これらの部分グラフ群を強調表示する。
First, in steps 601 to 603, the process is repeated for all output devices.
In process 602, the graph analysis unit 108 extracts a partial graph including nodes and edges constituting all paths to the output device by graph analysis.
This process can be performed for nodes representing output devices by tracing back the directed edge adjacent to that node, adding the found nodes and edges to the subgraph, and continuing until no new nodes are found. It is.
For this, general graph analysis logic may be used.
Moreover, the same algorithm as the above-mentioned influence range illustration can also be diverted to this part.
In addition to the output device, there may be a device that serves as an interface with an external system.
For these, the user may arbitrarily designate a device group or select a device type.
In process 604, the graph analysis unit 108 extracts all nodes (unused devices) and edges that are not included in the partial graph extracted in process 603 from the already displayed whole graph.
Since only unused devices are displayed in a list, elements extracted here may be limited to only nodes.
In step 605, the result output unit 109 highlights these subgraph groups.

なお、ここでは、結果をグラフ上に図示する例のみを載せているが、制御プログラム中間コード内の処理(LD言語ではラング)を表示する方法も取ることができる。   Although only an example in which the result is illustrated on the graph is shown here, a method of displaying the processing in the control program intermediate code (Lang in LD language) can also be taken.

≪6.循環定義検出≫
GUIにて可視化されたグラフ上で、制御プログラム内でソフトウェアによるチャタリング(特定のデバイスがサイクリック時間(の定数倍)ごとにONとOFFを繰り返す現象)を起こす危険性のあるデバイスの組合せを検出する手順について、図7をもとに以下に述べる。
この現象は通常、本実施の形態で開示している有向グラフ表現において、循環(エッジの向きを考慮した閉路)があり、その循環のパス上で奇数回の負論理回路が存在するときに発生する可能性がある。
ただし、タイマデバイスやカウンタデバイスなど、条件が満たされてからコイルがONとなるまでに遅延があるものは対象外とする。
≪6. Circular definition detection >>
Detects combinations of devices that may cause chattering by software (a phenomenon that a specific device repeats ON and OFF every cyclic time (a constant multiple)) in a control program on a graph visualized by GUI. The procedure for this will be described below with reference to FIG.
This phenomenon usually occurs when there is a cycle (a closed circuit considering the direction of an edge) in the directed graph expression disclosed in the present embodiment, and there are an odd number of negative logic circuits on the path of the cycle. there is a possibility.
However, timer devices, counter devices, and the like that have a delay from when the condition is satisfied until the coil is turned on are excluded.

まず、処理701にて、グラフ解析部108は、任意のビットデバイスを開始地点として対象ノードとする。
上記したように、対象ノードにはタイマやカウンタなど、状態を持つことで条件ONからコイルONまでに時間的遅延が発生するものは対象としない。
次にグラフ内のノードを探索するため、処理702および処理703から処理708にて、グラフ解析部108はグラフ内の探索を行う。
ここでの目的は、タイマやカウンタを含まず、負論理が奇数回登場する循環定義を検出するため、処理704にて負論理に相当するエッジ(処理)の数をカウントする。
この時に必要となるそのエッジが負論理であるかどうかの情報は、先に述べた「依存関係の抽出」処理205にて、エッジ構造体1050内に格納しておく。
次に、グラフ解析部108は、探索中に経由するノードについて、処理705にて、カウンタやタイマにたどり着いたかどうかチェックを行う。
カウンタやタイマを経由する場合は、循環定義として抽出しない(サイクリック時間とは異なったユーザ定義値を基準にしてデバイスのON/OFFが切り替わるため、正常な動作と考えられるため)。
しかし、実装する機能としては、ユーザへ循環定義抽出結果にカウンタやタイマを含むことを知らせた上で、条件分岐処理705を除くこともできる。
次に処理706にて、グラフ解析部108は、循環を形成するかどうかチェックを行う。
現時点までの探索経路内に訪れたノードに至った場合は循環(閉路)が存在することになるため、処理707にてその循環パスを記録する。
最後に、グラフ解析部108は、処理709にて、記録した循環パスの負論理の数が奇数のものについて、循環定義によってソフトウェアによるチャタリングが発生する危険性がある循環定義として抽出する。
そして、処理710において、結果出力部109が、該当するパスを図示する。
First, in process 701, the graph analysis unit 108 sets an arbitrary bit device as a start point as a target node.
As described above, target nodes such as timers and counters that do not have a time delay from condition ON to coil ON due to their status are not targeted.
Next, in order to search for a node in the graph, the graph analysis unit 108 searches in the graph in processing 702 and processing 703 to processing 708.
The purpose here is not to include a timer or a counter, and in order to detect a cyclic definition in which negative logic appears an odd number of times, the number of edges (processes) corresponding to negative logic is counted in process 704.
Information regarding whether or not the edge is negative logic required at this time is stored in the edge structure 1050 in the above-described “extraction of dependency” process 205.
Next, in step 705, the graph analysis unit 108 checks whether or not the node that is being searched has reached the counter or timer.
When passing through a counter or timer, it is not extracted as a cyclic definition (because it is considered a normal operation because the device is switched on / off based on a user-defined value different from the cyclic time).
However, as a function to be implemented, the conditional branch processing 705 can be excluded after notifying the user that the circulation definition extraction result includes a counter and a timer.
Next, in process 706, the graph analysis unit 108 checks whether to form a cycle.
Since the circulation (closed circuit) exists when the node visited in the search route up to the present time is reached, the circulation path is recorded in processing 707.
Finally, in the process 709, the graph analysis unit 108 extracts, as a circulation definition, there is a risk that chattering by software may occur due to the circulation definition for the recorded number of negative logics of the circulation path.
In process 710, the result output unit 109 illustrates the corresponding path.

図7は対象とする制御プログラムおよびそれを表現しているグラフが連結していることを前提としている。
制御プログラムがいくつかの独立した部分グラフから構成される場合は、それぞれ独立した部分グラフ内で、処理701によって一つの開始ノードを選択する必要がある。
なお、処理702から処理708までに記述したグラフ内の探索手順は一例であり、その他のグラフ解析アルゴリズムを用いてもよい。
FIG. 7 is based on the premise that the target control program and the graph expressing it are connected.
When the control program is composed of several independent subgraphs, it is necessary to select one start node by the process 701 in each independent subgraph.
Note that the search procedure in the graph described from processing 702 to processing 708 is an example, and other graph analysis algorithms may be used.

≪7.デバイス値モニタ≫
GUIにて可視化されたグラフ上で、ユーザが現在値モニタを行いたいデバイス群を指定し、シーケンサ機器、あるいは制御プログラムシミュレータと接続時に、それらのデバイスの現在値をモニタする手順について、図8をもとに以下に述べる。
≪7. Device value monitor >>
Figure 8 shows the procedure for specifying the device group that the user wants to monitor the current value on the graph visualized by the GUI, and monitoring the current value of those devices when connected to the sequencer device or control program simulator. Based on the following.

まず、処理801にて、GUIにて可視化されたグラフ上で、ユーザがモニタを行いたい任意のデバイス群を選択する。
ただし、制御プログラム内の全てのデバイス、あるいは画面表示された全てのデバイスを対象とする場合は、ユーザからの指定は不要である。
次に、選択されたデバイスについて、処理802から処理805までを繰り返す。
処理803では、オンラインモニタ部111が、対象デバイスそれぞれについて、シーケンサ機器または制御プログラムシミュレータから、対応するデバイスの現在値を取得してノード構造体1040へ格納する。
続いて処理804にて、結果出力部109が、グラフのノード上にテキストとして、あるいはノードの形状変更、あるいはノードの色変更等によって、ノードが表現するデバイスの現在値を表示する。
First, in process 801, an arbitrary device group that the user wants to monitor is selected on a graph visualized by the GUI.
However, when all devices in the control program or all devices displayed on the screen are targeted, designation from the user is unnecessary.
Next, processing 802 to processing 805 is repeated for the selected device.
In process 803, the online monitor unit 111 acquires the current value of the corresponding device from the sequencer device or the control program simulator for each target device and stores it in the node structure 1040.
In step 804, the result output unit 109 displays the current value of the device represented by the node as text on the node of the graph, by changing the shape of the node, changing the color of the node, or the like.

なお、モニタを定期的に行う場合は、例えば1秒毎に処理802から処理805までの処理を繰り返すことで実現が可能である。
また、シーケンサ機器や制御プログラムシミュレータから、デバイスの現在値だけでなく、制御プログラム内のどの処理が実行されたのかが取得可能であれば、オンラインモニタ部111が、エッジ構造体1050に処理実行中フラグを設定/解除することによりグラフ上に表示することもできる。
In addition, when performing monitoring regularly, it is realizable by repeating the process from the process 802 to the process 805 for every second, for example.
Further, if it is possible to obtain from the sequencer device or the control program simulator which process in the control program is executed as well as the current value of the device, the online monitor unit 111 is executing processing on the edge structure 1050. It can also be displayed on the graph by setting / releasing the flag.

≪8.障害要因の図示≫
実機システムあるいは制御プログラムシミュレータ上にて、障害が発生した場合、その要因となる制御プログラム上のバグを特定するため、GUIにて可視化されたグラフ上で、ユーザにより障害が顕在化しているデバイス、また完全に正常に動作しているデバイスを特定することで、障害の要因となるデバイスあるいは処理を図示する手順について、図9をもとに以下に述べる。
≪8. Illustration of failure factors >>
When a failure occurs on the actual system or the control program simulator, a device on which the failure is manifested by the user on the graph visualized with the GUI in order to identify a bug in the control program that causes the failure, A procedure for illustrating a device or a process that causes a failure by specifying a device that operates completely normally will be described below with reference to FIG.

まず、処理901にて、グラフ解析部108が、初期処理として要因領域を空に設定する。
要因領域は、障害の要因の候補としてグラフ上に示す要素を格納する領域である。
以降処理902から処理909までは、ユーザが障害要因を特定するまで繰返し実行する。
処理903にて、ユーザは障害が発生した時に、その現象が直接現れたデバイス、あるいは確実に異常な振舞いをしているデバイスを指定し、それが「異常」デバイスであることを入力する。
グラフ解析部108は、処理904にて、全体グラフから、ユーザが指定したデバイスのノード(異常発生デバイスノード)に至るパス全てをマージした部分グラフを抽出する。
つまり、グラフ解析部108は、異常発生デバイスノードと接続している有向エッジを有閉路有向グラフから抽出するとともに、抽出した有向エッジと接続しているノード(デバイス)を抽出する。
この処理は前述した502の処理と同じである。
次に、処理905にて、グラフ解析部108は、抽出したデバイスの正常/異常をチェックする。
デバイスごとの正常/異常は、ユーザが指定する。
ユーザから「正常」と指定されたデバイスについては、処理906にて、現時点の要因領域から、抽出した部分グラフを削除する(「正常」と指定されたデバイスのノードと当該ノードに接続しているエッジを要因領域に含めない)。
これは障害要因が含まれる可能性がある要因領域のうち、全ての条件において完全に正常であると判断されたデバイスに影響を与える領域については、要因領域から除くことができるためである。
反対に、ユーザから「異常」と指定されたデバイスについては、処理907にて、現時点の要因領域に抽出した部分グラフを追加する(「異常」と指定されたデバイスのノードと当該ノードに接続しているエッジを要因領域に含める)。
これは障害要因が含まれる可能性がある要因領域が拡大するためである。
ここでは障害要因が1つであるとは限らないため、907の処理において抽出した部分グラフとその時点の要因領域のANDを取ることはしていない。
次に、処理908にて、結果出力部109が、その時点での要因領域をグラフ上に強調表示する。
これにより障害の要因と考えられるデバイスおよび処理を絞り込むことが可能となる。
First, in process 901, the graph analysis unit 108 sets the factor area to be empty as an initial process.
The factor area is an area for storing elements shown on the graph as candidate fault factors.
Thereafter, processing 902 to processing 909 are repeatedly executed until the user specifies the failure factor.
In the process 903, when a failure occurs, the user designates a device in which the phenomenon directly appears or a device that definitely behaves abnormally, and inputs that it is an “abnormal” device.
In step 904, the graph analysis unit 108 extracts a partial graph obtained by merging all paths from the entire graph to the device node (abnormality device node) designated by the user.
That is, the graph analysis unit 108 extracts the directed edge connected to the abnormality-occurring device node from the directed directed graph of the closed circuit, and extracts the node (device) connected to the extracted directed edge.
This process is the same as the process 502 described above.
Next, in process 905, the graph analysis unit 108 checks normality / abnormality of the extracted device.
Normal / abnormal for each device is specified by the user.
For the device designated as “normal” by the user, the extracted subgraph is deleted from the current factor area in processing 906 (the node of the device designated as “normal” is connected to the node) Do not include edges in the factor area).
This is because, among the factor areas that may include a failure factor, an area that affects a device that is determined to be completely normal under all conditions can be excluded from the factor area.
On the other hand, for the device designated as “abnormal” by the user, in step 907, the extracted subgraph is added to the current factor area (the node of the device designated as “abnormal” is connected to the node). Included in the factor area).
This is because a factor area in which a failure factor may be included is expanded.
Here, since the failure factor is not necessarily one, the AND of the partial graph extracted in the processing of 907 and the factor area at that time is not taken.
Next, in process 908, the result output unit 109 highlights the factor area at that time on the graph.
This makes it possible to narrow down the devices and processes that are considered to be the cause of the failure.

また、処理907にて部分グラフとその時点の要因領域のAND領域に相当する部分について、色変更や形状変更などにより要因領域全体と区別して表示することも可能である。
これにより、より要因が存在する可能性が高い領域を絞り込むことが可能である。
In step 907, the portion corresponding to the AND area of the partial graph and the factor area at that time can be displayed separately from the entire factor area by color change or shape change.
Thereby, it is possible to narrow down an area where there is a high possibility that a factor exists.

実施の形態2.
≪グラフ表示の例≫
ここでは、LD言語で記述されたFAシステム用の制御プログラムがどのように有閉路有向グラフへ変換され、それが表示されるのかについて、具体例をもって説明する。
Embodiment 2. FIG.
≪Example of graph display≫
Here, how the control program for the FA system written in the LD language is converted into a directed circle directed graph and displayed will be described with a specific example.

図10は、FAシステム用の制御プログラムの例であり、LD言語により記述されている。
この制御プログラムは次のような仕様で動作する。
なお、図18は、図10の制御プログラムをIL言語で記述したものである。
a)入力(開始ボタン)を押下すると出力(ランプ)が点灯する。
b)出力(ランプ)は3秒間点灯する。
c)3回実行すると、入力(開始ボタン)には反応しなくなる。
d)入力(リセットボタン)を押下するとデバイス値をリセットして最初の状態へ戻る。
e)入力(開始ボタン)は押し続ける必要はなく、内部デバイスは自己保持する。
FIG. 10 shows an example of a control program for the FA system, which is written in the LD language.
This control program operates with the following specifications.
FIG. 18 describes the control program of FIG. 10 in the IL language.
a) When an input (start button) is pressed, an output (lamp) is turned on.
b) The output (lamp) is lit for 3 seconds.
c) When executed three times, the input (start button) does not respond.
d) Pressing the input (reset button) resets the device value and returns to the initial state.
e) The input (start button) does not need to be held down and the internal device will hold itself.

以下にLDプログラムを示した図10について説明する。
1000は上記した1)から5)の仕様を満たす制御プログラムの例である。
FIG. 10 showing the LD program will be described below.
1000 is an example of a control program that satisfies the specifications 1) to 5).

まず、最初のラング(回路ブロック)にて内部デバイスのコイル1004の定義を行っている。
内部デバイス1004は、出力(ランプ)を直接定義するための中間的なデバイスである。
上記仕様のa)にあるように、内部デバイス1004は、入力(開始ボタン)の押下によってONするため、入力(開始ボタン)のA接点1001が条件となる。
次に、仕様c)にあるように、ボタン押下を3回行って3回実行が完了したとき、またd)にあるように入力(リセットボタン)押下されたときは、内部デバイスのコイル1004がOFFとなることを実現するため、カウンタ1002のB接点1002と、入力(リセットボタン)のB接点1003をそれぞれAND条件とする。
e)にあるように、内部デバイスは自己保持するため、入力(開始ボタン)とOR条件で内部デバイスのA接点1005を付け、ただしこの自己保持はb)の仕様から3秒間のみ継続するため、タイマのB接点1006をAND条件として付ける。
次に、タイマのコイル1008と出力(ランプ)コイル1009の定義を行っている。
これらのコイルは何れも内部デバイスから直接定義されるため、内部デバイスのA接点1007のみを条件とする。
タイマのコイル1008は、内部デバイス1007がONになった状態で3秒間経過するとONする。つまり3秒経過した時点でタイマのB接点1006がOFFとなる。
次にカウンタのコイル1012の定義を行う。
仕様c)より、カウンタは入力(開始ボタン)を3回押下し、処理が完了したときにカウントアップする必要がある。このため、タイマのタイムアップタイミング(つまりタイマのA接点1011)をカウンタの条件としている。カウンタ1012は、タイマのA接点1011が3回OFFからONになったタイミングでONする。
最後のラングでは入力(リセットボタン)1013を実現している。
仕様d)を実現するため、入力(リセットボタン)のA接点1013がONしたタイミングで、カウントアップしているカウンタを0にリセットするため、RESET命令1014を使用している。
First, the coil 1004 of the internal device is defined in the first rung (circuit block).
The internal device 1004 is an intermediate device for directly defining an output (lamp).
As described in a) of the above specification, the internal device 1004 is turned on by pressing the input (start button), and therefore, the input (start button) A contact 1001 is a condition.
Next, when the button is pressed three times and the execution is completed three times as in specification c), or when the input (reset button) is pressed as in d), the coil 1004 of the internal device is In order to realize the OFF state, the B contact 1002 of the counter 1002 and the B contact 1003 of the input (reset button) are set as AND conditions.
As shown in e), since the internal device is self-holding, the A contact 1005 of the internal device is attached with the input (start button) and OR condition, but this self-holding continues only for 3 seconds from the specification of b). Timer B contact 1006 is added as an AND condition.
Next, the timer coil 1008 and the output (lamp) coil 1009 are defined.
Since these coils are all defined directly from the internal device, only the A contact 1007 of the internal device is a condition.
The coil 1008 of the timer is turned on when 3 seconds have passed with the internal device 1007 turned on. That is, the timer B contact 1006 is turned OFF when 3 seconds have elapsed.
Next, the counter coil 1012 is defined.
According to the specification c), the counter needs to count up when the input (start button) is pressed three times and the processing is completed. Therefore, the timer time-up timing (that is, timer A contact 1011) is used as a counter condition. The counter 1012 is turned on at the timing when the A contact 1011 of the timer is turned on from three times.
In the last rung, an input (reset button) 1013 is realized.
In order to realize the specification d), the RESET instruction 1014 is used to reset the counter that is counting up to 0 at the timing when the A contact 1013 of the input (reset button) is turned ON.

以上のような制御プログラム1000がシステム内の制御プログラム中間コード1010として格納されている場合の、グラフ表示が行われる流れについて、グラフ表示のフロー200の中の処理204から具体的に説明する。   The flow of graph display when the control program 1000 as described above is stored as the control program intermediate code 1010 in the system will be specifically described from the processing 204 in the graph display flow 200.

まず、デバイス抽出部102が、デバイスの抽出処理204を行う。
これは制御プログラムをスキャンして、使用しているデバイスを抽出することで実現する。
制御プログラム1000の例では、ノード構造体1040として、デバイス一覧1200(図12)が抽出される。
ノード構造体例1200のデバイス(ラベル)名欄には制御プログラムで通常そのデバイスを特定する名称が登録されるが、ここにはデバイスIDやラベルIDや変数名など、デバイスを一意に特定できるものであればなにを登録しても良い。
また、デバイス種別欄には対象とするシーケンサ機器や制御プログラムで使用できるデバイス種別が格納される。
First, the device extraction unit 102 performs a device extraction process 204.
This is achieved by scanning the control program and extracting the devices being used.
In the example of the control program 1000, the device list 1200 (FIG. 12) is extracted as the node structure 1040.
In the device (label) name column of the node structure example 1200, a name that normally identifies the device is registered in the control program. Here, the device ID, label ID, variable name, and the like can be uniquely identified. You can register anything if you want.
The device type field stores device types that can be used by the target sequencer device and control program.

次に、依存関係抽出部103が、依存関係の抽出処理205を行う。
これは制御プログラムをスキャンして、各ラングの「条件⇒コイル」の関係を抽出することで実現する。
制御プログラム1000の例では、エッジ構造体1050として、依存関係一覧1300(図13)が抽出される。
エッジ構造体例1300のエッジタイプには、そのエッジが表している制御プログラムの処理のタイプが登録される。
例えば制御プログラム1000の最後のラングに注目する。
このラングでは入力(リセットボタン)のA接点1013と、カウンタのRESET1014との間に依存関係が存在している。
この部分をIL言語で表現すると以下のようになる。
なお制御プログラム1000をIL言語で表現した例を図18に載せる。
前述のとおり、一般的にLD言語のプログラム要素とIL言語のプログラム要素は一対一に対応させることができる。
LOAD 入力(リセットボタン) ――― 1013
RESET カウンタ ―――――――――― 1014
エッジ構造体1300の例では、このIL言語の命令を組み合わせてエッジタイプとしている。
上記の例はエッジ構造体1300の番号9に表されている「LOAD−RESET」がエッジタイプとなる。
このエッジタイプにより、2デバイス間の依存関係の概略を表現することが可能となる。
次に論理の欄は、エッジによって接続される2デバイス間の論理(正論理/負論理)を登録する。
ここでいう論理とは、有向エッジによって表現される処理が、デバイスのON/OFFを逆転させるかどうかを表している。このためデバイス種別がビットでない場合(ワードである場合)は無効となる。
Next, the dependency relationship extraction unit 103 performs a dependency relationship extraction process 205.
This is realized by scanning the control program and extracting the relationship of “conditions → coils” for each rung.
In the example of the control program 1000, the dependency list 1300 (FIG. 13) is extracted as the edge structure 1050.
In the edge type of the edge structure example 1300, the processing type of the control program represented by the edge is registered.
For example, pay attention to the last rung of the control program 1000.
In this rung, there is a dependency between the input (reset button) A contact 1013 and the counter RESET 1014.
This part is expressed in the IL language as follows.
An example in which the control program 1000 is expressed in the IL language is shown in FIG.
As described above, generally, the LD language program element and the IL language program element can be associated one-to-one.
LOAD input (reset button) ――― 1013
RESET counter ―――――――――― 1014
In the example of the edge structure 1300, the IL language instructions are combined to form an edge type.
In the above example, “LOAD-RESET” represented by number 9 of the edge structure 1300 is the edge type.
With this edge type, it is possible to express an outline of the dependency between two devices.
Next, the logic column registers the logic (positive logic / negative logic) between the two devices connected by the edge.
The logic here indicates whether or not the processing expressed by the directed edge reverses ON / OFF of the device. For this reason, it is invalid when the device type is not a bit (when it is a word).

次に、依存関係抽出部103が、接続情報の構築処理206を行う。
これは処理204と処理205で作成したノード構造体1200とエッジ構造体1300の間をリンク付けする処理である。
制御プログラム1000の例では、接続情報1400(図14)が構築される。
接続情報1400のエッジ欄は接続関係を表現しているエッジ構造体1300内のエッジの番号を示している。
同様に元ノード欄と先ノード欄は、ノード構造体1200内のノードの番号を示している。
接続情報で表現されているエッジは必ず有向グラフであるため、元ノード欄と先ノード欄に分けて設定される。
なお、通常エッジ構造体1300の番号欄と接続情報1400のエッジ欄は一対一に対応するため、エッジ構造体1300と接続情報1400は同一の表として実現してもよい。
Next, the dependency relationship extraction unit 103 performs connection information construction processing 206.
This is a process of linking the node structure 1200 and the edge structure 1300 created in the process 204 and the process 205.
In the example of the control program 1000, connection information 1400 (FIG. 14) is constructed.
The edge column of the connection information 1400 indicates the edge number in the edge structure 1300 expressing the connection relationship.
Similarly, the source node column and the destination node column indicate the node numbers in the node structure 1200.
Since the edge represented by the connection information is always a directed graph, it is set separately in the source node column and the destination node column.
Since the number field of the normal edge structure 1300 and the edge field of the connection information 1400 correspond one-to-one, the edge structure 1300 and the connection information 1400 may be realized as the same table.

最後に、グラフ生成部112が有閉路有向グラフの生成・描画処理207を行う。
上述した処理205までの処理によってグラフ描画のための情報であるノード構造体1200、エッジ構造体1300、接続情報1400は全て作成されている。
このため、グラフ生成部112は、接続情報1400に示されている対応付けに従って、ノード構造体1200のデバイスとエッジ構造体1300の依存関係を組み合わせて、有閉路有向グラフの生成・描画を行う。
Finally, the graph generation unit 112 performs the generation / drawing processing 207 of the closed-circuit directed graph.
The node structure 1200, the edge structure 1300, and the connection information 1400, which are information for drawing a graph, are all created by the processing up to the processing 205 described above.
For this reason, the graph generation unit 112 generates and draws a directed circuit for a closed circle by combining the dependency relationship between the device of the node structure 1200 and the edge structure 1300 in accordance with the association indicated in the connection information 1400.

図11は、制御プログラム1000を、本実施の形態に係るグラフ表示方法によって表示した例を模式的に表したものである。
入力デバイスと出力デバイスは矩形、内部のデバイスは円で示している。
また、正論理の処理は実線、負論理の処理は破線で示している。
また、図11のノード内の(1)〜(6)は、ノード構造体1200(図12)に示されている番号を表し、エッジ近傍の(1)〜(9)は、エッジ構造体1300(図13)に示されている番号を表している。
FIG. 11 schematically shows an example in which the control program 1000 is displayed by the graph display method according to the present embodiment.
Input devices and output devices are indicated by rectangles, and internal devices are indicated by circles.
Further, positive logic processing is indicated by a solid line, and negative logic processing is indicated by a broken line.
Also, (1) to (6) in the nodes of FIG. 11 represent the numbers shown in the node structure 1200 (FIG. 12), and (1) to (9) in the vicinity of the edges are the edge structures 1300. The numbers shown in FIG. 13 are shown.

ここでは、グラフを構成する要素であるノードとエッジを描画する手順について説明する。
例えばノード(デバイス)の種別毎に画面上で分類をして表示を行いたければ、ノード構造体1200内のデバイス種別の同じものを集めて画面上へノードを表示する。
ノード構造体1200のデバイス種別から、入力のデバイスを取得すると、「ビット入力」であるものは入力(開始ボタン)1101と入力(リセットボタン)1102となる。
同様にノード構造体1200のデバイス種別から、内部のデバイスを取得すると、「タイマ」「カウンタ」「ビット内部」であるものは、内部デバイス1103とタイマ1104とカウンタ1105となる。
次に、ノード構造体1200のデバイス種別から、出力のデバイスを取得すると、「ビット出力」であるものは、出力(ランプ)1106となる。
次に、接続情報1400の表の元ノード欄と先ノード欄をチェックして、エッジ番号およびエッジ構造体1300のエッジタイプや論理を取得する。
これにより、グラフとして表示されるノード間がどのようなエッジで接続されているのかを知り、そのエッジタイプや論理によってエッジの線種などを変更する。
前述のように図11の例では、エッジ構造体1300の論理欄から、その処理(エッジ)が正論理の場合は実線、負論理の場合は破線で示している。
接続情報1400の一行目を見ると、元ノード番号が1、先ノード番号が2でエッジ番号が1であるため、入力(開始ボタン)1101と内部デバイス1103の間にエッジが存在し、そのエッジはエッジタイプが「LOAD−OUT」であり、正論理であることが分かる。
したがって、画面にはグラフとして入力(開始ボタン)1101と内部デバイス1103の間に、有向エッジとして実線のエッジ1110を描画する。
さらに、例えば接続情報1400の2行目にあるように、自分自身のノードへのエッジの場合は、ループの形でエッジ1113を表示する。
このように、エッジ構造体1300および接続情報1400内の、エッジ番号1は実線エッジ1110、番号2は実線ループエッジ1113、番号3は破線エッジ1116、番号4は破線エッジ1118、番号5は破線エッジ1111、番号6は実線エッジ1115、番号7は実線エッジ1114、番号8は実線エッジ1117、番号9は破線エッジ1112、にそれぞれ対応する。
このようにして、制御プログラム1000は、図11に示すようなグラフ表示が可能となる。
Here, a procedure for drawing nodes and edges, which are elements constituting a graph, will be described.
For example, if it is desired to classify and display on the screen for each type of node (device), the same device types in the node structure 1200 are collected and displayed on the screen.
When an input device is acquired from the device type of the node structure 1200, the “bit input” becomes an input (start button) 1101 and an input (reset button) 1102.
Similarly, when an internal device is acquired from the device type of the node structure 1200, those that are “timer”, “counter”, and “bit internal” are the internal device 1103, the timer 1104, and the counter 1105.
Next, when an output device is acquired from the device type of the node structure 1200, what is “bit output” becomes an output (lamp) 1106.
Next, the source node column and the destination node column in the connection information 1400 table are checked, and the edge number and the edge type and logic of the edge structure 1300 are acquired.
As a result, the edge connected between the nodes displayed as a graph is known, and the line type of the edge is changed according to the edge type and logic.
As described above, in the example of FIG. 11, from the logical column of the edge structure 1300, the process (edge) is indicated by a solid line when the process is positive logic and by a broken line when the process is negative logic.
Looking at the first line of the connection information 1400, since the source node number is 1, the destination node number is 2 and the edge number is 1, an edge exists between the input (start button) 1101 and the internal device 1103, and the edge It can be seen that the edge type is “LOAD-OUT” and is positive logic.
Accordingly, a solid line edge 1110 is drawn as a directed edge between the input (start button) 1101 as a graph and the internal device 1103 on the screen.
Further, for example, as shown in the second line of the connection information 1400, the edge 1113 is displayed in the form of a loop in the case of an edge to its own node.
Thus, in the edge structure 1300 and the connection information 1400, the edge number 1 is a solid line edge 1110, the number 2 is a solid line loop edge 1113, the number 3 is a broken line edge 1116, the number 4 is a broken line edge 1118, and the number 5 is a broken line edge. Reference numeral 1111, number 6 corresponds to a solid line edge 1115, number 7 corresponds to a solid line edge 1114, number 8 corresponds to a solid line edge 1117, and number 9 corresponds to a broken line edge 1112.
In this way, the control program 1000 can display a graph as shown in FIG.

制御プログラム1000から自動的に図11のグラフ表示を行うため、図11のグラフのノードの配置アルゴリズムについては、さまざまな方法をとることができる。
上述したように、ノードの同一な種別を同一領域にまとめて配置する方法や、ノードとして表されたデバイスの番号順や名称順に並べる方法、さらにノードの次数(ノードから出入りするエッジの数)の多い順などが考えられる。
また、エッジによって接続された2つのノードをより近くに表示させる方法などもある。
これらのノードおよびエッジの配置方法については一般的な複雑グラフ表示アルゴリズムを用いることもできる。
また、グラフは2次元平面上だけでなく、3次元空間上に表示させることもできる。
さらに一度表示されたノードおよびエッジはその位置をユーザが自由に変更させることができる。
この場合、一般的なグラフ描画ツールに搭載される機能と同じように、ノードやエッジをマウスによるドラッグ&ドロップなどの方法で、ユーザの好みの配置へ変更することができる。
Since the graph of FIG. 11 is automatically displayed from the control program 1000, various methods can be used for the node placement algorithm of the graph of FIG.
As described above, there are a method of arranging the same type of nodes in the same area, a method of arranging the devices in order of numbers and names represented as nodes, and the order of nodes (number of edges entering and exiting from the nodes). Many orders are considered.
There is also a method of displaying two nodes connected by an edge closer to each other.
A general complex graph display algorithm can be used for the arrangement method of these nodes and edges.
In addition, the graph can be displayed not only on a two-dimensional plane but also on a three-dimensional space.
Further, the node and edge once displayed can be freely changed by the user.
In this case, the nodes and edges can be changed to the user's preferred arrangement by a method such as dragging and dropping with the mouse, in the same way as a function installed in a general graph drawing tool.

実施の形態3.
≪影響範囲図示の例≫
図15は、ある制御プログラムをグラフ表示した例である。
この制御プログラムは入力ビットデバイスが1501、1502の2つ、内部ビットデバイスが1503、1504、1505の3つ、出力ビットデバイスが1506、1507、1508の3つから成っている。
実線のエッジは、エッジが表す処理が正論理であることを示し、破線のエッジはエッジが表す処理が負論理であることを示している。
Embodiment 3 FIG.
≪Example of influence range illustration≫
FIG. 15 is an example in which a certain control program is displayed in a graph.
This control program consists of two input bit devices 1501 and 1502, three internal bit devices 1503, 1504 and 1505, and three output bit devices 1506, 1507 and 1508.
The solid line edge indicates that the process represented by the edge is positive logic, and the broken line edge indicates that the process represented by the edge is negative logic.

このグラフを使用して、影響範囲図示の例について以下に説明する。   An example of the influence range illustration will be described below using this graph.

影響範囲図示のフローを示した図5を参照すると、まずユーザによって対象領域の選択処理501が行われる。
ここでの例では、ユーザによって出力1のノード1506が選択されたとする。
次の502の処理にて、グラフ解析部108が、対象領域に至る全てのノードを列挙する。
図15の例の場合、まず対象領域であるノード1506に至る隣り合った有向エッジは、エッジ1515のみであるため、まずパスとしてこれを加える。
次に、エッジ1515の元ノード1503に注目する。
このノードへ至る隣り合った有向エッジは、エッジ1514とエッジ1510であるため、パスとしてこれを加える。
このときエッジ1514はノード1503へ戻るループであるため、こちらのパスはここで探索を終える。
もう片方のエッジ1510の元ノード1501に注目する。
このノード1501については、このノードへ至る隣り合った有向エッジが存在しないため、ここで探索を終える。
この結果、503の処理において強調表示される部分は、図16に示す領域となる。
つまり出力1のノード1606を対象とした場合、このノードに影響を与える範囲としては、図16内の黒塗り及び太線で示した部分、つまり処理1615と、内部1デバイス1603と、処理1614と、処理1610と、入力デバイス1601となる。
Referring to FIG. 5 showing the flow of the influence range, the target area selection process 501 is first performed by the user.
In this example, it is assumed that the node 1506 of output 1 is selected by the user.
In the next process 502, the graph analysis unit 108 lists all nodes that reach the target area.
In the case of the example of FIG. 15, the adjacent directed edge that reaches the node 1506 that is the target area is only the edge 1515, and therefore this is first added as a path.
Next, attention is paid to the original node 1503 of the edge 1515.
Adjacent directed edges leading to this node are edge 1514 and edge 1510, so they are added as paths.
At this time, since the edge 1514 is a loop returning to the node 1503, the search for this path ends here.
Note the original node 1501 of the other edge 1510.
For this node 1501, since there is no adjacent directed edge leading to this node, the search ends here.
As a result, the highlighted portion in the processing of 503 is an area shown in FIG.
In other words, when the node 1606 of the output 1 is targeted, the range influencing this node includes the parts indicated by black and thick lines in FIG. 16, that is, the processing 1615, the internal 1 device 1603, the processing 1614, Processing 1610 and input device 1601 are obtained.

このように、影響範囲図示のフローの502の処理は、グラフについて、有向エッジを逆向きに辿る探索を行うことで全てのパスを抽出することができる。
この際の探索方法は、一般的なグラフ探索アルゴリズムを用いることができる。
探索方法は深さ優先探索でも幅優先探索でもかまわない。
ただし、グラフが有閉路グラフであるため、既に訪れたノードを記憶しておくこと、また有向グラフであるため、エッジの向きを逆向きに探索するという制約がある。
In this way, in the process 502 of the flow shown in the influence range, all paths can be extracted by performing a search for tracing the directed edge in the reverse direction.
A general graph search algorithm can be used as the search method at this time.
The search method may be depth-first search or breadth-first search.
However, since the graph is a closed graph, there is a restriction that a node that has already been visited is stored, and because the graph is a directed graph, the direction of the edge is searched in the reverse direction.

≪循環定義検出の例≫
同様に図15のグラフを使用して、循環定義検出の例について以下に説明する。
≪Example of circulation definition detection≫
Similarly, an example of cyclic definition detection will be described below using the graph of FIG.

循環定義検出のフローを示した図7を参照すると、まず処理701にて、任意のビットデバイスを対象ノードとする。
ここでは例として、入力1のノード1501を選択する。
次に、処理702にて、グラフ解析部108が、対象ノードから出ているエッジを選択する。
図15の例では、エッジ1510とエッジ1511が対象となる。
ここから処理703にてグラフ内探索を開始する。
ループ内では処理704によりエッジの論理をチェックする。
エッジ1510とエッジ1511は両方とも正論理であるため、カウントアップは行わない。
そして、処理705により、グラフ解析部108は、次に至るノードがカウンタやタイマであるかどうかを判断する。
エッジ1510によって至るノードである内部1ノード1503と、エッジ1511によって至るノードである内部2ノード1504は、両方ともカウンタやタイマではないため、そのまま処理706の処理に移る。
次の処理706において、この時点で「既に経由したノード」として記憶されているのは、最初に選択した入力1ノードのみであるため、ここで至った内部1ノード1503と内部2ノード1504と異なり、条件706には合致しない。
このため、処理704へ戻る。
次に、内部1ノード1503に注目し、このノードから出ているエッジ1514とエッジ1515について判断する。
エッジ1514は正論理であるため、処理705にてカウントアップは行わないが、エッジ1514はループエッジであるため、条件706に合致する。
そして、処理707にて、循環定義としてそのパスと負論理のカウント値の組「内部1ノード1503、エッジ1514、カウント0」が保存される。
内部1ノード1503から出ているエッジ1515の方は、そのまま出力1ノード1506へ至り、ノード1506から出ているエッジは存在しないため、ここでこの枝の探索は終了する。
次に、内部2ノード1504を対象として、同様にグラフ探索を続ける。
すると「内部2ノード1504、エッジ1517、内部3ノード1505、エッジ1518、出力3ノード1508、エッジ1519、カウント1」と、閉路が存在することが分かる。
なおかつこの閉路を構成する3つのエッジのうち、エッジ1519のみが負論理の処理を表している。
この結果、処理709において、この閉路は循環定義パスのうち負論理が奇数のものに該当する。
なお、先に抽出した「内部1ノード1503、エッジ1514、カウント0」はカウントが偶数であるため、対象からは外れる。
したがって、処理710にて、図17に示すように循環定義「内部2ノード1704、エッジ1717、内部3ノード1705、エッジ1718、出力3ノード1708、エッジ1719、カウント1」が抽出できる。
よって、この図15または図17で表される制御プログラムにおいて、3つのデバイス、内部1、内部2および出力3は、ソフトウェアによるチャタリングを起こす危険性があるということが分かる。
Referring to FIG. 7 showing the flow of circular definition detection, first, in process 701, an arbitrary bit device is set as a target node.
Here, as an example, the node 1501 of input 1 is selected.
Next, in process 702, the graph analysis unit 108 selects an edge that has come out of the target node.
In the example of FIG. 15, the edge 1510 and the edge 1511 are targeted.
From here, the search in the graph is started in processing 703.
In the loop, the logic of the edge is checked by processing 704.
Since both the edge 1510 and the edge 1511 are positive logic, the count-up is not performed.
In step 705, the graph analysis unit 108 determines whether the next node is a counter or a timer.
Since the internal 1 node 1503 that is the node reached by the edge 1510 and the internal 2 node 1504 that is the node reached by the edge 1511 are not counters or timers, the processing directly proceeds to processing 706.
In the next process 706, only the first input node selected first is stored as “the node that has already passed” at this time, so the internal 1 node 1503 and the internal 2 node 1504 reached here are different. The condition 706 is not met.
Therefore, the process returns to the process 704.
Next, paying attention to the internal 1 node 1503, the edge 1514 and the edge 1515 coming out from this node are determined.
Since the edge 1514 is positive logic, the count-up is not performed in the process 705, but the edge 1514 is a loop edge, and therefore satisfies the condition 706.
In step 707, the set of the path and the negative logic count value “internal 1 node 1503, edge 1514, count 0” is saved as the cyclic definition.
The edge 1515 exiting from the internal 1 node 1503 reaches the output 1 node 1506 as it is, and there is no edge exiting from the node 1506, so the search for this branch ends here.
Next, the graph search is similarly continued for the internal two nodes 1504.
Then, it can be seen that there is a closed circuit such as “internal 2 node 1504, edge 1517, internal 3 node 1505, edge 1518, output 3 node 1508, edge 1519, count 1”.
Of the three edges constituting this closed circuit, only the edge 1519 represents a negative logic process.
As a result, in the process 709, this cycle corresponds to an odd number of negative logic among the circulation definition paths.
The previously extracted “internal 1 node 1503, edge 1514, count 0” is excluded from the target because the count is an even number.
Therefore, in the process 710, as shown in FIG. 17, the cyclic definition “internal 2 node 1704, edge 1717, internal 3 node 1705, edge 1718, output 3 node 1708, edge 1719, count 1” can be extracted.
Therefore, it can be seen that in the control program shown in FIG. 15 or FIG. 17, the three devices, internal 1, internal 2 and output 3, have a risk of chattering by software.

≪実施の形態における効果≫
実施の形態1〜3で開示する方法によれば、制御プログラムで制御される変数(デバイス)を抽出してノードとし、デバイス間の相互作用を依存関係として抽出してエッジとすることで、制御プログラムを有閉路有向グラフとして制御プログラム内で使用されているデバイス間の関係を、GUIにて可視的に表示することが可能となる。
グラフ表示内の特定のノード、つまりデバイスに注目した場合には、制御プログラムによって、そのデバイスによって引き起こされる全ての操作が、そのノードから出ているエッジとして表現されており、またそのデバイスへ影響を与える全ての操作が、そのノードへ入っているエッジとして表現されることになる。
このため、制御プログラムのグラフ表示を確認させることで、LD言語やIL言語の熟練者でない作業者に対しても、デバイスを中心とした制御プログラムの理解支援が可能となる。
また、制御プログラムを有閉路有向グラフとして表示し、可視化された表示の一部分を指定することで、指定するデバイス群に対して変更を行った場合の影響範囲について図示することが可能となる。
この結果、例えば制御プログラムが動作するFA・PAシステムにおける障害発生時に、LD言語やIL言語のみを用いて障害の原因究明を行うよりも短時間で、その要因発見を支援することができる。
また、制御プログラムを有閉路有向グラフとしてデータ構造に保持することにより、ソフトウェアによるチャタリングなどのプログラム上の潜在バグについて確認することが可能となるため、制御プログラムの設計時に、シミュレータや実際のFA・PAシステムと接続して判明するような潜在バグや不安定な動作の危険性を、プログラムの静的チェックで知ることが可能となる。
この結果、制御プログラムの設計フェーズにおける手戻り工数の削減を助けることが可能となる。
<< Effects of Embodiment >>
According to the method disclosed in the first to third embodiments, a variable (device) controlled by a control program is extracted as a node, and an interaction between devices is extracted as a dependency to be an edge. It is possible to visually display the relationship between the devices used in the control program as a directed cycle graph with a GUI.
If you focus on a particular node, or device, in the graph display, the control program represents all operations caused by that device as edges coming out of that node and has an effect on that device. Every operation you give will be represented as an edge entering that node.
Therefore, by confirming the graph display of the control program, it is possible to support understanding of the control program centered on the device even for an operator who is not skilled in the LD language or the IL language.
In addition, by displaying the control program as a directed circuit with closed circuit and designating a part of the visualized display, it is possible to illustrate the range of influence when the designated device group is changed.
As a result, for example, when a failure occurs in the FA / PA system in which the control program operates, the cause discovery can be supported in a shorter time than when the cause of the failure is investigated using only the LD language or the IL language.
In addition, by holding the control program in a data structure as a directed graph with cycles, it is possible to check for potential bugs in the program such as chattering by software. Therefore, when designing a control program, a simulator or actual FA / PA It is possible to know the potential bugs that can be found by connecting to the system and the danger of unstable operation by static checking of the program.
As a result, it is possible to help reduce the number of reworking steps in the control program design phase.

以上の実施の形態1〜3では、
制御プログラムで制御される変数(デバイス)を抽出してノードとし、デバイス間の相互作用を依存関係として抽出してエッジとすることで、制御プログラムを有閉路有向グラフとしてデータ構造に保持することで、制御プログラム設計時に以下の支援を行うシステムを説明した。
1)制御プログラム内で使用されているデバイス間の関係を、GUIにて可視的に表示する
2)可視化された表示の部分を指定することで、対応する元の制御プログラムの部分を表示する
3)特定のデバイスについて、他デバイスとの関係を表す仕様を文章で表示する
4)指定するデバイス群に対して変更を行った場合の影響範囲について図示する
5)制御プログラム内に登場する、未使用デバイスについて指摘する
6)ソフトウェアによるチャタリングなどのプログラム上の潜在バグについて指摘する
7)複数箇所で登場する同一構造を可視化することで、ソフトウェア部品の再利用を支援する
8)デバイス群の疎結合部分を見つけ出すことで、制御プログラムの分割について支援する
9)有閉路有向グラフを解析し、制御プログラムのデバイス間の結合度合いの指標を示す。
In the above first to third embodiments,
By extracting the variable (device) controlled by the control program as a node, extracting the interaction between devices as a dependency and making it an edge, by holding the control program in a data structure as a closed-circuit directed graph, A system that supports the following when designing a control program was explained.
1) The relationship between devices used in the control program is visually displayed on the GUI. 2) By specifying the visualized display part, the corresponding original control program part is displayed. ) For a specific device, display the specification showing the relationship with other devices in text 4) Illustrate the range of influence when the specified device group is changed 5) Unused in the control program Point out about devices 6) Point out potential bugs in programs such as chattering by software 7) Support the reuse of software parts by visualizing the same structure that appears in multiple places 8) Loosely coupled parts of devices 9) Supporting the division of the control program by analyzing An indication of the degree of coupling between devices.

また、実施の形態1〜3では、
制御プログラムで制御される変数(デバイス)を抽出してノードとし、デバイス間の相互作用を依存関係として抽出してエッジとすることで、制御プログラムを有閉路有向グラフとしてデータ構造に保持することで、制御プログラム保守時に以下の支援を行うシステムを説明した。
10)GUIにて可視的に表示された依存関係上にて、デバイス値をモニタする
11)障害が現れたデバイス群を指定することで、その要因となりうる箇所を図示する。
In the first to third embodiments,
By extracting the variable (device) controlled by the control program as a node, extracting the interaction between devices as a dependency and making it an edge, by holding the control program in a data structure as a closed-circuit directed graph, A system that provides the following support during control program maintenance was described.
10) Monitor the device value on the dependency visually displayed on the GUI. 11) Designate a device group in which a failure has occurred, and illustrate a possible location.

また、上記を実現するための以下の構成も説明した。
1)制御プログラムで使用されているデバイスをノードとして抽出する「デバイス抽出部」
2)記述されたデバイス間の依存関係(処理)をエッジとして抽出する「依存関係抽出部」
3)解析条件および障害状況を入力する「条件入力部」
4)有閉路有向グラフの構造を解析する「グラフ解析部」
5)解析結果を出力する「結果出力部」
6)制御プログラムと有閉路有向グラフの部分の対応関係を管理する「リンク管理部」
7)実機器との通信によって、デバイスの現在値を取得する「オンラインモニタ部」。
The following configuration for realizing the above has also been described.
1) "Device extractor" that extracts devices used in the control program as nodes
2) “Dependency Extraction Unit” that extracts the dependency (process) between the described devices as an edge
3) “Condition input section” for entering analysis conditions and failure status
4) “Graph Analysis Unit” that analyzes the structure of a directed circuit with cycles
5) “Result output unit” for outputting analysis results
6) “Link management unit” that manages the correspondence between the control program and the directed directed graph
7) An “online monitor” that acquires the current value of the device by communicating with the actual device.

更に、上記のグラフ構築部にて構築される有閉路有向グラフをシステム内のメモリに保持するための以下の特徴を持つデータ構造を説明した。
1)デバイス(ラベル)をノード構造体として表現
2)処理を、元の制御プログラムの処理位置へのリンク情報を持つエッジ構造体として表現
3)ノード構造体とエッジ構造体を接続するトポロジ情報。
Furthermore, the data structure having the following characteristics for holding the directed graph with closed circuit constructed by the graph construction unit in the memory in the system has been described.
1) A device (label) is expressed as a node structure 2) A process is expressed as an edge structure having link information to the processing position of the original control program 3) Topology information that connects the node structure and the edge structure.

また、ネットワーク上の制御機器上などに格納された、複数に分割された制御プログラムについて、その制御プログラム間の共通デバイス設定を参照することで、複数の制御プログラムをシームレスに一つの有閉路有向グラフとして扱うシステムと構成と手順についても説明した。   In addition, for a control program stored in a control device on a network, etc., and divided into a plurality of control programs, by referring to the common device settings between the control programs, the plurality of control programs can be seamlessly converted into a single directed circle graph. The handling system, configuration and procedure were also explained.

≪ハードウェア構成例≫
最後に、実施の形態1〜3に示した情報処理装置100のハードウェア構成例について説明する。
図19は、実施の形態1〜3に示す情報処理装置100のハードウェア資源の一例を示す図である。
なお、図19の構成は、あくまでも情報処理装置100のハードウェア構成の一例を示すものであり、情報処理装置100のハードウェア構成は図19に記載の構成に限らず、他の構成であってもよい。
<< Hardware configuration example >>
Finally, a hardware configuration example of the information processing apparatus 100 shown in the first to third embodiments will be described.
FIG. 19 is a diagram illustrating an example of hardware resources of the information processing apparatus 100 illustrated in the first to third embodiments.
Note that the configuration in FIG. 19 is merely an example of the hardware configuration of the information processing apparatus 100, and the hardware configuration of the information processing apparatus 100 is not limited to the configuration illustrated in FIG. Also good.

図19において、情報処理装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜3で説明した「〜記憶部」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
In FIG. 19, the information processing apparatus 100 includes a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, a processing unit, a microprocessor, a microcomputer, and a processor) that executes a program.
The CPU 911 is connected to, for example, a ROM (Read Only Memory) 913, a RAM (Random Access Memory) 914, a communication board 915, a display device 901, a keyboard 902, a mouse 903, and a magnetic disk device 920 via a bus 912. Control hardware devices.
Further, the CPU 911 may be connected to an FDD 904 (Flexible Disk Drive), a compact disk device 905 (CDD), a printer device 906, and a scanner device 907. Further, instead of the magnetic disk device 920, a storage device such as an SSD (Solid State Drive), an optical disk device, or a memory card (registered trademark) read / write device may be used.
The RAM 914 is an example of a volatile memory. The storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of the storage device.
The “˜storage unit” described in the first to third embodiments is realized by the RAM 914, the magnetic disk device 920, and the like.
A communication board 915, a keyboard 902, a mouse 903, a scanner device 907, and the like are examples of input devices.
The communication board 915, the display device 901, the printer device 906, and the like are examples of output devices.

通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続される。
The communication board 915 is connected to the network.
For example, the communication board 915 is connected to a LAN (local area network), the Internet, a WAN (wide area network), a SAN (storage area network), and the like.

磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
The magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924.
The programs in the program group 923 are executed by the CPU 911 using the operating system 921 and the window system 922.

また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
The RAM 914 temporarily stores at least part of the operating system 921 program and application programs to be executed by the CPU 911.
The RAM 914 stores various data necessary for processing by the CPU 911.

また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
情報処理装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
The ROM 913 stores a BIOS (Basic Input Output System) program, and the magnetic disk device 920 stores a boot program.
When the information processing apparatus 100 is activated, the BIOS program in the ROM 913 and the boot program in the magnetic disk device 920 are executed, and the operating system 921 is activated by the BIOS program and the boot program.

上記プログラム群923には、実施の形態1〜3の説明において「〜部」(「〜記憶部」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。   The program group 923 stores programs that execute the functions described as “˜unit” (except for “˜storage unit” in the following) in the description of the first to third embodiments. The program is read and executed by the CPU 911.

ファイル群924には、実施の形態1〜3の説明において、「〜の抽出」、「〜の生成」、「〜の構築」、「〜の選択」、「〜の変換」、「〜の設定」、「〜の登録」、「〜の取得」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
In the file group 924, in the description of the first to third embodiments, “extraction of”, “generation of”, “construction of”, “selection of”, “conversion of”, “setting of” ”,“ Registration of ”,“ acquisition of ”,“ input of ”,“ output of ”, etc., information, data, signal values, variable values, and parameters indicating the results of the processing are“ It is stored as each item of "~ file" and "~ database".
The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory.
Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit.
The read information, data, signal value, variable value, and parameter are used for CPU operations such as extraction, search, reference, comparison, calculation, calculation, processing, editing, output, printing, and display.
Information, data, signal values, variable values, and parameters are stored in the main memory, registers, cache memory, and buffers during the CPU operations of extraction, search, reference, comparison, calculation, processing, editing, output, printing, and display. It is temporarily stored in a memory or the like.
In addition, the arrows in the flowcharts described in Embodiments 1 to 3 mainly indicate input and output of data and signals.
Data and signal values are recorded on a recording medium such as a memory of the RAM 914, a flexible disk of the FDD 904, a compact disk of the CDD 905, a magnetic disk of the magnetic disk device 920, other optical disks, a mini disk, and a DVD.
Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、実施の形態1〜3の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「情報処理方法」を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
In addition, what is described as “˜unit” in the description of the first to third embodiments may be “˜circuit”, “˜device”, “˜device”, and “˜step”, It may be “˜procedure” or “˜processing”.
That is, the “information processing method” according to the present invention can be realized by the steps, procedures, and processes shown in the flowcharts described in the first to third embodiments.
Further, what is described as “˜unit” may be realized by firmware stored in the ROM 913.
Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware.
Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
The program is read by the CPU 911 and executed by the CPU 911.
That is, the program causes the computer to function as “to part” in the first to third embodiments. Alternatively, the computer executes the procedure and method of “to part” in the first to third embodiments.

このように、実施の形態1〜3に示す情報処理装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
As described above, the information processing apparatus 100 described in the first to third embodiments includes a CPU that is a processing device, a memory that is a storage device, a magnetic disk, a keyboard that is an input device, a mouse, a communication board, and a display device that is an output device, a communication device, and the like. A computer including a board or the like.
Then, as described above, the functions indicated as “˜units” are realized using these processing devices, storage devices, input devices, and output devices.

100 情報処理装置、101 制御プログラム中間コード記憶部、102 デバイス抽出部、103 依存関係抽出部、104 ノード構造体記憶部、105 エッジ構造体記憶部、106 接続情報記憶部、107 条件入力部、108 グラフ解析部、109 結果出力部、110 リンク管理部、111 オンラインモニタ部、112 グラフ生成部。   DESCRIPTION OF SYMBOLS 100 Information processing apparatus, 101 Control program intermediate code storage part, 102 Device extraction part, 103 Dependency extraction part, 104 Node structure storage part, 105 Edge structure storage part, 106 Connection information storage part, 107 Condition input part, 108 Graph analysis unit, 109 result output unit, 110 link management unit, 111 online monitor unit, 112 graph generation unit.

Claims (16)

複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出部と、
前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出部と、
前記デバイス抽出部により抽出されたデバイスの記述と前記依存関係抽出部により抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成部と
前記複数のデバイスに対して前記制御プログラムを用いた制御が行われている場合に、所定のデバイスで計測された計測値を入力する計測値入力部と、
前記有閉路有向グラフ内の該当するデバイスのノードに対して前記計測値入力部により入力された計測値を表示する表示部とを有することを特徴とする情報処理装置。
From a control program in which a plurality of devices are described and dependencies between the devices are described, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependencies between the devices. A device extractor for extracting the description;
A dependency extraction unit that extracts a description of the dependency between devices from the control program;
Based on the description of the device extracted by the device extraction unit and the description of the dependency relationship between the devices extracted by the dependency relationship extraction unit, the node represents the device, the directed edge represents the dependency relationship between the devices, A graph generation unit for generating a directed directed graph of a circuit representing a control algorithm defined in the control program by connecting a node and a directed edge ;
A measurement value input unit that inputs measurement values measured by a predetermined device when control using the control program is performed on the plurality of devices;
An information processing apparatus comprising: a display unit configured to display a measurement value input by the measurement value input unit with respect to a node of a corresponding device in the directed circuit with closed circuit .
複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出部と、
前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出部と、
前記デバイス抽出部により抽出されたデバイスの記述と前記依存関係抽出部により抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成部と
いずれかのデバイスで障害が発生した場合に、前記有閉路有向グラフを解析し、障害が発生したデバイスを表す障害発生デバイスノードと接続している有向エッジを前記有閉路有向グラフから抽出するとともに、抽出した有向エッジと接続しているノードを抽出し、抽出したノードが表しているデバイスに異常が発生していると判定された場合に、抽出したノードと接続している有向エッジの抽出及び抽出した有向エッジと接続しているノードの抽出を行い、抽出したノードが表しているデバイスに異常が発生していると判定された場合に、更に、抽出したノードと接続している有向エッジの抽出及び抽出した有向エッジと接続しているノードの抽出を繰り返すグラフ解析部と、
前記障害発生デバイスノードと、異常が発生していると判定されたデバイスを表すノードとを、他のノードから区別して前記有閉路有向グラフにおいて表示する表示部とを有することを特徴とする情報処理装置。
From a control program in which a plurality of devices are described and dependencies between the devices are described, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependencies between the devices. A device extractor for extracting the description;
A dependency extraction unit that extracts a description of the dependency between devices from the control program;
Based on the description of the device extracted by the device extraction unit and the description of the dependency relationship between the devices extracted by the dependency relationship extraction unit, the node represents the device, the directed edge represents the dependency relationship between the devices, A graph generation unit for generating a directed directed graph of a circuit representing a control algorithm defined in the control program by connecting a node and a directed edge ;
When a failure occurs in any device, the directed directed graph is analyzed, and the directed edge connected to the failed device node representing the failed device is extracted from the directed directed graph and extracted. If a node connected to the directed edge is extracted, and it is determined that an abnormality has occurred in the device represented by the extracted node, extraction of the directed edge connected to the extracted node and If a node connected to the extracted directed edge is extracted and it is determined that an abnormality has occurred in the device represented by the extracted node, the directed node connected to the extracted node A graph analysis unit that repeats extraction of edges and extraction of nodes connected to the extracted directed edges;
An information processing apparatus comprising: a display unit configured to distinguish the faulty device node and a node representing a device determined to have an abnormality from the other nodes and display the same in the directed circle directed graph .
前記依存関係抽出部は、
前記デバイス抽出部により抽出されたデバイスの記述と、抽出した依存関係の記述とを対応付ける接続情報を生成し、
前記グラフ生成部は、
前記デバイス抽出部により抽出されたデバイスの記述と、前記依存関係抽出部により抽出されたデバイス間の依存関係の記述と、前記依存関係抽出部により生成された接続情報とを用いて、前記有閉路有向グラフを生成することを特徴とする請求項1又は2に記載の情報処理装置。
The dependency extraction unit
Generating connection information that associates the description of the device extracted by the device extraction unit with the extracted description of the dependency relationship;
The graph generation unit
Using the description of the device extracted by the device extraction unit, the description of the dependency relationship between devices extracted by the dependency relationship extraction unit, and the connection information generated by the dependency relationship extraction unit, the closed circuit the information processing apparatus according to claim 1 or 2, characterized in that to generate a directed graph.
前記デバイス抽出部は、
IEC(International Electrotechnical Commission)61131−3規格で定義されている言語で作成された制御プログラムから、各デバイスの記述を抽出し、
前記依存関係抽出部は、
IEC61131−3規格で定義されている言語で作成された前記制御プログラムから、デバイス間の依存関係の記述を抽出することを特徴とする請求項1又は2に記載の情報処理装置。
The device extraction unit
A description of each device is extracted from a control program created in a language defined by the International Electrotechnical Commission (IEC) 61131-3 standard,
The dependency extraction unit
The information processing apparatus according to claim 1, wherein a description of a dependency relationship between devices is extracted from the control program created in a language defined in the IEC61131-3 standard.
前記表示部は、
前記グラフ生成部により生成された有閉路有向グラフをGUI(Graphical User Interface)方式にて表示することを特徴とする請求項1又は2に記載の情報処理装置。
The display unit
The information processing apparatus according to claim 1 or 2, characterized in a Turkey to display chromatic directed acyclic graph generated by the graph generating unit by GUI (Graphical User Interface) scheme.
前記依存関係抽出部は、
デバイス間の依存関係として、1つの動作手順において起点となる起点デバイスと起点デバイスの動作に動作状態が依存する依存デバイスとが記述されている制御プログラムから、デバイス間の依存関係の記述を抽出し、
前記グラフ生成部は、
前記制御プログラムで定義されている制御アルゴリズムを、起点デバイスから依存デバイスに向かう有向エッジを用いて表す有閉路有向グラフを生成することを特徴とする請求項1又は2に記載の情報処理装置。
The dependency extraction unit
As a dependency relationship between devices, a description of the dependency relationship between devices is extracted from a control program in which a starting device that is a starting point in one operation procedure and a dependent device whose operation state depends on the operation of the starting device are described. ,
The graph generation unit
3. The information processing apparatus according to claim 1, wherein a directed directed graph representing the control algorithm defined by the control program is generated using a directed edge from a source device toward a dependent device. 4.
前記依存関係抽出部は、
デバイス間の依存関係として、正論理の依存関係及び負論理の依存関係のいずれであるかが記述されている制御プログラムから、デバイス間の依存関係の記述を抽出し、
前記グラフ生成部は、
正論理の依存関係を表す有向エッジと、負論理の依存関係を表す有向エッジとが区別される有閉路有向グラフを生成することを特徴とする請求項1又は2に記載の情報処理装置。
The dependency extraction unit
As a dependency relationship between devices, a description of the dependency relationship between devices is extracted from the control program in which the dependency relationship between positive logic and negative logic is described.
The graph generation unit
The information processing apparatus according to claim 1 or 2 , wherein a directed directed graph is generated in which a directed edge representing a positive logic dependency and a directed edge representing a negative logic dependency are distinguished.
前記情報処理装置は、更に、
前記制御プログラムに記述されている特定のデバイス及び特定の依存関係の少なくともいずれかを指定要素として指定する指定要素情報を入力する情報入力部と、
前記有閉路有向グラフを解析し、前記指定要素情報で指定されている指定要素に変更があった場合に当該変更の影響を受ける影響範囲を前記有閉路有向グラフから抽出するグラフ解析部とを有し
前記表示部は、
前記グラフ解析部により抽出された影響範囲を前記有閉路有向グラフにおいて表示することを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus further includes:
An information input unit that inputs specified element information that specifies at least one of a specific device and a specific dependency described in the control program as a specified element;
The chromatic directed acyclic graph analyzes, and a graphic analysis unit for extracting a range of influence affected by the change in the event of a change to the specified elements is specified in the specified element information from said chromatic directed acyclic graph,
The display unit
The information processing apparatus according to claim 1, wherein the range of influence extracted by the graph analysis unit is displayed in the directed circle directed graph.
前記情報処理装置は、更に、
前記制御プログラムに記述されている特定のデバイス及び特定の依存関係の少なくともいずれかを指定要素として指定する指定要素情報を入力する情報入力部と、
前記指定要素情報で指定されている指定要素が記述されているプログラムコードを前記制御プログラムから抽出するプログラムコード抽出部とを有し
前記表示部は、
前記グラフ生成部により生成された有閉路有向グラフと、前記プログラムコード抽出部により抽出されたプログラムコードとを表示することを特徴とする請求項1又は2に記載の情報処理装置。
The information processing apparatus further includes:
An information input unit that inputs specified element information that specifies at least one of a specific device and a specific dependency described in the control program as a specified element;
And a program code extraction unit for extracting a program code specified element specified by the specified element information is described from the control program,
The display unit
A chromatic directed acyclic graph generated by the graph generating unit, the information processing apparatus according to claim 1 or 2, characterized in a Turkey to display the program code extracted by said program code extraction unit.
前記情報処理装置は、更に、
前記有閉路有向グラフを解析し、チャタリングを発生させる可能性のある循環を前記有閉路有向グラフから抽出するグラフ解析部を有し、
前記表示部は、
前記グラフ解析部により抽出された循環を前記有閉路有向グラフにおいて表示することを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus further includes:
Analyzing the directed circuit directed graph, and having a graph analyzing unit for extracting a circulation that may cause chattering from the directed circuit directed to the closed circuit ,
The display unit
The information processing apparatus according circulating extracted by the graph analysis unit in claim 1, wherein the benzalkonium be displayed in the chromatic directed acyclic graph.
前記情報処理装置は、更に、
前記制御プログラムに記述されている特定のデバイスを指定要素として指定する指定要素情報を入力する情報入力部と、
前記有閉路有向グラフを解析し、前記指定要素情報で指定要素として指定されているデバイスを表すノードと接続している有向エッジを前記有閉路有向グラフから抽出するとともに、抽出した有向エッジと接続しているノードを前記有閉路有向グラフから抽出し、抽出した有向エッジとノードとに基づき、前記指定要素情報で指定要素として指定されているデバイスと抽出したノードが表しているデバイスとの間の依存関係を自然言語にて説明する説明文を生成するグラフ解析部とを有し
前記表示部は、
前記グラフ生成部により生成された有閉路有向グラフと、前記グラフ解析部により生成された説明文とを表示することを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus further includes:
An information input unit for inputting designated element information for designating a specific device described in the control program as a designated element;
Analyzing the directed circle directed graph, extracting a directed edge connected to a node representing a device designated as a designated element in the designated element information from the directed directed graph and connecting to the extracted directed edge Between the device specified as the specified element in the specified element information and the device represented by the extracted node based on the extracted directed edge and the node and a graphic analysis unit that generates a description for explaining the relationship in a natural language,
The display unit
The information processing apparatus according to claim 1, wherein the chromatic directed acyclic graph generated by the graph generation unit, and a benzalkonium displays a description generated by the graph analysis unit.
前記情報処理装置は、更に、
前記有閉路有向グラフを解析し、いずれのデバイスとも依存関係にないデバイスを表すノードを未使用デバイスノードとして前記有閉路有向グラフから抽出するグラフ解析部を有し
前記表示部は、
前記グラフ解析部により抽出された未使用デバイスノードを、他のノードと区別して前記有閉路有向グラフにおいて表示することを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus further includes:
Analyzing the directed circuit directed graph, and having a graph analyzing unit that extracts a node representing a device not dependent on any device from the directed circuit graph as an unused device node;
The display unit
The information processing apparatus according to claim 1 unused device node extracted by the graph analysis unit, characterized by a Turkey be displayed in the chromatic directed acyclic graph separately from other nodes.
コンピュータが、複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出ステップと、
前記コンピュータが、前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出ステップと、
前記コンピュータが、前記デバイス抽出ステップにより抽出されたデバイスの記述と前記依存関係抽出ステップにより抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成ステップと
前記複数のデバイスに対して前記制御プログラムを用いた制御が行われている場合に、前記コンピュータが、所定のデバイスで計測された計測値を入力する計測値入力ステップと、
前記コンピュータが、前記有閉路有向グラフ内の該当するデバイスのノードに対して前記計測値入力ステップにより入力された計測値を表示する表示ステップとを有することを特徴とする情報処理方法。
From a control program in which a computer describes a plurality of devices and a dependency relationship between devices, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependency relationship between the devices, A device extraction step for extracting a description of each device;
A dependency extraction step in which the computer extracts a description of a dependency relationship between devices from the control program;
Based on the description of the device extracted by the device extraction step and the description of the dependency relationship between the devices extracted by the dependency relationship extraction step, the computer represents the device, and the directed edge is the dependency between the devices. A graph generation step for generating a closed-circuit directed graph that represents a relationship and represents a control algorithm defined in the control program by a connection between a node and a directed edge ;
When the control using the control program is performed on the plurality of devices, the computer inputs measurement values measured by a predetermined device; and
An information processing method comprising: a display step for displaying the measurement value input by the measurement value input step with respect to a node of a corresponding device in the directed circuit with closed circuit .
コンピュータが、複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出ステップと、
前記コンピュータが、前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出ステップと、
前記コンピュータが、前記デバイス抽出ステップにより抽出されたデバイスの記述と前記依存関係抽出ステップにより抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成ステップと
前記コンピュータが、いずれかのデバイスで障害が発生した場合に、前記有閉路有向グラフを解析し、障害が発生したデバイスを表す障害発生デバイスノードと接続している有向エッジを前記有閉路有向グラフから抽出するとともに、抽出した有向エッジと接続しているノードを抽出し、抽出したノードが表しているデバイスに異常が発生していると判定された場合に、抽出したノードと接続している有向エッジの抽出及び抽出した有向エッジと接続しているノードの抽出を行い、抽出したノードが表しているデバイスに異常が発生していると判定された場合に、更に、抽出したノードと接続している有向エッジの抽出及び抽出した有向エッジと接続しているノードの抽出を繰り返すグラフ解析ステップと、
前記コンピュータが、前記障害発生デバイスノードと、異常が発生していると判定されたデバイスを表すノードとを、他のノードから区別して前記有閉路有向グラフにおいて表示する表示ステップとを有することを特徴とする情報処理方法。
From a control program in which a computer describes a plurality of devices and a dependency relationship between devices, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependency relationship between the devices, A device extraction step for extracting a description of each device;
A dependency extraction step in which the computer extracts a description of a dependency relationship between devices from the control program;
Based on the description of the device extracted by the device extraction step and the description of the dependency relationship between the devices extracted by the dependency relationship extraction step, the computer represents the device, and the directed edge is the dependency between the devices. A graph generation step for generating a closed-circuit directed graph that represents a relationship and represents a control algorithm defined in the control program by a connection between a node and a directed edge ;
When a failure occurs in any of the devices, the computer analyzes the directed directed graph, and extracts a directed edge connected to the failed device node representing the failed device from the directed directed graph. In addition, if a node connected to the extracted directed edge is extracted and it is determined that an abnormality has occurred in the device represented by the extracted node, the directed node connected to the extracted node When an edge is extracted and a node connected to the extracted directed edge is extracted, and it is determined that an abnormality has occurred in the device represented by the extracted node, the node is further connected to the extracted node. A graph analysis step that repeats extraction of a directed edge and extraction of a node connected to the extracted directed edge;
The computer includes a display step of displaying the faulty device node and a node representing a device determined to have an abnormality in the directed circuit graph so as to be distinguished from other nodes. Information processing method.
複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出ステップと、
前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出ステップと、
前記デバイス抽出ステップにより抽出されたデバイスの記述と前記依存関係抽出ステップにより抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成ステップと
前記複数のデバイスに対して前記制御プログラムを用いた制御が行われている場合に、所定のデバイスで計測された計測値を入力する計測値入力ステップと、
前記有閉路有向グラフ内の該当するデバイスのノードに対して前記計測値入力ステップにより入力された計測値を表示する表示ステップとをコンピュータに実行させることを特徴とするプログラム。
From a control program in which a plurality of devices are described and dependencies between the devices are described, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependencies between the devices. A device extraction step to extract the description;
A dependency extraction step for extracting a description of the dependency between devices from the control program;
Based on the description of the device extracted by the device extraction step and the description of the dependency relationship between the devices extracted by the dependency relationship extraction step, the node represents the device, the directed edge represents the dependency relationship between the devices, A graph generation step of generating a directed directed graph of a circuit representing a control algorithm defined in the control program by connection of a node and a directed edge ;
When control using the control program is performed on the plurality of devices, a measurement value input step for inputting measurement values measured by a predetermined device;
A program for causing a computer to execute a display step of displaying a measurement value input by the measurement value input step with respect to a node of a corresponding device in the directed circuit with closed circuit .
複数のデバイスが記述されるとともにデバイス間の依存関係が記述され、前記複数のデバイスの記述とデバイス間の依存関係の記述により前記複数のデバイスに対する制御アルゴリズムが定義される制御プログラムから、各デバイスの記述を抽出するデバイス抽出ステップと、
前記制御プログラムから、デバイス間の依存関係の記述を抽出する依存関係抽出ステップと、
前記デバイス抽出ステップにより抽出されたデバイスの記述と前記依存関係抽出ステップにより抽出されたデバイス間の依存関係の記述とに基づき、ノードがデバイスを表し、有向エッジがデバイス間の依存関係を表し、前記制御プログラムで定義されている制御アルゴリズムをノードと有向エッジとの接続で表す有閉路有向グラフを生成するグラフ生成ステップと
いずれかのデバイスで障害が発生した場合に、前記有閉路有向グラフを解析し、障害が発生したデバイスを表す障害発生デバイスノードと接続している有向エッジを前記有閉路有向グラフから抽出するとともに、抽出した有向エッジと接続しているノードを抽出し、抽出したノードが表しているデバイスに異常が発生していると判定された場合に、抽出したノードと接続している有向エッジの抽出及び抽出した有向エッジと接続しているノードの抽出を行い、抽出したノードが表しているデバイスに異常が発生していると判定された場合に、更に、抽出したノードと接続している有向エッジの抽出及び抽出した有向エッジと接続しているノードの抽出を繰り返すグラフ解析ステップと、
前記障害発生デバイスノードと、異常が発生していると判定されたデバイスを表すノードとを、他のノードから区別して前記有閉路有向グラフにおいて表示する表示ステップとをコンピュータに実行させることを特徴とするプログラム。
From a control program in which a plurality of devices are described and dependencies between the devices are described, and a control algorithm for the plurality of devices is defined by a description of the plurality of devices and a description of the dependencies between the devices. A device extraction step to extract the description;
A dependency extraction step for extracting a description of the dependency between devices from the control program;
Based on the description of the device extracted by the device extraction step and the description of the dependency relationship between the devices extracted by the dependency relationship extraction step, the node represents the device, the directed edge represents the dependency relationship between the devices, A graph generation step of generating a directed directed graph of a circuit representing a control algorithm defined in the control program by connection of a node and a directed edge ;
When a failure occurs in any device, the directed directed graph is analyzed, and the directed edge connected to the failed device node representing the failed device is extracted from the directed directed graph and extracted. If a node connected to the directed edge is extracted, and it is determined that an abnormality has occurred in the device represented by the extracted node, extraction of the directed edge connected to the extracted node and If a node connected to the extracted directed edge is extracted and it is determined that an abnormality has occurred in the device represented by the extracted node, the directed node connected to the extracted node A graph analysis step that repeats extraction of edges and extraction of nodes connected to the extracted directed edges;
A display step of causing the computer to execute a display step of displaying the failure occurrence device node and a node representing a device determined to be abnormal from the other nodes and displaying the same in the directed circuit with closed circuit is provided. program.
JP2011128468A 2011-06-08 2011-06-08 Information processing apparatus, information processing method, and program Active JP5762154B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011128468A JP5762154B2 (en) 2011-06-08 2011-06-08 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011128468A JP5762154B2 (en) 2011-06-08 2011-06-08 Information processing apparatus, information processing method, and program

Publications (2)

Publication Number Publication Date
JP2012256178A JP2012256178A (en) 2012-12-27
JP5762154B2 true JP5762154B2 (en) 2015-08-12

Family

ID=47527693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011128468A Active JP5762154B2 (en) 2011-06-08 2011-06-08 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP5762154B2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6150953B2 (en) * 2015-06-01 2017-06-21 三菱電機株式会社 Debugging device, debugging method, and debugging program
JP6737884B2 (en) * 2015-10-27 2020-08-12 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. A pattern-finding visual analysis system for characterizing clinical data to generate patient cohorts
JP6757385B2 (en) 2018-10-23 2020-09-16 株式会社キーエンス Programmable logic controller and main unit
JP7183877B2 (en) * 2019-03-13 2022-12-06 オムロン株式会社 Graph display device, graph display method, and graph display program
JP7188198B2 (en) * 2019-03-13 2022-12-13 オムロン株式会社 Graph display device, graph display method, and graph display program
US11300612B2 (en) 2019-04-18 2022-04-12 Mitsubishi Electric Corporation Debug support device, debug support method, and computer readable storage medium
CN113950649B (en) * 2019-06-18 2022-12-09 三菱电机株式会社 Analysis device, analysis method, and computer-readable recording medium
JP7392370B2 (en) * 2019-10-03 2023-12-06 オムロン株式会社 Control systems, support equipment and support programs
DE112020005770T5 (en) * 2020-02-14 2022-09-15 Mitsubishi Electric Corporation Control system, programming support device, programming support method and programming support program
WO2021192646A1 (en) * 2020-03-27 2021-09-30 パナソニックIpマネジメント株式会社 Program creation method, program creation assistance device, and programmable controller
CN120883182A (en) * 2023-03-31 2025-10-31 三菱电机株式会社 Program development aids, program development aids, and program development aids

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08292881A (en) * 1995-04-24 1996-11-05 Nec Corp Program influence range display device
JP2001154711A (en) * 1999-11-29 2001-06-08 Omron Corp Method and apparatus for debugging process step-type program
JP4043742B2 (en) * 2001-09-10 2008-02-06 株式会社デジタル Ladder monitor device, program thereof, and recording medium
JP2004164013A (en) * 2002-11-08 2004-06-10 Mitsutoyo Corp Modeling system of sequence control system, sequence program creation support system, and sequence program creation support program
JP3963174B2 (en) * 2003-03-14 2007-08-22 オムロン株式会社 Display / editing apparatus, display method, and program
JP4517302B2 (en) * 2004-03-31 2010-08-04 オムロン株式会社 Control method and program for development support apparatus and recording medium
US9087151B2 (en) * 2009-02-18 2015-07-21 Mitsubishi Electric Corporation Program analysis support device

Also Published As

Publication number Publication date
JP2012256178A (en) 2012-12-27

Similar Documents

Publication Publication Date Title
JP5762154B2 (en) Information processing apparatus, information processing method, and program
JP2013225251A (en) Information processor and information processing method and program
JP6096414B2 (en) Method, apparatus and program for testing batch configurations
US10809692B2 (en) Control contextualization and reasoning about control
US9747190B2 (en) Analysis system, analysis method, and computer program product
Heimdahl et al. Reduction and slicing of hierarchical state machines
US20110295578A1 (en) Partitioning block diagrams into executable contextual models
US20120116561A1 (en) Program testing apparatus, method of testing a program, and program testing program
CN118202330A (en) Check source code validity when code is updated
CN109918081B (en) Compiling method and compiler
JP5489958B2 (en) Test table generation apparatus and method
KR20150139598A (en) Program chart display device, program chart display method, and program chart display program
White Mastering PLC Programming
Aho et al. Automated java gui modeling for model-based testing purposes
EP4254113A1 (en) Information processing system, information processing method and information processing program
US12182540B2 (en) Information processing device, recording medium, and support system
JP5038161B2 (en) Plant control system control program creation and display device
Frey et al. “Safety automata”—A new specification language for the development of PLC safety applications
JP7730656B2 (en) Analytical device, control method thereof, and analytical system
JP6483507B2 (en) Control program creating apparatus and control program debugging method
Cho et al. NuEditor–A Tool Suite for Specification and Verification of NuSCR
JP4667954B2 (en) Analysis support device
JP2023027509A (en) Support device, support program and control system
Coleman et al. Visual-trace simulation of concurrent finite-state machines for validation and model-checking of complex behaviour
CN119148613B (en) Intelligent interaction system for PLC graphical programming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150609

R150 Certificate of patent or registration of utility model

Ref document number: 5762154

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250