(57)【要約】【課題】シーケンスプログラムを確実かつ容易にシミュレーション可能とすること。【解決手段】シーケンスプログラムのシミュレーションにおいて、パーソナルコンピュータ１側では、動作速度が遅いＰＬＣ２に同期をとってシーケンスプログラムを実行順に実行し、その実行においては、ＰＬＣ２からの入力に基づいて関数演算を実行し、その実行結果をＰＬＣ２に出力する一方、ＰＬＣ２では、Ｉ／Ｏ機器３からの入力をパーソナルコンピュータ１に入力処理し、パーソナルコンピュータ１からの実行結果に基づいてＩ／Ｏ機器３に出力処理をする。【選択図】図２
2009080739.tif 000002
【特許請求の範囲】
【請求項１】
一連のシーケンシャルな制御工程を複数にブロック化し、各ブロックを少なくとも関数演算とＩ／Ｏとのブロックに定義付けすると共に実行番号を付けて結線したシーケンササーキットダイヤグラムで表したシーケンスプログラムをパーソナルコンピュータとＰＬＣとに実装し、
パーソナルコンピュータ側では、当該パーソナルコンピュータよりも動作速度が遅いＰＬＣに同期をとって上記シーケンスプログラムを上記実行番号順に実行すると共に、その実行において、ＰＬＣからの処理依頼に基づいて関数演算ブロックの関数演算を実行し、その実行結果をＰＬＣに渡し、
ＰＬＣ側では、当該パーソナルコンピュータと上記同期をとって上記シーケンスプログラムを上記実行番号順に実行すると共に、その実行において関数演算ブロックの関数演算に関してはパーソナルコンピュータに依頼する、ことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣ（プログラマブルコントローラ）に実装するシーケンスプログラムのシミュレーションを高速実行する方法に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラ（ＰＬＣ）は、工場等に設備される制御機械をシーケンスプログラムに従い制御することができる。
【０００３】
従来一般には、ＰＬＣと、このＰＬＣにより制御される１ないし複数の制御機械と、ＰＬＣと制御機械との間に介在するＩ／Ｏ機器とを含むＰＬＣシステムを構築し、その制御機械のシーケンス制御に必要なシーケンスプログラムをＰＬＣに実装し、実際に、シーケンスプログラム上で必要なデータを与えてＩ／Ｏ機器を介して制御機械のシーケンス制御を行うことで、当該シーケンスプログラムのシミュレーションテストを実施する。
【０００４】
このようなシミュレーションテストでは、ＰＬＣにパーソナルコンピュータを接続し、このパーソナルコンピュータにシミュレーションするべきシーケンスプログラムを実装し、パーソナルコンピュータ内でデータを入力してＰＬＣに転送してシミュレーションを行う場合がある。
【０００５】
このような場合、ＰＬＣに内蔵のＣＰＵの動作速度に比較してパーソナルコンピュータに内蔵のＣＰＵの動作速度が大きい場合、ＰＬＣ内で複雑なＰＩＤや浮動小数点等の関数演算等の実行が必要な場合にはＰＬＣの動作速度が遅くなり、シミュレーション速度が極めて遅くなってしまう。
【０００６】
なお、ラダープログラムをパーソナルコンピュータ画面上に表示し、ラダープログラムのシミュレーションを行うものは幾つか提案されている。
【特許文献１】特開２００５−２９２９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、パーソナルコンピュータ上で作成したシーケンスプログラムを実機であるＰＬＣに組み込んでシミュレーションするに際して、ＰＬＣのＣＰＵの動作速度がパーソナルコンピュータのそれより遅くても、ＰＬＣのシミュレーション動作の高速化を図ることで当該シミュレーションを高速で行うことを可能としたシミュレーション方法を提供するものである。
【課題を解決するための手段】
【０００８】
本発明によるシミュレーション方法は、一連のシーケンシャルな制御工程を複数にブロック化し、各ブロックを少なくとも関数演算とＩ／Ｏとのブロックに定義付けすると共に実行番号を付けて結線したシーケンササーキットダイヤグラムで表したシーケンスプログラムをパーソナルコンピュータとＰＬＣとに実装し、パーソナルコンピュータ側では、当該パーソナルコンピュータよりも動作速度が遅いＰＬＣに同期をとって上記シーケンスプログラムを上記実行番号順に実行すると共に、その実行において、ＰＬＣからの処理依頼に基づいて関数演算ブロックの関数演算を実行し、その実行結果をＰＬＣに渡し、ＰＬＣ側では、当該パーソナルコンピュータと上記同期をとって上記シーケンスプログラムを上記実行番号順に実行すると共に、その実行において関数演算ブロックの関数演算に関してはパーソナルコンピュータに依頼することを特徴とする。
【０００９】
本発明では、シミュレーションに用いるシーケンスプログラムが、上記シーケンササーキットダイヤグラムで表したシーケンスプログラムであるので、ラダー言語に精通しない技術者でも容易にシミュレーションを実行することができる。
【００１０】
そして、本発明は、このようなシーケンスプログラムを前提にして、実機であるＰＬＣに実際にシーケンスプログラムを実装し、シーケンスプログラム内の各ブロックを順次実施してＩ／Ｏ機器を介して制御対象を制御していくに際して、ＰＬＣの動作速度がパーソナルコンピュータのそれより遅くても、パーソナルコンピュータはＰＬＣと同期をとりつつ、シーケンスプログラムを実行し、この実行において、ブロック内のＰＩＤや浮動小数点演算等の関数演算についてはＰＬＣからパーソナルコンピュータにその実行を依頼して行わせるようにしたので、シーケンスプログラムのシミュレーションを高速で行うことができるようになる。
【発明の効果】
【００１１】
本発明によれば、ラダー言語に精通しない技術者でもシミュレーションを容易に実施できると共に、ＰＬＣの動作速度が遅くても、シーケンスプログラムによるＰＬＣシステム全体のシミュレーションを高速でかつリアルタイムに実行することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付した図面を参照して、本発明の実施の形態に係るシミュレーション方法を説明する。
【００１３】
図１にパーソナルコンピュータ１、ＰＬＣ２、Ｉ／Ｏ機器３、制御対象４、を示す。パーソナルコンピュータ１と、ＰＬＣ２には、共に、後述するシーケンスプログラムが実装される。ＰＬＣ２はそのシーケンスプログラムに従いＩ／Ｏ機器３を通じて制御対象４を制御する。Ｉ／Ｏ機器３は、スイッチ３ａ、センサ３ｂ、モータ３ｃ等を含み、例えばＦＡ工場内に設置された図示略の制御機械や装置等の制御対象４をシーケンス制御するためのデータを入出力（Ｉ／Ｏ）することができるようになっている。
【００１４】
パーソナルコンピュータ１は、ＣＰＵ１ａ、システムプログラムメモリ１ｂ、シミュレーション実行プログラムメモリ１ｃ、表示部１ｄ、操作部１ｅ、インターフェース部１ｆ、および関数定義メモリ１ｇ、等を備える。
【００１５】
システムプログラムメモリ１ｂは汎用パーソナルコンピュータに通常一般のシステムプログラム（ＯＳ）を格納する。
【００１６】
シミュレーション実行プログラムメモリ１ｃはシーケンスプログラムのシミュレーション実行プログラムを格納する。ここでのシーケンスプログラムは、一連のシーケンシャルな制御工程を複数にブロック化し、各ブロックを関数演算とＩ／Ｏとのブロックに定義付けすると共に実行番号を付けて結線したシーケンササーキットダイヤグラムで表したシーケンスプログラムである。
【００１７】
表示部１ｄはシーケンスプログラムを表示する表示画面を備える。
【００１８】
操作部１ｅはキーボードやマウス等からなる。
【００１９】
インターフェース部１ｆはシミュレーションしたシーケンスプログラムをＰＬＣ２にダウンロードするためのＰＬＣ２との間のインターフェースである。
【００２０】
関数定義メモリ１ｇは、シーケンスプログラムを構成するブロックを関数定義するデータが格納されている。
【００２１】
ＣＰＵ１ａは、シミュレーション実行プログラムメモリ１ｃからシミュレーション実行プログラムを読み出し、この読み出したシミュレーション実行プログラムを実行するうえで、シーケンスプログラムを構成するブロックごとに、それの関数定義を関数定義メモリ１ｇから読み出し、各ブロックの演算を実行するようになっている。例えば、ブロックがＰＩＤ演算を実行するブロックであれば、そのＰＩＤ演算を行うための関数定義を関数定義メモリ１ｇから読み出し、ＰＩＤ演算を実行するようになっている。
【００２２】
ＰＬＣ２は、ＣＰＵ２ａ、システムプログラムメモリ２ｂ、シーケンスプログラムメモリ２ｃ、Ｉ／Ｏ機器３の動作を関数で定義する関数定義メモリ２ｄ、インターフェース部２ｅ、２ｇ、等を有する。
【００２３】
システムプログラムメモリ２ｂはＰＬＣ２の基本動作のプログラムを格納する。
【００２４】
シーケンスプログラムメモリ２ｃは後述するシーケンササーキットダイヤグラム方式のシーケンスプログラムを格納する。このシーケンスプログラムはパーソナルコンピュータ１に実装するシーケンスプログラムと同じである。
【００２５】
関数定義メモリ２ｄはシーケンササーキットダイヤグラムを構成する後述する各ブロックＢ１，Ｂ２，Ｂ３，…、Ｉ／ＯブロックＣ１，Ｃ２，…を関数で定義するデータを格納する。この関数定義メモリ２ｄ、パーソナルコンピュータ１のそれと同じである。
【００２６】
インターフェース部２ｅはＩ／Ｏ機器３との間のインターフェースであり、インターフェース部２ｇはパーソナルコンピュータ１との間のインターフェースである。
【００２７】
図２に上記シーケンササーキットダイヤグラムによるシーケンスプログラムの一部を示す。実際のシーケンスプログラムはより複雑であるが、説明の都合でシーケンスプログラムの一部を概略化して示している。
【００２８】
このシーケンスプログラムは、一連のシーケンシャルな制御工程を複数にブロック化し、パーソナルコンピュータ１内で実行される関数演算ブロックＢ１，Ｂ２，Ｂ３，…と、ＰＬＣ２内で実行されるＩ／ＯブロックＣ１，Ｃ２，…からなり、これら各ブロックに実行番号を付けて結線したシーケンササーキットダイヤグラムで表されるシーケンスプログラムである。
【００２９】
このシーケンスプログラムはパーソナルコンピュータ１側とＰＬＣ２側が共にシミュレーション実行プログラムメモリ１ｃとシーケンスプログラムメモリ２ｃに格納している。
【００３０】
図３で示すように、パーソナルコンピュータ１側では、当該パーソナルコンピュータ１よりも動作速度が遅いＰＬＣ２と同期をとって上記シーケンスプログラムを上記実行番号順に実行すると共に、その実行においては、ＰＬＣ２からの依頼（図３中に「関数演算ブロックＢ１，Ｂ２，Ｂ３の演算依頼」と記載）に基づいて各関数演算ブロックＢ１，Ｂ２，Ｂ３，…内の関数演算を実行し、その実行結果をＰＬＣ２に戻す。この場合、ＰＬＣ１側においてもシーケンスプログラムを実行すると共に、上記関数演算をパーソナルコンピュータ１に依頼すると共にその演算に必要なＩ／Ｏ機器３からの入出力データをＩ／ＯブロックＣ１，Ｃ２，…からパーソナルコンピュータ１側の関数演算ブロックＢ１，Ｂ２，Ｂ３…に渡す。
【００３１】
なお、関数演算ブロックＢ１は、例えば、ＰＩＤ演算等の第１関数演算を定義したブロックである。関数演算ブロックＢ２は、例えば、浮動小数点演算等の第２関数演算を定義したブロックである。関数演算ブロックＢ３は、例えば、分岐とその他の第３関数演算を定義したブロックである。これら関数演算ブロックＢ１，Ｂ２，Ｂ３，…の関数演算の結果は、ＰＬＣ２側のＩ／ＯブロックＣ１，Ｃ２，…に渡される。ＰＬＣ２側では、その演算結果をＩ／Ｏ機器３に出力する。
【００３２】
以上から、関数演算ブロックＢ１，Ｂ２，Ｂ３，…の演算は、動作速度が遅いＰＬＣ２ではなく、動作速度が早いパーソナルコンピュータ１で行うので、シミュレーション実行速度をあげることができるようになる。
【００３３】
以上説明したように本実施の形態では、シーケンスプログラムのシミュレーション実行においては、関数演算についてはＰＬＣ２からパーソナルコンピュータ１に依頼し、そのパーソナルコンピュータ１で実行するようにしたので、シーケンスプログラムのシミュレーションを高速で行うことができるようになる。
【図面の簡単な説明】
【００３４】
【図１】図１はパーソナルコンピュータと、ＰＬＣシステムとの構成を示す図である。
【図２】図２はシーケンスプログラムの一部構成を示す図である。
【図３】図３はパーソナルコンピュータでの関数演算ブロックの実行と、ＰＬＣでのＩ／Ｏブロックの実行とを示す図である。
【符号の説明】
【００３５】
１  パーソナルコンピュータ
２  ＰＬＣ
３  Ｉ／Ｏ機器
４  制御対象
【図１】
2009080739.tif 000003
【図２】
2009080739.tif 000004
【図３】
2009080739.tif 000005