計測自動制御学会東北支部第 202 回研究集会(2002.07.02)
資料番号 202-8

データフロー処理方式を利用した機能分散制御システム
The Functional Distributed Control System
Using a Dataflow Processing Scheme○趙丹寧*

吉岡良雄**○Dan‑Ning ZHAO* , Yoshio YOSHIOKA***弘前大学・大学院理学研究科・情報科学専攻**弘前大学・理工学部・電子情報システム工学科*Graduate School of Science,Hirosaki University**Department of Electrical and Information System Engineering,
Faculty of Science and Technology,Hirosaki University
キーワード：

機能分散制御(functional distributed control),
単方向ループ状接続方式(uni‑directional loop connection ),データフロー処理方式(dataflow processing scheme),

連絡先：〒360‑8561 弘前市文京町 3 弘前大学理工学部 電子情報システム工学科,
吉岡 良雄,Tel(0172)39‑6133,E‑mail:{gs01615,siyoshi}@si.hirosaki‑u.ac.jp

1. はじめにう）に送って、そのホストコンピュータでデータ解析

ベルトコンベアでの製造用ロボットのような大規処理を行い、その結果に応じて、それぞれの制御プロ

模制御システムでは、多くのセンサ部からの入力デーセッサへ制御データを送る方法である｡システムが大タを処理し、多くの制御部へ制御データを出力する必規模になればセンサ部や制御部が多くなり、ホストコ要がある。これらの入力処理、データ解析処理およびンピュータの負荷も多くなる。そして、そのソフトウ出力制御を一つのコンピュータで行うことは、そのソエアもさらに複雑なものになる。

フトウエアが非常に複雑なものになる。さらに、セン一方において、マイクロプロセッサの機能が向上し、サ部や制御部の変更のたびに、ソフトウエアの変更がこれを利用したロボット（制御システム）が数多く発必要になる。そこで、現在では、ソフトウエアの変更表されている 1）。このようなロボットにおいても、を少なくするために、入出力部とのインタフェースを多くのセンサからの入力信号や多くの制御信号があ規定し、各センサ部および各制御部に小さなプロセッる｡多くの入出力信号を一つのマイクロプロセッサでサを置いて、そのインタフェース処理を行う制御シス処理する場合、回路およびプログラムが非常に複雑なテムを構築する方向である。しかしながら、この場合ものになってしまう｡そこで、一つの機能（センサかの処理でも、それぞれのセンサ用プロセッサからのデらの入力処理や制御処理など）しか持たない小さなマータを中央のコンピュータ（ホストコンピュータといイクロプロセッサと、メインの処理プロセッサ（ホス-1-

トコンピュータという）を共通バスで接続した機能分接続を行い、内蔵されている並列ポートでセンサから散処理システムがある 2）。しかしながら、ファンナの入力や制御出力を行う機能分散制御システムを提ウトにより、12 プロセッサまでしか接続できず、大案した｡機能分散制御システムは、ハード的に単純で規模システムには適用できない。また、パケット衝突済むので、現存するワンチップマイクロプロセッサをの回避を行うプログラムが複雑なものになっている。

用いて容易に構築できる。従って、安価なシステム構以上のことから、複数のプロセッサを利用して機能築が可能である｡また、本システムでは、ホストコン分散制御システムを構築する場合、次の条件が必要でピュータを介さずにセンサ部および制御部のプロセあろう｡すなわち、ッサで簡単な処理を行うことを目的としている｡この（1） 複数の入力プロセッサおよび出力プロセッサ処理方法として、データフロー処理方式を採用する。のネットワーク接続が単純であり、かつ通信方式(プこれによって、上述したようにプロセッサ間の複雑なロトコル)も単純であること

通信を意識することなく、プログラミングが可能であ（2） プロセッサの増設が容易であり、増設による各る。従って、従来のようにアセンブリ言語やC 言語なプロセッサのプログラム変更も容易であること,どを利用して各プロセッサのプログラミングを行う（3） 故障プロセッサを容易に削除でき、故障プロセ場合に比べ、プログラミングが容易である。
本論文は、まず機能分散制御システムの一般的構成、ッサの影響が他に波及しないこと（4） システム全体を制御するプログラムは、並列処

データフロー処理方式3)を実装したプロトタイプ機

理や通信処理を意識することなく作成できることでのアーキテクチャ仕様、マイクロプロセッサの故障等ある。

