JP2003228495A - 制御プログラム開発支援装置 - Google Patents

制御プログラム開発支援装置

Info

Publication number
JP2003228495A
JP2003228495A JP2002028497A JP2002028497A JP2003228495A JP 2003228495 A JP2003228495 A JP 2003228495A JP 2002028497 A JP2002028497 A JP 2002028497A JP 2002028497 A JP2002028497 A JP 2002028497A JP 2003228495 A JP2003228495 A JP 2003228495A
Authority
JP
Japan
Prior art keywords
control
processor
amount
state
control amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002028497A
Other languages
English (en)
Inventor
Yosuke Senda
陽介 千田
Eiji Okamura
栄治 岡村
Yuichi Sato
裕一 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002028497A priority Critical patent/JP2003228495A/ja
Publication of JP2003228495A publication Critical patent/JP2003228495A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】実際のメカを用いることなく且つ専用の中継回
路を用いることなく、比較的小型で応答の速い製品を制
御するための制御プログラムの開発・デバッグを行なえ
るようにようにする。 【解決手段】第1プロセッサ10のメモリ空間12にお
ける制御量領域12aおよび状態量領域12bに制御量
や状態量をそれぞれ一時的に保持させながら、転送手段
30を介して第1プロセッサ(制御ファームウェア)1
0と第2プロセッサ(シミュレータ)20との間で制御
量および状態量をやり取りすることにより、第1プロセ
ッサ10の動作と第2プロセッサ20の動作とを同期さ
せるように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、比較的小型で応答
の速い製品についての制御プログラムの開発を支援する
技術に関するもので、例えば、磁気ディスクドライブ
(HDD),光ディスクドライブ(CD,MO,DV
D,MD),磁気テープ装置(DAT,VTR),NC
工作機など、緻密なサーボ制御を必要とする製品につい
てのサーボ制御プログラム(ファームウェア)を開発す
る際に用いて好適の、制御プログラム開発支援装置に関
する。
【0002】
【従来の技術】一般に、アクチュエータ(モータ)やセ
ンサを有し3次元的な動作を行なう機構(メカ)を設計
する際には、その機構の構想を練った後、詳細設計,出
図,部品手配を行なってから、部品の組立を行なって実
機を試作し、実機の動作等についての評価を行なう。そ
して、評価の結果に応じて設計変更を行なってから設計
変更後の実機を試作し、再び評価を行なうという処理を
繰り返し、評価の結果が良好であれば、設計を完了す
る。
【0003】また、一般に、上述のごとく設計された機
構を動作させるべく、その機構を制御するための制御プ
ログラムを開発し、その制御プログラムを、制御対象の
機構内に組み込まれるマイクロコンピュータ(以下、マ
イコンという場合がある)で実行させるようにしてい
る。このマイコンが実行する上記制御プログラムのこと
を、以下、組込みソフトウェアという場合がある。
【0004】上述のような制御プログラム(組込みソフ
トウェア)を開発する際、従来、制御すべき機構の試作
品(実機)が完成している必要がある。即ち、試作が完
了して初めてメカを具体的に動かすことができ、それを
使って組込みソフトウェアの開発を開始することができ
るわけである。
【0005】この組込みソフトウェアの開発は、試作品
の完成後、その試作品を実際に動作させながら、以下の
手順で行なわれる。つまり、まず、組込みソフトウェア
の概略設計を行ない、その概略設計に基づいて詳細設計
を行なってから、詳細設計の結果をコーディングして組
込みソフトウェアを作成し、その組込みソフトウェアの
デバッグを行なう。
【0006】
【発明が解決しようとする課題】ところで、ファームウ
ェアのサーボ機構部分の構築・検証も、従来、上述した
組込みソフトウェア開発の場合と同様、実際のメカ(実
機)を用いて行なわれている。しかし、ファームウェア
のサーボ機構部分の構築・検証に上述の手法を用いた場
合、実機が完成しないと検証を行なうことができず開発
に時間やコストがかかり非効率的であるという課題があ
るほか、実機を用いて検証を行なうため、イベントブレ
イク等でファームウェアプログラムを停止しても、サー
ボ機構を成すモータは回転し続け、ステップデバッグを
行なうことができないなどの課題もあった。
【0007】また、月産数万台も生産される製品に対す
るサーボ制御プログラムは、ある程度のメカのバラツキ
に対応できなくてはならない。実際のメカを用いた開発
では、上記バラツキを考慮した所望の状態のメカを入手
することは困難であり、ファームウェアがどの程度のバ
ラツキまで対応できているかを知ることは困難であっ
た。
【0008】そこで、実際のメカの代わりに計算機上に
仮想的なモデルを作成し、このモデルを実際のファーム
ウェアに制御させることにより、実機を用いることなく
効率的にファームウェアの開発(構築・検証)を行なえ
るようにすることが望まれている。このような技術が実
現されると、ファームウェアの先行開発が可能になるほ
か、実際のモータを用いないためステップデバッグなど
の機能を使用することが可能であり、新しいアクチュエ
ータやセンサを用いた新規の制御手法を、実機を作成す
ることなく簡単に検証可能になるなどの利点が得られ
る。
【0009】従来、例えばdSPACE社のHIL(Ha
rdware In the Loop)シミュレーションシステムのよう
に、実際の製品の代わりとなるシミュレータ内のモデル
に対し、別のコンピュータで動作する制御プログラムに
よってそのモデルの制御を行なうものは存在している。
しかし、このシステムは、実時間でシミュレーションを
行なうものであるため、自動車や船など応答の遅い製品
(例えば1msec以上のシミュレーション時間間隔でシミ
ュレーション可能な製品)がシミュレーション対象とな
っている。従って、上述のシステムにより、磁気ディス
クドライブ(HDD)など比較的小型で応答の速い製品
(例えば2μsec程度のシミュレーション時間間隔でシ
ミュレーションを行なうべき製品)のシミュレーション
を行なうのは困難である。
【0010】また、本願発明者等は、3次元リアルタイ
ムシミュレーション装置を中核に据え、メカ試作品を作
らなくても組込みソフトウェア(制御プログラム)の開
発をメカ設計とは単独に進めることができるような支援
システムを提案している。この支援システムによる制御
プログラムの検証はタスクレベルで行なわれている。つ
まり、この支援システムでは、制御プログラム側からの
指令に応じたアクチュエータ動作がシミュレートされ、
その動作に従ったセンサのオン/オフ信号に基づいて、
制御プログラムの検証が行なわれている。従って、この
支援システムでは、モデルの動力学を解析するサーボレ
ベルで制御プログラムの検証(開発・デバッグ)を行な
うことができない。
【0011】サーボ機構は、機械的運動のための自動フ
ィードバック制御システムであり、制御量または制御出
力が機械的な位置〔または誘導変数(速度加速度など)
の一つ〕であるようなシステムを制御するために用いら
れるものである。このため、サーボ制御部分の制御プロ
グラムの検証を行なうためには、サーボ機構のシミュレ
ーションを、タスクレベルではなく、前記機械的な位置
等の制御量を動力学的に解析しながら(つまりサーボレ
ベルで)行なう必要がある。サーボレベルで検証を行な
う場合、動力学解析を行なって厳密なシミュレーション
を行なう必要があるため、実時間でシミュレーションを
行なうことは困難になることがある。
【0012】従って、実際のメカを用いることなく、比
較的小型で応答の速い製品について制御プログラムのサ
ーボ制御部分(以下、サーボ制御プログラムという場合
がある)の開発・デバッグ(検証)を行なえるようにす
ることが望まれている。なお、従来、MATLABなど
に代表される数値解析ソフトウェアを用いることによ
り、制御対象とその制御対象についての制御則とをモデ
ル化し、その制御則の検証を行なう一般的な手法は存在
している。この手法は、理論レベルで制御則の検証を行
なうことはできるが、検証した制御則を実際のファーム
ウェア(制御プログラム)にコード化する際に生じる様
々な問題点(実行速度,コードサイズ,消費メモリ量,
バグの混在など)には対応することができない。また、
この手法は、制御則の検証を行なうものであって、その
制御則に基づいて作成された制御プログラムの検証を行
なうことはできず、その制御プログラムの検証に際して
は、結局、前述した従来手法を用いることになる。
【0013】そこで、制御プログラム(ファームウェ
ア)を実行する制御回路上のMCU(MicroController
Unit)と、制御対象の機構を仮想的なモデルとして内部
に構築されこのモデルを用い機構の動作をシミュレート
するモデル実行環境(シミュレータ)とを、中継回路上
の共有メモリ(バス)を介して通信可能に接続し、シミ
ュレーション制御部によってMCUの動作とモデル実行
環境の動作とをシミュレーション制御部により同期させ
ることにより、時間厳密性を保ったまま精密なシミュレ
ーションを行なえるようにした技術も本願発明者等によ
って提案されている。
【0014】上述のような専用の中継回路をそなえるこ
とは、ファームウェア実行環境である制御回路上におけ
る貴重なメモリを消費しないようにするために必要不可
欠な技術である。しかし、近年の電子素子の高性能化に
伴い、制御回路上のメモリとして、十分な容量を有する
メモリを提供することが可能になってきており、専用の
中継回路を用いることなく、制御プログラムの開発・デ
バッグ(検証)を行なえるようにすることも望まれてい
る。
【0015】本発明は、このような課題に鑑み創案され
たもので、実際のメカを用いることなく、且つ、専用の
中継回路を用いることなく、比較的小型で応答の速い製
品(機構)を制御するための制御プログラムの開発・デ
バッグ(検証)を行なえるようにした、制御プログラム
開発支援装置を提供することを目的とする。
【0016】
【課題を解決するための手段】上記目的を達成するため
に、本発明の制御プログラム開発支援装置(請求項1)
は、機構の動作を制御する制御プログラムを実行し該機
構に対する制御量を所定の制御周期で算出して出力する
機構制御プログラム実行部として機能する第1プロセッ
サと、該機構を仮想的なモデルとして内部に構築され、
該モデルを用い、前記所定の制御周期よりも短く設定さ
れた所定のシミュレーション周期で、前記所定の制御周
期に対応する時間に亘って該機構の動作をシミュレート
することにより、該機構の状態量を算出して出力する機
構シミュレーション部として機能する第2プロセッサ
と、前記制御量を該第1プロセッサから該第2プロセッ
サへ転送する一方で前記状態量を該第2プロセッサから
該第1プロセッサへ転送する転送手段とをそなえ、該第
1プロセッサのメモリ空間において、該第2プロセッサ
へ転送すべき前記制御量を一時的に保持する制御量領域
と、該第2プロセッサから転送されてきた前記状態量を
一時的に保持する状態量領域とが確保され、該第1プロ
セッサは、該転送手段を通じて該第2プロセッサからの
前記状態量を受信して該状態量領域に格納するとその状
態量に応じた制御量の算出動作を開始し、算出された前
記制御量を該制御量領域に格納し、その制御量を該転送
手段を通じて該第2プロセッサへ送信し、該第2プロセ
ッサからの応答待ち状態へ移行する一方、該第2プロセ
ッサは、該転送手段を通じて該第1プロセッサからの前
記制御量を受信するとその制御量に応じたシミュレーシ
ョン動作を開始し、算出された前記状態量を該転送手段
を通じて該第1プロセッサへ送信し、該第1プロセッサ
からの応答待ち状態へ移行することを特徴としている。
【0017】また、本発明の制御プログラム開発支援装
置(請求項2)は、前述と同様の第1プロセッサ,第2
プロセッサおよび転送手段をそなえるとともに、該第1
プロセッサのメモリ空間において前述と同様の制御量領
域および状態量領域を確保した上で、該第1プロセッサ
に、所定時間の経過を計測し前記所定時間が経過する都
度、割込信号を発生するタイマをそなえ、該第1プロセ
ッサは、該タイマからの割込信号を受けると該状態量領
域における前記状態量に応じた制御量の算出動作を開始
し、算出された前記制御量を該制御量領域に格納し、そ
の制御量を該転送手段を通じて該第2プロセッサへ送信
する一方、該第2プロセッサは、該転送手段を通じて該
第1プロセッサからの前記制御量を受信するとその制御
量に応じたシミュレーション動作を開始し、算出された
前記状態量を該転送手段を通じて該第1プロセッサへ送
信し、該第1プロセッサからの応答待ち状態へ移行する
ことを特徴としている。
【0018】なお、該転送手段として、該第1プロセッ
サと該第2プロセッサとの間においてシリアルデータの
転送を行なう既存のデータ転送回線を用いてもよい(請
求項3)。この場合、該データ転送回線により前記制御
量もしくは前記状態量を転送する際には、前記制御量も
しくは前記状態量を転送する旨を示す識別情報を前記シ
リアルデータとして転送するとともに、前記制御量もし
くは前記状態量に関する情報を予め指定された固定デー
タ長のシリアルデータとして転送してもよいし(請求項
4)、該データ転送回線により前記制御量もしくは前記
状態量を転送する際には、前記制御量もしくは前記状態
量を転送する旨を示す識別情報と、前記制御量もしくは
前記状態量に関する情報のデータ長を示すデータ長情報
とを前記シリアルデータとして転送するとともに、前記
制御量もしくは前記状態量に関する情報を前記データ長
のシリアルデータとして転送してもよい(請求項5)。
【0019】
【発明の実施の形態】本発明の原理的な動作は以下の通
りである。 0.制御基板上のメモリ(図1の符号12参照)の一部
を制御量や状態量の送受信のために確保した上で、 1.通信ルーチン(図1の符号11b参照)が、仮想メ
カモデル(図1の符号21参照)からデータ転送回線
(図1の符号30参照)を通じて受信した状態量を、確
保されたメモリ空間(図1の符号12b参照)に書き込
み、 2.制御ルーチン(図1の符号11a)が、その状態量
をメモリ空間から読み込み、その状態量に基づいてサー
ボ演算を行ない、 3.制御ルーチンが、演算結果である制御量を、確保さ
れたメモリ空間(図1の符号12a参照)に書き込み、 4.通信ルーチンが、その制御量をメモリ空間から読み
込み、その制御量を、データ転送回線を通じて仮想メカ
モデルに送信する。
【0020】これにより、本発明では、実際のメカを用
いることなく、且つ、専用の中継回路を用いることな
く、制御プログラムの開発・デバッグを行なうことがで
きるようになる。実際の制御プログラム実行環境では、
デバッグやモニタリングのためのファームウェアコード
を転送すべくシリアルインターフェイスなどの通信手段
が装備され、この通信手段を介して制御プログラム実行
環境と実際のメカとが接続されていることが多い。この
ため、通常、制御プログラムの開発を行なう制御プログ
ラム開発支援装置においても、制御ルーチンを含む制御
回路(図1の符号10参照;第1プロセッサ)と仮想メ
カモデルを含むモデル実行環境(図1の符号20参照;
第2プロセッサ)とも、上述と同様の通信手段により接
続されている。従って、本発明では、制御量および状態
量のやり取りに際して上記通信手段としての機能を果た
すデータ転送回線を用いることにより、本発明は、制御
プログラムを組み込まれるほとんどの製品について、そ
の制御プログラムを開発するために適用することができ
る。
【0021】以下、図面を参照して本発明の実施の形態
を説明する。 〔1〕第1実施形態の説明 図1は本発明の第1実施形態としての制御プログラム開
発支援装置の構成を示すブロック図で、この図1に示す
ように、第1実施形態の制御プログラム開発支援装置1
は、制御回路(制御ファームウェア)10とモデル実行
環境(シミュレータ)20とを、データ転送回線(転送
手段)30を介して通信可能に接続することによって構
成されており、制御回路10およびモデル実行環境20
は、それぞれ、実際にはファームウェア実行用プロセッ
サ(第1プロセッサ)およびモデル演算用プロセッサ
(第2プロセッサ)により構成されている。
【0022】制御回路10は、制御ルーチン11aや通
信ルーチン11bを実行するMCU11と、メモリ(メ
モリ空間)12とから構成されている。ここで、メモリ
12は、サーボ機構の動作を制御する制御プログラムを
含む各種情報を格納するもので、このメモリ12の空間
においては、制御回路10からモデル実行環境20へ転
送すべき制御量を一時的に保持する制御量領域12a
と、モデル実行環境20から制御回路10へ転送されて
きた状態量を一時的に保持する状態量領域12bとが確
保されている。
【0023】MCU11はいわゆるワンチップマイコン
であり、このMCU11において実行される制御ルーチ
ン11aは、メモリ12に格納された制御プログラムを
実行し、モデル実行環境20側からの状態量(シミュレ
ーション結果)に応じて、サーボ機構(本実施形態では
後述する仮想メカモデル21)に対する制御量を所定の
制御周期(制御ルーチンの呼び出し間隔)ΔTで算出し
て出力する機構制御プログラム実行部として機能するも
のである。また、MCU11において実行される通信ル
ーチン11bは、データ転送回線30を介しモデル実行
環境20との間でデータ送受信(制御量の送信や状態量
の受信)を行なうものである。
【0024】モデル実行環境(以下、シミュレータもし
くはメカシミュレータという場合もある)20は、サー
ボ機構を仮想的なモデル(仮想メカモデル)21として
内部に構築され、その仮想メカモデル21を用いてサー
ボ機構の動作を動力学的に解析しながら、制御周期ΔT
よりも短く設定された所定のシミュレーション周期Δt
でサーボ機構の動作をシミュレートすることにより、サ
ーボ機構の状態量を算出して出力する機構シミュレーシ
ョン部として機能するものである。このモデル実行環境
20においても通信ルーチン22が実行され、この通信
ルーチン22によって、データ転送回線30を介し制御
回路10との間でデータ送受信(制御量の受信や状態量
の送信)が行なわれるようになっている。
【0025】データ転送回線30は、制御ルーチン11
aにより算出された制御量を、制御回路10(通信ルー
チン11b)からモデル実行環境20(通信ルーチン2
2)へ転送する一方で、仮想メカモデル21を用いて算
出された状態量を、モデル実行環境20(通信ルーチン
22)から制御回路10(通信ルーチン11b)へ転送
するものである。
【0026】制御回路10とモデル実行環境20との間
の通信手段としては、USB(Universal Serial Bus),
RS−232C,UART(Universal Asynchronous Re
ceiver/Transmitter)などのシリアル回線や、TCP/
IP(Transmission Control Protocol/Internet Protoc
ol),無線,赤外線などコンピュータ間を結ぶあらゆる
通信手段を用いることができる。
【0027】特に、本実施形態におけるデータ転送回線
30としては、制御回路10とモデル実行環境20との
間においてシリアルデータの転送を行なうべく予めそな
えられた既存のもの(例えばUSB,RS−232C,
UART等)を用いる。この既存のデータ転送回線30
は、モニタリングを行なったり、制御プログラムのデバ
ッグのために制御プログラムのメモリ空間をリード/ラ
イトしたり、あるアドレスから制御プログラムを実行さ
せたり、プログラム自体(ファームウェアコード)を転
送したりなど、別の目的で利用されていたシリアルイン
ターフェイスであり、本発明における転送手段として流
用される。
【0028】このような流用を行なった場合、データ転
送回線30により本来転送されるべきデータと、本発明
により転送すべき情報(制御量/状態量)との両方を、
データ転送回線30に共存させながら転送しなければな
らない。このデータ転送回線30を用いた制御量/状態
量の転送手法については、図8〜図10を参照しながら
後述する。
【0029】そして、本実施形態の制御プログラム開発
支援装置1においては、シミュレーション周期Δtが制
御周期ΔTよりも短く設定され、モデル実行環境20
は、所定の制御周期ΔTに対応する時間に亘って所定の
シミュレーション周期Δtでシミュレーションを行な
い、そのシミュレーションによって得られたサーボ機構
の状態量を、通信ルーチン22によりデータ転送回線3
0を介して制御回路へ転送するように構成されている。
【0030】また、制御回路10においては、データ転
送回線30を通じてモデル実行環境20からの状態量を
通信ルーチン11bにより受信して状態量領域12bに
格納すると、その状態量に応じた制御量の算出動作(制
御ルーチン11aの動作)を開始し、算出された制御量
を制御量領域12aに格納する。そして、制御量領域1
2aに制御量が格納されると、その制御量を、通信ルー
チン11bによりデータ転送回線30を通じてモデル実
行環境20へ送信し、制御回路10は、モデル実行環境
20からの応答待ち状態へ移行するようになっている。
【0031】一方、モデル実行環境20は、データ転送
回線30を通じて制御回路10からの制御量を通信ルー
チン22により受信すると、仮想メカモデル21を用い
て、その制御量に応じたシミュレーション動作を開始
し、算出された状態量を、通信ルーチン22によりデー
タ転送回線30を通じて制御回路10へ送信し、制御回
路10からの応答待ち状態へ移行するようになってい
る。上述の動作を行なうことにより、制御回路10の動
作とモデル実行環境20の動作との同期をとれるように
なっている。
【0032】次に、図2〜図10を参照しながら、上述
のごとく構成された、本発明の第1実施形態としての制
御プログラム開発支援装置1の動作について説明する。
まず、図2に示すフローチャート(ステップS1〜S
3)に従って、第1実施形態の制御回路10における制
御ルーチン11aによる基本的な動作(基本ルーチン)
について説明する。
【0033】つまり、制御ルーチン11aは、メモリ空
間上に配置された入力装置(図示省略;例えばPIO,
AD,カウンタ等)から、メモリ12(状態量領域12
b)を通して、状態量を受け取り(ステップS1)、そ
の状態量に基づいてサーボ演算を行なった後(ステップ
S2)、そのサーボ演算の結果として得られた、仮想メ
カモデル21(モータ等のアクチュエータ)への指令値
を、制御量領域12aを通して、適当な出力装置(図示
省略;例えばDA,PWM,PIO等)に制御量として
出力する(ステップS3)。
【0034】なお、制御ルーチン11a自体は、通常、
割込みやタイマのポーリング等によって定期的に呼び出
されるような構成になっている。そして、制御プログラ
ム開発支援装置1においては、できるだけ、上述のよう
な構造(基本ルーチン)を変えないことが望ましい。
【0035】以下に、第1実施形態の制御プログラム開
発支援装置1のより具体的な動作について説明する。図
3は第1実施形態におけるシミュレーション動作の第1
例を説明するためのフローチャートである。この図3に
従うシミュレーション動作は、専用の中継回路を用いな
いHILシミュレーションの、最も基本的な動作(第1
例)である。
【0036】この図3に示す例において、制御回路10
側では、通信ルーチン11bが、シミュレータ20(仮
想メカモデル21)からデータ転送回線30を通じて状
態量を受信し、その状態量をメモリ12の状態量領域1
2bに書き込むと(ステップS5)、図2と同様、制御
ルーチン11aが、状態量領域12bから状態量を受け
取り(ステップS1)、その状態量に基づいてサーボ演
算を行なった後(ステップS2)、そのサーボ演算の結
果としての制御量を、制御量領域12aへ書き込む(ス
テップS3)。この後、通信ルーチン11bが、制御量
を制御量領域12aから読み込み、その制御量を、デー
タ転送回線30を通じてシミュレータ20(仮想メカモ
デル21)に送信する(ステップS4)。
【0037】つまり、制御回路(第1プロセッサ)10
は、データ転送回線30を通じてシミュレータ20から
の状態量を受信して状態量領域12bに格納するとその
状態量に応じた制御量の算出動作を開始し、算出された
制御量を制御量領域12aに格納し、その制御量をデー
タ転送回線30を通じてシミュレータ20へ送信し、こ
のシミュレータ20からの応答待ち状態(状態量待ち状
態)へ移行する。
【0038】一方、シミュレータ20側では、通信ルー
チン22が、制御回路10からデータ転送回線30を通
じて制御量を受信すると(ステップS11)、仮想メカ
モデル21が、その制御量に基づいてシミュレーション
を実行した後(ステップS12)、通信ルーチン22
が、シミュレーション結果としての状態量を、データ転
送回線30を通じて制御回路10に送信する(ステップ
S13)。つまり、シミュレータ(第2プロセッサ)2
0は、データ転送回線30を通じて制御回路10からの
制御量を受信するとその制御量に応じたシミュレーショ
ン動作を開始し、算出された状態量をデータ転送回線3
0を通じて制御回路10へ送信し、この制御回路10か
らの応答待ち状態(制御量待ち状態)へ移行する。
【0039】この図3に示す動作例では、シミュレータ
20側の「制御量受信・入力(ステップS11)」と制
御ファームウェア側の「状態量受信(ステップS5)」
とにおいて、受信が完了するまで次のステップへ進まな
いように動作制御を行なうことにより、制御回路10の
動作とシミュレータ20の動作との同期をとりながらシ
ミュレーションを行なうことが可能になる。なお、この
とき、図3中における制御ルーチン11aは、図2に示
した基本ルーチンと同じであるため、図3に示す動作
は、制御回路10において、アドレスマップ等の変更を
行なうだけで、ほとんど基本ルーチンの構造を変えるこ
となく実現される。
【0040】図4は第1実施形態におけるシミュレーシ
ョン動作の第2例を説明するためのフローチャートであ
る。この図4に従うシミュレーション動作は、専用の中
継回路を用いないHILシミュレーションの第2例であ
る。なお、図4中、既述のステップ番号と同一のステッ
プ番号を付されたステップは、同一もしくはほぼ同一の
処理を行なうステップを示しているので、その詳細な説
明は省略する。
【0041】シミュレータ20と制御ファームウェア
(制御回路)10とを結ぶ、データ転送回線(通信回
線)30として、ターミナルソフトウェアを用いたユー
ザインターフェイス用の回線を流用することがある。こ
の場合、ユーザがいつデータを入力するか分からないた
め、ファームウェア10側におけるデータ受信部分は、
マルチタスクOS(Operating System)における別スレッ
ドとして構成され、データを受信した際に発生する割込
信号によって起動されるように構成される。
【0042】図4に示す動作例は、このような構成に対
応したものであり、この図4においては、別タスクとし
ての状態量受信ステップSrでシミュレータ20からの
データ(状態量)を受信しそのデータをメモリ空間(状
態量領域12b)に格納すると、制御ルーチン11aを
呼び出して起動することにより、制御回路10の動作と
シミュレータ20の動作との同期をとりながらシミュレ
ーションを行なうことが可能になる。
【0043】制御ルーチン11aが起動されると、前述
した通り、状態量領域12bから状態量を受け取り(ス
テップS1)、その状態量に基づいてサーボ演算を行な
った後(ステップS2)、そのサーボ演算の結果として
の制御量を、制御量領域12aへ書き込む(ステップS
3)。この後、通信ルーチン11bが起動され、制御量
送信ステップStにおいて、制御量が、制御量領域12
aから読み込まれ、データ転送回線30を通じてシミュ
レータ20(仮想メカモデル21)へ送信される。
【0044】図5は第1実施形態におけるシミュレーシ
ョン動作の第3例を説明するためのフローチャートであ
る。この図5に従うシミュレーション動作は、専用の中
継回路を用いないHILシミュレーションの第3例であ
る。なお、図5中、既述のステップ番号と同一のステッ
プ番号を付されたステップは、同一もしくはほぼ同一の
処理を行なうステップを示しているので、その詳細な説
明は省略する。
【0045】実機において、制御ルーチン11aの呼び
出し間隔が長い場合、もしくは、シミュレータ20の処
理速度が十分に速い場合には、同期処理を行なう必要が
無いため、図5に示すようなシミュレーション動作を行
なってもよい。この場合、制御回路(制御ファームウェ
ア)10に、所定時間の経過を計測しその所定時間が経
過する都度、割込信号を発生するタイマ40をそなえて
おく。そして、制御ルーチン11aを、タイマ40によ
る割り込みやポーリングなど、本来の起動要因で呼び出
して起動し、メモリ空間(状態量領域12b)から状態
量を受け取り(ステップS1)、その状態量に基づいて
サーボ演算を行なった後(ステップS2)、そのサーボ
演算の結果としての制御量を、制御量領域12aへ書き
込む(ステップS3)。
【0046】このとき、シミュレータ20によるシミュ
レーション動作(ステップS11〜S14)や通信ルー
チン11bによる状態量/制御量の通信(ステップS2
1,S22)は、制御ルーチン11aと非同期に行なわ
れる。また、シミュレータ20の全体のループの中に
“WAIT(待機)”プロセス(ステップS14)を入れ、シ
ミュレーションのサイクルループを一定周期にすること
により、時間厳密性を保ったリアルタイムでのシミュレ
ーションを実行することを可能にしている。
【0047】なお、図5に示す例では、“WAIT(待機)”
プロセス(ステップS14)を、シミュレータ20側に
入れているが、制御ファームウェア10の状態量受信
(ステップS22)および制御量送信(ステップS2
1)のループの中に入れてもよい。
【0048】図6は第1実施形態におけるシミュレーシ
ョン動作の第4例を説明するためのフローチャート、図
7は図6で説明した第4例を適用された本実施形態の制
御プログラム開発支援装置の要部構成を示すブロック図
である。なお、図6中、既述のステップ番号と同一のス
テップ番号を付されたステップは、同一もしくはほぼ同
一の処理を行なうステップを示しているので、その説明
は省略する。
【0049】上述した第3例の考えを発展させると、必
ずしも同じプロセッサ(制御回路,制御用計算機)10
上で別スレッドとして制御量/状態量を送受信する必要
はなく、図6や図7に示すように、通信専用の第3プロ
セッサ(通信用マイコン,通信用計算機)50を、制御
回路10とデータ転送回線30との間に配置するととも
に、制御量領域12aおよび状態量領域12bを制御回
路10と通信用マイコン50との共有メモリ12Aに確
保し、通信用マイコン50が、制御量領域12aに保持
された制御量をデータ転送回線30を通じてシミュレー
タ20へ送信する一方、シミュレータ20からの状態量
をデータ転送回線30を通じて受信し状態量領域12b
に格納する通信ルーチン11bを実行するようにしても
よい。なお、第3プロセッサ50としては、マイコン等
の小型計算機を想定しているが、同等の処理を行なう適
当な回路であっても構わない。
【0050】図6に示す第4例では、図5に示した第3
例と同様、シミュレータ20と制御ファームウェア(制
御回路)10とは非同期に動作しているが、本出願人に
よって提案された技術(平成12年8月21日出願の特
願2000−249521号参照)を適用することで、
同期シミュレーションを行なうことも可能である。
【0051】制御回路10として用いられる制御用ワン
チップマイコンでは、AD(Analog/Digital)ピン,D
A(Digital/Analog)ピン,PIO(Parallel Input/O
utput)ピンなど、様々な入出力ピンが装備されている
場合が多い。このような場合には、図7に示すように、
制御用計算機(制御回路)10と通信用計算機(第3プ
ロセッサ)50との間に、共有メモリ12Aだけでなく
DA回路51,AD回路52,カウンタ53,バッファ
54等を介装し、これらのピンが入出力する信号を制御
用計算機10が直接生成したり受信したりするように構
成してもよい。このとき、例えばシミュレータ20を一
般的なパーソナルコンピュータをで実現することを想定
すると、通信部分としてUSB,RS−232C,TC
P/IPなど一般的な通信手段を使用することができる
ため、シミュレータ20をノートパソコン等によって実
現することができる利点もある。
【0052】次に、図8〜図10を参照しながら、第1
実施形態のデータ転送回線30による制御量/状態量の
転送手法について説明する。図8〜図10は、それぞ
れ、第1実施形態のデータ転送回線30によって転送さ
れるシリアルデータの第1〜第3具体例を示す図であ
る。
【0053】前述した通り、本実施形態では、データ転
送回線30として、制御回路10とモデル実行環境20
との間においてシリアルデータの転送を行なうべく予め
そなえられた既存のもの(例えばUSB,RS−232
C,UART等)を流用しているので、データ転送回線
30により本来転送されるべきデータと、本発明により
転送すべき情報(制御量/状態量)との両方を、データ
転送回線30に共存させながら転送する必要がある。
【0054】このため、第1実施形態では、例えば図8
〜図10に示すような手法が用いられる。図8に示す第
1例では、制御量/状態量を転送する旨を示す識別情報
(キーワード)をシリアルデータとして転送するととも
に、制御量/状態量に関する情報とを予め指定された固
定データ長(nバイト分)のシリアルデータとして転送
している。
【0055】つまり、図8に示す第1例では、制御量/
状態量に関する情報を転送する際には、従来の通信では
使用されていなかった文字、例えば“80”をキーワー
ド(1バイト分)として挿入し、そのキーワードの後に
続く固定データ長分(図8では4バイト分)のシリアル
データを、制御量/状態量に関する情報の転送に用いて
いる。
【0056】より具体的に説明すると、本来転送される
べきデータ“READ ”(READに続いてスペー
ス)と“3F”との間で制御量/状態量に関する情報を
転送すべく、“READ ”の直後にキーワード“8
0”が挿入され、これに続いて制御量/状態量に関する
情報が4バイト分のシリアルデータ01〜04として転
送される。
【0057】従って、制御回路10やシミュレータ20
では、キーワード“80”を認識すると、その後の4バ
イト分のシリアルデータは、HILシミュレーション用
のデータ(即ち、制御量/状態量に関する情報)として
抽出されメモリ空間(制御量領域12aや状態量空間1
2b)へ分配される一方、それ以外のシリアルデータ
“READ ”や“3F”は、本来の処理へ分配され
る。
【0058】図8に示す例では、HILシミュレーショ
ン用のデータ文字列の長さを固定としているが、図9や
図10に示す例のように、その長さを可変とすることも
できる。そのため、図9や図10に示す例では、制御量
/状態量を転送する旨を示す識別情報(キーワード)
と、制御量/状態量に関する情報のデータ長を示すデー
タ長情報とをシリアルデータとして転送するとともに、
制御量/状態量に関する情報を前記データ長のシリアル
データとして転送している。
【0059】図9に示す第2例では、1バイト分のキー
ワード“80”の次の1バイト分のデータで、転送すべ
きデータの長さ(図9では5バイト)を指定し、その後
に続く、指定されたデータ長分(5バイト分)のシリア
ルデータを、制御量/状態量に関する情報の転送に用い
ている。
【0060】また、図10に示す第3例では、先頭の1
バイト分のデータにより、キーワードおよびデータ長
(図10では6バイト)の両方を設定し、その後に続
く、指定されたデータ長分(6バイト分)のシリアルデ
ータを、制御量/状態量に関する情報の転送に用いてい
る。ここでは、先頭の1バイト分のデータのうち8ビッ
ト目が“1”であれば、そのデータが制御量/状態量を
転送する旨を示すキーワードとして認識され、残りの1
〜7ビットで、転送されるべきデータの長さが設定され
ている。
【0061】従って、図9や図10に示すごとくデータ
転送が行なわれる場合、制御回路10やシミュレータ2
0では、キーワードおよびデータ長を認識すると、キー
ワードやデータ長を指定したデータの後の指定データ長
分のシリアルデータは、HILシミュレーション用のデ
ータ(即ち、制御量/状態量に関する情報)として抽出
されメモリ空間(制御量領域12aや状態量空間12
b)へ分配される一方、それ以外のシリアルデータは、
本来の処理へ分配される。なお、第1実施形態でのデー
タ幅は8ビットであっても16ビットであってもよく特
定のビット幅に限定されるものではない。また、通信の
信頼性を向上させるべく、適当なチェックサムを導入し
てもよい。
【0062】このように、本発明の第1実施形態として
の制御プログラム開発支援装置1によれば、制御回路1
0のメモリ空間における制御量領域12aおよび状態量
領域12bに制御量や状態量をそれぞれ一時的に保持さ
せながら、データ転送回線30を介して制御回路10と
シミュレータ20との間で制御量および状態量をやり取
りすることにより、制御回路10の動作とシミュレータ
20の動作とを同期させることができるので、専用の中
継回路等をそなえることなく時間厳密性を保ったまま精
密なシミュレーションを行なうことが可能になる。
【0063】その際、シミュレータ20が、制御回路1
0での制御周期(サーボ周期)よりも短いシミュレーシ
ョン周期でシミュレーションを行なうので、精密なシミ
ュレーションを実行することが可能になる。つまり、制
御回路10での演算処理を遅らせてシミュレータ20で
のモデル演算処理(シミュレーション)と同期を取るこ
とにより、機構の特性(ここではサーボ特性)を変化さ
せずにスローモーション的に且つ時間厳密性を保ったま
ま、精密なシミュレーションが行なわれる。従って、専
用の中継回路等を用いることなく且つ実際のメカを用い
ることなく、比較的小型で応答の速い製品についての制
御プログラムの開発・デバッグ(検証)を行なうことが
できるのである。
【0064】また、モデルパラメータを変更するだけで
容易に任意の特性をもったモデルを作成して制御プログ
ラム(制御ファームウェア)によって制御させることが
できる。従って、制御プログラムが、大量に生産される
製品のバラツキにどの程度まで対応できるかの検証、即
ち制御プログラムの品質検証を確実に行なうこともでき
る。
【0065】さらに、仮想的なモデルを用いてシミュレ
ーションを行なうことにより、ステップデバッグなどの
機能を使用することが可能になり、制御プログラム開発
をより容易に行なえるほか、新しいアクチュエータやセ
ンサを用いた新規の制御手法も簡単に検証することが可
能になる。
【0066】一方、制御回路10での制御量算出間隔
(制御ルーチンの呼び出し間隔)が大きい場合や、シミ
ュレータ20でのシミュレーション処理速度が十分に速
い場合には、図5に示したタイマ40からの割込信号を
用いることにより、制御回路10とシミュレータ20と
の間で同期を取る処理を行なう必要がなくなる。
【0067】また、転送手段として、制御回路10とシ
ミュレータ20との間でシリアルデータの転送を行なう
既存のデータ転送回線30を用いることにより、専用の
転送手段を新規に追加してそなえる必要がなく、簡素か
つ安価に本発明の構成を実現することができる。
【0068】そして、転送手段として既存のデータ転送
回線30を用いる場合、図8に示すごとく、キーワード
を転送するとともに、制御量/状態量に関する情報を予
め指定された固定データ長のシリアルデータとして転送
することにより、キーワードに基づいて制御量/状態量
に関する情報を制御量/状態量以外の情報(制御回路1
0とシミュレータ20との間においてデータ転送回線3
0を用いて元々やり取りされていた情報)と区別するこ
とができるので、これらの情報が混在した状態でデータ
転送回線30を介して送受信されても、制御量/状態量
に関する情報を確実に抽出して制御プログラムの開発・
デバッグを行なうことができる。
【0069】また、転送手段として既存のデータ転送回
線30を用いる場合、図9や図10に示すごとく、キー
ワードおよびデータ長情報を転送するとともに、制御量
/状態量に関する情報を前記データ長情報によって指定
されたデータ長のシリアルデータとして転送することに
より、キーワードに基づいて制御量/状態量に関する情
報を制御量/状態量以外の情報と区別することができる
ので、これらの情報が混在した状態でデータ転送回線3
0を介して送受信されても、制御量/状態量に関する情
報を確実に抽出して制御プログラムの開発・デバッグを
行なうことができるほか、データ転送回線30によって
やり取りされる制御量/状態量に関する情報のデータ長
を任意に設定することができる。
【0070】〔2〕第2実施形態の説明 図11は本発明の第2実施形態としての制御プログラム
開発支援装置の構成を示すブロック図で、この図11に
示すように、第2実施形態の制御プログラム開発支援装
置1Aは、第1実施形態とほぼ同様の制御回路(制御フ
ァームウェア)10やメカシミュレータ20をそなえる
ほか、通信シミュレータ(シミュレーション部)23や
キャッシュシミュレータ(シミュレーション部)24を
そなえて構成されている。そして、制御回路10と複数
のシミュレータ20,23,24とは、データ転送回線
(転送手段)30,31を介して通信可能に接続されて
いる。なお、図11では、制御量領域12aや状態量領
域12bを確保されるメモリ12の図示は省略されてい
る。また、データ転送回線31は、後述する分配手段2
5とシミュレータ20,23,24との間を接続するも
のである。
【0071】そして、第2実施形態では、デバッグ対象
を、第1実施形態のごとくファームウェアの一部分であ
るサーボ演算部分に固定するのではなく、例えば磁気デ
ィスク装置用のファームウェアであれば、サーボ演算部
分以外にホストPC(図示省略)との通信部分やデータ
転送部分などファームウェア全体を同時にデバッグする
環境(総合デバッグ環境)に、本発明を拡張し適用して
いる。
【0072】従って、第2実施形態の制御回路10は、
第1実施形態と同様、ファームウェア実行用プロセッサ
(第1プロセッサ)により構成されているが、ファーム
ウェア全体を実行するもので、サーボ機構の動作を制御
する制御プログラムだけでなく、サーボ機構以外の各種
部分の動作を制御する制御プログラムをそれぞれ実行
し、各種部分に対する制御量をそれぞれ算出する複数の
制御プログラム実行部として機能する。これら複数の制
御プログラム実行部としての機能は、一つのプロセッサ
(第1プロセッサ)によって別スレッドとして実現して
もよいし、サーボ機構の動作を制御する制御プログラム
を実行する第1プロセッサと並列にそなえられた1以上
のプロセッサによって実現してもよい。
【0073】また、第2実施形態では、上述のような複
数の制御プログラム実行部(各種部分)に対応して、複
数のシミュレータ20,23,24(シミュレータ群)
がそなえられている。メカシミュレータ20は、第1実
施形態と同様、モデル演算用プロセッサ(第2プロセッ
サ)により構成され、サーボ機構を仮想メカモデル21
(図1参照)として内部に構築され、その仮想メカモデ
ル21を用いてサーボ機構の動作を動力学的に解析しな
がら制御周期ΔTよりも短く設定された所定のシミュレ
ーション周期Δtでサーボ機構の動作をシミュレートす
ることにより、サーボ機構の状態量を算出して出力する
ものである。このメカシミュレータ20は、制御回路1
0のサーボ演算部分からの制御量に応じてシミュレーシ
ョンを行なう。
【0074】通信シミュレータ23やキャッシュシミュ
レータ24は、それぞれ、通信部分やキャッシュ部分を
仮想的なモデルとして内部に構築され、そのモデルを用
いて各部分の動作をシミュレートすることにより各部分
の状態量を算出するシミュレーション部として機能する
ものである。
【0075】これら複数のシミュレーション部(シミュ
レータ20,23,24)としての機能は、一つのプロ
セッサ(第2プロセッサ)によって別スレッドとして実
現してもよいし、サーボ機構の動作をシミュレーション
する第2プロセッサと並列にそなえられた1以上のプロ
セッサによって実現してもよい。
【0076】そして、第2実施形態においても、制御回
路10と複数のシミュレータ20,23,24との間の
転送手段(後述する分配手段13と25との間の転送手
段)として、制御回路10とシミュレータ20との間に
予めそなえられシリアルデータ転送を行なう既存のデー
タ転送回線30が用いられている。このデータ転送回線
30により、制御回路10における複数の制御プログラ
ム実行部のそれぞれで算出された制御量が、対応するシ
ミュレーション部(シミュレータ20,23,24のい
ずれか)へ転送される一方、複数のシミュレーション部
のそれぞれで算出された状態量が、対応する制御プログ
ラム実行部へ転送されるようになっている。
【0077】このように転送手段として既存のデータ転
送回線30を流用するため、第2実施形態では、データ
転送回線30により本来転送されるべきデータと、制御
回路10の各制御プログラム実行部と各シミュレータ2
0,23,24との間でやり取りされる制御量/状態量
とを、データ転送回線30に共存させながら転送しなけ
ればならない。この場合、第1実施形態と同様、本来転
送されるべきデータと制御量/状態量とを識別できるよ
うにするだけでなく、各制御量/状態量がどの部分のシ
ミュレーションについてのものであるかも識別できるよ
うにする必要がある。
【0078】このため、第2実施形態では、例えば図1
2〜図14に示すような手法が用いられる。図12〜図
14は、それぞれ、第2実施形態のデータ転送回線30
によって転送されるシリアルデータの第1〜第3具体例
を示す図である。図12に示す第1例では、制御量/状
態量を転送する旨を示す識別情報(キーワード)と、転
送先のシミュレータもしくは制御プログラム実行部を特
定する特定情報(シミュレータ番号)とをシリアルデー
タとして転送するとともに、制御量/状態量に関する情
報とを予め指定された固定データ長(nバイト分)のシ
リアルデータとして転送している。
【0079】つまり、図12に示す第1例では、制御量
/状態量に関する情報を転送する際には、第1実施形態
と同様、従来の通信では使用されていなかった文字、例
えば“80”をキーワード(1バイト分)として挿入す
るとともに、今回転送する制御量/状態量に係るシミュ
レータを指定するシミュレータ番号(1バイト分;図1
2では“02”)を挿入し、その後に続く固定データ長
分(図12では4バイト分)のシリアルデータを、制御
量/状態量に関する情報の転送に用いている。
【0080】このとき、図11に示すように、制御回路
10側およびシミュレータ群側にはそれぞれ分配手段1
3および25がそなえられている。そして、分配手段1
3は、データ転送回線30で転送されるシリアルデータ
中にキーワードを認識した場合、そのキーワードに続く
シミュレータ番号を認識し、そのシミュレータ番号に応
じた制御プログラム実行部に、後続の4バイト分の状態
量を分配する。また、分配手段25は、データ転送回線
30で転送されるシリアルデータ中にキーワードを認識
した場合、そのキーワードに続くシミュレータ番号を認
識し、そのシミュレータ番号に応じたシミュレータ2
0,23,24のいずれかに、データ転送回線31を通
じて後続の4バイト分の制御量を分配する。なお、制御
量/状態量以外のシリアルデータは、第1実施形態と同
様、本来の処理へ分配される。
【0081】図12に示す例では、制御量/状態量のデ
ータ長を固定としているが、図13や図14に示す例の
ように、その長さを可変とすることもできる。そのた
め、図13や図14に示す例では、制御量/状態量を転
送する旨を示す識別情報(キーワード)と、転送先のシ
ミュレータもしくは制御プログラム実行部を特定する特
定情報(シミュレータ番号)と、制御量/状態量に関す
る情報のデータ長を示すデータ長情報とをシリアルデー
タとして転送するとともに、制御量/状態量に関する情
報を前記データ長のシリアルデータとして転送してい
る。
【0082】図13に示す第2例では、1バイト分のキ
ーワード“80”の次の1バイト分のデータでシミュレ
ータ番号(図13では“03”)を指定し、さらに、次
の1バイト分のデータで、転送すべきデータの長さ(図
13では4バイト)を指定し、その後に続く、指定され
たデータ長分(4バイト分)のシリアルデータを、制御
量/状態量に関する情報の転送に用いている。
【0083】また、図14に示す第3例では、先頭の1
バイト分のデータにより、キーワードおよびシミュレー
タ番号(図14では“6”)を設定し、次の1バイト分
のデータで、転送すべきデータの長さ(図14では5バ
イト)を指定し、その後に続く、指定されたデータ長分
(5バイト分)のシリアルデータを、制御量/状態量に
関する情報の転送に用いている。ここでは、先頭の1バ
イト分のデータのうち8ビット目が“1”であれば、そ
のデータが制御量/状態量を転送する旨を示すキーワー
ドとして認識され、残りの1〜7ビットで、転送先のシ
ミュレータ番号が設定されている。
【0084】従って、図13や図14に示すごとくデー
タ転送が行なわれる場合、制御回路10における分配手
段13が、転送回線30で転送されるシリアルデータ中
にキーワードを認識すると、そのキーワードに続くシミ
ュレータ番号やデータ長情報を認識し、そのシミュレー
タ番号に応じた制御プログラム実行部に、後続の指定デ
ータ長分の状態量を分配する。同様に、シミュレータ2
0における分配手段25が、データ転送回線30で転送
されるシリアルデータ中にキーワードを認識すると、そ
のキーワードに続くシミュレータ番号やデータ長情報を
認識し、そのシミュレータ番号に応じたシミュレータ2
0,23,24のいずれかに、データ転送回線31を通
じて後続の指定データ長分の制御量を分配する。なお、
この場合も、制御量/状態量以外のシリアルデータは、
第1実施形態と同様、本来の処理へ分配される。
【0085】なお、第2実施形態でのデータ幅は8ビッ
トであっても16ビットであってもよく特定のビット幅
に限定されるものではない。また、通信の信頼性を向上
させるべく、適当なチェックサムを導入してもよい。さ
らに、データ転送手法としては、図12〜図14に示し
た例に限られるものではなく、例えば、図14に示す例
においてキーワード以外の残り7ビットによりシミュレ
ータ番号とデータ長情報との両方を指定してもよいし、
データ長情報の後にシミュレータ番号を挿入してもよい
し、シミュレータ番号をデータの一番最後に設定しても
よいし、種々のパターンが考えられる。
【0086】次に、図15〜図19に示すフローチャー
トに従って第2実施形態におけるシミュレーション動作
について説明する。なお、ここで説明する例は、あくま
で一実現例であり、ここでは、各シミュレータやシミュ
レータ側の分配部分(分配手段25)を、TCP/IP
(ソケット通信)を用いて実現するとともに、図13も
しくは図14に示したデータ転送手法を採用した場合に
ついて説明する。
【0087】ここで、図15および図16はいずれもシ
ミュレータ側(分配手段25)での分配処理手順を説明
するためのもので、図15はシミュレータ側のスレッド
についての分配処理手順を説明するためのフローチャー
ト(ステップS101〜S130)、図16はファーム
ウェア(F/W)側のスレッドについての分配処理手順
を説明するためのフローチャート(ステップS131〜
S141)である。また、図17は各シミュレータの動
作を説明するためのフローチャート(ステップS142
〜S153)である。さらに、図18および図19はい
ずれもファームウェア(F/W)側(分配手段13)で
の処理手順を説明するためのもので、図18はそのメイ
ンルーチンについて説明するためのフローチャート(ス
テップS154〜S160)、図19はそのサブルーチ
ンについて説明するためのフローチャート(ステップS
161−i,S162−i,S171〜S178;i=
1,2,…,i,…,k)である。
【0088】シミュレータ側のスレッドについての分配
処理手順では、図15に示すように、まず初期設定を行
ない(ステップS101)、対応表用リスト(Lis
t)を“NULL”に設定してから(ステップS10
2)、シミュレータ側の接続・切断・データ受信を待つ
(ステップS103)。シミュレータ側の接続が行なわ
れた場合(ステップS104のYESルート)、対応表
用リストに領域を確保し(ステップS105)、ソケッ
ト番号Sを記憶するとともに、ダミーのシミュレータ番
号を設定して(ステップS106)、リストに追加し
(ステップS108)、ステップS103に戻る。
【0089】シミュレータ側から切断が行なわれた場合
(ステップS104のNOルートからステップS109
のYESルート)、対応表用リストからソケット番号S
を検索し、ソケット番号Sについての情報をリストから
削除し(ステップS110〜S116)、ステップS1
03に戻る。
【0090】シミュレータ側からデータを受信した場合
(ステップS104のNOルートからステップS109
のNOルート)、対応表用リストからソケット番号Sを
検索し(ステップS117〜S120)、対応表用リス
トの中にソケット番号Sが無ければ(ステップS118
のYESルート)、ステップS103に戻り待機状態を
継続する。
【0091】対応表用リストにおけるソケット番号Sの
検索に成功した場合(ステップS119のYESルー
ト)、シミュレータ番号を登録する命令であるか否かを
判断し(ステップS121)、シミュレータ番号の登録
命令である場合(ステップS121のYESルート)、
そのシミュレータ番号nと同じシミュレータ番号が既に
対応表に既に登録されていないかを認識すべく、対応表
用リストにおいてシミュレータ番号nの検索を行なう
(ステップS122〜S126)。
【0092】そのシミュレータ番号nが対応表用リスト
に登録されていない場合(ステップS124のYESル
ート)、そのシミュレータ番号nを登録してから(ステ
ップS127)、シミュレータにそのシミュレータ番号
nを受けて付けた旨を送信し(ステップS128)、ス
テップS103に戻る。
【0093】また、そのシミュレータ番号nが対応表用
リストに登録されている場合(ステップS125のYE
Sルート)、シミュレータにそのシミュレータ番号nを
拒否する旨を送信し(ステップS129)、ステップS
103に戻る。一方、シミュレータ番号の登録命令では
ない場合(ステップS121のNOルート)、ファーム
ウェア(F/W)に、既に登録されているシミュレータ
番号pを付加したデータを送信し(ステップS13
0)、ステップS103に戻る。
【0094】ファームウェア(F/W)側のスレッドに
ついての分配処理手順では、図16に示すように、まず
初期設定を行なってから(ステップS131)、ファー
ムウェア側からの受信を待つ(ステップS132)。フ
ァームウェア側からデータを受信すると、そのデータの
先頭がキーワードであるか否かを判断し(ステップS1
33)、キーワードではない場合(ステップS133の
NOルート)、従来の処理(画面出力等)を行なう(ス
テップS141)。一方、キーワードである場合(ステ
ップS133のYESルート)、シミュレータ番号Nお
よびデータ長を取得し(ステップS134)、データ長
分のデータ(制御量/指令値)を取得する(ステップS
135)。
【0095】この後、対応表用リストからシミュレータ
番号Nを検索し(ステップS136〜S139)、その
シミュレータ番号Nに対応するシミュレータが無ければ
(ステップS137のYESルート)、ステップS13
2に戻り待機状態を継続する。一方、シミュレータ番号
Nに対応するシミュレータが登録されており対応表用リ
ストにおけるシミュレータ番号Nの検索に成功した場合
(ステップS138のYESルート)、そのシミュレー
タ番号Nのシミュレータに、受信データ(制御量/指令
値)を送信してから(ステップS140)、ステップS
132に戻る。
【0096】各シミュレータでは、図17に示すよう
に、まずデータ転送回線31を通じて分配手段25との
接続を行ない(ステップS142)、その接続が成功す
ると(ステップS143のYESルート)、自分のシミ
ュレータ番号を分配手段25へ送信する(ステップS1
44)。そのシミュレータ番号が分配手段25で受け付
けられると(ステップS145のYESルート)、デー
タ転送回線30を通じて開始命令をファームウェア(制
御回路10)に対して送信した後(ステップS14
6)、ファームウェアから制御量(指令値)を受信する
(ステップS147)。
【0097】受信した制御量に基づいてシミュレーショ
ンを行なってから(ステップS148)、そのシミュレ
ーションによって得られた状態量をファームウェアへ送
信する(ステップS149)。この後、処理を終了する
か否かを判断し(ステップS150)、処理を継続する
場合(ステップS150のNOルート)、ステップS1
47に戻る一方、処理を終了する場合(ステップS15
0のYESルート)、終了命令をファームウェアに送信
してから(ステップS151)、切断処理を行なう(ス
テップS152)。
【0098】なお、番号が受け付けられなかった場合
(ステップS145のNOルート)、ステップS152
へ移行して切断処理を行なう。また、接続が不成功だっ
た場合(ステップS143のNOルート)、エラー表示
を行なってから(ステップS153)、処理を終了す
る。図17におけるステップS146〜S151の処理
はあくまで一例であり、本発明は、このような処理に限
定されるものではない。
【0099】ファームウェア(F/W)側での処理手順
(メインルーチン;分配手段13)では、図18に示す
ように、まず初期設定を行なってから(ステップS15
4)、シミュレータ側(分配手段25)からの受信を待
つ(ステップS155)。シミュレータ側からデータを
受信すると、そのデータの先頭がキーワードであるか否
かを判断し(ステップS156)、キーワードではない
場合(ステップS156のNOルート)、従来の処理
(メモリ空間の読書き等)を行なう一方(ステップS1
60)、キーワードである場合(ステップS156のY
ESルート)、シミュレータ番号Nおよびデータ長を取
得し(ステップS157)、データ長分のデータ(状態
量等)を取得する(ステップS135)。この後、サブ
ルーチン(図19の処理)を呼び出してこのサブルーチ
ンを実行してから(ステップS159)、ステップS1
55に戻る。
【0100】そして、ここでは、シミュレータ番号1〜
kを付されたk個のシミュレータがそなえられている場
合について説明する。この場合、サブルーチンでは、図
19に示すように、受信したシミュレータ番号Nが1〜
k(ここでkは3以上の自然数)のいずれであるかを判
断する(ステップS161−1〜S161−k)。
【0101】N=1であれば(ステップS161−1の
YESルート)、シミュレータ番号1のシミュレータに
対応した処理を実行し(ステップS162−1)、N=
i(iは2〜k−1の自然数)であれば(ステップS1
61−iのYESルート)、シミュレータ番号iのシミ
ュレータに対応した処理を実行し(ステップS162−
i)、N=kであれば(ステップS161−kのYES
ルート)、シミュレータ番号kのシミュレータに対応し
た処理を実行する(ステップS162−k)。
【0102】図19に示すステップステップS162−
iでは、まず受信したデータが開始命令であるか否かを
判断し(ステップS171)、開始命令である場合(ス
テップS171のYESルート)、初期化処理を行なっ
た後(ステップS172)、初期値を、シミュレータ番
号iのシミュレータに対して送信する(ステップS17
3)。そのデータが開始命令でない場合(ステップS1
71のNOルート)、そのデータが終了命令であるか否
かを判断し(ステップS174)、終了命令である場合
(ステップS174のYESルート)、終了処理を行な
う(ステップS178)。
【0103】そのデータが終了命令でない場合(ステッ
プS174のNOルート)、そのデータは状態量である
ので、その状態量を取得し(ステップS176)、取得
した状態量に基づいてサーボ演算を行ない(ステップS
177)、そのサーボ演算によって得られた指令値(制
御量)を、シミュレータ番号iのシミュレータに対して
送信する(ステップS178)。なお、図19に示すサ
ブルーチン処理はあくまで一例であり、本発明は、この
ような処理に限定されるものではない。
【0104】このように、本発明の第2実施形態として
の制御プログラム開発支援装置1Aによれば、第1実施
形態と同様の作用効果が得られるほか、第2実施形態で
は、サーボ機構を含む装置全体における複数の制御プロ
グラム、つまり制御ファームウェア全体を同時にデバッ
グ(検証)することのできる環境が提供されることにな
る。
【0105】また、複数の制御プログラム実行部として
機能する制御回路10とシミュレータ群との間でデータ
をやり取りするための転送手段として、制御回路10と
シミュレータ20との間における既存のデータ転送回線
30を用いることにより、専用の転送手段を新規に追加
してそなえる必要がなく、簡素かつ安価に本発明の構成
を実現することができる。
【0106】そして、転送手段として既存のデータ転送
回線30を用いる場合、図12に示すごとく、キーワー
ドおよびシミュレータ番号を転送するとともに、制御量
/状態量に関する情報を予め指定された固定データ長の
シリアルデータとして転送することにより、キーワード
に基づいて制御量/状態量に関する情報を制御量/状態
量以外の情報と区別することができるとともに、シミュ
レータ番号に基づいて制御量/状態量の転送先を特定す
ることができるので、種々の情報や異なる転送先の情報
が混在した状態でデータ転送回線30を介して送受信さ
れても、制御量/状態量に関する情報を確実に抽出して
所定の転送先へ分配し、ファームウェア全体の開発・デ
バッグを同時に行なうことができる。
【0107】また、転送手段として既存のデータ転送回
線30を用いる場合、図13や図14に示すごとく、キ
ーワード,シミュレータ番号およびデータ長情報を転送
するとともに、制御量/状態量に関する情報を前記デー
タ長情報によって指定されたデータ長のシリアルデータ
として転送することにより、キーワードに基づいて制御
量/状態量に関する情報を制御量/状態量以外の情報と
区別することができるとともに、シミュレータ番号に基
づいて制御量/状態量の転送先を特定することができる
ので、種々の情報や異なる転送先の情報が混在した状態
でデータ転送回線を介して送受信されても、制御量/状
態量に関する情報を確実に抽出して所定の転送先へ分配
し、ファームウェア全体の開発・デバッグを同時に行な
うことができる。また、この場合、データ転送回線30
によってやり取りされる制御量/状態量に関する情報の
データ長を任意に設定することもできる。
【0108】〔3〕その他 なお、本発明は上述した実施形態に限定されるものでは
なく、本発明の趣旨を逸脱しない範囲で種々変形して実
施することができる。例えば、上述した実施形態では、
制御対象が例えば磁気ディスク装置〔磁気ディスクドラ
イブ(HDD)〕である場合について説明したが、本発
明は、これに限定されるものではなく、光ディスク(C
D,MO,DVD,MD),磁気テープ装置(DAT,
VTR),NC工作機など、緻密なサーボ制御を必要と
するあらゆる分野に応用することができる。さらに、上
述した実施形態では、制御対象がサーボ機構である場合
について説明したが、本発明は、このようなサーボ機構
に限定されるものではない。
【0109】〔4〕付記 (付記1) 機構の動作を制御する制御プログラムを実
行し、該機構に対する制御量を所定の制御周期で算出し
て出力する機構制御プログラム実行部として機能する第
1プロセッサと、該機構を仮想的なモデルとして内部に
構築され、該モデルを用い、前記所定の制御周期よりも
短く設定された所定のシミュレーション周期で、前記所
定の制御周期に対応する時間に亘って該機構の動作をシ
ミュレートすることにより、該機構の状態量を算出して
出力する機構シミュレーション部として機能する第2プ
ロセッサと、前記制御量を該第1プロセッサから該第2
プロセッサへ転送する一方で前記状態量を該第2プロセ
ッサから該第1プロセッサへ転送する転送手段とをそな
え、該第1プロセッサのメモリ空間において、該第2プ
ロセッサへ転送すべき前記制御量を一時的に保持する制
御量領域と、該第2プロセッサから転送されてきた前記
状態量を一時的に保持する状態量領域とが確保され、該
第1プロセッサは、該転送手段を通じて該第2プロセッ
サからの前記状態量を受信して該状態量領域に格納する
とその状態量に応じた制御量の算出動作を開始し、算出
された前記制御量を該制御量領域に格納し、その制御量
を該転送手段を通じて該第2プロセッサへ送信し、該第
2プロセッサからの応答待ち状態へ移行する一方、該第
2プロセッサは、該転送手段を通じて該第1プロセッサ
からの前記制御量を受信するとその制御量に応じたシミ
ュレーション動作を開始し、算出された前記状態量を該
転送手段を通じて該第1プロセッサへ送信し、該第1プ
ロセッサからの応答待ち状態へ移行することを特徴とす
る、制御プログラム開発支援装置。
【0110】(付記2) 機構の動作を制御する制御プ
ログラムを実行し、該機構に対する制御量を所定の制御
周期で算出して出力する機構制御プログラム実行部とし
て機能する第1プロセッサと、該機構を仮想的なモデル
として内部に構築され、該モデルを用い、前記所定の制
御周期よりも短く設定された所定のシミュレーション周
期で、前記所定の制御周期に対応する時間に亘って該機
構の動作をシミュレートすることにより、該機構の状態
量を算出して出力する機構シミュレーション部として機
能する第2プロセッサと、前記制御量を該第1プロセッ
サから該第2プロセッサへ転送する一方で前記状態量を
該第2プロセッサから該第1プロセッサへ転送する転送
手段とをそなえ、該第1プロセッサのメモリ空間におい
て、該第2プロセッサへ転送すべき前記制御量を一時的
に保持する制御量領域と、該第2プロセッサから転送さ
れてきた前記状態量を一時的に保持する状態量領域とが
確保されるとともに、該第1プロセッサに、所定時間の
経過を計測し前記所定時間が経過する都度、割込信号を
発生するタイマをそなえ、該第1プロセッサは、該タイ
マからの割込信号を受けると該状態量領域における前記
状態量に応じた制御量の算出動作を開始し、算出された
前記制御量を該制御量領域に格納し、その制御量を該転
送手段を通じて該第2プロセッサへ送信する一方、該第
2プロセッサは、該転送手段を通じて該第1プロセッサ
からの前記制御量を受信するとその制御量に応じたシミ
ュレーション動作を開始し、算出された前記状態量を該
転送手段を通じて該第1プロセッサへ送信し、該第1プ
ロセッサからの応答待ち状態へ移行することを特徴とす
る、制御プログラム開発支援装置。
【0111】(付記3) 該第1プロセッサと該転送手
段との間に第3プロセッサを配置するとともに、該制御
量領域および該状態量領域を該第1プロセッサと該第3
プロセッサとの共有メモリ空間に確保し、該第3プロセ
ッサが、該制御量領域に保持された前記制御量を該転送
手段を通じて該第2プロセッサへ送信する一方、該第2
プロセッサからの前記状態量を該転送手段を通じて受信
し該状態量領域に格納することを特徴とする、付記1ま
たは付記2に記載の制御プログラム開発支援装置。
【0112】(付記4) 該転送手段として、該第1プ
ロセッサと該第2プロセッサとの間においてシリアルデ
ータの転送を行なう既存のデータ転送回線が用いられる
ことを特徴とする、付記1または付記2に記載の制御プ
ログラム開発支援装置。 (付記5) 該データ転送回線により前記制御量もしく
は前記状態量を転送する際には、前記制御量もしくは前
記状態量を転送する旨を示す識別情報と、前記制御量も
しくは前記状態量に関する情報とを、予め指定された固
定データ長のシリアルデータとして転送することを特徴
とする、付記4記載の制御プログラム開発支援装置。
【0113】(付記6) 該データ転送回線により前記
制御量もしくは前記状態量を転送する際には、前記制御
量もしくは前記状態量を転送する旨を示す識別情報と、
前記制御量もしくは前記状態量に関する情報のデータ長
を示すデータ長情報と、前記制御量もしくは前記状態量
に関する情報とを、前記データ長のシリアルデータとし
て転送することを特徴とする、付記4記載の制御プログ
ラム開発支援装置。
【0114】(付記7) 該機構を含む装置における該
機構以外の各種部分の動作を制御する制御プログラムを
それぞれ実行し、該各種部分に対する制御量をそれぞれ
算出する複数の制御プログラム実行部と、該各種部分を
仮想的なモデルとして内部に構築され、該モデルを用い
て該各種部分の動作をシミュレートすることにより該各
種部分の状態量をそれぞれ算出する複数のシミュレーシ
ョン部とをさらにそなえ、該転送手段が、該複数の制御
プログラム実行部のそれぞれで算出された制御量を対応
するシミュレーション部へ転送する一方で該複数のシミ
ュレーション部のそれぞれで算出された状態量を対応す
る制御プログラム実行部へ転送することを特徴とする、
付記1または付記2に記載の制御プログラム開発支援装
置。
【0115】(付記8) 該第1プロセッサが該複数の
制御プログラム実行部としての機能を果たすことを特徴
とする、付記7記載の制御プログラム開発支援装置。 (付記9) 該第1プロセッサと並列にそなえられた1
以上のプロセッサが該複数の制御プログラム実行部とし
ての機能を果たすことを特徴とする、付記7記載の制御
プログラム開発支援装置。
【0116】(付記10) 該第2プロセッサが該複数
のシミュレーション部としての機能を果たすことを特徴
とする、付記7〜付記9のいずれか一つに記載の制御プ
ログラム開発支援装置。 (付記11) 該第2プロセッサと並列にそなえられた
1以上のプロセッサが該複数のシミュレーション部とし
ての機能を果たすことを特徴とする、付記7〜付記9の
いずれか一つに記載の制御プログラム開発支援装置。
【0117】(付記12) 該転送手段として、該第1
プロセッサと該第2プロセッサとの間に予めそなえられ
シリアルデータ転送を行なう既存のデータ転送回線が用
いられることを特徴とする、付記7〜付記11のいずれ
か一つに記載の制御プログラム開発支援装置。
【0118】(付記13) 該データ転送回線により前
記制御量もしくは前記状態量を転送する際には、前記制
御量もしくは前記状態量を転送する旨を示す識別情報
と、転送先のシミュレーション部もしくは制御プログラ
ム実行部を特定する特定情報とを前記シリアルデータと
して転送するとともに、前記制御量もしくは前記状態量
に関する情報を予め指定された固定データ長のシリアル
データとして転送することを特徴とする、付記12記載
の制御プログラム開発支援装置。
【0119】(付記14) 該データ転送回線により前
記制御量もしくは前記状態量を転送する際には、前記制
御量もしくは前記状態量を転送する旨を示す識別情報
と、転送先のシミュレーション部もしくは制御プログラ
ム実行部を特定する特定情報と、前記制御量もしくは前
記状態量に関する情報のデータ長を示すデータ長情報と
を前記シリアルデータとして転送するとともに、前記制
御量もしくは前記状態量に関する情報を前記データ長の
シリアルデータとして転送することを特徴とする、付記
12記載の制御プログラム開発支援装置。
【0120】(付記15) 該データ転送回線で転送さ
れるシリアルデータ中に前記識別情報を認識した場合、
前記特定情報を認識し、該特定情報に応じたシミュレー
ション部もしくは制御プログラム実行部に後続の制御量
もしくは状態量を分配する分配手段をさらにそなえたこ
とを特徴とする、付記13または付記14に記載の制御
プログラム開発支援装置。
【0121】(付記16) 該機構がサーボ機構である
ことを特徴とする、付記1〜付記15のいずれか一つに
記載の制御プログラム開発支援装置。
【0122】
【発明の効果】以上詳述したように、本発明の制御プロ
グラム開発支援装置によれば、以下のような効果ないし
利点を得ることができる。 (1)第1プロセッサのメモリ空間における制御量領域
および状態量領域に制御量や状態量をそれぞれ一時的に
保持させながら、転送手段を介して第1プロセッサと第
2プロセッサとの間で制御量および状態量をやり取りす
ることにより、第1プロセッサの動作と第2プロセッサ
の動作とを同期させることができるので、専用の中継回
路等をそなえることなく時間厳密性を保ったまま精密な
シミュレーションを行なうことが可能になる。その際、
第2プロセッサが、第1プロセッサでの制御周期(サー
ボ周期)よりも短いシミュレーション周期でシミュレー
ションを行なうので、精密なシミュレーションを実行す
ることが可能になる。つまり、第1プロセッサでの演算
処理を遅らせて第2プロセッサでのモデル演算処理(シ
ミュレーション)と同期を取ることにより、機構の特性
(サーボ特性)を変化させずにスローモーション的に且
つ時間厳密性を保ったまま、精密なシミュレーションが
行なわれる。従って、専用の中継回路等を用いることな
く且つ実際のメカを用いることなく、比較的小型で応答
の速い製品についての制御プログラムの開発・デバッグ
(検証)を行なうことができる(請求項1,2)。
【0123】(2)モデルパラメータを変更するだけで
容易に任意の特性をもったモデルを作成して制御プログ
ラムによって制御させることができる。従って、制御プ
ログラムが、大量に生産される製品のバラツキにどの程
度まで対応できるかの検証、即ち制御プログラムの品質
検証を確実に行なうことができる(請求項1,2)。
【0124】(3)仮想的なモデルを用いてシミュレー
ションを行なうことにより、ステップデバッグなどの機
能を使用することが可能になり、制御プログラム開発を
より容易に行なえるほか、新しいアクチュエータやセン
サを用いた新規の制御手法も簡単に検証することが可能
になる(請求項1,2)。
【0125】(4)第1プロセッサでの制御量算出間隔
(制御ルーチンの呼び出し間隔)が大きい場合や、第2
プロセッサでのシミュレーション処理速度が十分に速い
場合には、タイマからの割込信号を用いることにより、
第1プロセッサと第2プロセッサとの間で同期を取る処
理を行なう必要がなくなる(請求項2)。
【0126】(5)転送手段として、第1プロセッサと
第2プロセッサとの間でシリアルデータの転送を行なう
既存のデータ転送回線を用いることにより(請求項
3)、専用の転送手段を新規に追加してそなえる必要が
なく、簡素かつ安価に本発明の構成を実現することがで
きる。
【0127】(6)項目(5)のごとく転送手段として
データ転送回線を用いる場合、識別情報を転送するとと
もに、制御量/状態量に関する情報を予め指定された固
定データ長のシリアルデータとして転送することにより
(請求項4)、識別情報に基づいて制御量/状態量に関
する情報を制御量/状態量以外の情報(第1プロセッサ
と第2プロセッサとの間においてデータ転送回線を用い
て元々やり取りされていた情報)と区別することができ
るので、これらの情報が混在した状態でデータ転送回線
を介して送受信されても、制御量/状態量に関する情報
を確実に抽出して制御プログラムの開発・デバッグを行
なうことができる。
【0128】(7)項目(5)のごとく転送手段として
データ転送回線を用いる場合、識別情報やデータ長情報
を転送するとともに、制御量/状態量に関する情報を前
記データ長情報によって指定されたデータ長のシリアル
データとして転送することにより(請求項5)、識別情
報に基づいて制御量/状態量に関する情報を制御量/状
態量以外の情報と区別することができるので、これらの
情報が混在した状態でデータ転送回線を介して送受信さ
れても、制御量/状態量に関する情報を確実に抽出して
制御プログラムの開発・デバッグを行なうことができる
ほか、データ転送回線によってやり取りされる制御量/
状態量に関する情報のデータ長を任意に設定することが
できる。
【0129】(8)機構以外の各種部分の動作を制御す
る制御プログラムをそれぞれ実行する複数の制御プログ
ラム実行部と、各種部分のモデルを用いて各種部分の動
作をシミュレートする複数のシミュレーション部とをそ
なえるとともに、これらの制御プログラム実行部とシミ
ュレーション部との間で上記転送手段を介して制御量お
よび状態量をやり取りするように構成することにより、
機構を含む装置全体における複数の制御プログラム(フ
ァームウェア全体)を同時にデバッグ(検証)すること
のできる環境が提供されることになる。
【0130】(9)複数の制御プログラム実行部と複数
のシミュレーション部との間でデータをやり取りするた
めの転送手段として、第1プロセッサと第2プロセッサ
との間における既存のデータ転送回線を用いることによ
り、専用の転送手段を新規に追加してそなえる必要がな
く、簡素かつ安価に本発明の構成を実現することができ
る。
【0131】(10)項目(9)のごとくデータ転送回
線を用いる場合、識別情報および特定情報を転送すると
ともに、制御量/状態量に関する情報を予め指定された
固定データ長のシリアルデータとして転送することによ
り、識別情報に基づいて制御量/状態量に関する情報を
制御量/状態量以外の情報と区別することができるとと
もに、特定情報に基づいて制御量/状態量の転送先を特
定することができるので、種々の情報や異なる転送先の
情報が混在した状態でデータ転送回線を介して送受信さ
れても、制御量/状態量に関する情報を確実に抽出して
所定の転送先へ分配し、複数の制御プログラム(ファー
ムウェア全体)の開発・デバッグを同時に行なうことが
できる。
【0132】(11)項目(9)のごとく転送手段とし
てデータ転送回線を用いる場合、識別情報,特定情報お
よびデータ長情報を転送するとともに、制御量/状態量
に関する情報を前記データ長情報によって指定されたデ
ータ長のシリアルデータとして転送することにより、識
別情報に基づいて制御量/状態量に関する情報を制御量
/状態量以外の情報と区別することができるとともに、
特定情報に基づいて制御量/状態量の転送先を特定する
ことができるので、種々の情報や異なる転送先の情報が
混在した状態でデータ転送回線を介して送受信されて
も、制御量/状態量に関する情報を確実に抽出して所定
の転送先へ分配し、複数の制御プログラム(ファームウ
ェア全体)の開発・デバッグを同時に行なうことができ
る。また、データ転送回線によってやり取りされる制御
量/状態量に関する情報のデータ長を任意に設定するこ
ともできる。
【図面の簡単な説明】
【図1】本発明の第1実施形態としての制御プログラム
開発支援装置の構成を示すブロック図である。
【図2】第1実施形態の制御回路における制御ルーチン
の基本的な動作を説明するためのフローチャートであ
る。
【図3】第1実施形態におけるシミュレーション動作の
第1例を説明するためのフローチャートである。
【図4】第1実施形態におけるシミュレーション動作の
第2例を説明するためのフローチャートである。
【図5】第1実施形態におけるシミュレーション動作の
第3例を説明するためのフローチャートである。
【図6】第1実施形態におけるシミュレーション動作の
第4例を説明するためのフローチャートである。
【図7】図6で説明した第4例を適用された本実施形態
の制御プログラム開発支援装置の要部構成を示すブロッ
ク図である。
【図8】第1実施形態のデータ転送回線によって転送さ
れるシリアルデータの第1具体例を示す図である。
【図9】第1実施形態のデータ転送回線によって転送さ
れるシリアルデータの第2具体例を示す図である。
【図10】第1実施形態のデータ転送回線によって転送
されるシリアルデータの第3具体例を示す図である。
【図11】本発明の第2実施形態としての制御プログラ
ム開発支援装置の構成を示すブロック図である。
【図12】第2実施形態のデータ転送回線によって転送
されるシリアルデータの第1具体例を示す図である。
【図13】第2実施形態のデータ転送回線によって転送
されるシリアルデータの第2具体例を示す図である。
【図14】第2実施形態のデータ転送回線によって転送
されるシリアルデータの第3具体例を示す図である。
【図15】第2実施形態におけるシミュレーション動作
を説明するためのフローチャートである。
【図16】第2実施形態におけるシミュレーション動作
を説明するためのフローチャートである。
【図17】第2実施形態におけるシミュレーション動作
を説明するためのフローチャートである。
【図18】第2実施形態におけるシミュレーション動作
を説明するためのフローチャートである。
【図19】第2実施形態におけるシミュレーション動作
を説明するためのフローチャートである。
【符号の説明】
1,1A 制御プログラム開発支援装置 10 制御回路(機構制御プログラム実行部,第1プロ
セッサ,制御プログラム実行部,制御用計算機,制御フ
ァームウェア) 11 MCU 11a 制御ルーチン 11b 通信ルーチン 12 メモリ(メモリ空間) 12A 共有メモリ(メモリ空間) 12a 制御量領域 12b 状態量領域 13 分配手段 20 モデル実行環境(メカシミュレータ,機構シミュ
レーション部,第2プロセッサ) 21 仮想メカモデル 22 通信ルーチン 23 通信シミュレータ(シミュレーション部) 24 キャッシュシミュレータ(シミュレーション部) 25 分配手段 30,31 データ転送回線(転送手段,通信回線) 40 タイマ 50 通信用マイコン(第3プロセッサ,通信用計算
機) 51 DA回路 52 AD回路 53 カウンタ 54 バッファ
フロントページの続き (72)発明者 佐藤 裕一 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B042 GA13 GA34 HH06 HH07 HH13

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 機構の動作を制御する制御プログラムを
    実行し、該機構に対する制御量を所定の制御周期で算出
    して出力する機構制御プログラム実行部として機能する
    第1プロセッサと、 該機構を仮想的なモデルとして内部に構築され、該モデ
    ルを用い、前記所定の制御周期よりも短く設定された所
    定のシミュレーション周期で、前記所定の制御周期に対
    応する時間に亘って該機構の動作をシミュレートするこ
    とにより、該機構の状態量を算出して出力する機構シミ
    ュレーション部として機能する第2プロセッサと、 前記制御量を該第1プロセッサから該第2プロセッサへ
    転送する一方で前記状態量を該第2プロセッサから該第
    1プロセッサへ転送する転送手段とをそなえ、 該第1プロセッサのメモリ空間において、該第2プロセ
    ッサへ転送すべき前記制御量を一時的に保持する制御量
    領域と、該第2プロセッサから転送されてきた前記状態
    量を一時的に保持する状態量領域とが確保され、 該第1プロセッサは、該転送手段を通じて該第2プロセ
    ッサからの前記状態量を受信して該状態量領域に格納す
    るとその状態量に応じた制御量の算出動作を開始し、算
    出された前記制御量を該制御量領域に格納し、その制御
    量を該転送手段を通じて該第2プロセッサへ送信し、該
    第2プロセッサからの応答待ち状態へ移行する一方、 該第2プロセッサは、該転送手段を通じて該第1プロセ
    ッサからの前記制御量を受信するとその制御量に応じた
    シミュレーション動作を開始し、算出された前記状態量
    を該転送手段を通じて該第1プロセッサへ送信し、該第
    1プロセッサからの応答待ち状態へ移行することを特徴
    とする、制御プログラム開発支援装置。
  2. 【請求項2】 機構の動作を制御する制御プログラムを
    実行し、該機構に対する制御量を所定の制御周期で算出
    して出力する機構制御プログラム実行部として機能する
    第1プロセッサと、 該機構を仮想的なモデルとして内部に構築され、該モデ
    ルを用い、前記所定の制御周期よりも短く設定された所
    定のシミュレーション周期で、前記所定の制御周期に対
    応する時間に亘って該機構の動作をシミュレートするこ
    とにより、該機構の状態量を算出して出力する機構シミ
    ュレーション部として機能する第2プロセッサと、 前記制御量を該第1プロセッサから該第2プロセッサへ
    転送する一方で前記状態量を該第2プロセッサから該第
    1プロセッサへ転送する転送手段とをそなえ、 該第1プロセッサのメモリ空間において、該第2プロセ
    ッサへ転送すべき前記制御量を一時的に保持する制御量
    領域と、該第2プロセッサから転送されてきた前記状態
    量が一時的に保持する状態量領域とが確保されるととも
    に、 該第1プロセッサに、所定時間の経過を計測し前記所定
    時間が経過する都度、割込信号を発生するタイマをそな
    え、 該第1プロセッサは、該タイマからの割込信号を受ける
    と該状態量領域における前記状態量に応じた制御量の算
    出動作を開始し、算出された前記制御量を該制御量領域
    に格納し、その制御量を該転送手段を通じて該第2プロ
    セッサへ送信する一方、 該第2プロセッサは、該転送手段を通じて該第1プロセ
    ッサからの前記制御量を受信するとその制御量に応じた
    シミュレーション動作を開始し、算出された前記状態量
    を該転送手段を通じて該第1プロセッサへ送信し、該第
    1プロセッサからの応答待ち状態へ移行することを特徴
    とする、制御プログラム開発支援装置。
  3. 【請求項3】 該転送手段として、該第1プロセッサと
    該第2プロセッサとの間においてシリアルデータの転送
    を行なう既存のデータ転送回線が用いられることを特徴
    とする、請求項1または請求項2に記載の制御プログラ
    ム開発支援装置。
  4. 【請求項4】 該データ転送回線により前記制御量もし
    くは前記状態量を転送する際には、前記制御量もしくは
    前記状態量を転送する旨を示す識別情報を前記シリアル
    データとして転送するとともに、前記制御量もしくは前
    記状態量に関する情報を、予め指定された固定データ長
    のシリアルデータとして転送することを特徴とする、請
    求項3記載の制御プログラム開発支援装置。
  5. 【請求項5】 該データ転送回線により前記制御量もし
    くは前記状態量を転送する際には、前記制御量もしくは
    前記状態量を転送する旨を示す識別情報と、前記制御量
    もしくは前記状態量に関する情報のデータ長を示すデー
    タ長情報とを前記シリアルデータとして転送するととも
    に、前記制御量もしくは前記状態量に関する情報を前記
    データ長のシリアルデータとして転送することを特徴と
    する、請求項3記載の制御プログラム開発支援装置。
