(57)【要約】【課題】プログラマブルコントローラと、プログラムにしたがってシーケンスを実行することができるインバータとが連携して動作するためのシミュレーションを行う。【解決手段】シミュレーション装置２００は、１以上のインバータシーケンスプログラム２３１の中間コード２３１ｂを機械語２３１ｃにコンパイルするコンパイラ２４０と、機械語２３１ｃにしたがって実行したインバータシミュレーションの結果をプログラマブルコントローラ１００に出力するインバータシミュレーション実行部２１１と、を備え、プログラマブルコントローラ１００は、アプリケーションプログラム１２１の中間コード１２１ｂを機械語１２１ｃに変換するコンパイラ１３０と、インバータシミュレーションの結果を用いて、機械語１２１ｃにしたがってアプリケーションシミュレーションを実行するアプリケーション実行部１１０と、を備える。【選択図】図１
2018067148.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを記憶したプログラマブルコントローラと、インバータシーケンスプログラムを記憶したシミュレーション装置とがメモリバスを介して接続されるシミュレーションシステムであって、
前記シミュレーション装置は、
外部の装置からダウンロードされた１以上のインバータシーケンスプログラムの中間コードを機械語にコンパイルするコンパイラと、
前記インバータシーケンスプログラムの機械語にしたがって実行したインバータシミュレーションの結果を前記プログラマブルコントローラに出力するインバータシミュレーション実行部と、を備え、
前記プログラマブルコントローラは、
外部の装置からダウンロードされた前記アプリケーションプログラムの中間コードを機械語に変換するコンパイラと、
前記シミュレーション装置から出力された、前記インバータシミュレーションの結果を用いて、前記アプリケーションプログラムの機械語にしたがってアプリケーションシミュレーションを実行するアプリケーション実行部と、
を備えることを特徴とするシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラとシミュレーション装置とがメモリバスを介して接続されるシミュレーションシステムに関する。
【背景技術】
【０００２】
従来、プログラマブルコントローラが１つ以上のインバータを制御する方法が知られている。一般に、プログラマブルコントローラがアプリケーションプログラムにしたがってインバータの制御を開始する前に、アプリケーションプログラムに不具合がないかどうか検証される。
【０００３】
例えば、複数のプログラマブルコントローラがネットワークにより構成されたシステムのシミュレーションを実行する方法として、複数のプログラマブルコントローラそれぞれのアプリケーションプログラムをネットワークの通信媒体を模擬した共有メモリを利用することが特許文献１に記載されている。
【０００４】
また、インバータ装置に内蔵され、半導体メモリとＣＰＵとを含むロジック演算要素からなるシーケンス演算部が、インバータ装置運転用のシーケンス処理を行い、その処理結果をインバータ装置に指令信号として送信することが、特許文献２に記載されている。シーケンス演算部においては、格納メモリがシーケンス動作を行うためのプログラムを格納し、シーケンス演算ロジックが格納メモリのプログラムにしたがって演算処理をする。シーケンスロジックは、インバータ装置に内蔵されたメモリにカウンタ，タイマ，シフトレジスタ等のロジック演算機能部を割付け、別の内蔵された不揮発性メモリにシーケンス演算条件等のシーケンスプログラムを記憶させ、ＲＯＭ（Read Only Memory），ＲＡＭ（Random Access Memory）とのデータ授受を行う。
【０００５】
また、図５に示すような、従来のインバータシステム２においては、プログラマブルコントローラ６００では、アプリケーション実行部６１０が、メモリ６２０に記憶されているアプリケーションプログラム１２１にしたがって処理を実行する。
【０００６】
また、アプリケーション実行部６１０は、メモリバス３００及び通信モジュール７００を介して処理結果を第１のインバータ８００又は第２のインバータ９００に出力する。具体的には、アプリケーション実行部６１０は、１つ以上の処理結果を、メモリバス３００を介して通信モジュール７００のデュアルポートＲＡＭ７３０に送信する。そして、通信実行部７１０は、メモリ７２０に記憶されている通信プログラム７２１にしたがって、１つ以上の処理結果のうち第１のインバータ８００に係る処理結果を第１のインバータ８００に送信する。また、通信実行部７１０は通信プログラム７２１にしたがって、１つ以上の処理結果のうち第２のインバータ９００に係る処理結果を第２のインバータ９００に送信する。
【０００７】
第１のインバータ８００には、プログラマブルコントローラ６００から出力された処理結果が入力される。そして、第１のインバータ８００では、第１のインバータ実行部８１０が、入力された処理結果を用い、メモリ８２０に記憶されている第１のインバータシーケンスプログラム２３１にしたがって処理を実行する。同様にして、第２のインバータ９００では、第２のインバータ実行部９１０が、入力された処理結果を用い、メモリ９２０に記憶されている第２のインバータシーケンスプログラム２３２にしたがって処理を実行する。
【０００８】
また、第１のインバータ８００は、外部回路４００と接続され、外部回路４００への入力に基づいて、第１のインバータ８００を停止させるための停止信号、起動させるための起動信号等を受信する。この場合、第１のインバータ８００は、入力された停止信号又は起動信号を用い、第１のインバータシーケンスプログラム２３１にしたがって動作する。第２のインバータ９００についても同様である。
【０００９】
このようなインバータシステム２を動作させるにあたって、図６に示すように、アプリケーションプログラム１２１を生成する、ＰＣ（Personal Computer）等のプログラミング用装置５００は、プログラマブルコントローララダー１２１ａを中間コード１２１ｂに変換してプログラマブルコントローラ６００にダウンロードする。一方、プログラミング用装置５００は、インバータシーケンスプログラム２３１，２３２のインバータラダー２３１ａ，２３２ａを中間コード２３１ｂ，２３２ｂにコンパイルし、さらに中間コード２３１ｂ，２３２ｂを機械語２３１ｃ，２３２ｃにコンパイルにする。そして、プログラミング用装置５００は機械語２３１ｃ，２３２ｃをそれぞれ第１のインバータ８００及び第２のインバータ９００にダウンロードする。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−１０８２０９号公報
【特許文献２】特開平５−４９２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１の方法では、複数のプログラマブルコントローラでの動作シミュレーションを実施可能としたが、通信モジュールとインバータとを連携させてシミュレーションを行うことができなかった。そのため、プログラマブルコントローラとインバータとを組み合わせて、シミュレーションを行うことができなかった。
【００１２】
また、特許文献２の方法では、インバータが、該インバータの運転シーケンスの処理機能を有する。そのため、運用開始前の検証段階では、インバータのシーケンスに係るプログラムと、インバータを制御するためのプログラマブルコントローラに係るプログラムとの両方についてそれぞれデバックしなければならないことがあり、デバック作業が複雑となることがあった。この複雑さを解消するために、プログラマブルコントローラとインバータとを連携させてシミュレーションする必要があったが、プログラマブルコントローラとインバータとを連携させることはできなかった。
【００１３】
かかる事情に鑑みてなされた本発明の目的は、プログラマブルコントローラと、プログラムにしたがってシーケンスを実行することができるインバータとが連携して動作するためのシミュレーションを行うシミュレーションシステムを提供することにある。
【課題を解決するための手段】
【００１４】
上述した課題を解決すべく、本発明に係るシミュレーションシステムは、アプリケーションプログラムを記憶したプログラマブルコントローラと、インバータシーケンスプログラムを記憶したシミュレーション装置とがメモリバスを介して接続されるシミュレーションシステムであって、前記シミュレーション装置は、外部の装置からダウンロードされた１以上のインバータシーケンスプログラムの中間コードを機械語にコンパイルするコンパイラと、前記インバータシーケンスプログラムの機械語にしたがって実行したインバータシミュレーションの結果を前記プログラマブルコントローラに出力するインバータシミュレーション実行部と、を備え、前記プログラマブルコントローラは、外部の装置からダウンロードされた前記アプリケーションプログラムの中間コードを機械語に変換するコンパイラと、前記シミュレーション装置から出力された、前記インバータシミュレーションの結果を用いて、前記アプリケーションプログラムの機械語にしたがってアプリケーションシミュレーションを実行するアプリケーション実行部と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、プログラマブルコントローラと、プログラムにしたがってシーケンスを実行することができるインバータとが連携して動作するためのシミュレーションを行うことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るシミュレーションシステムの構成例を示すブロック図である。
【図２】図１に示すアプリケーションプログラム及びインバータシーケンスプログラムの変換プロセスを説明するための図である。
【図３】中間コードのデータ構造を示す図である。
【図４】インバータシミュレーションに係るデータの変換について説明するための図である。
【図５】従来のシミュレーションシステムの構成例を示すブロック図である。
【図６】従来のアプリケーションプログラム及びインバータシーケンスプログラムの変換プロセスを説明するための図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して説明する。
【００１８】
図１は、本実施形態に係るシミュレーションシステム１の構成例を示すブロック図である。図１に示す例では、シミュレーションシステム１は、プログラマブルコントローラ１００、シミュレーション装置２００、及びメモリバス３００を備える。プログラマブルコントローラ１００及びシミュレーション装置２００は、メモリバス３００を介して互いに接続され、情報を送受信する。また、シミュレーション装置２００は、プログラミング用装置５００と通信ネットワークを介して互いに接続され、情報を送受信する。
【００１９】
プログラマブルコントローラ１００は、他の装置を制御するための制御装置であり、アプリケーション実行部１１０、メモリ１２０、及びコンパイラ１３０を備える。以降の説明においては、プログラマブルコントローラ１００が制御する他の装置をインバータとして説明する。
【００２０】
アプリケーション実行部１１０は、メモリ１２０に記憶されているアプリケーションプログラム１２１に記述されている各種の演算、制御等を実行するマイクロプロセッサ等である。例えば、アプリケーション実行部１１０は、アプリケーションプログラム１２１にしたがって模擬的に動作するシミュレーションを実行する。これにより、アプリケーションプログラム１２１にしたがった動作が正常であるか否か、また、異常時に停止処理が行われるか等の動作検証が行われる。また、アプリケーション実行部１１０は、シミュレーションによる処理結果を、メモリバス３００を介してシミュレーション装置２００に送信する。
【００２１】
メモリ１２０は、プログラマブルコントローラ１００がインバータを制御するための演算、制御等を記述しているアプリケーションプログラム１２１を記憶する。
【００２２】
アプリケーションプログラム１２１は、１つ以上のインバータを制御するための演算、制御等を記述したものである。図２に示すように、アプリケーションプログラム１２１は、技術者（開発者、プログラマ等を含む）によって、ＰＣ等のプログラミング用装置５００においてソースコードであるプログラマブルコントローララダー１２１ａとして記述される。
【００２３】
アプリケーションプログラム１２１は、プログラミング用装置５００においてプログラマブルコントローララダー１２１ａから中間コード１２１ｂに変換され、プログラマブルコントローラ１００にダウンロードされる。
【００２４】
コンパイラ１３０は、プログラミング用装置５００から送信された中間コード１２１ｂを機械語（実行コード）１２１ｃに変換する。
【００２５】
シミュレーション装置２００は、プログラマブルコントローラ１００から受信した処理結果を用いて、インバータの動作を検証するためのシミュレーションを実行する。シミュレーション装置２００は、インバータシミュレーション実行部２１０、外部回路シミュレーション実行部２２０、メモリ２３０、コンパイラ２４０、及び通信モジュールシミュレータ２５０を備える。
【００２６】
インバータシミュレーション実行部２１０は、第１のインバータシミュレーション実行部２１１及び第２のインバータシミュレーション実行部２１２を含む。第１のインバータシミュレーション実行部２１１は、第１のインバータのシーケンス制御を記述した第１のインバータシーケンスプログラム２３１にしたがってインバータ制御をシミュレーションする。第２のインバータシミュレーション実行部２１２は、第２のインバータのシーケンス制御を記述した第２のインバータシーケンスプログラム２３２にしたがってインバータ制御をシミュレーションする。
【００２７】
外部回路シミュレーション実行部２２０は、外部回路制御を記述した外部回路シミュレーションプログラム２３３にしたがって外部回路の動作をシミュレーションする。外部回路とは、停止ボタンの押下、起動ボタンの押下といった第１のインバータ及び第２のインバータの外部からの入力によって動作する回路である。停止ボタン、起動ボタンのそれぞれ押下によって該外部回路から出力された停止信号、起動信号は第１のインバータ及び第２のインバータに入力される。
【００２８】
メモリ２３０は、第１のインバータシーケンスプログラム２３１、第２のインバータシーケンスプログラム２３２、及び外部回路シミュレーションプログラム２３３を記憶する。具体的には、メモリ２３０は、上述のようにプログラミング用装置５００からダウンロードされた第１のインバータシーケンスプログラム２３１の第１の中間コード２３１ｂ、及び第２のインバータシーケンスプログラム２３２の第２の中間コード２３２ｂを記憶する。また、メモリ２３０は、コンパイラ２４０によって第１の中間コード２３１ｂから変換された第１の機械語２３１ｃ、第２の中間コード２３２ｂから変換された第２の機械語２３２ｃをそれぞれ記憶する。また、メモリ２３０は、外部回路シミュレーションプログラム２３３を記憶する。
【００２９】
第１のインバータシーケンスプログラム２３１は、第１のインバータを制御するための演算、制御等を記述したものである。図２に示すように、第１のインバータシーケンスプログラム２３１は、開発者によって、ＰＣ等のプログラミング用装置５００において第１のインバータラダー２３１ａとして記述される。
【００３０】
また、第１のインバータシーケンスプログラム２３１は、プログラミング用装置５００において第１のインバータラダー２３１ａから第１の中間コード２３１ｂにコンパイルされ、シミュレーション装置２００にダウンロードされる。
【００３１】
第２のインバータシーケンスプログラム２３２は、第２のインバータを制御するための演算、制御等を記述したものである。また、第２のインバータシーケンスプログラム２３２は、第１のインバータシーケンスプログラム２３１と同様に、開発者によって、ＰＣ等のプログラミング用装置５００において第２のインバータラダー２３２ａとして記述され、第２のインバータラダー２３２ａから第２の中間コード２３２ｂにコンパイルされて、シミュレーション装置２００にダウンロードされる。
【００３２】
ここで、第１のインバータシーケンスプログラム２３１の第１の中間コード２３１ｂについて詳細に説明する。第１の中間コード２３１ｂは、第１インバータシーケンスプログラムに記述されている演算処理を、該演算処理の順序で並べたレコード列である。図３に示すように、第１の中間コード２３１ｂのレコード列は、例えば、ヘッダー部、インデックス部、及びデータ部により構成される。ヘッダー部には、登録回路数、プログラム番号、及び通信局番情報が記述されている。また、インデックス部には、回路番号（ｎ，ｍ，・・・）と各回路番号のデータ部の長さである中間コード長とが対応して記述されている。また、データ部には、回路番号と各回路番号のデータとが対応して記述されている。なお、第２の中間コード２３２ｂについても同様である。
【００３３】
ヘッダー部に記述されている通信局番情報は、該通信局番情報を含む第１の中間コード２３１ｂ及び第２の中間コード２３２ｂに係るインバータシーケンスプログラム２３１及び２３２を識別するための情報である。これにより、シミュレーション装置２００は、複数のインバータシミュレーション実行部２１０を備え、複数のインバータシミュレーション実行部２１０がそれぞれのインバータシーケンスプログラム２３１及び２３２にしたがってシミュレーションを実行することができる。
【００３４】
プログラマブルコントローラ１００が複数のインバータを制御する場合、シミュレーション装置２００において、メモリ２３０は、第１のインバータシーケンスプログラム２３１の第１の中間コード２３１ｂを記憶する領域と、第２のインバータシーケンスプログラム２３２の第２の中間コード２３２ｂを記憶する領域とを含む。そして、図４（ａ）に示すような第１の中間コード２３１ｂに記載されている情報は、コンパイルされると、図４（ｂ）に示すように第１の局番情報に対応する第１のグローバルレジスタ、第１のＩＯレジスタ、及び第１のローカルレジスタに割り付けられる。同様にして、図４（ａ）に示すような第２の中間コード２３２ｂに記載されている情報は、コンパイルされると図４（ｂ）に示すようにシミュレーション装置２００において第２の局番情報に対応する第２のグローバルレジスタ、第２のＩＯレジスタ、及び第２のローカルレジスタに割り付けられる。
【００３５】
このように、複数の中間コード２３１ｂ及び２３２ｂに含まれる情報は、シミュレーション装置２００のメモリ２３０において、異なる局番情報にそれぞれ対応する異なるレジスタに割り付けられるため、複数の中間コード２３１ｂ及び２３２ｂの情報が競合することを防ぐことができる。したがって、シミュレーションシステム１は、プログラマブルコントローラ１００と複数のインバータとが連携して動作するシステムのシミュレーションを実行することが可能となる。
【００３６】
また、図４（ｂ）に示すようにメモリ２３０に割り付けられている情報のうち、第１のインバータのＩＯレジスタは第１の通信局番情報とともに、第２のインバータのＩＯレジスタは第２の通信局番情報とともに図４（ｃ）に示すようなデータに含まれてプログラマブルコントローラ１００に送信される。これにより、プログラマブルコントローラ１００はいずれのＩＯレジスタが複数のインバータのうちいずれのインバータに係るものであるかを識別することができる。
【００３７】
コンパイラ２４０は、プログラミング用装置５００から送信された第１の中間コード２３１ｂ及び第２の中間コード２３２ｂをそれぞれ機械語（実行コード）２３１ｃ及び２３２ｃに変換する。
【００３８】
通信モジュールシミュレータ２５０は、プログラマブルコントローラ１００と情報を送受信するためのシミュレーションを実行する。通信モジュールシミュレータ２５０は、通信シミュレーション実行部２５１、メモリ２５２、及びデュアルポートＲＡＭ２５４を備える。
【００３９】
通信シミュレーション実行部２５１は、プログラマブルコントローラ１００による処理結果を示す制御信号を受信するための通信シミュレーションプログラム２５３にしたがった通信制御をシミュレーションする。また、通信シミュレーション実行部２５１は、第１のインバータシミュレーション実行部２１１又は第２のインバータシミュレーション実行部２１２によって出力された処理結果をプログラマブルコントローラ１００に送信するための通信シミュレーションプログラム２５３にしたがった通信制御をシミュレーションする。
【００４０】
メモリ２５２は、通信シミュレーションプログラム２５３を記憶する。また、デュアルポートＲＡＭ２５４は、通信制御のシミュレーションに基づいてプログラマブルコントローラ１００の処理結果を、第１のインバータシミュレーション実行部２１１及び第２のインバータシミュレーション実行部２１２の１つ以上に出力する。また、デュアルポートＲＡＭ２５４は、通信制御のシミュレーションに基づいて、第１のインバータシミュレーション実行部２１１及び第２のインバータシミュレーション実行部２１２の１つ以上の処理結果を、プログラマブルコントローラ１００に送信する。
【００４１】
メモリバス３００は、プログラマブルコントローラ１００とシミュレーション装置２００の通信モジュールシミュレータ２５０との間で情報を送受信するためのバスである。
【００４２】
以上のように、本実施形態によれば、第１のインバータシーケンスプログラム２３１は、プログラミング用装置５００において第１のインバータラダー２３１ａから第１の中間コード２３１ｂに変換されてシミュレーション装置２００にダウンロードされる。同様にして、アプリケーションプログラム１２１は、プログラミング用装置５００においてプログラマブルコントローララダー１２１ａからそれぞれ中間コード１２１ｂに変換されてプログラマブルコントローラ１００にダウンロードされる。
【００４３】
そして、シミュレーション装置２００のコンパイラ２４０は、プログラミング用装置５００からダウンロードされた中間コード２３１ｂ及び２３２ｂをそれぞれ機械語２３１ｃ及び２３２ｃに変換する。また、プログラマブルコントローラ１００のコンパイラ１３０は、プログラミング用装置５００からダウンロードされた中間コード１２１ｂを機械語１２１ｃに変換する。すなわち、プログラマブルコントローラ１００とシミュレーション装置２００では中間コードを機械語に変換するプロセスが同一である。そのため、プログラマブルコントローラ１００と１つ以上のインバータシーケンスプログラム２３１（２３２）を有するシミュレーション装置２００とが連携してシミュレーションを実行することができる。
【００４４】
また、本実施形態においては、複数の中間コード２３１ｂ及び２３２ｂに含まれる情報は、シミュレーション装置２００のメモリエリアにおいて、異なる局番情報にそれぞれ対応する異なるレジスタに割り付けられるため、複数の中間コード２３１ｂ及び２３２ｂの情報が競合することを防ぐことができる。したがって、シミュレーション装置２００は、複数のインバータが同時に又は連携して動作するシステムのシミュレーションを実行することが可能となる。
【００４５】
本発明を図面及び実施形態に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は修正を行うことが容易であることに注意されたい。したがって、これらの変形または修正は本発明の範囲に含まれることに留意されたい。例えば、各ブロック、に含まれる機能などは論理的に矛盾しないように再配置可能であり、複数のブロックを１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【００４６】
１                              シミュレーションシステム
１００                          プログラマブルコントローラ
１１０                          アプリケーション実行部
１２０,２３０,２５２,５２０     メモリ
１２１                          アプリケーションプログラム
１２１ａ                        プログラマブルコントローララダー
１２１ｂ                        中間コード
１２１ｃ                        機械語
１３０,２４０                   コンパイラ
２００                          シミュレーション装置
２１０                          インバータシミュレーション実行部
２１１                          第１のインバータシミュレーション実行部
２１２                          第２のインバータシミュレーション実行部
２２０                          外部回路シミュレーション実行部
２３１                          第１のインバータシーケンスプログラム
２３１ａ                        第１のインバータラダー
２３１ｂ                        第１の中間コード
２３１ｃ                        第１の機械語
２３２                          第２のインバータシーケンスプログラム
２３２ａ                        第２のインバータラダー
２３２ｂ                        第２の中間コード
２３２ｃ                        第２の機械語
２３３                          外部回路シミュレーションプログラム
２５０                          通信モジュールシミュレータ
２５１                          通信シミュレーション実行部
２５３                          通信シミュレーションプログラム
２５４                          デュアルポートＲＡＭ
３００                          メモリバス
５００                          プログラミング用装置
５１０                          制御部
【図１】
2018067148.tif 000003
【図２】
2018067148.tif 000004
【図３】
2018067148.tif 000005
【図４】
2018067148.tif 000006
【図５】
2018067148.tif 000007
【図６】
2018067148.tif 000008