に対する切り離し手法などを示す。さらに、簡単なデ

これらの条件のうち、条件（1）のネットワーク接ータフロー言語による制御プログラムを作成すると続としては、入力と出力一対のポートを利用する方法

ともに、機能分散制御システムのプロトタイプ機の構であり、共通バス方式および単方向性ループ状接続方成と仕様を示した上で、プロトタイプ機について入出式があげられる。前者は、100 プロセッサ以上接続を力信号に対する応答時間を測定するシステムの構成考えた場合、ファンナウトやデータブロック（パケッとその実験結果について考察する。

ト）の衝突などの問題がある。これらに対処するハー2. アーキテクチャ仕様
制御演算
プロセッサ
PEk-1

共通バス方式および単方向性ループ状接続方式の双PEn−2

単方向性ループ状接続

P
SPS

制御演算
プロセッサ
PEn-1

通信用プロセッサ
PE7F

制御演算
プロセッサ
PE1

件(4)は、複数のプロセッサによる並列処理や通信処理を意識しない新たな処理方式を考える必要がある。
この処理方式の例として、データフロー処理方式があげられる。

シリアルポートPS

向性ループ状接続方式において工夫が必要である。条PS方とも満足する条件である。また、条件(3)は、単方

PS

制御演算
プロセッサ
PEkPS状接続では、これらの問題が起こらない。条件(2)は、制御演算プロセッサ
PEk+1

PSなってしまう。これに対して、後者の単方向性ループ

PS

ドウエア（バスアービタなどの回路）は複雑なものにホストコンピュータ

そこで、ワンチップマイクロプロセッサに内蔵され
図 1 機能分散制御システムの構成ている直列通信ポートを利用して単方向性ループ状-2-PE2

2.1 システム全体の構成

2.2 処理・制御プロセッサの構成

機能分散制御システムは、図１に示すように、複数プロトタイプ機における各処理・制御プロセッサののプロセッサを直列転送ポート(SP:Serial Port)に内部構成は、図２に示すようになっている｡図においよって単方向性ループ状接続を行ったシステムであて、直列通信ポート(Serial Port)の出力側回路は、る。各処理・制御プロセッサ(PEk)は、簡単な処理を故障プロセッサを切り離す回路である（後述）。ここ行うとともに、並列ポートを利用してセンサからの入で、プロセッサ間の通信は、図３に示すような8 バイ

力または外界に対する制御を行う。すなわち、各処

ト固定長パケット（転送パケット）によって行う｡ま理・制御プロセッサは同じハードウエア構成であり、た、データフロー処理方式を実現するプログラムパケ

入力・出力一対の直列通信用ポートおよび入力・出力

ットは図 4 に示すように 32 バイトからなっており、一対の並列ポートをもっている。また、通信用プロセ各処理・制御プロセッサに256 個の領域をもっている。

ッサ(PE7F)はホストコンピュータと接続されている。

この領域には、上述の8 バイト固定長パケットによっ

プロトタイプ機では、二つの直列通信用ポートおよびて格納される｡なお、転送パケットおよびプログラム一つの入出力並列ポートなどを内蔵した Z80 のワン

パケットの各領域の意味は次のようになる｡まず、DPEチップLSI（Z84C015）を利用している。

（Destination PE）および SPE（Source PE）はそれ

次に、処理プログラムについて、各処理・制御プロ

ぞれ目的プロセッサ番号（0x01‑0x7F）および源プロ

セッサが利用しているアセンブリ言語（機械語）を用セッサ番号（0x01‑0x7F）である。特に、0x7F の場合、いてプログラミングを行う場合は、各処理・制御プロ通信用プロセッサ（または、ホストコンピュータ）をセッサ個々にプログラミングを行う必要がある。従っ表す。また、定数データパケットおよび変数データパて、プロセッサ間のデータ交換を行うプログラミング

ケットにおいて、DPE の最上位ビットが０のときデーが非常に煩雑になってしまう。そこで、各処理・制御

タ領域A を、1 のときデータ領域B を指定し、データプロセッサの制御プログラム(OS)が通信プログラムを含めてまったく同じであれば、そのプログラミング

DPE PPA CAC FCC

OT0

OT1

は容易となる。このような考えのもとで、プログラミ

DPE

PPA 0xe8 FCC

OT2

OT3

