(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1では、制御装置(
図4のControl CPU)は、ウェイブユニット(
図4のWAVE2Unit)とよばれるハードウェア製品を介してPCと接続される。PCにおいては、オシロスコープのように各種状態データが波形表示される。非特許文献1の場合、制御装置で実行される制御プログラムは、パワーエレクトロニクス製品からのタイマ割込を契機として状態データを読み取り、それをウェイブユニットに送信する。また、制御プログラムはPCからウェイブユニットのI/Oメモリに書き込まれるパラメータを取得し、パワーエレクトロニクス製品の制御条件を設定する。
【0007】
非特許文献1の制御プログラムは、パワーエレクトロニクス製品へのアクセスとウェイブユニットとの通信という2つの処理を担当している。このため、制御プログラムにとってウェイブユニットとの通信はオーバーヘッドとなっている。パワーエレクトロニクス製品の制御周波数が大きくなると、今後はこのようなオーバーヘッドを許容できなくなる可能性がある。
【0008】
本発明の主たる目的は、パワーエレクトロニクス製品の制御プログラムを高速かつ安定的に動作させることである。
【課題を解決するための手段】
【0009】
本発明に係る電力機器制御装置は、第1の制御プログラムが実行される第1のプロセッサと、第2の制御プログラムが実行される第2のプロセッサと、第1および第2の制御プログラムの双方からアクセス可能なパラメータ領域とデータ領域を有する第1の記憶部を備える。
第1の制御プログラムは、パラメータ領域に設定されるパラメータにしたがって電力機器を制御し、電力機器の状態データをデータ領域に記録する。第2の制御プログラムは、外部装置から受信したパラメータをパラメータ領域に記録し、データ領域から状態データを読み出して外部装置に送信する。
【0010】
本発明に係る電力機器制御システムは、電力機器と接続される電力機器制御装置と、電力機器制御装置と接続されるユーザ端末を備える。電力制御装置は、第1の制御プログラムが実行される第1のプロセッサと、第2の制御プログラムが実行される第2のプロセッサと、第1および第2の制御プログラムの双方からアクセス可能なパラメータ領域とデータ領域を有する第1の記憶部を備える。ユーザ端末は、電力制御装置にパラメータを送信する監視プログラムを実行する第3のプロセッサ、を備える。
第1の制御プログラムは、パラメータ領域に設定されるパラメータにしたがって電力機器を制御し、電力機器の状態データをデータ領域に記録する。第2の制御プログラムは、ユーザ端末から受信したパラメータをパラメータ領域に設定し、データ領域から状態データを読み出してユーザ端末に送信する。
【0011】
本発明に係る電力機器制御プログラムは、マルチコアプロセッサにおいて実行されるプログラムである。このプログラムは、キャッシュメモリに記録されるパラメータを読み出す機能と、読み出したパラメータにしたがって電力機器の制御条件を設定する機能と、電力機器の状態データを読み出し、キャッシュメモリに記録する機能と、を第1のプロセッサにおいて実現させる第1の制御プログラムと、外部装置から送信されたパラメータをキャッシュメモリに記録する機能と、キャッシュメモリに記録された状態データを外部装置に送信する機能と、を第2のプロセッサにおいて実現させる第2の制御プログラムと、を含む。
【0012】
本発明に係る電力機器制御方法は、第1のプロセッサが、キャッシュメモリに記録されるパラメータを読み出すステップと、読み出したパラメータにしたがって電力機器の制御条件を設定するステップと、電力機器の状態データを読み出し、キャッシュメモリに記録するステップと、を繰り返し実行し、第2のプロセッサが、外部装置から送信されたパラメータをキャッシュメモリに記録するステップと、キャッシュメモリに記録された状態データを外部装置に送信するステップと、を繰り返し実行する。
【発明の効果】
【0013】
本発明によれば、パワーエレクトロニクス製品の制御プログラムの実行効率を高めることができる。
【発明を実施するための形態】
【0015】
以下、添付図面を参照しながら、本発明の好ましい実施形態について詳細に説明する。
【0016】
図1は、電力機器制御システム100のシステム構成図である。本実施形態においては、パワーエレクトロニクス製品の一種としてモーター106を制御対象として説明する。電力機器制御システム100は、モーター106、電力機器制御装置102およびユーザ端末104を含む。モーター106と電力機器制御装置102は外部バスで接続され、電力機器制御装置102とユーザ端末104はLAN(Local Area Network)などの通信回線あるいは光ケーブルなどの専用ケーブルを介して接続される。詳細は後述するが、電力機器制御装置102は、マルチコアシステムとして電力機器制御プログラムを実行する装置である。ユーザ端末104は、一般的なPCである。
【0017】
ユーザ端末104は、モーター106の制御状態を示す各種状態データをオシロスコープのように画面表示する(図示せず。非特許文献1参照)。ユーザ端末104は、モーター106の制御条件を示すパラメータを電力機器制御装置102に送信する。
【0018】
電力機器制御装置102は、ユーザ端末104から指定されたパラメータに基づいてモーター106の制御条件を決定する。たとえば、PID制御のP値などの制御条件がパラメータとして設定される。電力機器制御装置102は、モーター106の状態データを定期的に取得し、ユーザ端末104に送信する。
【0019】
モーター106は、電力機器制御装置102から指定された制御条件にしたがって作動する。モーター106が電力機器制御装置102に対して定期的にハードウェア割り込みを発生させて状態データを通知してもいいが、本実施形態においては電力機器制御装置102の第1制御プログラム(後述)がループ処理によりモーター106から状態データをポーリングするものとして説明する。
【0020】
図2は、電力機器制御装置102のハードウェア構成図である。電力機器制御装置102は、いわゆるマルチコアシステムであり、コア0パッケージ108とコア1パッケージ110を含む。コア0パッケージ108,コア1パッケージ110はそれぞれCORE0(第2のプロセッサ),CORE1(第1のプロセッサ)を含む。CORE0,CORE1はCPU(Central Processing Unit)やDSP(Digital Signal Processer)などのプロセッサである。
【0021】
コア0パッケージ108において、CORE0には一次キャッシュL1−0,二次キャッシュL2−0が付属している。同様に、コア1パッケージ110においては、CORE1に一次キャッシュL1−1,二次キャッシュL2−1が付属している。本実施形態においては、一次キャッシュL1は64KB,二次キャッシュL2は1024KBであるとする。また、一次キャッシュL1は、複数のキャッシュの集合体であってもよい。
【0022】
電力機器制御装置102は、SRAM(Static Random Access Memory)112とDRAM(Dynamic Random Access Memory)114を含む。本実施形態においてはSRAM112のサイズは1MBであるとする。DRAM114はいわゆるDDR3(Double-Data-Rate 3)型であり、そのサイズは512MBであるとする。
【0023】
アクセス速度は、一次キャッシュL1および二次キャッシュL2(ローカルキャッシュメモリ)、SRAM112、DRAM114の順に速く、記憶容量はDRAM114、SRAM112、ローカルキャッシュメモリの順に大きい。
【0024】
SRAM112の全部およびDRAM114の一部は共有メモリ空間(第1の記憶部)を構成する。また、本実施形態において特徴的な点は、コア1パッケージ110の一次キャッシュL1−1も共有メモリ空間の一部を構成することである。すなわち、一次キャッシュL1−1のキャッシュ機能がオフ設定される。
図2では、共有メモリ空間を構成する領域(以下、「共有領域」とよぶ)を斜線により示している。共有メモリ空間は、CORE0,CORE1の双方からアクセス可能な領域であり、グローバルアドレスを割り当てられる。本実施形態においては、一次キャッシュL1−1はキャッシュとしては機能せず、CORE0,CORE1の双方からグローバルアドレスによりアクセス可能な超高速・小容量の共有領域として利用される。なお、DRAM114のうち共有領域を形成しないローカル領域(CORE0のみがアクセス可能な領域)が「第2の記憶部」に対応する。また、DRAM114の全体をCORE0のローカルメモリとして設定してもよい。
【0025】
一次キャッシュL1−1は、CORE1からだけでなくCORE0からもダイレクトにアクセス可能である。一次キャッシュL1−0は、CORE0のみからアクセス可能である(ローカルキャッシュメモリ)。なお、一次キャッシュL1−0は、CORE0の制御に基づきSRAM112やDRAM114ともデータの送受が可能である。
【0026】
本実施形態においては、一次キャッシュL1−1のみを共有領域としているが、二次キャッシュL2−1や、一次キャッシュL1−0,二次キャッシュL2−0の全部または一部を同様に共有領域として解放してもよい。
【0027】
図3は、電力機器制御装置102およびユーザ端末104において実行される各種プログラムの関係を示す図である。CORE0で実行される第2制御プログラム118と、CORE1で実行される第1制御プログラム116をまとめて「電力制御プログラム」とよぶ。
【0028】
共有領域126には、パラメータの記憶のためのパラメータ領域128と状態データの記憶のためのデータ領域130が確保される。特に、本実施形態においては、パラメータ領域128とデータ領域130は合計サイズが数百〜数千バイト程度であるため、一次キャッシュL1−1に確保される。もちろん、一次キャッシュL1−0や二次キャッシュL2−0などの他のキャッシュを共有領域126として解放し、パラメータ領域128等をこれらのキャッシュメモリに設定してもよい。パラメータや状態データのサイズが一次キャッシュL1や二次キャッシュL2に収まらないほど大きくなる場合には、SRAM112やDRAM114などの共有領域126にパラメータ領域128やデータ領域130の全部または一部が確保されてもよい。
【0029】
ユーザ端末104においては表示用のプログラムであるビュー124(監視プログラム)が実行される。ユーザ端末104は、単一のプロセッサ(第3のプロセッサ)を有してもいいし、電力機器制御装置102のようなマルチコアシステムであってもよい。ビュー124は、電力機器制御装置102に各種パラメータを送信するとともに電力機器制御装置102から状態データを受信し、表示画像を更新する。ビュー124は、オシロスコープのような波形画像を表示することもできる。
【0030】
第1制御プログラム116は、CORE1において実行され、パラメータ領域128からパラメータを読み出し、モーター106を制御する。また、モーター106の状態データをデータ領域130に上書き記録する。
【0031】
第2制御プログラム118は、ビュー124からパラメータを受信してパラメータ領域128に書き込む。また、データ領域130に書き込まれた状態データをビュー124に送信する。第2制御プログラム118は、インスペクター120およびウェイブ122という2つのプロセスを含む。インスペクター120は、ビュー124から指定されたパラメータに基づき、指定された状態データをワンショットで読み取る。具体的には、ビュー124からパラメータや読み出したい状態データを指定した命令を受信すると、インスペクター120はパラメータ領域128にパラメータを記録し、データ領域130から指定された状態データを読み取ってビュー124に直ちに送る。一方、ウェイブ122は、定期的にデータ領域130から状態データを読み取りDRAM114に蓄積する。そして、状態データが所定量、たとえば、9000バイト程度蓄積されたときにまとめてこれをビュー124に送信する。蓄積してから送信するのはパケットあたりのデータサイズを大きくして通信効率を高めるためである。ビュー124は、受信した状態データに基づいてグラフを描画する。
なお、第2制御プログラム118は、適宜、一次キャッシュL1−0に中間データを保存してもよいし、必要に応じて、SRAM112やDRAM114に中間データを保存してもよい。
【0032】
第1制御プログラム116は、第2制御プログラム118やユーザ端末104とは直接的な対話はしない。第1制御プログラム116はパラメータ領域128のパラメータに基づいてモーター106を制御し、状態データをデータ領域130に記録するだけである。しかも、本実施形態の場合、パラメータ領域128およびデータ領域130は、CORE1の一次キャッシュL1−1に確保されるため、これらの領域へのアクセス速度はキャッシュと同じく高速である。第1制御プログラム116は、第2制御プログラム118やビュー124にパラメータを取りにいく必要も第2制御プログラム118がパラメータ領域128にパラメータを書き込むのを待つ必要もない。このため、第1制御プログラム116は他のプログラムの実行状態に妨げられることなく、高速かつ安定的に動作できる。必須ではないが、本実施形態においてはCORE0の計算リソースは第1制御プログラム116のみに割り当てられている。
【0033】
また、パラメータ領域128のライターは第2制御プログラム118、リーダーは第1制御プログラム116であり、データ領域130のライターは第1制御プログラム116、リーダーは第2制御プログラム118である。このため、パラメータ領域128とデータ領域130へのアクセスに関して、第2制御プログラム118と第1制御プログラム116は論理的な競合関係にはならないためミューテックスなどによる排他制御は不要であり、第1制御プログラム116と第2制御プログラム118は互いに非同期にて動作できる。
【0034】
一般的には、第1制御プログラム116はDRAM114やSRAM112にロードされ、一次キャッシュL1や二次キャッシュL2を利用しながらCORE1により実行される。本実施形態においては、第1制御プログラム116全体を最初から一次キャッシュL1−1(共有領域126)にロードしてもよい。第1制御プログラム116のサイズが一次キャッシュL1−1に収まらないときには、二次キャッシュL2も共有領域126として解放し、二次キャッシュL2にロードしてもよい。一次キャッシュL1や二次キャッシュL2はもともとアクセスが高速なキャッシュメモリであるため、第1制御プログラム116全体を一次キャッシュL1−1や二次キャッシュL2−1にロードできればSRAM112やDRAM114にロードするよりも高速実行が可能である。なお、第1制御プログラム116のサイズが一次キャッシュL1−1と二次キャッシュL2−1の合計を超えるときには、第1制御プログラム116はSRAM112やDRAM114にロードされる。
【0035】
第1制御プログラム116は比較的単純なプログラムとなることが多いため、これらのローカルキャッシュメモリに全体をロードすることは充分に可能である。更に、第1制御プログラム116をキャッシュに格納してしまえば、キャッシュ・ヒットの有無によって第1制御プログラム116の処理速度が変化することもない。特に制御条件がシビアなパワーエレクトロニクス製品の制御においては、第1制御プログラム116の処理速度だけでなく、速度安定性の面でもキャッシュメモリの全部または一部をメモリ領域として解放することが望ましい。
【0036】
なお、同様の理由から、第2制御プログラム118も一次キャッシュL1−0や二次キャッシュL2−0に格納されてもよい。
【0037】
図4は、第1制御プログラム116のフローチャートである。第1制御プログラム116は、まず、モーター106から状態データを読み取り(S10)、パラメータ領域128からパラメータと制御条件を読み出して(S12)、回転数や電流値等の指令値を所定の演算式にしたがって計算し(S13)、これをモーター106に設定する(S14)。演算式は第1制御プログラム116の開発者が任意に設計すればよい。次に、S10において読み出した状態データをデータ領域130に上書きする(S18)。停止を指示されていなければ(S20のN)、処理はS10に戻る。基本的には、S10で読み出した状態データやS12で読み出した制御条件に基づいてS13で適切な指令値を再計算するというフィードバック制御であり、それに加えて、第2制御プログラム118によるパラメータの設定によっても制御条件を適宜変更するという処理内容となっている。
【0038】
本実施形態の場合、パラメータ領域128とデータ領域130はどちらも一次キャッシュL1−1に収まっているので、第1制御プログラム116は、モーター106のアクセス以外は、一次キャッシュL1−1にしかアクセスしていない。また、一次キャッシュL1−1へのアクセスは他のプロセスとは論理的に競合しない。このため、第1制御プログラム116は他のプロセスの実行待ちといったオーバーヘッドを持たずに高速かつ安定的に繰り返し実行できる。なお、
図4に示すプロセスはループ処理として実行されてもよいし、モーター106やCORE1のタイマーによるハードウェア割込みにより定期的に実行されてもよい。
【0039】
図5は、ウェイブ122とビュー124のシーケンス図である。まず、ビュー124のユーザによるパラメータの入力があれば(S30のY)、ビュー124は、パラメータをウェイブ122に送信する(S32)。パラメータとして、モーター106の制御変数だけでなく、チェックしたい状態データを指定してもよい。ウェイブ122は、指定されたパラメータをパラメータ領域128に記録し(S34)、記録完了(第1制御プログラム116によるモーター106への設定完了)をビュー124に通知する(S35)。次に、ビュー124は、データ要求信号を送信する(S36)。なお、パラメータの入力がなければ(S30のN)、S36のデータ要求処理にスキップする。
【0040】
ウェイブ122は、データ領域130から状態データを読み出して(S37)、DRAM114に記録する(S38)。DRAM114に蓄積された状態データのサイズが所定量に達していなければ(S40のN)、処理はS37に戻り、所定量に達していれば(S40のY)、ウェイブ122は状態データをビュー124にまとめて送信する(S42)。ビュー124は受信した状態データにしたがって描画を更新する(S44)。ビュー124は、停止を指示されていなければ(S45のN)、処理はS30に戻る。停止を指示されたときには(S46のY)、停止命令をウェイブ122に送信した上で(S46)、自らの処理を終了する。ウェイブ122は、S46の停止命令を受信したときには(S48のY)、処理は終了し、停止命令を受信していなければ(S48のN)、処理はS37に戻り状態データの読み出しを繰り返す。
【0041】
なお、S40においては、前回の状態データの送信から所定時間が経過したときには状態データが充分に溜まっていなくても送信するとしてもよい。
【0042】
図6は、インスペクター120とビュー124のシーケンス図である。インスペクター120は、ウェイブ122のように自動的に共有領域126へのアクセスを繰り返すプロセスではなく、ビュー124からの明示的な指示にしたがってパラメータの設定と状態データの読み出しをワンショットにて実行するプロセスである。
【0043】
まず、ビュー124のユーザはパラメータを入力する(S50)。パラメータとして、モーター106の制御変数だけでなく、確認したい状態データを指定してもよい。ビュー124は、パラメータをインスペクター120に送信する(S52)。インスペクター120は、指定されたパラメータをパラメータ領域128に記録し(S54)、データ領域130から状態データを読み出して(S58)、そのまま送信する(S60)。パラメータの記録後に、ウェイブ122と同じく設定完了通知やデータ要求といったハンドシェイクをしてもよい。ビュー124は受信した状態データにしたがって描画を更新する(S62)。
図6には記載していないが、ビュー124からインスペクター120に停止命令を送ることも可能である。
【0044】
以上、実施形態に基づいて電力機器制御システム100について説明した。第1制御プログラム116と第2制御プログラム118は、共有領域126を介してパラメータと状態データを送受する。第1制御プログラム116は、第2制御プログラム118等の他のプログラムの処理を待つプロセスを含まないため安定的かつ高速の実行が可能である。
【0045】
更に、第1制御プログラム116は一次キャッシュL1−1へのアクセスに特化し、より低速のSRAM112やDRAM114にアクセスする必要がない。第1制御プログラム116は、全体として一次キャッシュL1−1に格納され、キャッシュ機能を使わないため処理速度が安定している。
【0046】
開発者は第1制御プログラム116の開発に際して、第2制御プログラム118など他のプロセスと対話するためのコードを書く必要がないため、第1制御プログラム116をシンプルにできるというメリットもある。同様に、開発者から第2制御プログラム118やビュー124を完全に隠蔽できる。第1制御プログラム116は、制御対象のパワーエレクトロニクス製品に応じて自由に開発できるが、第2制御プログラム118やビュー124はパワーエレクトロニクス製品の種類に関わらず共通化できるというメリットもある。非特許文献1のウェイブユニットのような追加ハードも不要であり、CORE0で実行される第2制御プログラム118がユーザ端末104との対話を担当している。
【0047】
ウェイブ122は低速・大容量のDRAM114に状態データを一定量ためてからユーザ端末104に送信するため、通信効率を確保しつつ、人間の認知能力からみて充分な速度にて状態データをユーザ端末104のディスプレイに描画できる。開発者は、第1制御プログラム116でモーター106を動かしながら、ビュー124によりパラメータや状態データのライト/リードを実行できる。
【0048】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【0049】
本実施形態においては、制御対象をモーター106として説明したがこれに限る趣旨ではなく、エアーコンディショナー、冷蔵庫、給湯器、発電機、太陽電池など電気エネルギーと他のエネルギー(たとえば、力学エネルギーや光エネルギー)との間でエネルギー変換する機器であればよく、より好ましくは、ユーザの操作や環境に応じて刻々と制御条件を変化させるべきパワーエレクトロニクス製品であればよい。