(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023154348
(43)【公開日】2023-10-19
(54)【発明の名称】プログラム変換装置、プログラム検査装置、方法、及びプログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20231012BHJP
【FI】
G05B19/05 A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022063633
(22)【出願日】2022-04-06
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】鈴木 悠司
(72)【発明者】
【氏名】宇野 憲司
(72)【発明者】
【氏名】荻野 利基
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220BB05
5H220CC07
5H220CX02
5H220DD01
5H220DD06
5H220JJ13
5H220JJ16
(57)【要約】
【課題】PLCメーカ間におけるプログラムの互換性を向上させる。
【解決手段】取得部32が、PLC用の第1仕様のプログラムを取得し、変換部34が、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係を規定した変換テーブル40を参照して、第1仕様のプログラムを、第2仕様のプログラムに変換する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プログラマブルロジックコントローラ用の第1仕様のプログラムを取得する取得部と、
第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、前記第1仕様のプログラムを、前記第2仕様のプログラムに変換する変換部と、
を含むプログラム変換装置。
【請求項2】
前記変換部は、前記対応関係として、同一の定義について、第1仕様のプログラムと第2仕様のプログラムとで異なる構文の記述同士を対応付けた変換テーブルを保持する請求項1に記載のプログラム変換装置。
【請求項3】
前記変換部は、前記第1仕様のプログラムに含まれる構文のうち、前記変換テーブルに含まれる前記第1仕様の構文を、対応する前記第2仕様の構文に変換する請求項2に記載のプログラム変換装置。
【請求項4】
前記取得部は、第1言語で記述された前記第1仕様のプログラムを取得し、
前記変換部は、前記第1仕様のプログラムを、第2言語の記述に変換した上で、前記第2仕様のプログラムに変換する
請求項1~請求項3のいずれか1項に記載のプログラム変換装置。
【請求項5】
前記第1言語は、グラフィック言語又はテキスト言語であり、前記第2言語は、XMLフォーマットの中間言語である請求項4に記載のプログラム変換装置。
【請求項6】
前記第1仕様及び前記第2仕様の一方は、プログラマブルロジックコントローラのいずれかのメーカに依存した仕様であり、前記第1仕様及び前記第2仕様の他方は、プログラマブルロジックコントローラのメーカに依存しない標準的な仕様である請求項1~請求項3のいずれか1項に記載のプログラム変換装置。
【請求項7】
前記第1仕様及び前記第2仕様の一方は、プログラマブルロジックコントローラの第1のメーカに依存した仕様であり、前記第1仕様及び前記第2仕様の他方は、プログラマブルロジックコントローラの第2のメーカに依存した仕様である請求項1~請求項3のいずれか1項に記載のプログラム変換装置。
【請求項8】
第1仕様が前記いずれかのメーカに依存した仕様であり、前記第2仕様が前記標準的な仕様であって、
前記対応関係に基づいて、前記第1仕様のプログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する検査部と、
前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、抽出された構文を、前記変換部による変換箇所、又は前記標準的な仕様で記述されていないエラー箇所として出力する出力部と、
を含む請求項6に記載のプログラム変換装置。
【請求項9】
プログラマブルロジックコントローラ用のプログラムを取得する取得部と、
1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、前記プログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する検査部と、
前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、前記標準的な仕様で記述されていない旨の警告を出力する出力部と、
を含むプログラム検査装置。
【請求項10】
取得部が、プログラマブルロジックコントローラ用の第1仕様のプログラムを取得し、
変換部が、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、前記第1仕様のプログラムを、前記第2仕様のプログラムに変換する
プログラム変換方法。
【請求項11】
取得部が、プログラマブルロジックコントローラ用のプログラムを取得し、
検査部が、1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、前記プログラムに、いずれかのメーカに依存した仕様による構文が含まれるかを検査し、
出力部が、前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、前記標準的な仕様で記述されていない旨の警告を出力する
プログラム検査方法。
【請求項12】
コンピュータを、
プログラマブルロジックコントローラ用の第1仕様のプログラムを取得する取得部、及び、
第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、前記第1仕様のプログラムを、前記第2仕様のプログラムに変換する変換部
として機能させるためのプログラム変換プログラム。
【請求項13】
コンピュータを、
プログラマブルロジックコントローラ用のプログラムを取得する取得部、
1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、前記プログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する検査部、及び、
前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、前記標準的な仕様で記述されていない旨の警告を出力する出力部
として機能させるためのプログラム検査プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム変換装置、プログラム変換方法、プログラム変換プログラム、プログラム検査装置、プログラム検査方法、及びプログラム検査プログラムに関する。
【背景技術】
【0002】
従来、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)で実行されるプログラムの作成に関する技術が存在する。
【0003】
例えば、制御の対象となる部品及びこの部品についての処理に対応するテンプレートプログラムを取得し、このテンプレートプログラムと同一の機場プログラムを取得するPLCプログラム開発支援装置が提案されている。この装置は、さらに、機場プログラムの部品に関する情報である機場情報を取得して、機場情報に関連する、機場プログラムの実行時の情報であるランタイム情報を取得する。そして、この装置は、ランタイム情報を、設計項目に成形し、この成形された設計項目を、テンプレートプログラムに付与する(特許文献1参照)。
【0004】
また、例えば、プログラマブルロジックコントローラで実行されるプログラムを含むプロジェクトデータの作成を支援するプログラム作成支援装置が提案されている。この装置は、プロジェクトデータを作成するための文字列の入力を受け付け、受け付けた文字列を解析して文字列に含まれる用語を抽出する。また、この装置は、作成済みのプロジェクトデータ、及びプロジェクトデータの作成時に用いられる用語を含む各種用語が登録された辞書データの少なくとも一方を含む外部データを解析して外部データに含まれる用語を抽出する。そして、この装置は、抽出した用語の使用回数に基づいて、入力を受け付ける用語の候補を表示部に表示させる(特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2021-77189号公報
【特許文献2】特許第6837608号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
PLCのプログラムは、国際標準規格としてIEC61131-3で定められた言語で記述される。しかし、PLCのメーカ毎に、規格に対する準拠の度合いが異なっていることなどが原因となり、プログラムの仕様にメーカ毎の相違が生じている。そのため、あるメーカのPLC用に作成したプログラムを、他のメーカのPLCで使用することができないなど、互換性に欠ける面がある。
【0007】
本開示は、上記の点に鑑みてなされたものであり、PLCメーカ間におけるプログラムの互換性を向上させることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、第1の態様に係るプログラム変換装置は、プログラマブルロジックコントローラ用の第1仕様のプログラムを取得する取得部と、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、前記第1仕様のプログラムを、前記第2仕様のプログラムに変換する変換部と、を含んで構成される。これにより、PLCメーカ間におけるプログラムの互換性を向上させることができる。
【0009】
また、前記変換部は、前記対応関係として、同一の定義について、第1仕様のプログラムと第2仕様のプログラムとで異なる構文の記述同士を対応付けた変換テーブルを保持してもよい。
【0010】
また、前記変換部は、前記第1仕様のプログラムに含まれる構文のうち、前記変換テーブルに含まれる前記第1仕様の構文を、対応する前記第2仕様の構文に変換してもよい。
【0011】
また、前記取得部は、第1言語で記述された前記第1仕様のプログラムを取得し、前記変換部は、前記第1仕様のプログラムを、第2言語の記述に変換した上で、前記第2仕様のプログラムに変換してもよい。
【0012】
また、前記第1言語は、グラフィック言語又はテキスト言語であり、前記第2言語は、XMLフォーマットの中間言語であってよい。
【0013】
また、前記第1仕様及び前記第2仕様の一方は、プログラマブルロジックコントローラのいずれかのメーカに依存した仕様であり、前記第1仕様及び前記第2仕様の他方は、プログラマブルロジックコントローラのメーカに依存しない標準的な仕様としてもよい。
【0014】
また、前記第1仕様及び前記第2仕様の一方は、プログラマブルロジックコントローラの第1のメーカに依存した仕様であり、前記第1仕様及び前記第2仕様の他方は、プログラマブルロジックコントローラの第2のメーカに依存した仕様としてもよい。
【0015】
また、第1仕様が前記いずれかのメーカに依存した仕様であり、前記第2仕様が前記標準的な仕様であって、プログラム変換装置は、さらに、前記対応関係に基づいて、前記1仕様のプログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する検査部と、前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、抽出された構文を、前記変換部による変換箇所、又は前記標準的な仕様で記述されていないエラー箇所として出力する出力部と、を含んで構成されてもよい。
【0016】
第2の態様に係るプログラム検査装置は、プログラマブルロジックコントローラ用のプログラムを取得する取得部と、1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、前記プログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する検査部と、前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、前記標準的な仕様で記述されていない旨の警告を出力する出力部と、を含んで構成される。
【0017】
第3の態様に係るプログラム変換方法は、取得部が、プログラマブルロジックコントローラ用の第1仕様のプログラムを取得し、変換部が、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、前記第1仕様のプログラムを、前記第2仕様のプログラムに変換する方法である。
【0018】
第4の態様に係るプログラム検査装置は、取得部が、プログラマブルロジックコントローラ用のプログラムを取得し、検査部が、1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、前記プログラムに、いずれかのメーカに依存した仕様による構文が含まれるかを検査し、出力部が、前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、前記標準的な仕様で記述されていない旨の警告を出力する方法である。
【0019】
第5の態様に係るプログラム変換プログラムは、コンピュータを、プログラマブルロジックコントローラ用の第1仕様のプログラムを取得する取得部、及び、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、前記第1仕様のプログラムを、前記第2仕様のプログラムに変換する変換部として機能させるためのプログラムである。
【0020】
第6の態様に係るプログラム検査プログラムは、コンピュータを、プログラマブルロジックコントローラ用のプログラムを取得する取得部、1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、前記プログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する検査部、及び、前記検査部により前記いずれかのメーカに依存した仕様の構文が抽出された場合に、前記標準的な仕様で記述されていない旨の警告を出力する出力部として機能させるためのプログラムである。
【発明の効果】
【0021】
本開示に係るプログラム変換装置、プログラム検査装置、方法、及びプログラムによれば、PLCメーカ間におけるプログラムの互換性を向上させることができる。
【図面の簡単な説明】
【0022】
【
図1】プログラム変換装置及びプログラム検査装置のハードウェア構成を示すブロック図である。
【
図2】プログラム変換装置の機能構成の例を示すブロック図である。
【
図4】LD言語からXMLフォーマットへの変換の一例を示す図である。
【
図5】ST言語からXMLフォーマットへの変換の一例を示す図である。
【
図7】XMLファイルに追加する変換テーブル仕様の一例を示す図である。
【
図8】プログラム変換処理の流れを示すフローチャートである。
【
図9】プログラム変換の効果を説明するための図である。
【
図10】プログラム検査装置の機能構成の例を示すブロック図である。
【
図12】プログラム検査処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、本開示の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0024】
<第1実施形態>
まず、第1実施形態に係るプログラム変換装置の構成について説明する。
【0025】
図1は、第1実施形態に係るプログラム変換装置10のハードウェア構成を示すブロック図である。
図1に示すように、プログラム変換装置10は、CPU(Central Processing Unit)12、メモリ14、記憶装置16、入力装置18、出力装置20、記憶媒体読取装置22、及び通信I/F(Interface)24を有する。各構成は、バス26を介して相互に通信可能に接続されている。
【0026】
記憶装置16には、プログラム変換処理を実行するためのプログラム変換プログラムが格納されている。CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU12は、記憶装置16からプログラムを読み出し、メモリ14を作業領域としてプログラムを実行する。CPU12は、記憶装置16に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0027】
メモリ14は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置16は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0028】
入力装置18は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置20は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置20として、タッチパネルディスプレイを採用することにより、入力装置18として機能させてもよい。
【0029】
記憶媒体読取装置22は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F24は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0030】
次に、第1実施形態に係るプログラム変換装置10の機能構成について説明する。
【0031】
図2は、プログラム変換装置10の機能構成の例を示すブロック図である。
図2に示すように、プログラム変換装置10には、第1仕様のプログラムが入力される。プログラム変換装置10は、プログラム変換処理を実行し、第1仕様のプログラムを変換した第2仕様のプログラムを出力する。ここでの「仕様」は、PLCのいずれかのメーカに依存した仕様、又はいずれのメーカにも依存しない標準的な仕様である。上述したように、PLC用のプログラムは、例えば、国際標準規格としてIEC61131-3で定められた言語で記述されている。しかし、PLCのメーカ毎に、規格に対する準拠の度合いが異なっていることなどが原因となり、プログラムの仕様にメーカ毎の相違が生じている。すなわち、A社のPLC用のプログラムは、A社に依存した仕様となっており、B社のPLC用のプログラムは、B社に依存した仕様となっている。いずれのメーカにも依存しない標準的な仕様は、例えば、標準規格に準拠し、各社固有の表現を使用しない仕様である。本実施形態では、第1仕様を標準的な仕様、第2仕様をPLCメーカB社の仕様とする場合について説明する。
【0032】
図2に示すように、プログラム変換装置10は、機能構成として、取得部32と、変換部34とを含む。また、プログラム変換装置10の所定の記憶領域には、変換テーブル40が記憶される。各機能構成は、CPU12が記憶装置16に記憶されたプログラム変換プログラムを読み出し、メモリ14に展開して実行することにより実現される。
【0033】
取得部32は、プログラム変換装置10に入力された第1仕様(標準的な仕様)のプログラムを取得する。
【0034】
変換部34は、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、第1仕様のプログラムを第2仕様(B社仕様)のプログラムに変換する。変換テーブル40は、この対応関係の一例である。変換テーブル40は、同一の定義について、第1仕様のプログラムと第2仕様のプログラムとで異なる構文の記述同士を対応付けたものである。
図3に、変換テーブル40の一例を示す。
図3の「標準」、「A社」、「B社」、及び「C社」は、それぞれ、標準的な仕様、A社の仕様、B社の仕様、及びC社の仕様を表している。また、
図3に示す変換テーブル40の各行は同一の定義についての各社の仕様又は標準的な仕様の構文である。
【0035】
具体的には、変換部34は、取得部32により取得された第1仕様のプログラムが、LD、FBD、SFC等のグラフィック言語、又はIL、ST等のテキスト言語で記述されている場合、第1仕様のプログラムをXMLフォーマットに変換する。
図4及び
図5に、XMLフォーマットへの変換の一例を示す。
図4は、国際標準規格であるIEC61131-3で定められた言語の1つであるLDで記述された第1仕様のプログラムを、IEC61131-10で定められたXMLフォーマットに変換した例である。また、
図5は、IEC61131-3で定められた言語の1つであるSTで記述された第1仕様のプログラムを、IEC61131-10で定められたXMLフォーマットに変換した例である。
【0036】
変換部34は、第1仕様のプログラムに含まれる構文のうち、変換テーブル40に含まれる第1仕様の構文を、対応する第2仕様の構文に変換する。例えば、変換部34は、XMLフォーマットのファイル(以下、「XMLファイル」という)に変換された第1仕様(標準的な仕様)のプログラムから、変換テーブル40の「標準」列に含まれる構文を検索する。例えば、変換部34は、
図6の破線部に示すように、標準的な仕様のプログラムから検索された「MUL_TIME」を、変換テーブル40の「B社」列の対応する構文「MULTIME」に変換し、XMLファイルを上書きする。変換部34は、上書きしたXMLファイルを第2仕様のプログラムとして出力する。
【0037】
なお、変換部34は、所定の記憶領域に記憶された変換テーブル40を参照して変換を行うことに変えて、XMLファイルに拡張仕様として変換テーブル仕様を追加してもよい。例えば、変換部34は、
図7に示すようなDefineエレメントをXMLファイルに追加することで、変換テーブル機能を実現してもよい。
【0038】
次に、第1実施形態に係るプログラム変換装置10の作用について説明する。
【0039】
図8は、プログラム変換装置10のCPU12により実行されるプログラム変換処理の流れを示すフローチャートである。CPU12が記憶装置16からプログラム変換プログラムを読み出して、メモリ14に展開して実行することにより、CPU12がプログラム変換装置10の各機能構成として機能し、
図8に示すプログラム変換処理が実行される。
【0040】
ステップS10で、取得部32が、グラフィック言語又はテキスト言語で記述されたPLC用の第1仕様のプログラムを取得する。次に、ステップS12で、変換部34が、第1仕様のプログラムをXMLファイルに変換する。次に、ステップS14で、変換部34が、ユーザから第2仕様の指定を受け付ける。ここでは、「B社」という指定を受け付ける。
【0041】
次に、ステップS16で、変換部34が、第1仕様のプログラムに含まれる構文のうち、変換テーブル40に含まれる第1仕様の構文を、対応する第2仕様の構文に変換し、XMLファイルを上書きする。次に、ステップS18で、変換部34が、上書きしたXMLファイルを第2仕様のプログラムとして出力し、プログラム変換処理は終了する。
【0042】
以上説明したように、第1実施形態に係るプログラム変換装置は、PLC用の第1仕様のプログラムを、第1仕様のプログラムの構文の記述と第2仕様のプログラムの構文の記述との予め定めた対応関係に基づいて、第2仕様のプログラムに変換する。これにより、PLCメーカ間におけるプログラムの互換性を向上させることができる。
【0043】
例えば、上記第1実施形態のように、第1仕様を標準的な仕様、第2仕様をいずれかのメーカの仕様とする場合、
図9の実線矢印で示すように、標準的な仕様で作成した1つのプログラムを、所望のメーカの仕様のプログラムに変換することができる。例えば、標準的な仕様からA社仕様に変換されたXMLファイルを、A社のPLCのIDEにおいてグラフィック言語又はテキスト言語のプログラムに変換することで、A社のPLCに適用可能となる。B社の仕様を指定した場合も同様である。したがって、PLC用のプログラムを作成する際に、PLCメーカに非依存の標準的な仕様でプログラムを記述可能とすることで、使用するPLCの制約を受けずにプログラミングが可能となる。
【0044】
また、第1仕様をいずれかのメーカの仕様、第2仕様を標準的な仕様とする場合、
図9の破線矢印で示すように、メーカ各社に依存したプログラムを標準的な仕様の1つのプログラムに変換することができる。これにより、メーカ毎にプログラムを管理する必要がなくなり、プログラムの管理の負担を軽減することができる。
【0045】
また、第1仕様をあるメーカの仕様(例えば、A社)、第2仕様を他のメーカの仕様(例えば、B社)としてもよい。これにより、特定のPLCメーカの仕様に従い記述されたプログラムを別のPLCで再利用する場合に、実装者が別のPLCメーカの仕様を理解することなく、プログラムを再利用可能とすることができる。
【0046】
<第2実施形態>
次に、第2実施形態について説明する。まず、第2実施形態に係るプログラム検査装置の構成について説明する。
【0047】
プログラム検査装置50のハードウェア構成は、
図1に示す、第1実施形態に係るプログラム変換装置10のハードウェア構成と同様であるため、説明を省略する。なお、第2実施形態において、記憶装置16には、プログラム検査処理を実行するためのプログラム検査プログラムが格納されている。
【0048】
図10は、プログラム検査装置50の機能構成の例を示すブロック図である。
図10に示すように、プログラム検査装置50には、検査対象のプログラムが入力され、プログラム検査装置50による検査処理が実行され、検査結果が出力される。検査対象のプログラムは、PLCのいずれかのメーカに依存した仕様のプログラムであり、検査結果は、検査対象のプログラムにおいて、標準的な仕様と異なる箇所を示すものである。
【0049】
図10に示すように、プログラム検査装置50は、機能構成として、取得部52と、検査部54と、出力部56とを含む。また、プログラム検査装置50の所定の記憶領域には、変換テーブル40が記憶される。各機能構成は、CPU12が記憶装置16に記憶されたプログラム変換プログラムを読み出し、メモリ14に展開して実行することにより実現される。
【0050】
取得部52は、プログラム検査装置50に入力された検査対象のプログラムを取得する。
【0051】
検査部54は、1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、検査対象のプログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する。この対応関係としては、第1実施形態と同様の変換テーブル40を用いる。
【0052】
具体的には、検査部54は、取得部52により取得された検査対象のプログラムが、LD、FBD、SFC等のグラフィック言語、又はIL、ST等のテキスト言語で記述されている場合、検査対象のプログラムをXMLフォーマットに変換する。例えば、検査対象のプログラムがA社の仕様のプログラムである場合、検査部54は、XMLファイルに変換された検査対象のプログラムから、変換テーブル40の「A社」列に含まれる構文を検索する。検査部54は、検索された構文が、変換テーブル40の対応する「標準」列の構文と一致するか否かを判定する。一致しない場合、検査部54は、検索された構文をA社に依存した仕様の構文として抽出すると共に、その構文に対応する標準的な仕様の構文を抽出する。
【0053】
出力部56は、検査部54により、いずれかのメーカに依存した仕様の構文が抽出された場合に、抽出された構文が標準的な仕様で記述されていない旨の警告を検査結果として出力する。
図11に、出力部56により出力される検査結果画面の一例を示す。
図11の例では、検査部54により抽出された構文のグラフィック言語による記述と、その記述が標準的な仕様ではないこと、及び標準的な仕様における構文を示すメッセージが表示されている。
【0054】
次に、第2実施形態に係るプログラム検査装置50の作用について説明する。
【0055】
図12は、プログラム検査装置50のCPU12により実行されるプログラム検査処理の流れを示すフローチャートである。CPU12が記憶装置16からプログラム検査プログラムを読み出して、メモリ14に展開して実行することにより、CPU12がプログラム検査装置50の各機能構成として機能し、
図12に示すプログラム検査処理が実行される。
【0056】
ステップS20で、取得部52が、グラフィック言語又はテキスト言語で記述された検査対象のプログラムを取得する。次に、ステップS22で、検査部54が、検査対象のプログラムをXMLファイルに変換する。次に、ステップS24で、検査部54が、変換テーブル40を参照して、XMLファイルに変換された検査対象のプログラムから、検査対象のプログラム独自の仕様の構文、すなわち、標準的な仕様ではない構文を抽出する。次に、ステップS26で、出力部56が、上記ステップS24で抽出された構文が、標準的な仕様で記述されていない旨のメッセージを含む検査結果画面を表示装置に表示して、プログラム検査処理は終了する。
【0057】
以上説明したように、第2実施形態に係るプログラム検査装置は、1以上のメーカの各々に依存した仕様と、メーカに依存しない標準的な仕様との予め定めた対応関係に基づいて、検査対象のプログラムに、いずれかのメーカに依存した仕様による構文が含まれるか否かを検査する。そして、プログラム検査装置は、いずれかのメーカに依存した仕様の構文が抽出された場合に、標準的な仕様で記述されていない旨の警告を出力する。これにより、ユーザは、作成したプログラムが標準的に扱えないプログラムであることを把握することができる。
【0058】
なお、第1実施形態に係るプログラム変換装置と、第2実施形態に係るプログラム検査装置とを組み合わせた実施形態も可能である。この場合、メーカに依存した仕様のプログラムを標準的な仕様のプログラムに変換する際に、検査処理も実行する。具体的には、検査処理で抽出される標準的な仕様で記述されていない箇所を、プログラムの変換箇所、又は変換エラー箇所の一部としてプログラマへ通知する。これにより、変換前のメーカに依存した仕様のプログラムにおいて、標準的な仕様で記述されていない箇所を、変換箇所又はエラー箇所として確認しながら、標準的な仕様のプログラムへ変換することができる。
【0059】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したプログラム変換処理及びプログラム検査処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、プログラム変換処理及びプログラム検査処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0060】
また、上記各実施形態では、プログラム変換プログラム及びプログラム検査プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0061】
10 プログラム変換装置
12 CPU
14 メモリ
16 記憶装置
18 入力装置
20 出力装置
22 記憶媒体読取装置
24 通信I/F
26 バス
32 取得部
34 変換部
40 変換テーブル
50 プログラム検査装置
52 取得部
54 検査部
56 出力部