ングレベルで複数のプロセッサ間での通信を意識す

DPE PPA 0xe9 FCC

OT4

OT5

ることがないデータフロー処理方式を採用する｡

DPE PPA 0xea FCC

OT6

OT7

DPE PPA 0xeb FCC

OT8OT9PEk+1

シリアル ポ−ト

PEk-1

受信送信受信バッファ(FIFO)

送信バッファ
(FIFO)他PEへ

パケット
解析部

プログラムパケット メモリ(256 Packets)(a) 制御・演算の転送パケット
DPE PPA0xff

SPE

定数データ(b)定数データの転送パケット

他PEへ

DPE PPA 0x00 SPE

フリップ
フロップ

結果データ(c)結果データの転送パケット

0x7f 0x00 0x51 SPE

データフロー
処理部

データ(d) ホストへ実行終了を通知

PEk

パラレル ポ−ト
入力

出力

センサー

制御

DPE

0x00 0xfo

SPE

データ(e) プログラム実行終了

図 3 転送パケット形式例（8 バイト固定長）

図 2 処理・制御プロセッサの内部構成

-3-

DPE

PAN

ACC

FCC

OT0

OT1

OT2

OT8

OT9

データ領域A

OT3

OT4

また、直列通信ポートからのパケット送信は、タイ

OT5

マー割り込みによって、送信バッファに送信パケット
OT6

OT7

データ領域Bがあれば、送信バッファから1 バイトずつ取り出して、次のプロセッサへ送信する。

図 4 データフロー処理用プログラムパケット例2.3 データフロー処理方式の実現（32 バイト固定長）

データフロー処理方式は以下のようにして進めらをそれぞれのプログラムパケット領域に格納する｡次れる。まず、ホストコンピュータから、図 3（a）にに、PPA（Program Packet Area Number）（0〜255）は、示す転送パケットによって、各処理・制御プロセッサ各処理・制御プロセッサにおけるプログラムパケットのプログラムパケットメモリにプログラムパケットの格納領域番号である。また、CAC（Control andが形成される。データフロー処理部は、このプログラ

Arithmetic Code）はポートからの入出力制御、4 バ

ムパケットの発火条件コードFCC をチャックし、発火イト整数や実数の演算などのコードである。そして、
FCC（Fire Condetion Code）は発火条件コードであり、（これを発火という）、そのプログラムパケットの制そのビット（00AB00ab）2 において、ab は発火条件フ

御・演算コードCAC に従って、演算データA およびB

ラグを、AB はデータ到着フラグを表す。OTn 領域は変について処理を行う。
そして、最大10 個の出力先（0Tn）数（結果）データパケットを生成するときの目的プロへの変数（結果）データパケットを生成する。生成さセッサ番号 DPE、とプログラムパケットの領域番号れた変数（結果）データパケットが他プロセッサへのPPA を示す。ここで、目的プロセッサ番号において、最上位ビットが0 のときデータ領域A を、1 のときデデータを書き込むとともに FCC のデータ到着フラグ

データ領域 B は演算データが格納される領域であり、次に、転送パケットの受信処理は次のようにして行われる。図2 において、直列通信ポートから割り込みによって1 バイトずつ受信し、受信バッファに格納すパケットであれば送信バッファに書き込み、自プロセッサ宛であれば該当プログラムパケット領域に結果ータ領域B を指定する。さらに、データ領域A および整数または実数4 バイトが格納される。

条件フラグabとデータ到着フラグABが一致したときAB をセットする。なお、他プロセッサから受け取った自プロセッサ宛の変数データパケットも、同様にパケット解析部において該当プログラムパケット領域に結果データを書き込むとともに FCC のデータ到着フラグAB をセットする。

る。そして、パケット解析部において、受信バッファ2.4 故障プロセッサの切り離しから1 バイトずつ取り込み、パケットを生成する。そのパケットのDPE 領域を解析して、そのパケットが他プロセッサ宛であれば、送信バッファに格納する。そのパケットが自プロセッサ宛であれば、PPA が指定するプログラムパケットの該当領域に格納する。受信パケットが定数データパケットまたは変数（結果）データパケットである場合、データを指定するデータ領域に格納するとともに、発火条件コードFCC の発火条件フラグab をリセット、またはデータ到着フラグAB をセットする｡