JP2002028497A 2002-02-05 2002-02-05 制御プログラム開発支援装置 Pending JP2003228495A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002028497A JP2003228495A (ja) 2002-02-05 2002-02-05 制御プログラム開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002028497A JP2003228495A (ja) 2002-02-05 2002-02-05 制御プログラム開発支援装置

Publications (1)

Publication Number Publication Date
JP2003228495A true JP2003228495A (ja) 2003-08-15

Family

ID=27749687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002028497A Pending JP2003228495A (ja) 2002-02-05 2002-02-05 制御プログラム開発支援装置

Country Status (1)

Country Link
JP (1) JP2003228495A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222420A (ja) * 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム
JP2007052580A (ja) * 2005-08-17 2007-03-01 Fujitsu Ten Ltd ソフトウェア開発環境システム
JP2008152722A (ja) * 2006-12-20 2008-07-03 Fujitsu Ten Ltd ソフトウェア開発支援装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222420A (ja) * 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム
JP2007052580A (ja) * 2005-08-17 2007-03-01 Fujitsu Ten Ltd ソフトウェア開発環境システム
JP2008152722A (ja) * 2006-12-20 2008-07-03 Fujitsu Ten Ltd ソフトウェア開発支援装置

Similar Documents

Publication Publication Date Title
Gustafson et al. Toward the analysis of embedded firmware through automated re-hosting
WO2018018978A1 (zh) 一种通用串行总线控制器验证方法、系统及设备
JP2002189611A (ja) エミュレーション装置及びその方法
WO2003042876A2 (en) Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
CN1991784A (zh) 利用HDL扩展串口的SoC系统在线调试方法
CN105940384B (zh) 外围设备的通用串行总线仿真
JP2017084082A (ja) シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
JPH11505645A (ja) プロセッサに基づくデジタルシステムをシミュレートするための装置および方法
CN102193860B (zh) 微控制器在线调试电路及方法、微控制器
JP2003228495A (ja) 制御プログラム開発支援装置
JP2007058813A (ja) 検証装置及び検証方法
JP2009140388A (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
CN107403573A (zh) 一种基于stm32f7的usb实验系统及方法
JP4589255B2 (ja) ハードウェア/ソフトウェア協調検証装置
CN1312583C (zh) 仿真装置和仿真方法
JP2011039781A (ja) 協調シミュレーション装置及びシミュレーション方法
JP2003316603A (ja) プログラム検証システム
JP2008077467A (ja) 表示器
JP2000330970A (ja) シミュレーション装置及びシミュレーション方法
CN100375024C (zh) 一种自动改变计算机启动顺序的方法
JP2012155519A (ja) シミュレーション装置、シミュレーション方法およびそのコンピュータ・プログラム
JP5492573B2 (ja) トレース機能を備える接続機器シミュレータ装置、方法、及びプログラム
CN106681857A (zh) 产品资料备份/还原方法
JP2003228496A (ja) 制御プログラム開発支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080729

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081224