(57)【要約】  シミュレーション装置（７）が、ＰＬＣの動作を模擬する仮想ＰＬＣと、他のＰＬＣシステムとの間で通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想ＰＬＣシステムを構築し、仮想ＰＬＣシステムの模擬動作にかかる演算を行うシミュレーション部（３）と、実機の実ＰＬＣと、他のＰＬＣシステムとの間で通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実ＰＬＣシステムに接続し、仮想ＰＬＣシステムと第１の実ＰＬＣシステムとの間でデータ中継を行う通信ボード（３１）と、を備え、シミュレーション部（３）は、仮想ＰＬＣシステムに対応する第２の実ＰＬＣシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、通信ボード（３１）を介して第１の実ＰＬＣシステムから受信したデータを用いて、仮想ＰＬＣシステムの模擬動作を行う。
2019220605.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラの動作を模擬する仮想プログラマブルロジックコントローラと、他のコントローラシステムとの間で通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想コントローラシステムを構築し、前記仮想コントローラシステムの模擬動作にかかる演算を行うシミュレーション部と、
実機の実プログラマブルロジックコントローラと、他のコントローラシステムとの間で通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実コントローラシステムに接続し、前記仮想コントローラシステムと前記第１の実コントローラシステムとの間でデータ中継を行う通信部と、
を備え、
前記シミュレーション部は、前記仮想コントローラシステムに対応する第２の実コントローラシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、前記通信部を介して前記第１の実コントローラシステムから受信したデータを用いて、前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とするシミュレーション装置。
【請求項２】
前記シミュレーション部による模擬動作の結果を表示制御する表示制御部をさらに備える、
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記仮想コントローラシステムは、第１の通信プロトコルで通信を実行し、
前記第１の実コントローラシステムは、第２の通信プロトコルで通信を実行し、
前記通信部は、前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行うことによって、前記仮想コントローラシステムと前記第１の実コントローラシステムとの間でデータ中継を行う、
ことを特徴とする請求項１または２に記載のシミュレーション装置。
【請求項４】
前記仮想コントローラシステムは複数であり、
前記シミュレーション部は、前記通信部を介して前記第１の実コントローラシステムから受信したデータを用いて、それぞれの前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とする請求項１から３の何れか１つに記載のシミュレーション装置。
【請求項５】
前記第１の実コントローラシステムは複数であり、
前記シミュレーション部は、前記通信部を介して複数の前記第１の実コントローラシステムから受信したデータを用いて、前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とする請求項１から４の何れか１つに記載のシミュレーション装置。
【請求項６】
前記実プログラマブルロジックコントローラから送られてくるデータには、前記仮想コントローラシステムを識別する第１の識別情報が含まれ、
前記通信部は、前記第１の識別情報に対応する前記仮想コントローラシステムに、前記実プログラマブルロジックコントローラから送られてきたデータを送信する、
ことを特徴とする請求項４に記載のシミュレーション装置。
【請求項７】
前記実プログラマブルロジックコントローラから送られてくるデータには、前記仮想コントローラシステム内で前記仮想プログラマブルロジックコントローラと前記仮想ネットワークユニットとを識別する第２の識別情報が含まれ、
前記仮想ネットワークユニットは、前記第２の識別情報が前記仮想プログラマブルロジックコントローラに対応するものであれば、前記実プログラマブルロジックコントローラから送られてきたデータを前記仮想プログラマブルロジックコントローラに送信する、
ことを特徴とする請求項１から３の何れか１つに記載のシミュレーション装置。
【請求項８】
前記通信部は、
前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行う通信ボードとを備えている、
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項９】
前記通信部は、
前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行うソフトウエアプロトコルスタックとを備えている、
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項１０】
前記シミュレーション部は、前記仮想コントローラシステム内の構成要素間の接続関係に基づいて、前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とする請求項１から９の何れか１つに記載のシミュレーション装置。
【請求項１１】
前記シミュレーション部は、前記第１の実コントローラシステムに設定されるデータである実システム設定データに基づいて、前記仮想コントローラシステムに設定されるデータである仮想システム設定データを生成する、
ことを特徴とする請求項１から１０の何れか１つに記載のシミュレーション装置。
【請求項１２】
プログラマブルロジックコントローラの動作を模擬する仮想プログラマブルロジックコントローラと、他のコントローラシステムとの間で通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想コントローラシステムを構築する構築ステップと、
実機の実プログラマブルロジックコントローラと、他のコントローラシステムとの間で通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実コントローラシステムに接続した通信部を介して前記仮想コントローラシステムと前記第１の実コントローラシステムとの間でデータ中継を行うとともに、前記仮想コントローラシステムに対応する第２の実コントローラシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、前記通信部を介して前記第１の実コントローラシステムから受信したデータを用いて、前記仮想コントローラシステムの模擬動作にかかる演算を行うシミュレーションステップと、
をコンピュータに実行させる、
ことを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラのシミュレーションを実行するシミュレーション装置およびシミュレーションプログラムに関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（ＰＬＣ：Programmable  Logic  Controller）と通信機能を有したネットワークユニットとを備えたＰＬＣシステムが、複数接続されて構成された大規模システムがある。この大規模システムが構築される際には、ＰＬＣが実行するＰＬＣプログラムの動作を確認するためにシミュレーションが実行される。【０００３】
特許文献１に記載のＰＬＣテスト支援システムは、実機のＰＬＣである実ＰＬＣの動作を模擬する仮想ＰＬＣに、ＰＣ（Personal  Computer）との間で行われる通信データの送受信を模擬させることによって、通信データの内容をテストしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１１４６８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の技術では、仮想ネットワークが無い状態でシーケンスプログラムであるＰＬＣプログラムをテストする場合、接続先の他のネットワークの振る舞いを模擬するために、別途テスト用のＰＬＣプログラムを作成するか、または元の実機用のＰＬＣプログラムにテスト用の処理を書き加えたテスト用のＰＬＣプログラムを作成する必要があった。【０００６】
本発明は、上記に鑑みてなされたものであって、テスト用のＰＬＣプログラムを作成することなく、実コントローラシステムと仮想コントローラシステムとが互いにやりとりしながら行われる動作を確認することができるシミュレーション装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明のシミュレーション装置は、プログラマブルロジックコントローラの動作を模擬する仮想プログラマブルロジックコントローラと、他のコントローラシステムとの間で通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想コントローラシステムを構築し、仮想コントローラシステムの模擬動作にかかる演算を行うシミュレーション部を備える。また、本発明のシミュレーション装置は、実機の実プログラマブルロジックコントローラと、他のコントローラシステムとの間で通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実コントローラシステムに接続し、仮想コントローラシステムと第１の実コントローラシステムとの間でデータ中継を行う通信部と、を備える。シミュレーション部は、仮想コントローラシステムに対応する第２の実コントローラシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、通信部を介して第１の実コントローラシステムから受信したデータを用いて、仮想コントローラシステムの模擬動作を行う。
【発明の効果】
【０００８】
本発明にかかるシミュレーション装置は、テスト用のＰＬＣプログラムを作成することなく、実コントローラシステムと仮想コントローラシステムとが互いにやりとりしながら行われる動作を確認することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態にかかるシミュレーション装置が適用されるＦＡ（Factory  Automation）システムの構成を示す図
【図２】実施の形態にかかるシミュレーション装置の構成を示す図
【図３】実施の形態にかかる仮想環境の構成を示す図
【図４】実施の形態にかかる仮想ＰＬＣシステムが備える接続部の第１の構成例を示す図
【図５】実施の形態にかかる仮想ＰＬＣシステムが備える接続部の第２の構成例を示す図
【図６】実施の形態にかかるシミュレーション装置によるＰＬＣシステム間の第１のデータ中継処理手順を示すフローチャート
【図７】実施の形態にかかるシミュレーション装置によるＰＬＣシステム間の第２のデータ中継処理手順を示すフローチャート
【図８】実施の形態にかかるシミュレーション装置を実現するハードウエア構成を示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかるシミュレーション装置およびシミュレーションプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態．
図１は、実施の形態にかかるシミュレーション装置が適用されるＦＡシステムの構成を示す図である。図２は、実施の形態にかかるシミュレーション装置の構成を示す図である。
【００１２】
ＦＡシステム１５０は、工場の生産工程の自動化を図るシステムであり、シミュレーション装置７と、実ＰＬＣシステム１００−１，１００−２，１００−３とを有している。実ＰＬＣシステム１００−１，１００−２，１００−３は、それぞれ実機のＰＬＣである実ＰＬＣを備えている。実ＰＬＣシステム１００−１，１００−２，１００−３で用いられる通信プロトコルは、それぞれ異なるものであってもよいし同じものであってもよい。以下では、実ＰＬＣシステム１００−１，１００−２，１００−３を、実ＰＬＣシステム群１０１Ｘという場合がある。
【００１３】
シミュレーション装置７は、ＰＬＣシステムを仮想的に動作させるための仮想ＰＬＣシステム２００Ｘ，２００Ｙを構築し、仮想ＰＬＣシステム２００Ｘ，２００Ｙをシミュレーションである模擬動作させるコンピュータである。コンピュータの例は、パーソナルコンピュータである。シミュレーション装置７は、ブリッジ３２を介して実ＰＬＣシステム群１０１Ｘに接続される。シミュレーション装置７は、実ＰＬＣシステム群１０１Ｘとの間でデータを送受信しながら、仮想ＰＬＣシステム２００Ｘ，２００Ｙを模擬動作させる。これにより、シミュレーション装置７は、仮想ＰＬＣシステム２００Ｘ，２００Ｙおよび実ＰＬＣシステム群１０１Ｘを含んだＦＡシステム１５０の動作を検証する。
【００１４】
ブリッジ３２は、実ＰＬＣシステム群１０１Ｘと仮想ＰＬＣシステム２００Ｘ，２００Ｙとの間のデータを中継する。ブリッジ３２は、シミュレーション部３が、ブリッジソフトウエアを実行することによって実現される。実ＰＬＣシステム群１０１Ｘとブリッジ３２との間、仮想ＰＬＣシステム２００Ｘ，２００Ｙとブリッジ３２との間では、データパケットを用いてデータ通信が行われる。
【００１５】
シミュレーション装置７は、入力部１と、記憶部２と、シミュレーション部３と、通信部の一例である通信ボード３１と、表示制御部６とを備えている。入力部１は、シミュレーションを実行する際に用いられるデータを外部装置から受付けて、記憶部２およびシミュレーション部３に入力する。
【００１６】
記憶部２は、シミュレーションを実行する際に用いられるデータを記憶する。記憶部２が記憶するデータの例は、ＰＬＣ設定データ、シミュレーションプログラム、ＰＬＣプログラム、および構成情報である。
【００１７】
ＰＬＣプログラムは、ＰＬＣが動作する際に用いられるプログラムである。構成情報は、仮想ＰＬＣシステム２００Ｘ，２００Ｙの構成を示す情報である。構成情報には、仮想ＰＬＣシステム２００Ｘ，２００Ｙに配置される構成要素のリストと、構成要素間の接続関係と、各構成要素の機能とが含まれている。また、ＰＬＣ設定データは、ＰＬＣが動作する際に用いられるデータである。
【００１８】
シミュレーション部３は、シミュレーションプログラムおよび構成情報を用いて仮想ＰＬＣシステム２００Ｘ，２００Ｙをシミュレーション装置７内に構築する。シミュレーション部３は、構築した仮想ＰＬＣシステム２００Ｘ，２００Ｙ、ＰＬＣ設定データおよびＰＬＣプログラムを用いて仮想ＰＬＣシステム２００Ｘ，２００Ｙを模擬動作させる。
【００１９】
通信ボード３１は、シミュレーション部３から送られてくるデータを、実ＰＬＣシステム群１０１Ｘに送信し、実ＰＬＣシステム群１０１Ｘから送られてくるデータを仮想ＰＬＣシステム２００Ｘ，２００Ｙに振り分ける。
【００２０】
表示制御部６は、液晶モニタといった表示装置８に接続されており、シミュレーション部３によるシミュレーション結果を表示装置８に表示させる。シミュレーション結果は、仮想ＰＬＣシステム２００Ｘ，２００Ｙの模擬動作の結果である。
【００２１】
ＦＡシステム１５０では、実コントローラシステムである実ＰＬＣシステム１００−１〜１００−３が実際の動作を実行し、仮想コントローラシステムである仮想ＰＬＣシステム２００Ｘ，２００Ｙが模擬動作を実行する。なお、実ＰＬＣシステム群１０１Ｘは、２つ以下の実ＰＬＣシステムであってもよいし、４つ以上の実ＰＬＣシステムであってもよい。また、シミュレーション装置７が構築する仮想ＰＬＣシステムは、３つ以上であってもよいし、１つであってもよい。
【００２２】
図３は、実施の形態にかかる仮想環境の構成を示す図である。図３では、シミュレーション装置７が構築する仮想環境３００、および実ＰＬＣシステムの一例である実ＰＬＣシステム１００の機能ブロック図を示している。実ＰＬＣシステム１００は、実ＰＬＣシステム１００−１，１００−２，１００−３の何れかである。
【００２３】
仮想環境３００は、シミュレーション部３によって構築される仮想ＰＬＣシステム２００Ｘ，２００Ｙと、ブリッジ３２とを含んでいる。仮想ＰＬＣシステム２００Ｘ，２００Ｙにおける処理は、シミュレーション部３が実行するものである。仮想ＰＬＣシステム２００Ｘ，２００Ｙは、ブリッジ３２に接続され、ブリッジ３２は、通信ボード３１に接続されている。通信ボード３１は、実ＰＬＣシステム１００に接続されている。なお、ここでは、仮想環境３００が実ＰＬＣシステム１００に接続されている場合について説明するが、仮想環境３００は、実ＰＬＣシステム群１０１Ｘに接続されている。
【００２４】
仮想ＰＬＣシステム２００Ｘ，２００Ｙは、実際のＰＬＣシステムを模擬する仮想的なＰＬＣシステムであり、実際のＰＬＣシステムと同様の動作を仮想的に実行する。仮想ＰＬＣシステム２００Ｘは、仮想ＰＬＣ５０Ａ，５０Ｂと、仮想的なネットワークユニット（ＮＷＵ：NetWork  Unit）である仮想ＮＷＵ６０Ａと、仮想ＰＬＣシステム設定データ４２Ｘとを備えている。仮想ＰＬＣシステム２００Ｘでは、ライン接続またはスター接続といった伝送路形式で、仮想ＰＬＣ５０Ａ，５０Ｂと、仮想ＮＷＵ６０Ａとが接続されている。伝送路形式は、構成情報に含まれる、構成要素間の接続関係に対応している。
【００２５】
また、仮想ＰＬＣシステム２００Ｙは、仮想ＰＬＣ５０Ｃと、仮想ＮＷＵ６０Ｃと、仮想ＰＬＣシステム設定データ４２Ｙとを備えている。仮想ＰＬＣシステム２００Ｙでは、ライン接続またはスター接続といった伝送路形式で、仮想ＰＬＣ５０Ｃと、仮想ＮＷＵ６０Ｃとが接続されている。
【００２６】
仮想システム設定データである仮想ＰＬＣシステム設定データ４２Ｘは、仮想ＰＬＣシステム２００Ｘに含まれる仮想ＰＬＣ５０Ａ，５０Ｂ、仮想ＮＷＵ６０Ａといった各ユニットの配置情報と、仮想ＰＬＣシステム２００Ｘ内におけるユニット間交信周期と、ネットワーク交信周期とを含んでいる。仮想ＰＬＣシステム２００Ｘ内におけるユニット間交信周期は、仮想ＰＬＣシステム２００Ｘ内のユニット間での交信周期である。ネットワーク交信周期は、ＦＡシステム１５０内のＰＬＣシステム間での交信周期である。
【００２７】
仮想ＰＬＣシステム設定データ４２Ｙは、仮想ＰＬＣシステム２００Ｙに含まれる仮想ＰＬＣ５０Ｃ、仮想ＮＷＵ６０Ｃといった各ユニットの配置情報と、仮想ＰＬＣシステム２００Ｙ内におけるユニット間交信周期と、ネットワーク交信周期とを含んでいる。仮想ＰＬＣシステム２００Ｙ内におけるユニット間交信周期は、仮想ＰＬＣシステム２００Ｙ内のユニット間での交信周期である。
【００２８】
実ＰＬＣシステム１００は、実ＰＬＣ１０と、実ＮＷＵ２０と、実ＰＬＣシステム設定データ４１とを備えている。実ＰＬＣシステム１００は、複数のユニットが装着されるベースユニットを備えており、このベースユニットに、実ＰＬＣ１０と、実ＮＷＵ２０とが装着されている。実ＰＬＣシステム設定データ４１は、ベースユニットに装着される何れかのユニット内に格納されている。実システム設定データである実ＰＬＣシステム設定データ４１は、実ＰＬＣシステム１００に含まれる実ＰＬＣ１０、実ＮＷＵ２０といった各ユニットの配置情報と、実ＰＬＣシステム１００内におけるユニット間交信周期と、ネットワーク交信周期とを含んでいる。実ＰＬＣシステム１００内におけるユニット間交信周期は、実ＰＬＣシステム１００内のユニット間での交信周期である。
【００２９】
なお、実ＰＬＣシステム１００がマスタのＰＬＣシステムであり、仮想ＰＬＣシステム２００ＸがローカルのＰＬＣシステムである場合、シミュレーション部３は、実ＰＬＣシステム１００から仮想ＰＬＣシステム設定データ４２Ｘを取得してもよい。マスタのＰＬＣシステムは、ローカルのＰＬＣシステムから種々のデータを収集するとともに、収集したデータに基づいて、ローカルのＰＬＣシステムを制御するＰＬＣシステムである。シミュレーション部３が、実ＰＬＣシステム１００から仮想ＰＬＣシステム設定データ４２Ｘを取得する場合、仮想ＰＬＣシステム２００Ｘは、ブリッジ３２および通信ボード３１を介して、実ＰＬＣシステム１００から仮想ＰＬＣシステム設定データ４２Ｘを受信する。また、シミュレーション部３は、仮想ＰＬＣシステム２００Ｘに、実ＰＬＣシステム設定データ４１を取得させ、取得した実ＰＬＣシステム設定データ４１に基づいて、仮想ＰＬＣシステム設定データ４２Ｘを生成してもよい。
【００３０】
仮想ＰＬＣ５０Ａは、ＰＬＣ設定データ５１Ａと、ＰＬＣプログラム５２Ａと、プログラム実行部５３Ａと、仮想時計５４Ａと、ユニット間交信部５５Ａと、ツール通信部５６Ａとを有している。
【００３１】
仮想ＰＬＣ５０Ｂは、ＰＬＣ設定データ５１Ｂと、ＰＬＣプログラム５２Ｂと、プログラム実行部５３Ｂと、仮想時計５４Ｂと、ユニット間交信部５５Ｂと、ツール通信部５６Ｂとを有している。
【００３２】
仮想ＰＬＣ５０Ｃは、ＰＬＣ設定データ５１Ｃと、ＰＬＣプログラム５２Ｃと、プログラム実行部５３Ｃと、仮想時計５４Ｃと、ユニット間交信部５５Ｃと、ツール通信部５６Ｃとを有している。
【００３３】
実ＰＬＣ１０は、ＰＬＣ設定データ１１と、ＰＬＣプログラム１２と、プログラム実行部１３と、時計１４と、ユニット間交信部１５Ｃと、ツール通信部１６とを有している。
【００３４】
仮想ＮＷＵ６０Ａは、外部装置との通信を行うユニットであり、ＮＷＵ設定データ６１と、ユニット間交信部６２Ａと、仮想時計６３Ａと、ネットワーク交信部６４Ａと、メモリ６５Ａとを備えている。仮想ＮＷＵ６０Ｃは、ＮＷＵ設定データ６１と、ユニット間交信部６２Ｃと、仮想時計６３Ｃと、ネットワーク交信部６４Ｃと、メモリ６５Ｃとを備えている。実ＮＷＵ２０は、ＮＷＵ設定データ６１と、ユニット間交信部２２と、時計２３と、ネットワーク交信部２４と、メモリ２５とを備えている。
【００３５】
仮想ＰＬＣ５０Ａ〜５０Ｃは、同様の構成要素を有しているので、ここでは仮想ＰＬＣ５０Ａの構成要素について説明する。また、仮想ＮＷＵ６０Ａ，６０Ｃは、同様の構成要素を有しているので、ここでは仮想ＮＷＵ６０Ａの構成要素について説明する。
【００３６】
ＰＬＣ設定データ５１Ａは、仮想ＰＬＣ５０Ａが動作する際に用いられるデータである。ＰＬＣ設定データ５１Ａは、仮想ＰＬＣ５０Ａが動作する際の動作条件といった種々の情報を含んでいる。
【００３７】
ＰＬＣプログラム５２Ａは、仮想ＰＬＣ５０Ａが模擬動作する際に用いられるプログラムである。ＰＬＣプログラム５２Ａは、仮想ＰＬＣ５０Ａに対応する実ＰＬＣを動作させる際に用いるＰＬＣプログラムと同じプログラムである。ＰＬＣプログラム５２Ａの例は、ラダープログラムといったシーケンスプログラムである。
【００３８】
プログラム実行部５３Ａは、ＰＬＣプログラム５２Ａを実行する。また、プログラム実行部５３Ａは、ツール通信部５６Ａから設定情報が送信されてきた場合には、設定情報を用いてＰＬＣプログラム５２Ａを実行する。また、プログラム実行部５３Ａは、ＰＬＣプログラム５２Ａの実行状況に従って仮想時計５４Ａの時刻を進行させる。プログラム実行部５３Ａは、ＰＬＣプログラム５２Ａの実行を開始すると、実行済みの命令に対応する消費時間を仮想時計５４Ａに送信する。
【００３９】
仮想時計５４Ａは、プログラム実行部５３ＡによるＰＬＣプログラム５２Ａの実行状況に基づいて時刻が進められる仮想的な時計である。仮想時計５４Ａでは、仮想ＰＬＣ５０Ａがリセットされた時刻が０である。仮想時計５４Ａは、ＰＬＣプログラム５２Ａの実行が開始されると、ＰＬＣプログラム５２Ａ内の命令ごとに決められた消費時間を累算していく。これにより、仮想時計５４Ａは、実行済みの命令に対応する時刻データを保持する。
【００４０】
ユニット間交信部５５Ａは、仮想ＰＬＣシステム設定データ４２Ｘに含まれるユニット識別子に基づいて、仮想ＰＬＣシステム２００Ｘ内の他のユニットとの間でデータ通信を実行する。この場合において、ユニット間交信部５５Ａは、仮想時計５４Ａと仮想ＰＬＣシステム設定データ４２Ｘに含まれるユニット間交信周期とに従って、仮想ＰＬＣシステム２００Ｘ内の他のユニットとの間でデータ通信を実行する。ここでのユニット間交信部５５Ａは、仮想ＰＬＣ５０Ｂとの間のデータ通信と、仮想ＮＷＵ６０Ａとの間のデータ通信とを実行する。
【００４１】
ユニット間交信部５５Ａは、ＰＬＣプログラム５２Ａを実行しているプログラム実行部５３Ａから、仮想ＰＬＣ５０Ｂへのデータ送信指示があると、仮想ＰＬＣ５０Ａを送信元として、仮想ＰＬＣ５０Ｂのユニット間交信部５５Ｂにデータを送信する。
【００４２】
また、ユニット間交信部５５Ａは、ＰＬＣプログラム５２Ａを実行しているプログラム実行部５３Ａから、仮想ＮＷＵ６０Ａへのデータ送信指示があると、仮想ＰＬＣ５０Ａを送信元として、仮想ＮＷＵ６０Ａのユニット間交信部６２Ａにデータを送信する。
【００４３】
また、ユニット間交信部５５Ａは、ＰＬＣプログラム５２Ａを実行しているプログラム実行部５３Ａから、他のＰＬＣシステムへのデータ送信指示があると、送信対象のデータにユニットの宛先と送信元の仮想ＰＬＣ５０Ａのアドレスとを付与して仮想ＮＷＵ６０Ａのユニット間交信部６２Ａに送信する。ユニットの宛先は、第１の識別情報であるネットワーク番号および第２の識別情報である局番で指定される。ネットワーク番号および局番については後述する。
【００４４】
また、ユニット間交信部５５Ａは、ユニット間交信部５５Ｂまたはユニット間交信部６２Ａから送られてくるデータを受信する。なお、ユニット間交信部５５Ａは、ユニット間交信部５５Ｂまたはユニット間交信部６２Ａからデータを読み出してもよい。
【００４５】
ユニット間交信部５５Ａは、ＰＬＣ設定データ５１Ａと、仮想時計５４Ａから読み出した時刻データとに基づいて、仮想ＰＬＣ５０Ｂおよび仮想ＮＷＵ６０Ａの間で時刻同期を実行する。これにより、仮想時計５４Ａと、仮想時計５４Ｂと、仮想時計６３Ａとの間で、仮想時計のすり合せが行われる。
【００４６】
ツール通信部５６Ａは、図示しないエンジニアリングツールとの間でデータ通信を実行する。エンジニアリングツールは、仮想ＰＬＣ５０Ａを動作させる際の種々の設定を行うためのツールである。ユーザからの指示に従ってエンジニアリングツールが種々の設定を行うと、ツール通信部５６Ａは、エンジニアリングツールで設定された設定情報を受信する。設定情報の例は、ＰＬＣ設定データ５１Ａへの設定情報およびＰＬＣプログラム５２Ａへの設定情報である。
【００４７】
ＮＷＵ設定データ６１は、仮想ＰＬＣシステム２００Ｘ内の各ユニットのアドレスと、局番との対応関係を含んでいる。仮想ＰＬＣシステム２００Ｘ内では、局番が指定されることによって、仮想ＰＬＣシステム２００Ｘ内のユニットのアドレスを特定することができる。
【００４８】
ユニット間交信部６２Ａは、ユニット間交信部５５Ａと同様の機能を有している。また、ユニット間交信部６２Ａは、実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｙから仮想ＰＬＣ５０Ａ，５０Ｂへのデータがメモリ６５Ａに格納されている場合、このデータの宛先である仮想ＰＬＣ５０Ａまたは仮想ＰＬＣ５０Ｂにデータを送信する。また、ユニット間交信部６２Ａは、仮想ＰＬＣ５０Ａ，５０Ｂから実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｙを宛先としたデータを受信した場合には、このデータをメモリ６５Ａに格納する。また、ユニット間交信部６２Ａは、仮想ＮＷＵ６０Ａを宛先としたデータがメモリ６５Ａに格納されている場合、このデータを仮想ＮＷＵ６０Ａ内のメモリ６５Ａ以外のメモリに格納する。また、ユニット間交信部６２Ａは、仮想ＰＬＣ５０Ａ，５０Ｂから仮想ＮＷＵ６０Ａを宛先としたデータを受信すると、受信したデータを仮想ＮＷＵ６０Ａ内のメモリ６５Ａ以外のメモリに格納する。
【００４９】
仮想時計６３Ａは、仮想時計５４Ｂと同様の機能を有している。ネットワーク交信部６４Ａは、仮想ＰＬＣシステム設定データ４２Ｘ内に含まれるネットワーク交信周期に従って、実ＰＬＣシステム１００および仮想ＰＬＣシステム２００Ｙとの間の交信を行う。ネットワーク交信部６４Ａは、実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｙから送信されてきたデータをメモリ６５Ａに格納する。また、ネットワーク交信部６４Ａは、メモリ６５Ａに格納されている実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｙへのデータをブリッジ３２に送信する。
【００５０】
メモリ６５Ａは、実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｙから送られてきたデータを格納し、仮想ＰＬＣ５０Ａ，５０Ｂに送られてきたデータを格納する。メモリ６５Ａは、ブリッジ３２からデータを受信し、ブリッジ３２にデータを送信する。
【００５１】
なお、仮想ＰＬＣシステム２００Ｘ，２００Ｙ、実ＰＬＣシステム１００は、仮想の電源ユニット、仮想の入力ユニット、または仮想の出力ユニットを備えていてもよい。電源ユニットは、ＰＬＣシステムに電源供給を行うユニットであり、入力ユニットは、生産装置または設備装置に取り付けられたスイッチまたはセンサの信号を受付けるユニットであり、出力ユニットは、アクチュエータといった外部装置に制御指示を出力するユニットである。
【００５２】
また、仮想ＰＬＣシステム２００Ｘは、１つの仮想ＰＬＣを有していてもよいし、３つ以上の仮想ＰＬＣを有していてもよい。また、仮想ＰＬＣシステム２００Ｙは、複数の仮想ＰＬＣを有していてもよい。また、実ＰＬＣシステム１００は、複数の実ＰＬＣを有していてもよい。
【００５３】
ブリッジ３２は、実ＰＬＣシステム１００から送信されてきたデータを、データの宛先に基づいて、仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙに送信する。また、ブリッジ３２は、仮想ＰＬＣシステム２００Ｘから送信されてきたデータを、データの宛先に基づいて、通信ボード３１または仮想ＰＬＣシステム２００Ｙに送信する。また、ブリッジ３２は、仮想ＰＬＣシステム２００Ｙから送信されてきたデータを、データの宛先に基づいて、通信ボード３１または仮想ＰＬＣシステム２００Ｘに送信する。
【００５４】
通信ボード３１は、仮想環境３００で用いられている仮想ＰＬＣネットワークの第１の通信プロトコルである通信プロトコルと、実ＰＬＣシステム１００で用いられている実ＰＬＣネットワークの第２の通信プロトコルである通信プロトコルと、の間のプロトコル変換を行う。
【００５５】
実ＰＬＣ１０は、仮想ＰＬＣ５０Ａ〜５０Ｃと同様の構成要素を有している。仮想ＰＬＣ５０Ａ〜５０Ｃの構成要素は、仮想的な構成要素であるのに対し、実ＰＬＣ１０の構成要素は、実際の装置としての構成要素である。したがって、仮想ＰＬＣ５０Ａ〜５０Ｃが備える仮想時計５４Ａ〜５４Ｃは、仮想的な時計であるのに対し、実ＰＬＣ１０が備える時計１４は、実際の時計である。
【００５６】
また、実ＮＷＵ２０は、仮想ＮＷＵ６０Ａ，６０Ｃと同様の構成要素を有している。仮想ＮＷＵ６０Ａ，６０Ｃの構成要素は、仮想的な構成要素であるのに対し、実ＮＷＵ２０の構成要素は、実際の装置としての構成要素である。したがって、仮想ＮＷＵ６０Ａ，６０Ｃが備える仮想時計６３Ａ，６３Ｃは、仮想的な時計であるのに対し、実ＮＷＵ２０が備える時計２３は、実際の時計である。
【００５７】
なお、仮想ＰＬＣシステム２００Ｘ，２００Ｙは、複数の仮想ＮＷＵを備えていてもよい。また、実ＰＬＣシステム１００は、複数の実ＮＷＵを備えていてもよい。１つのＰＬＣシステムが複数のＮＷＵを備えることにより、ＰＬＣシステムは、設定の異なる複数のネットワークに接続することが可能となる。
【００５８】
ここで、ブリッジ３２および通信ボード３１の構成について説明する。図４は、実施の形態にかかる仮想ＰＬＣシステムが備える接続部の第１の構成例を示す図である。
【００５９】
接続部３０Ａは、実環境３０１と仮想環境３００とを接続する。実環境３０１には、実ＰＬＣシステム１００が配置され、仮想環境３００には、仮想ＰＬＣシステム２００Ｘ，２００Ｙが配置されている。
【００６０】
接続部３０Ａは、ソフトウエアまたはファームウエアで実現されるブリッジ３２と、専用のハードウエアで実現される通信ボード３１とを有している。ブリッジ３２は、通信ボード３１に接続され、通信ボード３１は、実ＰＬＣシステム１００に接続されている。
【００６１】
通信ボード３１は、実ＰＬＣシステム１００から送られてくるデータに基づいて、実ＰＬＣシステム１００で用いられている実ＰＬＣネットワークの通信プロトコルを特定する。また、通信ボード３１は、仮想ＰＬＣシステム２００Ｘ，２００Ｙで用いられている仮想ＰＬＣネットワークの通信プロトコルを記憶している。
【００６２】
通信ボード３１は、実ＰＬＣシステム１００と仮想ＰＬＣシステム２００Ｘ，２００Ｙとの間でデータを送受信する際に、データのプロトコル変換を行う。仮想ＰＬＣシステム２００Ｘ，２００Ｙで用いられる仮想ＰＬＣネットワークの通信プロトコルの一例は、ＴＣＰ／ＩＰ（Transmission  Control  Protocol/Internet  Protocol）である。
【００６３】
通信ボード３１は、ブリッジ３２からデータが送られてきた場合には、送られてきたデータを、実ＰＬＣシステム１００が用いる通信プロトコルに変換して実ＰＬＣシステム１００に送信する。また、通信ボード３１は、実ＰＬＣシステム１００からデータが送られてきた場合には、送られてきたデータを、仮想ＰＬＣシステム２００Ｘ，２００Ｙが用いる通信プロトコルに変換してブリッジ３２に送信する。
【００６４】
ブリッジ３２は、データ解析部３３と、データ作成部３４と、記憶部３５とを備えている。記憶部３５は、ネットワーク番号と仮想ＮＷＵ６０Ａ，６０Ｃのアドレスとの対応関係を記憶しておく。具体的には、記憶部３５は、仮想ＰＬＣシステム２００Ｘのネットワーク番号と仮想ＮＷＵ６０Ａのアドレスとの対応関係と、仮想ＰＬＣシステム２００Ｙのネットワーク番号と仮想ＮＷＵ６０Ｃのアドレスとの対応関係とを記憶しておく。
【００６５】
ブリッジ３２は、記憶部３５が記憶している情報に基づいて、実ＰＬＣシステム１００と、仮想ＰＬＣシステム２００Ｘと、仮想ＰＬＣシステム２００Ｙとの間のデータ中継を行う。
【００６６】
データ解析部３３は、仮想ＰＬＣシステム２００Ｘから、実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｙを宛先としたデータを受信する。また、データ解析部３３は、仮想ＰＬＣシステム２００Ｙから、実ＰＬＣシステム１００または仮想ＰＬＣシステム２００Ｘを宛先としたデータを受信する。また、データ解析部３３は、実ＰＬＣシステム１００から通信ボード３１を介して、仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙを宛先としたデータを受信する。
【００６７】
データ解析部３３は、ネットワーク番号と仮想ＮＷＵのアドレスとの対応関係に基づいて、受信したデータを、実ＰＬＣシステム１００、仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙの何れかに振り分ける。
【００６８】
データ解析部３３は、仮想ＰＬＣシステム２００Ｙから受信したデータの宛先が仮想ＰＬＣシステム２００Ｘ内のユニットである場合、受信したデータを仮想ＮＷＵ６０Ａのメモリ６５Ａに書き込む。また、データ解析部３３は、仮想ＰＬＣシステム２００Ｘから受信したデータの宛先が仮想ＰＬＣシステム２００Ｙ内のユニットである場合、受信したデータを仮想ＮＷＵ６０Ｃのメモリ６５Ｃに書き込む。
【００６９】
また、データ解析部３３は、仮想ＰＬＣシステム２００Ｘ，２００Ｙから受信したデータの宛先が実ＰＬＣシステム１００内のユニットである場合、受信したデータをデータ作成部３４に送信し、データ作成部３４からフォーマット変換後のデータを受信する。データ解析部３３は、データの宛先が実ＰＬＣシステム１００内のユニットである場合、フォーマット変換後のデータを通信ボード３１に送信する。
【００７０】
また、データ解析部３３は、実ＰＬＣシステム１００から受信したデータの宛先が仮想ＰＬＣシステム２００Ｘ，２００Ｙ内のユニットである場合、受信したデータをデータ作成部３４に送信し、データ作成部３４からフォーマット変換後のデータを受信する。以下、フォーマット変換前のデータと、フォーマット変換後のデータとをともにデータという場合がある。
【００７１】
データ解析部３３は、受信したデータの宛先が仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙである場合、宛先のネットワーク番号に対応する仮想ＮＷＵのアドレスを特定する。そして、データ解析部３３は、特定した仮想ＮＷＵのアドレスに対してデータを送信する。具体的には、データ解析部３３は、データの宛先が、仮想ＰＬＣシステム２００Ｘ内のユニットである場合、受信したデータを仮想ＮＷＵ６０Ａのメモリ６５Ａに書き込む。また、データ解析部３３は、データの宛先が、仮想ＰＬＣシステム２００Ｙ内のユニットである場合、受信したデータを仮想ＮＷＵ６０Ｃのメモリ６５Ｃに書き込む。
【００７２】
これにより、データの宛先が仮想ＰＬＣ５０Ａ，５０Ｂまたは仮想ＮＷＵ６０Ａである場合、データ解析部３３は、データを仮想ＮＷＵ６０Ａのメモリ６５Ａに送信する。また、データの宛先が仮想ＰＬＣ５０Ｃまたは仮想ＮＷＵ６０Ｃである場合、データ解析部３３は、データを仮想ＮＷＵ６０Ｃのメモリ６５Ｃに送信する。
【００７３】
データ作成部３４は、実ＰＬＣシステム１００から受信したデータの宛先が仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙ内のユニットである場合、受信したデータを、仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙ内で処理可能なデータにフォーマット変換する。
【００７４】
データ作成部３４は、仮想ＰＬＣシステム２００Ｘまたは仮想ＰＬＣシステム２００Ｙから受信したデータの宛先が実ＰＬＣシステム１００内のユニットである場合、受信したデータを、実ＰＬＣシステム１００内で処理可能なデータにフォーマット変換する。
【００７５】
図５は、実施の形態にかかる仮想ＰＬＣシステムが備える接続部の第２の構成例を示す図である。図５の各構成要素のうち図４に示す接続部３０Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００７６】
接続部３０Ｂは、実ＰＬＣシステム１００および仮想ＰＬＣシステム２００Ｘ，２００Ｙに接続されている。接続部３０Ｂは、通信ボード３１の代わりに、通信部の一例であるソフトウエアプロトコルスタック２９を有している。すなわち、接続部３０Ｂは、ソフトウエアまたはファームウエアで実現されるブリッジ３２と、ソフトウエアまたはファームウエアで実現されるソフトウエアプロトコルスタック２９とを有している。ブリッジ３２は、ソフトウエアプロトコルスタック２９に接続され、ソフトウエアプロトコルスタック２９は、実ＰＬＣシステム１００に接続されている。
【００７７】
ソフトウエアプロトコルスタック２９は、通信ボード３１と同様の機能を有している。通信ボード３１は、ハードウエアでプロトコル変換を行うのに対し、ソフトウエアプロトコルスタック２９は、ソフトウエアまたはファームウエアでプロトコル変換を行う。すなわち、ソフトウエアプロトコルスタック２９は、ソフトウエアまたはファームウエアで、実ＰＬＣシステム１００の通信プロトコルと、仮想ＰＬＣシステム２００Ｘ，２００Ｙの通信プロトコルとの間のプロトコル変換を行う。
【００７８】
つぎに、仮想ＰＬＣシステム２００Ｘ，２００Ｙと実ＰＬＣシステム１００との間のデータ中継処理手順について説明する。以下の図６および図７では、通信ボード３１を用いて、実ＰＬＣシステム１００と仮想ＰＬＣシステム２００Ｘとの間でデータ中継が行われる場合について説明する。
【００７９】
図６は、実施の形態にかかるシミュレーション装置によるＰＬＣシステム間の第１のデータ中継処理手順を示すフローチャートである。図６では、宛先を仮想ＰＬＣシステム２００Ｘの仮想ＰＬＣ５０Ａとしたデータが、実ＰＬＣシステム１００から送信されてきた場合のデータ中継処理について説明する。
【００８０】
通信ボード３１は、実ＰＬＣシステム１００からネットワーク番号および局番が付与されたデータを受信する（ステップＳ１０）。通信ボード３１は、実ＰＬＣシステム１００からのデータを、仮想ＰＬＣシステム２００Ｘで用いられる通信プロトコルにプロトコル変換する（ステップＳ１１）。通信ボード３１は、プロトコル変換後のデータをデータ解析部３３に送信する。
【００８１】
データ解析部３３は、実ＰＬＣシステム１００からのデータをデータ作成部３４に送信する。データ作成部３４は、実ＰＬＣシステム１００からのデータを仮想ＰＬＣシステム２００Ｘ内で処理可能なデータにフォーマット変換してデータ解析部３３に送信する。
【００８２】
データ解析部３３は、実ＰＬＣシステム１００からのデータに付与されているネットワーク番号に基づいて、実ＰＬＣシステム１００からのデータを格納する仮想ＮＷＵのアドレスを特定する。すなわち、データ解析部３３は、ネットワーク番号に対応する仮想ＮＷＵのアドレスを特定する。ここでのデータ解析部３３は、ネットワーク番号に対応する仮想ＮＷＵのアドレスとして仮想ＮＷＵ６０Ａのアドレスを特定する。そして、データ解析部３３は、ネットワーク番号に対応する仮想ＮＷＵ６０Ａに、実ＰＬＣシステム１００からのデータを送信する（ステップＳ１２）。
【００８３】
この後、データが書き込まれた仮想ＮＷＵ６０Ａは、実ＰＬＣシステム１００からのデータに付与されている局番に対応するユニットにデータを送信する（ステップＳ１３）。具体的には、仮想ＮＷＵ６０Ａがデータの宛先となっているユニットを特定する。すなわち、データ解析部３３は、局番に対応するユニットのアドレスを特定する。ここでのデータ解析部３３は、局番に対応するユニットのアドレスとして仮想ＰＬＣ５０Ａのアドレスを特定する。そして、データ解析部３３は、局番に対応する仮想ＰＬＣ５０Ａに、実ＰＬＣシステム１００からのデータを送信する。
【００８４】
図７は、実施の形態にかかるシミュレーション装置によるＰＬＣシステム間の第２のデータ中継処理手順を示すフローチャートである。図７では、宛先を実ＰＬＣシステム１００の実ＰＬＣ１０としたデータが、仮想ＰＬＣシステム２００Ｘから送信されてきた場合のデータ中継処理について説明する。
【００８５】
データ解析部３３は、仮想ＰＬＣシステム２００Ｘの仮想ＮＷＵ６０Ａから、ネットワーク番号および局番が付与されたデータを受信する（ステップＳ２１）。ここでのネットワーク番号は、実ＰＬＣシステム１００に対応するものであり、局番は、実ＰＬＣ１０に対応するものである。
【００８６】
データ解析部３３は、仮想ＮＷＵ６０Ａからのデータをデータ作成部３４に送信する。データ作成部３４は、仮想ＮＷＵ６０Ａからのデータを実ＰＬＣシステム１００内で処理可能なデータにフォーマット変換してデータ解析部３３に送信する。
【００８７】
データ解析部３３は、フォーマット変換されたデータを通信ボード３１に送信する。通信ボード３１は、データ解析部３３からのデータを、実ＰＬＣシステム１００で用いられる通信プロトコルにプロトコル変換する（ステップＳ２２）。
【００８８】
データ解析部３３は、仮想ＰＬＣシステム２００Ｘからのデータに付与されているネットワーク番号に基づいて、仮想ＰＬＣシステム２００Ｘからのデータを格納する実ＮＷＵのアドレスを特定する。すなわち、データ解析部３３は、ネットワーク番号に対応する実ＮＷＵのアドレスを特定する。ここでのデータ解析部３３は、ネットワーク番号に対応する実ＮＷＵのアドレスとして実ＮＷＵ２０のアドレスを特定する。そして、データ解析部３３は、ネットワーク番号に対応する実ＮＷＵ２０に、仮想ＰＬＣシステム２００Ｘからのデータを送信する（ステップＳ２３）。これにより、実ＰＬＣシステム１００の実ＮＷＵ２０が、ネットワーク番号および局番が付与されたデータを受信し、実ＮＷＵ２０が、受信したデータを実ＰＬＣ１０に送信する。
【００８９】
仮想ＰＬＣシステム２００Ｘ，２００Ｙの模擬動作の結果は、表示制御部６が表示装置８に表示させる。これにより、ユーザは、仮想ＰＬＣシステム２００Ｘ，２００Ｙの模擬動作の結果を確認することができる。また、実ＰＬＣシステム１００の動作結果は、ユーザが実ＰＬＣシステム１００を見ることによって確認することができる。
【００９０】
ＦＡシステム１５０が構築される場合、最終的には、シミュレーション装置７によって模擬動作が行われた実ＰＬＣシステムが作製され、この実ＰＬＣシステムが、実ＰＬＣシステム１００−１〜１００−３に接続される。この場合において、シミュレーション装置７が無ければ、ＦＡシステム１５０を構成する全ての実ＰＬＣシステムが完成するまで、ＦＡシステム１５０の動作を確認できない。
【００９１】
一方、本実施の形態では、シミュレーション装置７を用いて模擬動作を実行しているので、ＦＡシステム１５０を構成する全ての実ＰＬＣシステムが完成する前に、ＦＡシステム１５０の動作を確認できる。これにより、完成済みの実ＰＬＣシステム１００−１〜１００−３に対しては、残りのＰＬＣシステムが完成するまでの間に仮想ＰＬＣシステム２００Ｘ，２００Ｙとの間で互いにやりとりしながら行われる動作の確認を行うことができる。したがって、未完成の実ＰＬＣシステムがあってもＦＡシステム１５０の動作確認を開始できるので、最終的なＦＡシステム１５０の動作確認を早期に完了させることができる。また、シミュレーション装置７を用いてＦＡシステム１５０の動作確認を行うので、低コストでＦＡシステム１５０の動作確認を行うことができる。
【００９２】
例えば、実ＰＬＣシステム１００の一例である装置ａが完成しており、実ＰＬＣシステム１００の一例である装置ｂが完成していない状態であっても、本実施の形態では、シミュレーション装置７が装置ｂを模擬動作させることができるので、装置ａと装置ｂとの間の動作確認のテストを行うことができる。これにより、テスト工期を短縮することができる。
【００９３】
また、装置ａをＡ県で作製し、装置ｂをＢ県で作製しており、装置ａ，ｂの据え付けをＣ県で行う場合に、Ｃ県での据え付け前に、装置ａがＡ県にあり、装置ｂがＢ県にある状態で、装置ａと装置ｂとの間の動作確認のテストを行うことができる。この場合、Ａ県では、シミュレーション装置７が、装置ｂの動作を模擬して実際の装置ａとの間の動作を確認し、Ｂ県では、シミュレーション装置７が、装置ａの動作を模擬して実際の装置ｂとの間の動作を確認する。これにより、テスト工期を短縮することができる。
【００９４】
また、シミュレーション装置７は、実際に発生すると装置ａ，ｂが壊れてしまうような異常ケースのテストを行うことができるので、テスト範囲を拡大することができる。
【００９５】
なお、本実施の形態では、１つのコンピュータであるシミュレーション装置７が、複数の仮想ＰＬＣシステムである仮想ＰＬＣシステム２００Ｘ，２００Ｙを構築する場合について説明したが、複数のコンピュータで複数の仮想ＰＬＣシステムを構築してもよい。この場合、１つのコンピュータで１つの仮想ＰＬＣシステムを構築し、各コンピュータが接続される。接続されたコンピュータ間におけるデータの送受信および同期には、ＴＣＰ／ＩＰなどが用いられる。
【００９６】
ここで、シミュレーション装置７のハードウエア構成について説明する。図８は、実施の形態にかかるシミュレーション装置を実現するハードウエア構成を示す図である。シミュレーション装置７は、プロセッサ４０１、メモリ４０２、入力装置４０３、および通信装置４０４を含むハードウエア４００で実現される。
【００９７】
入力装置４０３は、シミュレーション装置７に対して文字を含む各種情報を入力するための装置であり、キーボード、マウス、ポインティングデバイスおよびタッチパネルが例示されるが、これらに限定されるものではない。また、入力装置４０３は、ユーザによる各種操作を受け付ける場合に使用される。
【００９８】
通信装置４０４は、実ＰＬＣシステム群１０１Ｘとの間で通信を実行する。通信ボード３１は、通信装置４０４によって実現される。
【００９９】
シミュレーション部３は、プロセッサ４０１およびメモリ４０２により実現される。プロセッサ４０１は、ＣＰＵ（Central  Processing  Unit：中央処理装置）、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はＤＳＰ（Digital  Signal  Processor）ともいう。記憶部２は、メモリ４０２により実現される。メモリ４０２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）などを含んでいる。
【０１００】
プロセッサ４０１は、メモリ４０２に記憶されたプログラムを読み出して実行することにより、シミュレーション部３の機能を実現する。このプログラムは、シミュレーション部３が実行する手順をコンピュータに実行させるものであるともいえる。すなわち、シミュレーション部３の機能は、ソフトウエア、ファームウエア、又はソフトウエアとファームウエアとの組合せにより実現される。ソフトウエア及びファームウエアはプログラムとして記述され、メモリ４０２に記憶される。
【０１０１】
なお、シミュレーション部３の機能について、一部を専用のハードウエアで実現し、一部をソフトウエアまたはファームウエアで実現するようにしてもよい。また、ソフトウエアプロトコルスタック２９も、シミュレーション部３と同様の構成を有したハードウエア４００で実現することができる。
【０１０２】
このように実施の形態によれば、接続部３０Ａが、実環境３０１と仮想環境３００との間でプロトコル変換を行うので、実ＰＬＣシステム１００と仮想ＰＬＣシステム２００Ｘ，２００Ｙとの間でデータを送受信することができる。これにより、実ＰＬＣ１０と仮想ＰＬＣ５０Ａ〜５０Ｃとの間を相互干渉させることができる。したがって、ＦＡシステム１５０の全体を実環境で構築することなく、実ＰＬＣ１０と仮想ＰＬＣ５０Ａ〜５０Ｃとの間で行われる動作を確認することができる。
【０１０３】
また、ＦＡシステム１５０の全体を実環境で構築することなく、仮想ＰＬＣシステム設定データ４２Ｘ，４２Ｙ、および実ＰＬＣシステム設定データ４１を用いたＦＡシステム１５０の動作を確認することができる。また、ＦＡシステム１５０の全体を実環境で構築することなく、ＰＬＣプログラム１２，５２Ａ，５２Ｂ，５２Ｃで得られる演算結果を用いてＦＡシステム１５０の動作を確認することができる。
【０１０４】
また、データ解析部３３が、実ＰＬＣシステム群１０１Ｘからのデータを、データに付与されているネットワーク番号に基づいて、仮想ＰＬＣシステム２００Ｘ，２００Ｙの何れかに振り分けるので、複数の実ＰＬＣシステムと複数の仮想ＰＬＣシステムとの間でデータ中継を行うことができる。
【０１０５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１０６】
１  入力部、２  記憶部、３  シミュレーション部、６  表示制御部、７  シミュレーション装置、８  表示装置、１０  実ＰＬＣ、１１，５１Ａ，５１Ｂ，５１Ｃ  ＰＬＣ設定データ、１２，５２Ａ，５２Ｂ，５２Ｃ  ＰＬＣプログラム、１３，５３Ａ，５３Ｂ，５３Ｃ  プログラム実行部、１４，２３  時計、１５Ｃ，２２，５５Ａ，５５Ｂ，５５Ｃ，６２Ａ，６２Ｃ  ユニット間交信部、１６，５６Ａ，５６Ｂ，５６Ｃ  ツール通信部、２０  実ＮＷＵ、２４，６４Ａ，６４Ｃ  ネットワーク交信部、２５，６５Ａ，６５Ｃ  メモリ、２９  ソフトウエアプロトコルスタック、３０Ａ，３０Ｂ  接続部、３１  通信ボード、３２  ブリッジ、３３  データ解析部、３４  データ作成部、３５  記憶部、４１  実ＰＬＣシステム設定データ、４２Ｘ，４２Ｙ  仮想ＰＬＣシステム設定データ、５０Ａ，５０Ｂ，５０Ｃ  仮想ＰＬＣ、５４Ａ，５４Ｂ，５４Ｃ，６３Ａ，６３Ｃ  仮想時計、６０Ａ，６０Ｃ  仮想ＮＷＵ、６１  ＮＷＵ設定データ、１００，１００−１，１００−２，１００−３  実ＰＬＣシステム、１５０  ＦＡシステム、２００Ｘ，２００Ｙ  仮想ＰＬＣシステム、３００  仮想環境、３０１  実環境。
【図１】
2019220605.tif 000003
【図２】
2019220605.tif 000004
【図３】
2019220605.tif 000005
【図４】
2019220605.tif 000006
【図５】
2019220605.tif 000007
【図６】
2019220605.tif 000008
【図７】
2019220605.tif 000009
【図８】
2019220605.tif 000010
【手続補正書】
【提出日】平成31年4月26日(2019.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラの動作を模擬する仮想プログラマブルロジックコントローラと、他のコントローラシステムとの間で第１の通信プロトコルで通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想コントローラシステムを構築し、前記仮想コントローラシステムの模擬動作にかかる演算を行うシミュレーション部と、
実機の実プログラマブルロジックコントローラと、他のコントローラシステムとの間で第２の通信プロトコルで通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実コントローラシステムに接続し、前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行うことによって、前記仮想コントローラシステムと前記第１の実コントローラシステムとの間でデータ中継を行う通信部と、
を備え、
前記シミュレーション部は、前記仮想コントローラシステムに対応する第２の実コントローラシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、前記通信部を介して前記第１の実コントローラシステムから受信したデータを用いて、前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とするシミュレーション装置。
【請求項２】
前記シミュレーション部による模擬動作の結果を表示制御する表示制御部をさらに備える、
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記仮想コントローラシステムは複数であり、
前記シミュレーション部は、前記通信部を介して前記第１の実コントローラシステムから受信したデータを用いて、それぞれの前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とする請求項１または２に記載のシミュレーション装置。
【請求項４】
前記第１の実コントローラシステムは複数であり、
前記シミュレーション部は、前記通信部を介して複数の前記第１の実コントローラシステムから受信したデータを用いて、前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とする請求項１から３の何れか１つに記載のシミュレーション装置。
【請求項５】
前記実プログラマブルロジックコントローラから送られてくるデータには、前記仮想コントローラシステムを識別する第１の識別情報が含まれ、
前記通信部は、前記第１の識別情報に対応する前記仮想コントローラシステムに、前記実プログラマブルロジックコントローラから送られてきたデータを送信する、
ことを特徴とする請求項４に記載のシミュレーション装置。
【請求項６】
前記実プログラマブルロジックコントローラから送られてくるデータには、前記仮想コントローラシステム内で前記仮想プログラマブルロジックコントローラと前記仮想ネットワークユニットとを識別する第２の識別情報が含まれ、
前記仮想ネットワークユニットは、前記第２の識別情報が前記仮想プログラマブルロジックコントローラに対応するものであれば、前記実プログラマブルロジックコントローラから送られてきたデータを前記仮想プログラマブルロジックコントローラに送信する、
ことを特徴とする請求項１または２に記載のシミュレーション装置。
【請求項７】
前記通信部は、
前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行う通信ボードとを備えている、
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項８】
前記通信部は、
前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行うソフトウエアプロトコルスタックとを備えている、
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項９】
前記シミュレーション部は、前記仮想コントローラシステム内の構成要素間の接続関係に基づいて、前記仮想コントローラシステムの模擬動作を行う、
ことを特徴とする請求項１から８の何れか１つに記載のシミュレーション装置。
【請求項１０】
前記シミュレーション部は、前記第１の実コントローラシステムに設定されるデータである実システム設定データに基づいて、前記仮想コントローラシステムに設定されるデータである仮想システム設定データを生成する、
ことを特徴とする請求項１から９の何れか１つに記載のシミュレーション装置。
【請求項１１】
プログラマブルロジックコントローラの動作を模擬する仮想プログラマブルロジックコントローラと、他のコントローラシステムとの間で第１の通信プロトコルで通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想コントローラシステムを構築する構築ステップと、
実機の実プログラマブルロジックコントローラと、他のコントローラシステムとの間で第２の通信プロトコルで通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実コントローラシステムに接続した通信部を介して、前記第１の通信プロトコルと前記第２の通信プロトコルとの間のプロトコル変換を行うことによって、前記仮想コントローラシステムと前記第１の実コントローラシステムとの間でデータ中継を行うとともに、前記仮想コントローラシステムに対応する第２の実コントローラシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、前記通信部を介して前記第１の実コントローラシステムから受信したデータを用いて、前記仮想コントローラシステムの模擬動作にかかる演算を行うシミュレーションステップと、
をコンピュータに実行させる、
ことを特徴とするシミュレーションプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述した課題を解決し、目的を達成するために、本発明のシミュレーション装置は、プログラマブルロジックコントローラの動作を模擬する仮想プログラマブルロジックコントローラと、他のコントローラシステムとの間で第１の通信プロトコルで通信を行うユニットであるネットワークユニットの動作を模擬する仮想ネットワークユニットと、を含んだ仮想コントローラシステムを構築し、仮想コントローラシステムの模擬動作にかかる演算を行うシミュレーション部を備える。また、本発明のシミュレーション装置は、実機の実プログラマブルロジックコントローラと、他のコントローラシステムとの間で第２の通信プロトコルで通信を行うユニットである実機の実ネットワークユニットと、を含んだ第１の実コントローラシステムに接続し、第１の通信プロトコルと第２の通信プロトコルとの間のプロトコル変換を行うことによって、仮想コントローラシステムと第１の実コントローラシステムとの間でデータ中継を行う通信部を備える。シミュレーション部は、仮想コントローラシステムに対応する第２の実コントローラシステムを動作させる際に用いられるプログラムと同じプログラムに基づき、通信部を介して第１の実コントローラシステムから受信したデータを用いて、仮想コントローラシステムの模擬動作を行う。
【国際調査報告】
2019220605.tif 000011
2019220605.tif 000012
2019220605.tif 000013