図2 に示す故障プロセッサ切り離し回路は、以下のように動作する｡まず、システムがリセットされた（または、電源が入った）とき、フリップフロップ FF から出力される信号はLow 状態である。このとき、前プロセッサの直列通信ポートからの出力信号は出力側に出力され、次のプロセッサに送られる。すなわち、このプロセッサの直列通信ポートからの出力信号は、次にプロセッサへ出力されないことになる。この状態において、ホストコンピュータからこのプロセッサへの故障診断パケットが送られると、直列通信ポートの-4-受信部からはこのパケットを受信することができ、受2.5 プログラミング言語

信バッファに入力される。そこで、このプロセッサがデータフロー処理をパケットレベルでプログラミ正常に動作する場合は、パケット解析部からフリップングを行うことは、非常に困難である。そこで、文字フロップ FF をセット状態にして、フリップフロップ列を利用して、データフロー処理のプログラミングをFF の出力信号をHigh にする。このとき、このプロセ行うことができるプログラミング言語（簡易言語）をッサの直列通信ポートからの出力信号が出力側に出開発した。この言語を用いて2 乗根を計算するプログ

力できるようになり、これとともに、故障診断パケッ

ラムの例は,図5 のように記述することができる。図のトに対する応答パケットをホストコンピュータへ返

2 行目および13 行目のpe(n)は、以降に記述されるプ送する。もし、このプロセッサに故障がある場合には、ログラムを格納する演算・制御プロセッサ番号n を指フリップフロップ FF からの出力信号を Low のままと定する文である。また、X=in(A),X=set(A,B),X=abs(A),し、故障診断パケットに対する応答パケットを出力しreturn(A),X=out(A)は、それぞれホストコンピュータない｡従って、ホストコンピュータは、プロセッサかからデータを入力しX へ出力する文、データA およびらの応答パケットの あり・なし によって、故障プ

データB が揃ったらA をX に出力する文、A の絶対値ロセッサを検出することができる。ただし、ホストコをX に出力する文、データA が到着したときプログラ

ンピュータから各プロセッサへ送られた故障診断パ

ムを終了する文、ホストコンピュータへデータA を出ケットはホストコンピュータに戻ってくる。しかし、力するとともにAをXに出力する文である。
この他に、応答パケットではないので、ホストコンピュータはこ指数計算や対数計算を行う文がある。4 行目および 8

れを無視する。

行目の if(A) DM,DZ,DP 文は、データ A をテストし、

NO: source program
1: ; test program
2: pe(1)
3: fx=in(fs)
4: if(fx) fdd,fdd,fss
5: fxx=set(fx,fss)
6: fa=set(3,fss)
7: ft5=0.001-ft4
8: if(ft5) fd1,fd2,fd2
9: fa1=0.5*ft2
10: ft3=fa1-fa
11: ft4=abs(ft3)
12: return(fdd)
13: pe(3)14: fxx=set(fxx,fd1)
15: fa=set(fa1,fd1)
16: fans=set(fa1,fd2)
17: fs=out(fans)
18: ft1=fxx/fa
19: ft2=fa+ft1
20: fs=start
21: end

負であれば DM へ、ゼロであれば DZ へ、正であれば

図５ プログラム例

DP へデータ A を出力する文である。8 行目および 10行目のX=A‑B や9 行目のX=A*B などは4 バイト整数演算または 4 バイト実数演算の文である。さらに、
A=start は初期データ0 をA に強制的に出力する、プログラム実行開始文である。このプログラムの例では、分かりやすいように上から下へデータが流れるように記述してあるが、データフロー処理の性格上、各文の記述順序は自由である。これらの文は、図4 に示すプログラムコードに変換され,図 3 の転送パケットによって各演算・制御プロセッサのプログラムパケット領域に格納される。

2.6 入力処理・制御処理
前節のプログラミング言語において、並列ポートからのデータ入力および並列ポートへのデータ出力は、
図 6 に示すように、それぞれ x1=inp(a)およびx2=outp(a1)文によって記述される。そして、データ入力は整数 x1 の下位 8 ビットに格納され、データ出-5-

力は整数 a1 の下位 8 ビットが並列ポートへ出力され3. プロトタイプ機る。図において、データa が入力されると並列ポート機能分散制御システムのプロトタイプ機(機能分散からデータが入力され x1 の下位 8 ビットに入力され制御ロボット)を構築した。このプロトタイプ機はロる。また、データ b が入力されると、並列ポートへボットの制御を目的として構成しており、制御および(05)16 が出力される｡さらに、並列ポートにセンサな入力としてDC モータやセンサなどがある。そのプロ

