以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
すなわち、本技術の一側面のパルス発生装置(例えば、図17のクロック信号生成部51)は、制御装置からの指令に基づいて、可変速にパルス信号を発生するパルス発生装置であって、予め設定された複数の原発振パルス波を分周により発生する分周手段(例えば、図16の分周部23’、または、図17の分周部151)と、前記複数の原発振パルス波に基づいて、カウント値をカウントアップ、またはカウントダウンするカウント手段(例えば、図17のアップダウンカウンタ161)と、前記指令に基づいて、前記カウント手段のリミットカウント値を生成するリミットカウント値生成手段(例えば、図17のリミットカウント生成部72)と、前記カウント値と前記リミットカウント値とを比較し、前記カウント値がカウントアップする場合、前記カウント値が前記リミットカウント値よりも大きいとき、または、前記カウント値がカウントダウンする場合、前記カウント値が前記リミットカウント値よりも小さいとき、前記パルス信号を発生するパルス信号発生手段(例えば、図17の比較部73)と、前記パルス信号により動作し、前記カウント手段の前記カウント値をクリア、またはプリセットする清算手段(例えば、図17の清算部74)とを含み、前記カウント手段は、カウンタと、前記カウント値の変化状況を予め設定する複数の切替カウント値、および前記複数の切替カウント値毎に、前記複数の原発振パルス波のうち、1つを対応させることで曲率を設定する曲率設定手段(例えば、図17の曲率設定部175)と、前記曲率設定手段の設定内容に従い、前記複数の原発振パルス波を切り替え、前記カウンタを駆動させる切替手段(例えば、図17の分周切替部174)とを含み、前記カウント値は、前記曲率設定手段の設定内容に従い、カウントアップ、またはカウントダウンする度合いが時間の経過に伴って曲線状に変化し、かつ、前記リミットカウント値との比較結果により、前記パルス信号の周波数が定められる。
前記リミットカウント値生成手段には、リミットカウント値生成カウンタ(例えば、図21の低周波アップダウンカウンタ202)と、前記指令に基づいて、前記複数の原発振パルス波のうちの1つを選択するリミットカウント周波数選択手段(例えば、図21の周波数選択部201)とを含ませるようにすることができ、前記リミットカウント値生成カウンタには、前記リミットカウント周波数選択手段により選択された、前記複数の原発振パルス波のうちの1つにより、カウントアップ、またはカウントダウンさせ、これに追従して、前記パルス信号の周波数が変化させるようにすることができる。
本技術の駆動装置には、請求項1乃至3のいずれかに記載のパルス発生装置と、前記制御装置からの前記指令を受信する受信手段と、前記指令に基づいて、駆動指令内容を解釈する動作制御手段(例えば、図17の動作制御部22)と、前記パルス信号に基づいて、モータ、ソレノイド、LED、または音声発生装置を含む動作装置を駆動させる出力制御手段(例えば、図17の出力波形生成部53)とを含ませるようにすることができる。
前記動作制御手段には、前記指令に基づき、動作状況を指定する動作状況指定手段(例えば、図17の動作状況指定部43)と、前記受信手段により、次の指令が受信されるまで、前記動作状況指定手段により指定された動作状況を保持する動作状況保持手段(例えば、図17の動作状況保持部52)をさらに含ませるようにすることができる。
前記出力制御手段にて駆動する前記動作装置毎の適合出力形態を、前記動作制御手段、または前記出力制御手段に設定する出力設定手段(例えば、図17の出力設定部83)をさらに含ませるようにすることができる。
本技術の一側面のパルス発生方法は、制御装置からの指令に基づいて、可変速にパルス信号を発生するパルス発生装置のパルス発生方法であって、予め設定された複数の原発振パルス波を分周により発生する分周ステップと、前記複数の原発振パルス波に基づいて、カウント値をカウントアップ、またはカウントダウンするカウントステップ(図9のステップS132)と、前記指令に基づいて、前記カウントステップ処理のリミットカウント値を生成するリミットカウント値生成ステップ(図10のステップS143)と、前記カウント値と前記リミットカウント値とを比較し、前記カウント値がカウントアップする場合、前記カウント値が前記リミットカウント値よりも大きいとき、または、前記カウント値がカウントダウンする場合、前記カウント値が前記リミットカウント値よりも小さいとき、前記パルス信号を発生するパルス信号発生ステップ(図10のステップS147)と、前記パルス信号により動作し、前記カウントステップの処理での前記カウント値をクリア、またはプリセットする清算ステップ(図10のステップS148)とを含み、前記カウントステップの処理は、前記カウント値の変化状況を予め設定する複数の切替カウント値、および前記複数の切替カウント値毎に、前記複数の原発振パルス波のうち、1つを対応させることで曲率を設定する曲率設定ステップ(図18のステップS170)と、前記曲率設定ステップの処理での設定内容に従い、前記複数の原発振パルス波を切り替え、前記カウンタを駆動させる切替ステップ(図18のステップS164)とを含み、前記カウント値は、前記曲率設定ステップの処理での設定内容に従い、カウントアップ、またはカウントダウンする度合いが時間の経過に伴って曲線状に変化し、かつ、前記リミットカウント値との比較結果により、前記パルス信号の周波数が定められる。
図1は、本発明に係る遊技機の駆動システムの一実施の形態の構成を示す図である。
この駆動システムは、パチンコ遊技機や回胴式遊技機などに代表される遊技機の、可動体からなる可動役物を駆動させるためのシステムである。駆動システムは、CPU(Central Processing Unit)11、可動体駆動装置12−1,12−2から構成されており、可動体駆動装置12−1が、モータM1−1,M2−1を、可動体駆動装置12−2が、モータM2−2,M2−2を、それぞれ駆動させることによりモータM1−1,M2−1,M1−2,M2−2の回転に連動して駆動する可動体からなる可動役物を駆動させる。
このモータM1−1,M2−1,M1−2,M2−2は、例えば、ステッピングモータなどであり、モータM1−1,M2−1は、それぞれコイルL1−1−1,L2−1−1、およびコイルL1−2−1,L2−2−1の励磁の切替により段階的に回転し、モータM1−2,M2−2は、それぞれコイルL1−1−2,L2−1−2、およびコイルL1−2−2,L2−2−2の励磁の切替により段階的に回転する。
尚、可動体駆動装置12−1,12−2、モータM1−1,M1−2,M2−1,M2−2、およびコイルL1−1−1,L2−1−1,L1−2−1,L2−2−1,L1−1−2,L2−1−2,L1−2−2,L2−2−2のそれぞれについて特に区別する必要がない場合、単に、可動体駆動装置12、モータM1,M2、およびコイルL1−1,L2−1,L1−2,L2−2と称するものとし、その他の構成についても同様に称するものとする。また、図1においては、CPU11は、2個の可動体駆動装置12の動作を制御する例について示されているが、CPU11が、制御する可動体駆動装置12の個数は2個以上であってもよいものである。さらに、可動体駆動装置12についても、個別に2個ずつのモータM1,M2を駆動させる例について説明するが、制御すべきモータの個数はそれぞれ2個に限定されるものではなく、それ以上の個数のモータを駆動させるものであってもよい。また、図1においては、可動体駆動装置12は、それぞれ1種類のモータを駆動させる例について示されているが、可動体を駆動させる機構であればモータに限るものではなく、例えば、ソレノイドなどであってもよい。
CPU11は、可動体駆動システムの動作の全体を制御しており、クロック端子CKより出力するクロック信号に同期して、データ端子DATAよりシリアルデータとして指令データを出力し、可動体駆動装置12−1,12−2に対して、それぞれが駆動を制御しているモータM1−1,M2−1,M1−2,M2−2の駆動の指令データを供給する。この際、CPU11は、可動体駆動装置12−1,12−2のいずれに対しての指示であるかを区別するアドレスの情報を付して指令データを供給する。また、CPU11は、併せて、モータM1,M2のいずれへの指示であるかを区別する出力系統を識別する情報も付した指令データを供給する。さらに、CPU11は、併せて、デバイスを識別するデバイス認識情報を付して指令データを供給する。デバイス認識情報とは、デバイスとして、例えば、モータを特定する情報であり、さらに、モータとは異なるデバイスとして、例えば、発光ダイオードLEDを用いる場合、モータM1,M2については、モータを識別する情報を、発光ダイオードLEDについては、発光ダイオードLEDを識別する情報をデバイス認識情報として付した指令データが供給される。
また、CPU11は、可動体駆動装置12−1,12−2のそれぞれのモータM1,M2の駆動内容により、必要に応じて、駆動内容を示す動作データを生成し、指令データに含めて可動体駆動装置12−1,12−2に供給する。
次に、図2を参照して、CPU11および可動体駆動装置12の詳細な実施の形態の構成例について説明する。
判定部111は、可動体駆動装置12が組み込まれている遊技機の遊技状態、すなわち、通常状態、リーチ状態、および大当り状態に対応して、ステッピングモータM1,M2をどのように駆動させるかを判定し、判定結果である駆動内容を動作データ生成部112に供給する。
動作データ生成部112は、判定部111からの判定結果に基づいて、具体的な動作内容を示す動作データを生成し、指令データ送信部113に供給する。
指令データ送信部113は、動作データ生成部112より供給されてくる動作データを含めて、指令データを生成し、宛先となるデバイス(デバイスの種類としては、例えば、可動体駆動装置の他、LED(Light Emission Diode)駆動装置などを含む)を特定するデバイス認識データ、および、例えば、可動体駆動装置12をデバイスとして特定した場合、可動体駆動装置12を特定するアドレスデータを付して、データ出力端子DATAおよびクロック信号出力端子CKより、クロック信号に同期してシリアルデータとして指令データを全ての可動体駆動装置12に送信する。
受信部21は、受信制御部31、およびシリアル−パラレル変換部32より構成されており、CPU11よりクロック信号に同期して送信されてくるシリアルデータからなる指令データを受信し、パラレルデータに変換して動作制御部22に供給する。受信制御部31は、シリアルデータ受信部31aおよびクロックデータ受信部31bを備えており、クロックデータ受信部31bにより受信されるクロックデータに基づいたクロック信号に同期して、シリアルデータ受信部31aで受信されるシリアルデータとして指令データを受信し、シリアル−パラレル変換部32に供給する。シリアル−パラレル変換部32は、シリアルデータをパラレルデータに変換し、パラレルデータに変換された指令データを動作制御部22に供給する。
動作制御部22は、デバイス認識部41、アドレス認識部42、動作状況指定部43、および選定部44を備えており、受信部21より供給されてくる指令データを取得すると、内蔵するデバイス認識部41、およびアドレス認識部42を制御して、自らへの指令データであるか否かを認識させ、自らへの指令データであると認識された場合にのみ、指令データに基づいて、出力制御部24−1,24−2への出力を指示する。
デバイス認識部41は、CPU11より供給されてくる指令データに含まれるデバイスデータを読み出し、自らを識別するデバイスであるか否かを判定し、自らを識別するデバイスである場合にのみ、指令データを後段のアドレス認識部42に供給する。より具体的には、識別すべきデバイスが2種類の場合、1ビット分のアドレスデータが構成されればよく、例えば、0の場合、デバイスを可動体駆動装置とし、1の場合、デバイスをLED駆動装置とするようにしてもよい。
アドレス認識部42は、CPU11より供給されてくる指令データに含まれるアドレスデータを読み出し、自らを識別するアドレスであるか否かを判定し、自らを識別するアドレスである場合にのみ、指令データを後段の動作状況指定部43に供給する。より具体的には、識別すべき可動体駆動装置12が可動体駆動装置12−1または12−2の2台である場合、1ビット分のアドレスデータが構成されればよいが、それ以上であった場合、その数に対応したビット数のアドレスデータとなる。例えば、3ビットのアドレスデータを利用する場合、図1における可動体駆動装置12−1には、自らのアドレスデータの設定端子A1乃至A3が(A1,A2,A3)=(Hi,Low,Low)に設定されているため、アドレス認識部42は、アドレスデータである(A1,A2,A3)=(Hi,Low,Low)=(1,0,0)と、供給されてきた指令データに含まれるアドレスデータとを比較し、一致するとき、すなわち、アドレスデータが(A1,A2,A3)=(Hi,Low,Low)=(1,0,0)であるとき、自らのアドレスであると認識する。また、例えば、図1における可動体駆動装置12−2には、自らのアドレスデータの設定端子A1乃至A3が(A1,A2,A3)=(Low,Hi,Low)=(0,1,0)に設定されているため、アドレス認識部42は、アドレスデータである(A1,A2,A3)=(Low,Hi,Low)=(0,1,0)と、供給されてきた指令データに含まれるアドレスデータとを比較し、一致するとき、すなわち、アドレスデータが(A1,A2,A3)=(Low,Hi,Low)=(0,1,0)であるとき、自らのアドレスであると認識する。
尚、可動体駆動装置12が、さらに多く設けられ、例えば、可動体駆動装置12−1乃至12−Nが設けられているような場合、アドレスデータのデータビットを可動体駆動装置12の個数に対応して設け、対応してアドレス識別部42にさらに設定端子を増設し、それぞれを識別するアドレスを設定することで対応することができる。
分周部23は、いわゆる分周回路から構成されており、予め設定された比較的高周波の周波数f0のクロック信号を出力制御部24−1,24−2に供給する。
出力制御部24−1,24−2は、動作制御部22からの指示のうち、自らの出力系統に対応する指示の場合、その指示に基づいて、分周部23より供給されてくる予め設定されている周波数f0のクロック信号に基づいて、順次、アップダウンカウンタ71−1,71−2のカウント値をカウントアップ、または、カウントダウンし、カウントリミット値とを比較し、比較結果に応じて、出力波形生成部53により所定の波形の出力信号を発生させ、モータM1またはM2を駆動させる。
動作状況指定部43は、CPU11から供給された指令データに含まれる出力系統データおよび動作データに基づいて、動作状況を指定し、選定部44に指示し、出力制御部24−1または24−2によりそれぞれステッピングモータM1,M2を駆動させる。
選定部44は、動作状況指定部43より供給されてくる指示に含まれる、指令データの出力系統データに基づいて、出力制御部24−1または24−2の何れかを選定し、動作データに対応する動作を指示する。
出力制御部24−1,24−2は、それぞれクロック信号生成部51−1,51−2、動作状況保持部52−1,52−2、および出力波形生成部53−1,53−2から構成されている。
クロック信号生成部51−1,51−2は、それぞれアップダウンカウンタ71−1,71−2、リミットカウント生成部72−1,72−2、比較部73−1,73−2、および清算部74−1,74−2から構成されており、出力波形生成部53に対してスッテピングモータM1,M2を駆動させる出力波形信号を発生させるクロック信号を出力する。
より詳細には、図3で示されるように、アップダウンカウンタ71は、分周部23より供給されてくる比較的高速の周波数f0のクロック信号に基づいて、カウント値をカウントアップ、または、カウントダウンするカウンタであり、カウント値を示すカウント信号を比較部73に供給する。また、アップダウンカウンタ71は、清算部74より供給されるクリア信号によりカウンタのカウント値の値を0にクリアする。
リミットカウント生成部72は、動作状況保持部52より供給されてくるリミット信号に基づいて、アップダウンカウンタのカウント値における上限値(または、下限値)を示すリミットカウント値を比較部73に供給する。
比較部73は、リミットカウント生成部72より供給されてくるリミットカウント値と、アップダウンカウンタ71より供給されてくるカウント信号に基づいたカウント値とを比較し、カウント値がカウントアップされる場合、カウント値が、リミットカウント値よりも大きいとき、パルス状のクロック信号を発生し、出力波形生成部53に供給する。
動作状況保持部52は、動作制御部22より供給されてくる動作状況を保持し、動作状況に含まれているスタート信号、およびリミット信号を、それぞれ出力波形生成部53およびクロック信号生成部51に供給する。
図2の出力波形生成部53−1,53−2は、いずれも出力波形整形部81−1,81−2、出力部82−1,82−2、および出力設定部83−1,83−2をそれぞれ備えている。
図4の出力波形整形部81は、出力設定部83により予め設定されている設定情報に基づいて出力波形を整形し、出力部82に供給する。出力部82は、出力波形整形部81により整形された出力波形を出力端子より出力し、コイルL1,L2を駆動させ、モータM1またはM2を駆動させる。
より具体的には、例えば、モータM1を駆動させる場合、図4で示されるように、出力設定部83には、設定端子SET1,SET2が設けられており、これらの設定端子SET1,SET2の入力信号に基づいて整形され、出力部82の出力端子V1乃至V4の出力波形が設定される。例えば、図4で示されるように、設定端子SET1,SET2が、それぞれ(SET1,SET2)=(Low,Low)に設定された場合、図5で示されるように、4相モータ駆動波形が設定され、例えば、図6の最上段で示されるような波形が出力される。
図6の出力端子V1乃至V4の出力波形のうち、最上段の時刻t0乃至t11においては、励磁なしで、コイルL1,L2によりモータM1が駆動されておらず、停止している状態となる。さらに、時刻t11において、予備励磁が指示されると、時刻t11乃至t20で示されるように、予備励磁が開始されている。予備励磁においては、コイルL1,L2は励磁されるが、駆動波形が変化せず、モータM1が停止している状態が示されている。
時刻t20において、正方向の回転が指示されると、時刻t20乃至t38で示されるように、出力波形整形部81より順次出力波形が整形されて、出力部82の出力端子V1乃至V4からそれぞれ90°ずつ位相がずれた方形波が出力されることにより、コイルL1,L2が順次切り替えて励磁されてモータM1が駆動し、正方向に回転する。そして、時刻t38において、停止が指示されると、出力部82の出力端子V1乃至V4からの出力が停止されて、予備励磁状態であるが、コイルL1,L2の駆動波形が変化せず、モータM1が停止している状態となる。
そして、時刻t50において、逆方向の回転が指示されると、時刻t50乃至t76で示されるように、出力波形整形部81より順次出力波形が整形されて、出力部82の出力端子V1乃至V4からそれぞれ90°ずつ位相がずれた(時刻t20乃至t38における場合とずれ方向が逆の)方形波が出力されることにより、コイルL1,L2が順次励磁されてモータM1が駆動し、逆方向に回転する。そして、時刻t76において、停止が指示されると、出力部82の出力端子V1乃至V4からの出力が停止されて、予備励磁状態となるが、コイルL1,L2によりモータM1が駆動されておらず、モータM1が停止している状態となる。さらに、時刻t81において、完全停止が指示されると励磁なしの状態となる。
また、例えば、設定端子SET1,SET2が、それぞれ(SET1,SET2)=(Hi,Low)に設定された場合、図5で示されるように、2相モータ駆動波形が設定され、例えば、図6の出力端子V1乃至V4の出力波形のうち、中段で示されるような波形が出力される。
すなわち、2相モータ駆動時には、Hブリッジドライバが追加接続されるため、出力端子V1,V2のみが使用され、出力端子V3,V4は、不要となる。このため、出力端子V3,V4は、別の用途に使用することもできる。尚、図6の出力端子V1乃至V4の出力波形のうち、中段で示される2相モータ駆動時の動作については、4相モータ駆動時と同様であるので、その説明は省略する。
さらに、例えば、設定端子SET1,SET2が、それぞれ(SET1,SET2)=(Low,Hi)に設定された場合、図5で示されるように、1−2相モータ駆動波形が設定され、例えば、図6の出力端子V1乃至V4の出力波形のうち、下段で示されるような波形が出力される。
すなわち、1−2相モータ駆動時には、各出力端子V1乃至V4よりON時間:OFF時間の比率が3:5の波形が、90°ずつ位相がずれた波形が出力される。尚、図6の下段で示される1−2相モータ駆動時の動作については、4相モータ駆動時と同様であるので、その説明は省略する。
さらに、例えば、設定端子SET1,SET2が、それぞれ(SET1,SET2)=(Hi,Hi)に設定された場合、図5で示されるように、ソレノイド駆動が設定され、それぞれがONまたはOFFに設定される。尚、出力波形は、ONまたはOFFのいずれかであるので、波形例の説明は省略する。
次に、図7のフローチャートを参照して、図2の駆動システムによる可動体駆動処理について説明する。
ステップS101において、判定部111は、全てのデバイスのうち、未処理のデバイスを処理対象デバイスに設定する。ここでは、未処理のデバイスが可動体駆動装置12であるものとするが、それ以外のデバイスであってもよく、例えば、LED駆動装置などがあれば、それらも未処理であれば処理対象のデバイスに設定される。
ステップS102において、判定部111は、可動体駆動装置12を識別する全てのアドレスのうち、未処理のアドレスを処理対象アドレスに指定する。
ステップS103において、判定部111は、処理対象となるアドレスにおける出力制御部24によりステッピングモータM1,M2のいずれか、または、その両方の駆動が必要であるか否かを判定する。
ステップS103において、例えば、駆動が必要であると判定された場合、ステップS104において、動作データ生成部112は、処理対象アドレスの可動体駆動装置12に対して、駆動させるべきステッピングモータM1またはM2の動作内容を指示する動作データを生成し、指令データ送信部113に供給する。ここでいう動作データは、出力波形生成部53によりステッピングモータM1,M2を駆動させるための、電圧V1−1乃至V4−1、およびV1−2乃至V4−2の発生を制御するデータである。
ステップS105において、指令データ送信部113は、処理対象デバイスのうち、処理対象アドレスの可動体駆動装置12に対して、供給されてきた動作データを含めて、動作を指示する、例えば、図8で示されるような指令データを生成し、クロック端子CKより出力するクロック信号に同期して、データ端子DATAよりシリアルデータとして出力する。
指令データは、図8で示されるように、デバイスデータ、アドレスデータ、出力系統データ、および動作データから構成される。例えば、可動体駆動装置12−1宛の指令データを生成する場合、デバイスデータには、デバイスとして可動体駆動装置を識別できるデバイスデータが記録される。また、アドレスデータには、可動体駆動装置12−1を識別するアドレスのデータが記録される。また、出力系統データは、駆動させる出力系統である出力制御部24−1,24−2のいずれかを識別するデータが記録される。動作データは、上述したように、出力波形生成部53によりステッピングモータM1,M2を駆動させるための、電圧V1−1乃至V4−1,V1−2乃至V4−2の発生を制御するデータが記録される。
ステップS111において、受信部21の受信制御部31は、CPU11より指令データが送信されてきたか否かを判定し、指令データが送信されてくるまで、同様の処理を繰り返す。ステップS111において、例えば、ステップS105の処理により、CPU11より指令データが送信されてきた場合、ステップS112において、受信制御部31は、順次クロック信号に同期して、シリアルデータとして送信されてくる指令データを受信し、シリアル−パラレル変換部32に供給する。シリアル−パラレル変換部32は、供給されてきたシリアルデータからなる指令データをパラレルデータに変換し、動作制御部22のデバイス認識部41に供給する。デバイス認識部41は、パラレルデータに変換されて供給されてきた指令データより、デバイスデータを読み出す。
ステップS113において、デバイス認識部41は、読み出したデバイスデータが自らを識別するデバイスを示すものであるか否かを判定する。ステップS113において、例えば、読み出したデバイスデータが自らを識別するデバイスを示すものではないと判定された場合、デバイス認識部41は、供給されてきた指令データを破棄し、処理は、ステップS111に戻る。すなわち、この場合、供給されてきた指令データが、自らへのものではないとみなされ、処理が打ち切られる。結果として、指令データの宛先として指定されたデバイスに対応するデバイス以外においては、処理が打ち切られ、指令データの宛先として指定されたデバイスに対応する駆動装置のみが、以降の処理を実行することになる。
一方、ステップS113において、例えば、読み出したデバイスデータが自らを識別するデバイスを示すものであると判定された場合、ステップS114において、デバイス認識部41は、供給された指令データをアドレス認識部42に供給する。この処理に応じて、アドレス認識部42は、供給されてきた指令データより、アドレスデータを読み出す。
ステップS115において、アドレス認識部42は、読み出したアドレスデータが自らを識別するアドレスを示すものであるか否かを判定する。ステップS115において、例えば、読み出したアドレスデータが自らを識別するアドレスを示すものではないと判定された場合、アドレス認識部42は、供給されてきた指令データを破棄し、処理は、ステップS111に戻る。すなわち、この場合、供給されてきた指令データが、自らへのものではないとみなされ、処理が打ち切られる。結果として、指令データの宛先として指定されたアドレスに対応する可動体駆動装置12以外においては、処理が打ち切られ、指令データの宛先として指定されたアドレスに対応する可動体駆動装置12のみが、以降の処理を実行することになる。
一方、ステップS115において、例えば、読み出したアドレスデータが自らを識別するアドレスを示すものであると判定された場合、ステップS116において、アドレス認識部42は、供給された指令データを全て読み出し、動作状況指定部43に供給する。
ステップS117において、動作状況指定部43は、指令データのうちの動作データを読み出し、ステップS118において、動作として指示する動作内容を認識する。
ステップS119において、動作状況指定部43は、指令データのうちの出力系統データを読み出し、動作データの供給先となる出力系統を認識する。
ステップS120において、動作状況指定部43は、動作データより動作状況を指定し、認識した出力系統に対応する出力制御部24を指定して、選定部44に対して出力系統データと共に動作データを供給する。これに応じて、選定部44は、出力系統データに基づいて、選択すべき出力制御部24に動作状況を指示する。このとき、図10を参照して後述するステップS142の処理により動作状況保持部52は、供給されてきた動作状況を保持する。そして、処理は、ステップS111に戻る。
一方、ステップS103において、駆動が必要ではないと判定された場合、ステップS104,S105の処理は、スキップされる。
そして、ステップS106において、判定部111は、可動体駆動装置12を識別する全てのアドレスのうち、未処理のアドレスが存在するか否かを判定する。すなわち、CPU11で動作を管理すべき可動体駆動装置12の全てについて処理が終了したか否かが判定される。ステップS106において、未処理のアドレスが存在する場合、処理は、ステップS102に戻る。すなわち、CPU11で動作を管理すべき可動体駆動装置12の全てについて処理が終了するまで、ステップS102乃至S106の処理が繰り返される。そして、ステップS106において、全てのアドレスについて処理が終了し、CPU11で動作を管理すべき可動体駆動装置12の全てについて処理が終了したと判定された場合、処理は、ステップS107に進む。
ステップS107において、判定部111は、駆動装置12を識別する全てのデバイスのうち、未処理のデバイスが存在するか否かを判定する。すなわち、CPU11で動作を管理すべきデバイスの全てについて処理が終了したか否かが判定される。ステップS107において、未処理のデバイスが存在する場合、処理は、ステップS101に戻る。すなわち、CPU11で動作を管理すべき駆動装置の全てについて処理が終了するまで、ステップS101乃至S107の処理が繰り返される。そして、ステップS107において、全てのアドレスについて処理が終了し、CPU11で動作を管理すべき駆動装置の全てについて処理が終了したと判定された場合、処理は、ステップS108に進む。
ステップS108において、判定部111は、全てのデバイスについて、全てのアドレスを未処理であるものとみなし、処理は、ステップS101に戻る。
すなわち、CPU11は、全てのデバイス、すなわち全ての駆動装置について、動作状況を巡回的に監視し、必要に応じて駆動を指示する。この際、駆動装置を駆動するにあたり、動作を一回指示すればよいのでCPU11による処理負荷が低減される。
次に、図9のフローチャートを参照してアップダウンカウンタのカウント処理について説明する。
ステップS131において、アップダウンカウンタ71は、アップダウンカウンタを0にリセットする。
ステップS132において、アップダウンカウンタ71は、分周部23により分周されて発生される周波数f0のクロック信号に同期してカウント値をカウントし(1インクリメント、またはデクリメントし)、カウント値に対応するカウント信号を比較部73に供給する。
ステップS133において、アップダウンカウンタ71は、清算部74よりクリア信号が供給されてくるか否かを判定する。ステップS133において、例えば、清算部74よりクリア信号が供給されてこなかった場合、処理は、ステップS132に戻る。すなわち、清算部74よりクリア信号が供給されてくるまで、アップダウンカウンタ71は、分周部23からのクロック信号に同期してカウント値を累積的に加算、または減算し続ける。
一方、ステップS133において、清算部74よりクリア信号が供給されてくると、処理は、ステップS131に戻る。すなわち、カウント値がリセットされてから、再びカウント値のカウントアップ、またはカウントダウンが累積的に繰り返される。
以上の処理により、アップダウンカウンタ71は、清算部74によりクリア信号が供給されるまで、カウント値をカウントアップ、または、カウントダウンし続け、そのカウント値を順次比較部73に供給すると共に、クリア信号が供給されるとカウント値をリセットし、再びカウント値をカウントアップ、または、カウントダウンし続け、そのカウント値を順次比較部73に供給し続ける。
次に、図10のフローチャートを参照して、出力制御部24による出力制御処理について説明する。
ステップS141において、動作状況保持部52は、自らの出力系統に出力制御処理が指示されたか否かを判定し、指示されたと判定されるまで、その処理を繰り返す。ステップS141において、例えば、ステップS120の処理により、出力制御処理を指示する動作データが供給された場合、処理は、ステップS142に進む。
ステップS142において、動作状況保持部52は、供給されてきた動作データを保持する。
ステップS143において、動作状況保持部52は、保持している動作データに基づいて、リミットカウント情報をリミットカウント生成部72に供給する。リミットカウント生成部72は、リミットカウント情報に基づいて、リミットカウント信号を比較部73に供給する。
ステップS144において、動作状況保持部52は、動作データに基づいて、処理を開始するスタートのタイミングであるか否かを判定し、スタートのタイミングであると判定されるまで、同様の処理を繰り返す。ステップS144において、スタートのタイミングであると判定された場合、ステップS145において、動作状況保持部52は、スタート信号を出力波形生成部53の出力波形整形部81に供給する。
ステップS146において、比較部73は、順次アップダウンカウンタ71より供給されてくるカウント信号に基づいたカウント値と、リミットカウント生成部72より供給されてくるリミットカウント信号に基づいたリミットカウント値とを比較し、カウント信号に基づくカウント値が、リミットカウント信号に基づくリミットカウント値よりも大きいか否かを判定する。ステップS146において、例えば、カウント値が、リミットカウント値よりも大きいと判定された場合、ステップS147において、比較部73は、出力波形生成部53、および清算部74に対してクロック信号を供給する。このクロック信号により、出力波形生成部53は、ステッピングモータM1(またはM2)を駆動するため、駆動信号を発生し、コイルL1,L2を励磁させることによりステッピングモータM1(またはM2)を駆動させる。
ステップS148において、清算部74は、パルス状のクロック信号であるパルス信号を受けると、クリア信号をアップダウンカウンタ71に供給し、アップダウンカウンタのカウント値をリセットさせ、処理は、ステップS150に進む。尚、ステップS147において、クロック信号が発生されるのは、カウント値が、リミットカウント値よりも大きいと判定された後であって、クリア信号によりプリセットされるまでの間となるが、事実上、アップダウンカウンタが1カウントされるまでの1周期についてのみとなるため、クロック信号は、アップダウンカウンタの1カウント分のパルス信号となる。
一方、ステップS146において、例えば、アップダウンカウンタ71のカウント値が、リミットカウント値よりも高くないと判定された場合、ステップS149において、比較部73は、出力波形生成部53、および清算部74に対してクロック信号を発生しない。このため、出力波形生成部53は、駆動信号を発生しないため、ステッピングモータM1(またはM2)は、駆動しない状態となる。
ステップS150において、動作状態保持部52は、停止すべきタイミングであるか否かを判定し、停止すべきタイミングではないと判定された場合、処理は、ステップS146に戻る。
一方、ステップS150において、停止すべきタイミングであると判定された場合、処理は、ステップS141に戻り、それ以降の処理が繰り返される。
以上の動作を纏めると以下のようになる。
すなわち、アップダウンカウンタ71の上限値が、例えば、256であり、カウントアップするものとした場合、リミットカウント値が設定されていないとき、アップダウンカウンタ71のカウント信号を示すカウント値K1は、図11の実線で示されるように、256×1/f0(f0は分周部23より供給されてくるクロック信号の周波数)の間隔で繰り返しカウント値が0乃至256での上昇を繰り返す。尚、図11においては、カウント値K1が直線状に推移するように表記されているが、厳密には、1/f0の間隔で階段状に変化するものである。
ここで、図12で示されるように、時刻t1において、カウントリミット値K2=64が設定され、時刻t2において、カウントリミット値K2=192が設定されるものとする。
この場合、時刻t1乃至t2においては、図13の上部で示されるように、アップダウンカウンタ71のカウント値K1が64に達する時刻C1,C2,・・・と、その周期においてカウント値がリミットカウント値K2を1周期分(1/f0)だけ超えた状態となるため、その間、比較部73は、図13の下部で示されるようにパルス状のクロック信号K3を発生して、出力波形生成部53に供給する。したがって、このパルス状のクロック信号からなるパルス信号は、64×1/f0の周期で繰り返し発生される幅1/f0のパルス信号になる。
また、同様に、時刻t2以降においては、図14の上部で示されるように、アップダウンカウンタ71のカウント値を示すカウント信号K1が192に達する時刻C11,C12,C13・・・・と、その周期においてカウント値がリミットカウント値を示すリミットカウント信号K2を1周期分(1/f0)だけ超えた状態となるため、その間、比較部73は、図14の下部で示されるようにパルス信号K3を発生して、出力波形生成部53に供給する。したがって、このパルス信号は、192×1/f0の周期で繰り返し発生される幅1/f0のパルス信号になる。
この結果、例えば、出力波形生成部53においては、図15で示されるように、時刻t1において、リミットカウント値が64に設定されると、時刻t101乃至t119の各64×1/f0の周期(時間間隔)で、パルス信号K3を繰り返し発生することにより、出力端子V1は、時刻t1乃至t102,t104乃至t106,t108乃至t110,t112乃至t114,t116乃至t118において、パルス波形を発生する。同様に、出力端子V2は、時刻t101乃至t103,t105乃至t107,t109乃至t111,t113乃至t115,t117乃至t119において、パルス波形を発生する。また、同様に、出力端子V3は、時刻t102乃至t104,t106乃至t108,t110乃至t112,t114乃至t116,t118乃至t2において、パルス波形を発生する。さらに、出力端子V4は、時刻t1乃至t101,時刻t103乃至t105,t107乃至t109,t111乃至t113,t115乃至t117,t119乃至t2において、パルス波形を発生する。
さらに、図15で示されるように、時刻t2において、リミットカウント値が192に設定されると、時刻t2乃至t121の各192×1/f0の周期(時間間隔)で、パルス信号K3を繰り返し発生することにより、出力端子V1は、時刻t2乃至t122,t124乃至t126,t128乃至t130において、パルス波形を発生する。同様に、出力端子V2は、時刻t121乃至t123,t125乃至t127,t129乃至t130において、パルス波形を発生する。また、同様に、出力端子V3は、時刻t122乃至t124,t126乃至t128において、パルス波形を発生する。さらに、出力端子V4は、時刻t2乃至t121,時刻t123乃至t125,t127乃至t129において、パルス波形を発生する。
このように、時刻t1乃至t2においては、時刻t2以降よりもステッピングモータが約3倍の速さで回転するように制御される。この際、開始タイミングと、そのリミットカウント値のみが制御されるのみで、回転開始タイミングと、その回転速度が制御され、これ以外の情報が特に必要とされないので、最初にその情報を供給したのみで、可動体駆動装置12が、自らで自走することとなるので、制御部11の制御負荷を極めて小さくすることが可能となる。
以上においては、分周部23より発生するクロック信号は、周波数f0のもの1種類である例について説明してきたが、例えば、図16で示されるように、分周部23’により2種類の周波数f1,f0のクロック信号を発生し、原発振選択部91により、そのいずれかのクロック信号を切り替えて利用するようにしても良い。このようにすることで、ステッピングモータM1(または、M2)の駆動パタンを変化させることが可能となる。
尚、分周部23’により発生されるクロック信号は、2種類以上であってもよい。また、原発振選択部91により、いずれのクロック信号をどのように選択的に切り替えて利用するかについてを指示する情報を動作データに含ませるようにすることで、様々なクロック信号を利用して、様々なパターンでステッピングモータM1(またはM2)を駆動させることが可能となる。
以上においては、アップダウンカウンタ71がカウントアップ、または、カウントダウンを開始して、リミットカウント値に至るまでは、同一のクロック信号に基づいて、カウントアップ、または、カウントダウンする例について説明してきたが、アップダウンカウンタ71がカウントアップ、または、カウントダウンを開始して、カウント値がリミットカウント値に至るまでの間に、クロック信号を所定の時間間隔で順次切り替えるようにしてもよい。
図17は、アップダウンカウンタ161がカウントアップ、または、カウントダウンを開始して、カウント値がリミットカウント値に至るまでの間に、クロック信号を所定の時間間隔で順次切り替えるようにした可動体駆動装置12の構成例を示している。尚、図17において、図2において示されている構成と同一の構成については、同一の符号を付しており、その説明は適宜省略するものとする。
すなわち、図17の可動体駆動装置12において、図2における可動体駆動装置12と異なるのは、分周部23、およびアップダウンカウンタ71−1,71−2に代えて、分周部151、およびアップダウンカウンタ161−1,161−2を設けた点である。
分周部151は、原発振として周波数f0,f1,・・・fnのn種類のクロック信号を発生しており、それぞれ出力制御部24−1,24−2に供給している。
アップダウンカウンタ161は、分周部151より供給されてくる、n種類の周波数f0,f1,・・・fnのクロック信号のいずれかを用いて、カウント値をカウントアップ、または、カウントダウンするカウンタであり、カウント値に対応するカウント信号を比較部73に供給する。
アップダウンカウンタ161−1,161−2は、それぞれカウント部171−1,171−2、切替カウンタ制御部172−1,172−2、レートカウンタ制御部173−1,173−2、分周切替部174−1,174−2、および曲率設定部175−1,175−2を備えている。
分周切替部174は、所定のタイミングで、レートカウンタ制御部173により制御されるレートカウンタMにより予め設定されているカウントレート(変化率:単位時間当たりのカウント数)により、周波数f0,f1,・・・fnのいずれかのクロック信号に切り替えて、カウント部171に供給する。
カウント部171は、分周切替部174により切り替えられたクロック信号に同期してカウント値をカウントし、比較部73に出力する。切替カウンタ制御部172は、カウントレートを切り替えるタイミングを示す切替カウンタCを、分周切替部174により切り替えられたクロック信号に同期してカウントし、レートカウンタMに対応する切替カウント値となったとき、そのタイミングとなったことをレートカウンタ制御部173および分周切替部174に通知する。
レートカウンタ制御部173は、切替カウンタ制御部172より切替カウンタCが切替カウント値となったことが通知されると、そのタイミングでレートカウンタMを1インクリメントする。
分周切替部174は、切替カウンタ制御部172より切替カウンタCが切替カウント値となったことが通知されると、そのタイミングでレートカウンタMに対応するカウントレートに対応する周波数fnのクロック信号に切り替える。
曲率設定部175は、予めレートカウンタMごとに、設定された切替カウント値を記憶し、カウントレートを識別するレートカウンタMに対応する切替カウント値を切替カウンタ制御部172に供給する。このレートカウンタM毎に設定されるカウントレートと、対応する切替カウント値に基づいて、分周部151により分周される異なる周波数のクロック信号に切り替えられる期間が設定され、アップダウンカウンタ161のカウント値のカウント速度が、時間に対して、擬似曲線的に変化されると共に、擬似曲線の曲率が設定される。尚、ここでは、レートカウンタMが大きくなるにつれて、カウントレートが小さくなるものとする。すなわち、アップダウンカウンタ161は、レートカウンタMが小さいほど、周波数の高いクロック信号によりカウントアップ、または、カウントダウンされるので、高速でカウントアップ、または、カウントダウンされ、レートカウンタMが大きいほど、周波数の低いクロック信号によりカウントアップ、または、カウントダウンされるので、低速でカウントアップ、または、カウントダウンされる。
次に、図18のフローチャートを参照して、アップダウンカウンタカウント処理について説明する。
ステップS161において、アップダウンカウンタ161のカウント部171は、カウンタを0にリセットする。
ステップS162において、レートカウンタ制御部173は、レートカウンタMを1に初期化する。
ステップS163において、切替カウンタ制御部172は、カウントレートを切り替える切替カウンタCを0にリセットする。
ステップS164において、分周切替部174は、曲率設定部175に予めレートカウンタMに対応して設定されているカウントレートで、分周部151から供給されてくる、周波数f0,f1,・・・fnのいずれかを、カウント部171でカウントするためのクロック信号として選択する。例えば、カウント値が小さい時には急峻に変化し、カウント値が大きくなるにつれて緩やかに変化するように曲率を設定する場合、最初の処理のとき、最もレートカウンタMが小さいので、最も高速の周波数のクロック信号を選択することが指示される。
ステップS165において、カウント部171は、分周切替部174により選択された周波数のクロック信号に同期してアップダウンカウンタをカウントし(1インクリメントし)、比較部73に供給する。
ステップS166において、切替カウンタ制御部172は、分周切替部174により選択された周波数のクロック信号に同期して、切替カウンタCをカウントする(1インクリメントする)。
ステップS167において、カウント部171は、クリア信号が清算部74より供給されてきたか否かを判定する。ステップS167において、例えば、クリア信号が供給されてきた場合、処理は、ステップS161に戻る。すなわち、この処理により、アップダウンカウンタ161のカウント値が0にリセットされて同様の処理が繰り返される。
一方、ステップS167において、クリア信号が供給されてこない場合、ステップS168において、切替カウンタ制御部172は、切替カウンタCが、曲率設定部175に予め設定されているレートカウンタM毎に設定されている所定値である切替カウント値となったか否かを判定する。例えば、切替カウンタCが、曲率設定部175に予め設定されているレートカウンタM毎に設定されている切替カウント値となっていない場合、処理は、ステップS164に戻る。すなわち、ステップS168において、切替カウンタCが、曲率設定部175に予め設定されているレートカウンタM毎に設定されているの切替カウント値となるまで、クリア信号が供給されてこない限り、ステップS164乃至S168の処理が繰り返されて、レートカウンタMに対応する周波数のクロック信号に同期したカウントレートでアップダウンカウンタ、および切替カウンタCが順次、1インクリメントされていく。
そして、ステップS168において、切替カウンタCが、曲率設定部175にレートカウンタM毎に予め設定されている切替カウント値であると判定された場合、ステップS169において、カウント部171は、カウントされた値が最大値であるか否かを判定し、最大値ではない場合、処理は、ステップS170に進む。
ステップS170において、レートカウンタ制御部173は、レートカウンタMを1インクリメントし、処理は、ステップS163に戻る。
すなわち、レートカウンタMが1インクリメントされると、再び、処理は、ステップS163に戻り、切替カウンタ制御部172が切替カウンタCを0にリセットし、分周切替部74が、新たに設定されたレートカウンタMに対応するカウントレートに対応するクロック信号に基づいて、アップダウンカウンタ161のカウント値がカウント部171によりカウントされると共に、切替カウンタCがカウントされる。
以上の処理により、例えば、図19の時刻taのタイミングで、アップダウンカウンタ161のカウントが開始され、レートカウンタM=1に対応するカウントレートのクロック周波数のクロック信号でカウントする周波数のクロック信号が分周切替部174により選択されると、曲率設定部175にレートカウンタM=1に対応して設定されている、所定の切替カウント値である切替カウンタC1までステップS164乃至S168の処理が繰り返されて、レートカウンタM=1に対応するカウントレートでアップダウンカウンタ161がカウントされる。このとき、図中の時刻ta乃至tbにおける一点鎖線M1で示されるように、直線状にアップダウンカウンタ161のカウント値が変化する(図中では直線であるが、詳細には、その値は階段状に変化している)。そして、図19の時刻tbのタイミングで示されるように、ステップS168において、切替カウンタCが切替カウンタC1となり、切替カウント値となったものとみなされると、ステップS169において最大値ではないとみなされるとき、ステップS170において、レートカウンタMが1インクリメントされて、レートカウンタM=2とされる。
そして、レートカウンタM=2に対応して設定されている、所定の切替カウント値である切替カウンタC2までステップS164乃至S168が繰り返されて、レートカウンタM=2に対応するカウントレートのクロック周波数のクロック信号でアップダウンカウンタ161のカウント値がカウントされる。このとき、図19の時刻tb乃至tcにおける一点鎖線M2で示されるように、時刻ta乃至tbにおけるときよりも緩やかな直線状にアップダウンカウンタ161のカウント値が変化する。ここで、図19の時刻tcのタイミングで示されるように、ステップS168において、切替カウンタCが切替カウンタC2となり切替カウント値となったものとみなされると、ステップS169において最大値ではないとみなされて、ステップS170において、レートカウンタMが1インクリメントされて、レートカウンタM=3とされる。
さらに、レートカウンタM=3に対応して設定されている、所定の切替カウント値である切替カウンタC3までステップS164乃至S168が繰り返されて、レートカウンタM=3に対応するカウントレートのクロック周波数のクロック信号でアップダウンカウンタ161のカウント値がカウントされる。このとき、図19の時刻tc乃至tdにおける一点鎖線M3で示されるように、時刻tb乃至tcにおけるときよりも緩やかな直線状にアップダウンカウンタの値が変化する。ここで、図19の時刻tdのタイミングで示されるように、ステップS168において、切替カウンタCが切替カウンタC3となり、切替カウント値となったものとみなされると、ステップS169において最大値ではないとみなされ、ステップS170において、レートカウンタMが1インクリメントされて、レートカウンタM=4とされる。
また、再び、レートカウンタM=4に対応して設定されている、所定の切替カウント値である切替カウンタC4までステップS164乃至S168が繰り返されて、レートカウンタM=4に対応するカウントレートのクロック周波数のクロック信号でアップダウンカウンタ161のカウント値がカウントされる。このとき、図19の時刻td乃至teにおける一点鎖線M4で示されるように、時刻tc乃至tdにおけるときよりも緩やかな直線状にアップダウンカウンタ161のカウント値が変化する。ここで、図19の時刻teタイミングで示されるように、ステップS168において、切替カウンタCが切替カウンタC4となり、切替カウント値となったものとみなされると、さらに、ステップS169において最大値であるとみなされる(図19においては、最大値は256カウント)か、または、ステップS167において、クリア信号が供給されると、処理がステップS161に戻り、同様の処理が繰り返される。
この処理により、例えば、時刻ta乃至teまでの時間が1msであるものとすれば、図19で示される擬似曲線(複数の区間ごとに異なるカウントレートとして設定された一次関数からなる傾きの異なる直線が連続して接続されることにより形成される擬似的な曲線)が連続して配置されることにより、図19の実線で示されるような曲線に類似した波形を生成することが可能となる。
このように、予め曲率設定部175にレートカウンタMに対応付けて記憶されている、カウントレートに対応するクロック周波数のクロック信号と、そのカウントレートでカウントされるべき期間を示す切替カウント値とにより、アップダウンカウンタ161のカウント値の変化を示す擬似曲線の曲率が設定される。尚、図19においては、実線で示される曲線に対して、4本の直線により擬似曲線を実現させる例について説明してきたが、より多くの1次関数として示される直線を連結するように用いて、切り替えるようにしてもよく、直線数を増やすようにすることで、より曲線に類似した擬似曲線を実現することが可能となる。
以上のような制御により、ステッピングモータのPPS(Pulse Par Second)制御を実現することが可能となる。PPS制御とは、1秒間に発生するパルス数により、位相の進度を制御するものである。そこで、一般に、カウンタ(アップダウンカウンタ161に相当するもの)によりPPS制御を行う場合、カウンタのカウント値=1(最小値)において、1000PPS(1.000ms/パルス)が最高速であるものとし(1秒間に1000パルスが発生する状態を最高速であるものとし)、カウント値が最大値であるとき4PPSで最低速度であるものとすると以下のようになる。
すなわち、カウンタのカウント値=1の場合、1000PPS(1.000ms/パルス)となり、カウント値=2の場合、996PPS(1.004ms/パルス)となり、カウント値=3の場合、992PPS(1.008ms/パルス)となり、カウント値=4の場合、988PPS(1.012ms/パルス)となり、・・・カウント値=254の場合、12PPS(83.3ms/パルス)となり、カウント値=255の場合、8PPS(125ms/パルス)となり、そして、カウント値=256の場合、4PPS(最低速)(250ms/パルス)となる。
以上の関係を纏めると、カウンタのカウント値と、各PPSのパルス周期は、逆数に比例した関係、すなわち、反比例の関係となる。このため、PPS制御に用いる場合、アップダウンカウンタ161では、擬似曲線での切替が実行されるため、図11の上部で示されるような三角鋸波ではなく、図20で示されるように、上に凸の略双曲線状の曲線となる。
尚、図20においては、カウントスイング幅は32768ステップ(アップダウンカウンタ1乃至256に対して、0乃至32768ステップとなる)であって、上昇時間が250msで1周期となり、カウントクリアする動作が表現されている。
これに伴い、分周部151で発生される原発振の周波数は1乃至2MHz近傍のクロック信号が使用される。また、カウントアップの初期段階(図20においては、0乃至128ステップ)における、約1msの期間はアップダウンカウンタ161のカウント値は0のままとされ、以降、設定値1,2,・・・と増加するに従い、パルス周期が4μsずつ増加し、1ms、1.004ms、1.008msと増加する。
やがて、カウントクロック周波数が順次低速方向に切替り、設定値256で250msとなり、このような波形が、図11の上部で示される鋸波状の波形と同様に繰り返される。
結果として、より滑らかにステッピングモータの回転を制御することが可能となる。また、同一のクロック信号を共用化して複数の出力制御部24で使用することで、複数のステッピングモータを同期しながら、滑らかに回転を制御することが可能となる。
以上においては、比較部73が、アップダウンカウンタのカウント値と、リミットカウント値との比較によりパルス信号を発生するクロック信号生成部51の例について説明してきたが、例えば、リミットカウント値を、アップダウンカウンタの周波数よりも低い周波数で変化させるようにしてもよい。
図21のクロック信号生成部51は、リミットカウント値を、アップダウンカウンタの周波数よりも低い周波数で変化させながら発生させるようにしたクロック信号生成部51の構成例を示している。尚、図21のクロック信号生成部51において、図3のクロック信号生成部51と同一の構成については、同一の符号を付しており、その説明は適宜省略するものとする。すなわち、図21のクロック信号生成部51において、図3のクロック信号生成部51と異なる点は、分周部23、アップダウンカウンタ71、およびリミットカウンタ72に代えて、分周部191、高周波アップダウンカウンタ203、低周波アップダウンカウンタ202、および周波数選択部201を備えた点である。
高周波アップダウンカウンタ203は、アップダウンカウンタ71と同一のものであり、分周部191より供給されてくる高い周波数である周波数f0のクロック信号に対応してカウンタのカウント値をアップ、または、ダウンさせて、対応するカウント信号K1を比較部73に供給する。尚、高周波アップダウンカウンタ203は、図21において、低周波アップダウンカウンタ202との発生するクロック信号の周波数を区別するため、「高周波」と名称に付されているのみであって、実質的に同一のものである。
低周波アップダウンカウンタ202は、リミットカウント生成部72におけるリミット値を、高周波の周波数f0と比較して、分周部191により発生される比較的低周波の周波数f1,f2,f3のいずれか周波数選択部201により選択されたクロック信号に同期して、カウンタのカウント値をアップ、またはダウンさせて、リミット信号により規定されるリミットカウント値までカウントし、リミットカウント値に達すると、その値を維持すると共に、対応するカウント信号K2を比較部73に供給する。
尚、図21のクロック信号生成部51における動作については、図3におけるクロック信号生成部51における動作と同様であるので、その説明は、省略するものとする。
ただし、図21のクロック信号生成部51においては、リミットカウント値が周波数の低い周波数のクロック信号により変化するため、例えば、図22の上部における点線で示されるように低周波アップダウンカウンタ202により、時刻t203乃至t206のタイミングでリミットカウント値が上昇するように設定すると、時刻t201乃至t202、および時刻t202乃至t203におけるパルス信号が発生される周期よりも、時刻t203乃至t204、時刻t204乃至t205、および時刻t205乃至t206において、それぞれ周期が徐々に延びることになり、ステッピングモータM1またはM2の回転速度は、時間の経過に伴って逐次低下することになり、再び低周波アップダウンカウンタ202から出力されるカウント値がリミットカウント値に到達して、その値が維持されて一定にされると、時刻t206乃至t207の間隔が維持された状態でパルス信号が発生される。
このように、リミットカウント値を、アップダウンカウンタの周波数よりも低い周波数で変化させることにより、パルス信号の発生間隔(パルス信号による駆動信号の発生周期)を徐々に変化させることが可能となる。
結果として、ステッピングモータの動作速度を、徐々に変化させながら制御することが可能となる。また、この速度変化は周波数選択部201により選択されるクロック信号の周波数により変化させることが可能であるので、指令データによりいずれのクロック信号を選択するのか指示するのみで、変化速度を切り替えることが可能となる。
以上においては、駆動システムにおいて、複数の可動体を駆動させる例について説明してきたが、例えば、駆動させる対象は、可動体のみならず、例えば、図23で示されるように、発光ダイオードなどを駆動させる装置を組み合わせた駆動装置であってもよい。
図23の駆動システムにおいては、可動体駆動装置12に加えて、LED駆動装置251が設けられている。LED駆動装置251は、発光ダイオードLED1乃至LED6の発光を制御している。可動体の駆動に際しては、CPU11よりデバイスデータ、およびアドレスデータを付した指令データが供給されることにより、いずれのステッピングモータをどのような速度で回転させるかが指示されているが、デバイスデータとしてLED駆動装置251が識別可能なデータが含まれていれば、自らへの指令データであることは認識ができ、さらに、ステッピングモータへの回転を制御するにあたっては、各パルスの発生間隔により回転速度が制御されていたが、発光ダイオードなどについても、同様にそれぞれに電圧印加する頻度を指示すれば明るさを制御することができるので、同様の指令データにより発光を制御することができる。
また、発光ダイオードのみならず、ソレノイドや、音声を発生させる音声発生装置などについても、同様のパルス信号の発生頻度を切り替えることで同様に制御することが可能である。
以上の処理により、CPU11から一旦指令データを受けるのみで、自発的に高度な動作を制御できるようにしたので、CPU11の指令データの通信頻度や判断処理を低減させることが可能となり、CPU11の処理負荷を低減させることが可能となる。
また、モータ、ソレノイド、発光ダイオードの発光、および音声の発生などの駆動源の動作形式は、出力設定を予め変えるようにすることで様々なパターンで動作させることが可能となる。
本発明によれば、複数の駆動源をより高度で、かつ複雑に動作させるように制御するにあたり、配線数を削減し、上位の制御装置による処理の負担を軽減することが可能となる。
ところで、上述した一連の監視処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図24は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。