どからの外部データが入力されると、そのデータが割

セッサと制御装置の対応は図7 に示すようになってり込みルーティンによってcの下位8ビットに格納さいる。ここでは、一応各処理・制御するプロセッサはれ、データd が到着するとc の値がx3 に出力される。

このように割り当ててあるが、実際に各処理・制御プ

ここで、d を定数データにしておけば、センサからのロセッサは同じハードウェア構成であるため、どのプデータ入力の毎に、c の値が入力され、即処理されるロセッサでも制御することが可能である。
このロボットは、図8 に示すように、電源に12V 仕ことになる。

様のバッテリーを用い、駆動方式はギヤボックスを組

NO: source program
1: ; input
2: x1=inp(x)3: ----------4: ; output
5: a1=set($05,b)
6: x2=outp(a1)7: ----------8: ; interrupt input
9: x3=inpi(c,d)
10: -----------

み合わせた 12V 仕様の DC モータを用いた。センサ類にはタッチセンサ、超音波センサなどを使用した｡ロボットの仕様を以下に示す。

図6 並列ポートへの入力・出力文
制御演算
プロセッサ
PE5

タッチセンサ

制御演算
プロセッサ
PE4

超音波センサ

制御演算
プロセッサ
PE3

DC左モータ

図8 ロボット(プロトタイプ機能分散制御システム)
圧電ジャイロ
A/D変換回路

制御演算
プロセッサ
PE2

制御演算
プロセッサ
PE1



マイクロプロセッサ部
CPU :Z80 4.9152MHｚ

DC右モータRAM :32KB

通信用
プロセッサ
PEFF

ROM :32KB
シリアルポート： A,B チャンネル

データの流れホスト計算機

通信速度 ：RS‑232C 9600bps
A チャンネル：ホスト計算機への通信用

図 7 プロセッサと制御装置の対応図(通信用プロセッサのみ)-6-

B チャンネル：各プロセッサへの通信用4.1

パラレルポート: A,B チャンネル

ロボットにおいてセンサ等の入力から事象を判断し、A チャンネル：制御対象からの入力その事象に対する出力までの時間はロボットシステム

B チャンネル：制御対象からの出力としては重要な要素の一つである。例えば、ロボットがタイマー：割り込み間隔1.25ms

走行中、障害物に衝突する場合を考えたとき、可能ならホスト計算機

ば衝突前に障害物を察知し衝突を防ぎたいものである。

CPU :PentiumⅢ400MHz,RAM :192MB

そのため、今回は衝突があった場合を想定し、タッチセ

周辺機器 :4 入力USB ハブ、無線LAN(USB)、ンサ入力から DC モータ停止までの応答時間を測定し、CCD カメラ(USB)

目的評価を行う。ここで、本システムによる構成の特徴から、センサ部通信するプロセッサ数が応答時間に比例することが予タッチセンサ想される。そこで、今回の実験では単純にタッチセンサ

超音波センサの代わりとなる入力信号をタッチセンサ担当のプロセ

姿勢制御部ッサに入れ、適当なプロセッサを経由して、DC モータ担

圧電ジャイロ

当のプロセッサからの出力信号が検出されるまでの時電源部間を計測し、これをタッチセンサ入力から DC モータ停自動二輪用12V バッテリー止までの応答時間として測定を行う。

4.2

自動車用DC‑AC コンバータ 300W 規格

計測システムの構成

図9 に示すように、プロトタイプ機は6 プロセッサ

4 評価実験からなっている。そして、タッチセンサからPE5 へ入データフロー処理方式を利用した機能分散制御シ力する信号の変わりに測定システムのマイコンステムを評価するために、今回は機能分散制御システ(AKI‑80)のパラレルB ポートから信号を出力する。出ムのプロトタイプ機における、入出力信号に対する応力と同時に AKI‑80 タイマーカウンタを動作させ、カ答時間を測定する実験を行った。計測システムの構成

ウント開始する。次に、AKI‑80 からの信号を出力すとその評価結果について以下に述べる。

ると、PE5 はセンサの信号が入力されると認識し、PE3

パラレル
AKI-80 A

④

パラレ
ル
B

③モーターの信号出力を検出へDC モータ停止のパケットを送信する。そして、PE3PE5にパケットが到着すると DC モータ停止信号として信②PE4号を出力する。この停止信号が AKI‑80 のパラレル Aポートに入力されると同時にタイマーカウントを停①センサ-信号を出力

PE3PE2止する。そのカウント値を AKI‑80 に接続されているパソコンへ出力する。最後に、以上の流れを 9990 回

シリアルA

PE1
ホスト
計算機実行する。なお、信号入力判定などの処理は他のプロセッサで行う。

通信用
PEFF

ホスト
計算機

このプロトタイプ機のパケット送信はタイマー割り込みによって 1byte ずつ送信できるように、
RS‑232C 9600bps で、1.25ms 毎のタイマー割り込みに

図 9 計測システムの構成図なっている。また、データ1byte につき3 ビット（ス-7-(2) 実験2

タートビット 1bit、ストップビット 2bit）付加されるので、1 バイトの送信において 1bit 分の余裕があ

PE5 から入力、PE4 で入出力の有無を判断、PE1 でる。この間隔で 1 パケット（同期バイトを含め 10 バ出力する 4 プロセッサをパケットが転送される場合イト）を送信すると、1 プロセッサ間の通信に必要なである（図12）。その測定結果は図14 のようになる。

時間は最小1.25ms × 10(パケット) = 12.5ms である。

その応答時間の平均値は83.7ms である。

また、測定システムのタイマー割り込み周期は20000.25ms に設定してある。
1500

4.3 応答時間測定実験
度数(1) 実験1
PE5 から入力、PE4 で入出力有無を判断、PE3 で出力する 2 プロセッサをパケットが転送される場合で1000500ある（図11）。その場合のデータフロープログラムは3533483433383333233280

図10 のようになっている。その測定結果は図13 のよ処理時間(単位)うになる。その応答時間の平均値は83.6ms である。

図13 実験1 （2プロセッサ経由）;センサ判定、前進、停止;センサ判定
pe(5)x00=inp(s)pe(4)
out(nto)x01=x00-62
if(x01)nt4,nt4,nt0
pe(3)
;前進
m1=set(1,nt4)
s=outp(m1);停止
m2=set(0,nt0)
s=outp(m2)s=start
end

3000
2500

度数

2000
1500
1000
500

制御演算
プロセッサ
PE4

制御演算
プロセッサ
PE3

制御演算
プロセッサ
PE2

制御演算
プロセッサ
PE1

①

タッチ
センサ

制御演算
プロセッサ
PE5

制御演算
プロセッサ
PE4

②
DC右モータ③

データの流れ１巡目

DC左モータ

制御演算
プロセッサ
PE3

制御演算
プロセッサ
PE2

制御演算
プロセッサ
PE1

通信用
プロセッサ
PEFF

通信用
プロセッサ
PEFF

ホスト計算機

ホスト計算機図 11 実験1 のプロセッサ構成

351

346

341

336

331

処理時間(単位)
図14 実験2（4プロセッサ経由）

図10 データフロープログラム
制御演算
プロセッサ
PE5326

321

0

①

タッチ
センサ

②(3) 実験3PE4 から入力、PE5 で入出力の有無を判断、PE3 で出力する 7 プロセッサをパケットが転送される場合

DC右モータ③

データの流れ１巡目である（図15）。その測定結果は図17 のようになる。
その応答時間の平均値は163.3ms である。

DC左モータ図 12 実験2 のプロセッサ構成

-8-

制御演算
プロセッサ
PE5

制御演算
プロセッサ
PE4

(5) 実験5

①

タッチ
センサ

制御演算
プロセッサ
PE5②制御演算
プロセッサ
PE3制御演算プロセッサ
PE4

DC右モータ

制御演算
プロセッサ
PE2

③制御演算
プロセッサ
PE1
通信用
プロセッサ
PEFF

通信用
プロセッサ
PEFF

ホスト計算機

ホスト計算機である（図19）。その測定結果は図20 のようになる。

③

その応答時間の平均値は163.3ms である。

データの流れ
１巡目

制御演算
プロセッサ
PE1

DC左モータ

出力する 9 プロセッサをパケットが転送される場合

DC右モータ

制御演算
プロセッサ
PE2

１巡目

PE4 から入力、PE5 で入出力の有無を判断、PE1 で②制御演算
プロセッサ
PE3データの流れ①

タッチセンサ

制御演算
プロセッサ
PE5

DC左モータ制御演算
プロセッサ
PE4
制御演算
プロセッサ
PE3
制御演算
プロセッサ
PE2

図 15 実験3 のプロセッサ構成

図 16 実験4 のプロセッサ構成

制御演算
プロセッサ
PE1

①

タッチセンサ②③

DC右モータ

データの流れ１巡目

DC左モータ

通信用
プロセッサ
PEFF

(4) 実験4PE5 から入力、PE1 で入出力の有無を判断、PE3 でホスト計算機

出力する 8 プロセッサをパケットが転送される場合である（図16）。その測定結果は図18 のようになる。

図19 実験5 のプロセッサ構成

2000

2000

1500

1500

1000

度数

500

1000

500

処理時間(単位)

処理時間(単位)

図17 実験3（7プロセッサ経由）

図20 実験5（9プロセッサ経由）

4.4 実験結果の考察

2000

これらの実験結果について検討を行うと、実験1 と２1500もほぼ同じ値になっている。そこで、各プロセッサのパケット受信信号および測定システムの入出力信号をロ500

ジックアナライザで測定を行い、その結果は図 21 のよ679674669664659654649644639

6340629度数の応答時間は、ほぼ同じ値であり、実験３〜５において1000うになった。この図から、パケットが上から下へ順次転処理時間(単位)送されていくことが分かる。そして、最下位の信号が

図18 実験4（8プロセッサ経由）

High の期間が測定システムの応答時間として測定した

-9-

679

674669664

659

6546496446296390680

675

670

665

660

655

650

645

640

635

6300634

度数

その応答時間の平均値は163.2ms である。

時間である｡この結果および AKI-80 の測定プログラム

および出力制御を一つのコンピュータで行うことは、の検討から実験1 と2 の測定時間は1 パケットが6 プロそのソフトウエアが非常に複雑なものになる。そこで、セッサを１周する時間になっており、実験 3〜5 の測定マイクロプロセッサに内蔵されている並列ポートで時間は2周する時間になっていることがわかった。
また、センサからの入力や制御出力を行う機能分散制御シ1 パケットを 1 プロセッサに送る時間は、12.5ms〜ステムを提案した。また、提案した本システムは、デ13.8ms の範囲であることも分かった。従って、応答時ータフロー処理方式を採用して、ホストコンピュータ間は、モータ出力プロセッサからセンサプロセッサへのを介さずにセンサ部および制御部のプロセッサで簡転送パケットの転送時間を差し引いた値で求められる。

単な処理を行うことが可能である。本論文では、機能すなわち、分散制御システムの一般的構成を示し、簡単なデータ実験1 での平均応答時間はフロー言語によるプログラムを作成した。さらに、デ83.6ms−13.125ms×4=31.1ms、ータフロー処理方式を採用した機能分散制御システ
ムのプロトタイプ機について入出力信号に対する応実験2 での平均応答時間は答時間を測定する実験を行った。今後の課題として、

83.7ms−13.125ms×2=57.45ms、システムの規模を大きくし、構成の違いによる応答時間の変化を考察と検討を行う。更により多くの構成パターンによる実験を行う。

実験3 での平均応答時間は163.3ms−13.125ms×5=97.675ms、謝辞
本報告を進めるにあたり、ご指導を頂きました成田

実験4 での平均応答時間は163.2ms−13.125ms×4=110.7ms、

明子 助教授、一條 健二 助手、そして、OB の佐々木 孝仁 先輩に心から感謝いたします。

実験5 での平均応答時間は163.3ms−13.125ms×3=123.925ms

参考文献となる。

[1] たとえば HONDA ASIMO ,http://www.honda.co.jp/ASIMO/[2]

RoboCube ,http://www.watt.co.jp/[3] 吉岡 良雄： 図解 コンピューターアーキテク
チャ入門 pp.99‑121,オーム社,(1992)[4] 佐々木 孝仁,吉岡 良雄

機能分散制御システムの構築 ,平成 13 年度電気関係学会東北支部連合大会

図21 ロジックアナライザ波形

5. まとめ
大規模制御システムでは、多くのセンサ部からの入力データを処理し、多くの制御部へ制御データを出力する必要がある。これらの入力処理、データ解析処理- 10 -