(57)【要約】【課題】開発工数と開発時間の短縮が可能で低コストの汎用コントローラの提供である。【解決手段】上記した目的を達成するため、本発明の汎用コントローラＣは、入力ユニット１と、制御ユニット２と、演算処理部５に外部信号の取り込みと駆動回路３を制御させる規格化された入出力制御プログラムと制御指令を求めさせる制御指令生成プログラムとを記録した記憶部６とを備えて構成される。このように汎用コントローラＣが構成されるので、ソフトウェア開発者は、汎用コントローラＣの制御対象機器への適用に当たり、制御指令生成プログラムのみを設計およびプログラミングを行えばよくなる。【選択図】図１
2017111480.tif 000002
【特許請求の範囲】
【請求項１】
外部信号を受信する入力ユニットと、
制御対象機器へ電流を供給する駆動回路を有する制御ユニットと、
前記制御ユニットを制御する演算処理部と、
前記演算処理部に前記外部信号の取り込みと制御指令に従って前記駆動回路を制御させる規格化された入出力制御プログラムと、前記演算処理部に前記外部信号から前記制御指令を求めさせる制御指令生成プログラムとを記録した記憶部とを備えた、
ことを特徴とする汎用コントローラ。
【請求項２】
前記記憶部は、前記制御指令生成プログラムを書き換え可能に記憶する
ことを特徴とする請求項１に記載の汎用コントローラ。
【請求項３】
前記入力ユニットは、複数の入力チャンネルを有し、
前記入出力制御プログラムの設定で、入力チャンネル毎に外部信号の取り込みの有効と無効を選択的な切換えが可能である
ことを特徴とする請求項１または２に記載の汎用コントローラ。
【請求項４】
前記制御ユニットは、複数の駆動回路を有し、
前記入出力制御プログラムの設定で、駆動回路毎に前記駆動回路の有効と無効の選択的な切換えが可能である
ことを特徴とする請求項１から３のいずれか一項に記載の汎用コントローラ。
【請求項５】
前記制御ユニットは、前記制御対象機器からの機器信号を受信する受信部を有し、
前記入出力制御プログラムは、前記演算処理部に前記制御指令と前記機器信号に基づいて前記駆動回路を制御させる
ことを特徴とする請求項１から４のいずれか一項に記載の汎用コントローラ。
【請求項６】
前記制御ユニットは、異なる種類の複数の駆動回路を有する
ことを特徴とする請求項１から５のいずれか一項に記載の汎用コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用コントローラに関する。
【背景技術】
【０００２】
ソレノイドやモータを備えた制御対象機器を制御するには、ソレノイドやモータを駆動する駆動回路と、駆動回路に制御指令を与える制御部とを備えたコントローラが必要である。このようなコントローラは、一般的には、ソレノイドやモータに流れる電流をフィードバックして駆動回路を制御するようになっているが、制御対象機器特有の制御則に則ってソレノイドやモータへ電流供給する必要がある（たとえば、特許文献１参照）。
【０００３】
具体的には、特許文献１に開示されたコントローラは、制御対象機器がハイブリッド建設機械の油圧シリンダへ作動油を供給するポンプを駆動するモータジェネレータとされており、ポンプの吐出圧を検知してモータジェネレータへ供給する電流を制御している。
【０００４】
このように特許文献１に開示されたコントローラでは、圧力センサから入力される信号を処理して、制御指令を生成し、駆動回路モータジェネレータへ供給する電流を制御するようになっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１７７８３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これに対して、制御対象機器が自動車の車体と車軸との間に搭載される緩衝器に使用されるソレノイドバルブであり、このソレノイドバルブの制御によって緩衝器の減衰力を調節する場合を考える。カルノップ制御則に則って車体の振動を抑制する場合、コントローラは、車体の絶対速度と緩衝器の伸縮速度の両情報からソレノイドバルブにおけるソレノイドへ与える電流を制御するための制御指令を生成してソレノイドバルブを制御する。
【０００７】
このように、制御対象機器が利用される装置によって、制御対象機器を制御する制御指令を生成するために必要な情報が異なり、また、装置に使用される制御対象機器数が装置によって区々である。よって、コントローラは装置に適するようにハードウェアおよびソフトウェアの両面でカスタマイズされる。
【０００８】
従来のコントローラにあっても、制御部が参照する圧力に設定される閾値といった参照値を記憶する記憶部を備えており、参照値のみの書換えによって、ハイブリッド建設機械の操作性や応答性を向上するようにチューニングできる。
【０００９】
しかしながら、従来のコントローラの構成では、制御対象機器が利用される装置が異なる場合や装置自体は同様でも制御対象機器数が異なる場合には、対応できず、ハードウェアおよびソフトウェアの両面でコントローラの設計変更が強いられる。よって、コントローラの開発に開発工数と時間がかかり、その分、開発にコストがかかっていた。
【００１０】
そこで、本発明は上記問題を解決するために創案されたものであって、その目的とするところは、開発工数と開発時間の短縮が可能で低コストの汎用コントローラの提供である。
【課題を解決するための手段】
【００１１】
本発明の汎用コントローラは、入力ユニットと、制御ユニットと、演算処理部に外部信号の取り込みと駆動回路を制御させる規格化された入出力制御プログラムと制御指令を求めさせる制御指令生成プログラムとを記録した記憶部とを備えて構成される。このように汎用コントローラが構成されるので、ソフトウェア開発者は、汎用コントローラの制御対象機器への適用に当たり、制御指令生成プログラムのみを設計およびプログラミングを行えばよい。ソフトウェアの適用時において動作に問題が生じた場合の問題の所在が入出力制御プログラムの設定値にあるのか制御指令生成プログラムにあるのかすぐに判明するので、デバックに要する時間も短縮される。
【００１２】
また、請求項２の汎用コントローラでは、記憶部は、制御指令生成プログラムを書き換え可能に記憶する。よって、記憶部の交換の必要がなく、制御指令生成プログラムを実装できので、汎用コントローラを別の制御対象機器への適用も可能となる。
【００１３】
さらに、請求項３の汎用コントローラでは、入力ユニットが複数の入力チャンネルを有し、入出力制御プログラムの設定で、入力チャンネル毎に外部信号の取り込みの有効と無効の選択的な切換えが可能である。このように汎用コントローラが構成されると、複数の外部信号の入力が可能となり、汎用コントローラの汎用性が向上する。
【００１４】
また、請求項４の汎用コントローラでは、制御ユニットが複数の駆動回路を有し、入出力制御プログラムの設定で、駆動回路毎に有効と無効の選択的な切換えが可能である。このように汎用コントローラが構成されると、複数の制御対象機器への電流出力が可能となり、汎用コントローラの汎用性が向上する。
【００１５】
そして、さらに請求項５の汎用コントローラでは、制御ユニットが制御対象機器からの機器信号を受信する受信部を有し、入出力制御プログラムが演算処理部に制御指令と機器信号に基づいて駆動回路を制御させるように構成される。このように構成された汎用コントローラでは、制御指令生成プログラムには、駆動回路３の電流フィードバック制御が含まれず、制御指令生成プログラムの開発がより一層簡単になる。
【００１６】
また、請求項６の汎用コントローラのように、制御ユニット２が異なる種類の制御対象機器に対応可能なように、異なる種類の複数の駆動回路３を備えていてもよい。このように汎用コントローラが構成されると、適用可能な制御対象機器の種類が多くなるので、汎用コントローラの汎用性が向上する。
【発明の効果】
【００１７】
よって、本発明の汎用コントローラによれば、ソフトウェア開発者の開発工数と開発時間の短縮が可能となり、その結果、汎用コントローラのコストも低コストとなる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態における汎用コントローラの構成図である。
【図２】制御対象機器が適用されたソレノイドバルブを備えた緩衝器の概略図である。
【図３】入力ユニットの詳細構成図である。
【図４】制御ユニットの詳細構成図である。
【図５】汎用コントローラの動作手順を示すフローチャートである。
【図６】ソフトウェア開発作業を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の実施の形態を図に基づき説明する。一実施の形態における汎用コントローラＣは、図１、図３および図４に示すように、外部からの外部信号を受信する入力ユニット１と、制御対象機器へ電流を供給する駆動回路３と制御対象機器からの機器信号を受信する受信部４とを有する制御ユニット２と、入力ユニット１と制御ユニット２を制御する演算処理部５と、記憶部６とを備えて構成されている。
【００２０】
以下、汎用コントローラＣの各部について詳細に説明する。汎用コントローラＣは、本例では、図２に示すように、車両の車体と車軸との間に介装されて車体の振動を抑制する緩衝器Ｄに設けたソレノイドバルブを駆動するソレノイドＳｏｌを制御対象機器として制御するようになっている。
【００２１】
よって、本例では、汎用コントローラＣでソレノイドＳｏｌへ供給する電流を変化させて、ソレノイドバルブＶの弁開度を調節するようになっている。そして、汎用コントローラＣによるソレノイドバルブＶの弁開度の調節により、緩衝器が発生する減衰力を高低調節できる。
【００２２】
緩衝器Ｄは、たとえば、作動液体が充填されるシリンダ１０と、シリンダ１０内に移動自在に挿入されたロッド１１と、ロッド１１に連結されるとともにシリンダ１０内に移動自在に挿入されてシリンダ１０内を伸側室Ｒ１と圧側室Ｒ２とに区画するピストン１２と、伸側室Ｒ１と圧側室Ｒ２を連通する通路１３と、通路１３の途中に設けたソレノイドバルブＶと、リザーバＲとを備えている。この緩衝器Ｄでは、伸縮するとシリンダ１０内から通路１３を介して作動液体が排出され、この作動液体の流れにソレノイドバルブＶで抵抗を与えて減衰力を発揮するようになっている。そして、ソレノイドバルブＶにおけるソレノイドＳｏｌへ与える電流に応じてソレノイドバルブＶが作動液体に与える抵抗を可変にでき、緩衝器Ｄが発生する減衰力を高低調節可能となっている。
【００２３】
そして、本例では、汎用コントローラＣは、車両における車体の上下方向の加速度情報の入力と、緩衝器Ｄの伸縮速度上方の入力を受けて、緩衝器Ｄに車体の振動を抑制する減衰力を発揮させるべく、制御指令を生成する。そして、汎用コントローラＣは、制御指令に基づいて駆動回路３からソレノイドバルブＶのソレノイドＳｏｌを駆動するための電流を出力するようになっている。このように、汎用コントローラＣは、ソレノイドＳｏｌへ供給する電流の制御によって緩衝器Ｄの減衰力を制御できる。具体的には、汎用コントローラＣは、カルノップ制御則に則って緩衝器Ｄの減衰力を制御するため、入力ユニット１は、車両の車体の上下加速度を検出する加速度センサ１５と緩衝器Ｄの伸縮変位を検出するストロークセンサ１６とに接続される。また、汎用コントローラＣの駆動回路３はソレノイドＳｏｌに、受信部４は、ソレノイドＳｏｌに流れる電流量を検出する電流センサ８に接続されている。
【００２４】
また、本例では、汎用コントローラＣは、一つの基板Ｂ上に、入力ユニット１、駆動回路３と受信部４とを有する制御ユニット２、演算処理部５および記憶部６が設けられていて、基板Ｂに一体化されたハードウェアとして構成されている。なお、入力ユニット１、駆動回路３と受信部４とを有する制御ユニット２、演算処理部５および記憶部６は、有線或いは無線により通信可能であればよいので、これらの一部或いは全部が一体化されていなくともよい。
【００２５】
入力ユニット１は、図３に示すように、６個の端子７１，７２・・・７６と、アナログ入力回路７７と、デジタル入力回路７８と、Ｆ／Ｖ変換回路７９とを備えている。端子７１，７２，７３は、センサや外部制御装置等の外部機器に接続可能であって、外部機器から入力されるアナログの外部信号をそれぞれ対応するアナログ入力回路７７へ入力する。アナログ入力回路７７は、本例では、演算処理部５に接続されており、それぞれ対応する端子７１，７２，７３から入力される外部信号をアナログ信号からデジタル信号へ変換して演算処理部５に入力する三つのアナログ信号処理部７７ａ，７７ｂ，７７ｃを備えている。アナログ信号処理部７７ａ，７７ｂ，７７ｃは、信号を処理するＩＣと受動部品等から回路であり、同一構成とされている。そして、端子７１，７２，７３とアナログ入力回路７７における三つのアナログ信号処理部７７ａ，７７ｂ，７７ｃとで三つのアナログ入力に対応可能な入力チャンネルＣｈ１，Ｃｈ２，Ｃｈ３を構成している。
【００２６】
端子７４，７５は、センサや外部制御装置等の外部機器に接続可能であって、外部機器から入力されるデジタルの外部信号をそれぞれ対応するデジタル入力回路７８へ入力する。デジタル入力回路７８は、本例では、演算処理部５に接続されており、それぞれ対応する端子７４，７５から入力されるデジタルの外部信号を演算処理部５に適したデジタル信号へ変換して演算処理部５に入力する二つのデジタル信号処理部７８ａ，７８ｂを備えている。デジタル信号処理部７８ａ，７８ｂは、信号を処理するＩＣと受動部品等から回路であり、同一構成とされている。そして、端子７４，７５とデジタル入力回路７８における二つのデジタル信号処理部７８ａ，７８ｂとで二つのデジタル入力に対応可能な入力チャンネルＣｈ４，Ｃｈ５を構成している。
【００２７】
端子７６は、センサや外部制御装置等の外部機器に接続可能であって、外部機器から入力されるパルス信号でなる外部信号をＦ／Ｖ変換回路７９へ入力する。Ｆ／Ｖ変換回路７９は、演算処理部５に接続されており、端子７６から入力されるパルス信号でなる外部信号を演算処理部５に適したデジタル信号へ変換して演算処理部５に入力する。そして、端子７６と対応するＦ／Ｖ変換回路７９でパルス入力に対応可能な入力チャンネルＣｈ６を構成している。
【００２８】
入力ユニット１は、これら端子７１，７２・・・７６、アナログ入力回路７７、デジタル入力回路７８およびＦ／Ｖ変換回路７９を備え、３チャンネルのアナログ入力と、２チャンネルのデジタル入力と、１チャンネルのパルス入力が可能である。なお、入力ユニット１に設けられる端子は１以上であればよく、アナログ入力回路、デジタル入力回路およびＦ／Ｖ変換回路の設置数とこれらの設置割合は任意に決定できる。よって、たとえば、この汎用コントローラＣの利用形態により、外部信号がアナログ信号のみである場合には、端子とアナログ入力回路のみで構成されてもよい。汎用性を考えると、端子の設置数は、２以上とし、アナログ入力回路、デジタル入力回路およびＦ／Ｖ変換回路をそれぞれ一つ以上備えているとよい。また、図示はしないが、入力ユニット１は、ＣＡＮ通信を可能とするための端子とＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信回路とを備えていてもよく、このような端子とＣＡＮ通信回路についても設置数を任意に決定できる。汎用性を考えると、ＣＡＮ通信を可能とするための端子とＣＡＮ通信回路の設置しておくとよい。
【００２９】
制御ユニット２は、図４に示すように、複数の駆動回路３と、各駆動回路３に対となるように設けられた複数の受信部４とを備えている。駆動回路３は、本例では、四つ設けられている。駆動回路３は、制御対象機器がソレノイドＳｏｌであるので、ソレノイドＳｏｌへ供給する電流を制御できるよう、ソレノイドＳｏｌへの通電をオンオフするスイッチング素子と、スイッチング素子の開閉する制御するＰＷＭ駆動部とで構成されている。したがって、本例では、制御ユニット２は、四つの駆動回路３と出力端子９を備えていて、これらで電流を出力する四つの出力チャンネルを構成している。また、本例では、制御ユニット２は、制御対象機器であるソレノイドＳｏｌの電流をフィードバック制御するため、機器信号としてソレノイドＳｏｌに流れる電流量の情報を受信部４で受信するようになっている。
【００３０】
具体的には、受信部４は、制御対象機器側に設けられてソレノイドＳｏｌに流れる電流量を検出する電流センサ８に接続されており、電流センサ８から出力される機器信号を受信して、演算処理部５へ入力するようになっている。受信部４は、アナログ入力回路を備えていて、電流センサ８が出力するアナログの機器信号を演算処理部５に適したデジタル信号に変換して演算処理部５へ入力する。
【００３１】
演算処理部５は、後述する制御指令とソレノイドＳｏｌに流れる電流との偏差を求め、偏差に応じてＰＷＭ駆動部へ電流指令を与えるようになっている。そして、電流指令が与えられた駆動回路３がソレノイドＳｏｌへ電流を電流指令通りに供給する。
【００３２】
演算処理部５は、記憶部６に記憶された入出力制御プログラムと制御指令生成プログラムとを実行して、入力ユニット１で受信する外部信号から制御信号を生成し、制御ユニット２からソレノイドＳｏｌへ電流を供給する。
【００３３】
記憶部６は、入出力制御プログラムと制御指令生成プログラムを記憶している。この記憶部６に記憶された入出力制御プログラムと制御指令生成プログラムは、書き換えて記憶部６に記憶させ得る。入出力制御プログラムは、規格化されており、汎用コントローラＣに入力される外部信号、機器信号の演算処理部５への取り込みと駆動回路３の出力を制御するためのプログラムである。他方、制御指令生成プログラムは、演算処理部５で取り込んだ外部信号を処理して制御指令を生成するためのプログラムである。また、入出力プログラムは、制御指令生成プログラムで司る制御指令の生成以外に汎用コントローラＣとして動作するのに不可欠な命令群も含んで構成されている。本例では、入出力プログラムと制御指令生成プログラムとで一つのソフトウェアを構成しており、入出力プログラムはメインルーチンを構成し、制御指令生成プログラムは、入出力プログラムによって呼び出されるサブルーチンを構成している。
【００３４】
演算処理部５と記憶部６は、詳しく図示はしないが、たとえば、演算処理とプログラムの記憶が可能なメモリを搭載したＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とされており、入出力制御プログラムと制御指令生成プログラムとを実行する。
【００３５】
入出力制御プログラムは、規格化されていて、演算処理部５がこのプログラムを実行すると、入力ユニット１の外部信号および受信部４の機器信号の取り込みと、制御ユニット２の制御を行うようになっている。
【００３６】
具体的には、演算処理部５は、入出力制御プログラムを実行すると、入力ユニット１の制御に関し、前記した各チャンネルのうち有効とされたチャンネルからの外部信号を前記プログラムによって指定されるサンプリング周期で取り込む。また、入出力制御プログラムは、入力チャンネルＣｈ１，Ｃｈ２・・・Ｃｈ６毎に外部信号の取り込みの有効・無効の設定と、有効なチャンネルからの信号の取り込みタイミング、サンプリング周期といった取り込み手順をプログラム内の設定値で設定でき、容易に変更できるようになっている。
【００３７】
さらに、演算処理部５は、入出力制御プログラムを実行すると、制御ユニット２の制御に関し、受信部４で機器信号を受信し把握したソレノイドＳｏｌの電流量と制御指令との偏差から電流指令を生成し、電流指令を駆動回路３へ入力するようになっている。演算処理部５は、たとえば、ソレノイドＳｏｌの電流量と制御指令との偏差から電流指令を生成する場合、偏差を比例積分補償や比例微分積分補償して電流指令を生成する。入出力制御プログラムは、演算処理部５に偏差の前記した比例積分補償や比例微分積分補償に加えて、生成した電流指令を補正して最終的な電流指令を生成させるようになっていてもよい。
【００３８】
また、入出力制御プログラムは、複数対の駆動回路３と受信部４のうち、各対の制御を有効とするか無効とするかの設定と、制御周期をプログラム内の設定値の変更によって容易に変更できるようになっている。
【００３９】
このように、入出力制御プログラムは、規格化されており、演算処理部５は、このプログラムを実行すると、入力ユニット１と制御ユニット２の入出力に関する制御を行えるようになっている。また、入出力制御プログラムにおける設定値の変更により、入力ユニット１の各入力チャンネルの有効・無効の切換え、制御ユニット２の各駆動回路３の制御の有効・無効の切換え、制御周期の設定を行えるようになっている。なお、設定値は、記憶部６の設定値格納用のあらかじめ定められたアドレスに記憶される。よって、演算処理部５は、入出力制御プログラムの実行に伴って、前記の設定値を参照して、有効な入力チャンネルと駆動回路を把握して、入力ユニット１と制御ユニット２を制御する。
【００４０】
前述のように、本例では、汎用コントローラＣは、制御対象機器を緩衝器ＤのソレノイドバルブＶのソレノイドＳｏｌとして、ソレノイドＳｏｌの電流の制御により、緩衝器Ｄが発生する減衰力を制御する。そして、緩衝器Ｄの減衰力の制御に際し、カルノップ制御則に則って緩衝器Ｄの減衰力を制御するため、入力ユニット１は、車体の上下加速度を検出する加速度センサ１５と緩衝器Ｄの伸縮変位を検出するストロークセンサ１６とに接続されている。このように、本例では、外部機器は、加速度センサ１５とストロークセンサ１６の二つのアナログの外部信号を出力するセンサとされているので、端子７１，７２に接続されるアナログ入力回路７７からの外部信号の入力のみを受信すれば足りる。つまり、演算処理部５は、チャンネルＣｈ１，Ｃｈ２から入力される外部信号のみを取り込めばよい。よって、本例では、入出力制御プログラムの設定値を、入力チャンネルＣｈ１，Ｃｈ２の端子７１，７２から入力される外部信号を有効とするよう設定し、他の入力チャンネルＣｈ３，Ｃｈ４，Ｃｈ５，Ｃｈ６については無効とするよう設定する。すると、演算処理部５は、入出力制御プログラムを実行すると、入力チャンネルＣｈ１，Ｃｈ２から入力される外部信号を設定されたサンプリング周期で取り込み、他の入力チャンネルＣｈ３，Ｃｈ４，Ｃｈ５，Ｃｈ６からの出力については取り込まなくなる。そして、入出力制御プログラムの実行で、演算処理部５は、取り込んだ外部信号、本例では、加速度センサ１５で検出した加速度の値とストロークセンサ１６が検出した変位の値を演算処理部５のメモリ内の外部信号格納用の予め定められたアドレスへ記憶させる。なお、無効とされるチャンネルＣｈ３，Ｃｈ４，Ｃｈ５，Ｃｈ６に対応するアナログ信号処理部７７ｃ、デジタル信号処理部７８ａ，７８ｂおよびＦ／Ｖ変換回路７９については部品そのものを省略してもよく、その場合、部品点数を削減できる。
【００４１】
また、本例では、汎用コントローラＣで一つのソレノイドＳｏｌを制御するため、四対のうち一対の駆動回路３と受信部４のみを利用すれば制御が可能である。よって、制御に使用しない駆動回路３と受信部４を無効とするように入出力制御プログラムの設定値を変更する。すると、演算処理部５は、入出力制御プログラムを実行により、一対の駆動回路３と受信部４のみを有効とし、受信部４で受信する機器信号を設定されたサンプリング周期で取り込む。さらに、演算処理部５は、制御指令を参照して、有効な駆動回路３から電流をソレノイドＳｏｌへ供給する。制御指令は、演算処理部５のメモリ内の制御指令格納用に予め定められたアドレスに格納されるようになっており、演算処理部５は、このアドレスに格納された制御指令を読み込んで制御ユニット２を制御する。なお、受信部４と駆動回路３は、予め対となるもの同士を紐づけしておいてもよいし、入出力制御プログラム側の設定で複数ある駆動回路３のうち任意に選択したものと複数ある受信部４のうち任意に選択したものを対としてもよい。なお、四対のうち残り三対の無効とされる駆動回路３と受信部４については省略してもよく、その場合、部品点数の削減が可能となる。
【００４２】
他方、制御指令生成プログラムは、外部信号である加速度センサ１５から得られる車体の加速度と、同じく外部信号であるストロークセンサ１６から得られる緩衝器Ｄの伸縮変位から制御指令を生成させる処理を演算処理部５に実行させるプログラムである。
【００４３】
具体的には、演算処理部５は、制御指令生成プログラムを実行すると、以下の手順で制御指令を生成する。演算処理部５は、まず、車体の加速度を積分して車体の上下方向速度を求め、緩衝器Ｄの伸縮変位を微分して緩衝器Ｄの伸縮速度を求める。さらに、演算処理部５は、これら上下方向速度と伸縮速度に基づいて緩衝器Ｄが発生すべき減衰力を求め、この求めた減衰力を緩衝器Ｄが出力するためにソレノイドＳｏｌで必要となる電流量を実現する制御指令を生成する。制御指令生成プログラムは、演算処理部５によって制御指令が生成されると、演算処理部５のメモリ内の前記した制御指令格納用のアドレスに制御指令を書き込ませる。この場合、制御指令は、ソレノイドＳｏｌに流すべき目標電流を指示する指令となる。そして、この制御指令が生成されると、演算処理部５は、入出力制御プログラムの実行により、受信部４で検出したソレノイドＳｏｌに流れる実電流量と制御指令との偏差から電流指令を求める。さらに、演算処理部５は、電流指令に基づいて駆動回路３を制御しソレノイドＳｏｌへ電流供給して緩衝器Ｄの減衰力を車体の振動を抑制するのに理想的な減衰力に制御する。
【００４４】
演算処理部５が緩衝器Ｄの減衰力を求める手順は、本例では、以下の通りとなる。演算処理部５は、前記上下方向速度と前記伸縮速度の符号が同符号である場合には、予め決定されるスカイフック減衰係数に前記上下方向速度を乗じた値を緩衝器Ｄが出力すべき減衰力とする。他方、演算処理部５は、前記上下方向速度と前記伸縮速度の符号が逆符号である場合には、緩衝器Ｄが出力可能な最小の減衰力を緩衝器Ｄが発生すべき減衰力として求める。
【００４５】
このようにして緩衝器Ｄが発生すべき目標となる減衰力が求められたら、演算処理部５は、この減衰力を実現するためにソレノイドＳｏｌへ供給すべき目標電流を制御指令として生成する。なお、演算処理部５は、ソレノイドバルブＶが圧力制御弁であって緩衝器Ｄ内の圧力を制御する場合、減衰力が求まれば他のパラメータを用いずに一義的に目標電流である制御指令を求め得る。このような場合には、前記上下方向速度と前記伸縮速度から減衰力を求めずに直接制御指令を求めてもよい。また、ソレノイドバルブＶが緩衝器Ｄの減衰係数を調節するものである場合、演算処理部５は、求めた減衰力と伸縮速度に基づいて制御指令を求めればよい。なお、制御対象機器が複数ある場合、つまり、複数の駆動回路３にそれぞれ異なる制御対象機器が接続されていて、複数の制御対象機器を制御する場合、演算処理部５は、制御対象機器毎に制御指令を生成する。制御対象機器は、同種であってもよいし、種類が異なった機器であってもよい。よって、汎用コントローラＣは、たとえば、四輪車両の各輪に設けた各緩衝器ＤのソレノイドバルブＶにおけるソレノイドＳｏｌを制御対象機器として、これら四つのソレノイドＳｏｌへ駆動回路３から電流供給してもよい。また、液圧シリンダ装置のように、ポンプを駆動するモータと、差圧制御弁や方向切換弁を駆動するソレノイドといった異なる種類の制御対象機器を制御してもよい。なお、前述したカルノップ制御に則り四つのソレノイドＳｏｌを制御する場合、汎用コントローラＣに、四つ以上の出力チャンネルと、加速度センサとストロークセンサに対応する八つ以上の入力チャンネルを設ければよい。そして、入出力制御プログラムで各チャンネルの入出力制御を可能とし、制御指令プログラムも四つのソレノイドＳｏｌの制御指令を生成できるよう対応すればよい。
【００４６】
なお、本例では、汎用コントローラＣは、前述した記憶部６の他に、エラーログを記憶するＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）７を備えており、エラーが検出されるとエラーログがＥＥＰＲＯＭ７に書き込まれる。
【００４７】
一実施の形態における汎用コントローラＣは、以上のように構成され、以下のように動作する。まず、汎用コントローラＣは、外部信号を取り込んで外部信号の値をメモリに格納する（ステップＦ１）。つづいて、汎用コントローラＣは、エラーの有無をチェック（ステップＦ２）し、エラーがある場合、エラー検出処理を実行し、エラーログをＥＥＰＲＯＭ７に書き込む（ステップＦ３）。他方、エラーがない場合、ステップＦ４へ移行して汎用コントローラＣは、動作を停止する条件の有無をチェックする。動作停止条件は、正常な制御を妨げるような深刻なエラーを検出する等、任意に決定できる。動作停止条件ある場合、汎用コントローラＣは、制御を中止する処理を行って動作を停止する（ステップＦ５）。他方、動作停止条件がない場合には、汎用コントローラＣは、外部信号の値を読み込んで制御指令を生成する（ステップＦ６）。さらに、汎用コントローラＣは、制御指令を読み込んで駆動回路３へ与える電流指令をセットする（ステップＦ７）。そして、汎用コントローラＣは、駆動回路３を電流指令通り制御して（ステップＦ８）、ソレノイドＳｏｌへ電流を供給する。汎用コントローラＣは、以上までの一連の手順を繰り返し実行して、ソレノイドＳｏｌへ電流供給する。
【００４８】
つづいて、図６に示したフローチャートに即して、ソフトウェア開発者による制御指令生成プログラムの開発手順について説明する。汎用コントローラＣを制御するプログラムのうち、規格化されたメインルーチンである入出力制御プログラムの設定値の設定（ステップＳＴ１）と、制御指令生成プログラムの設計およびプログラミング（ステップＳＴ２）は、並列して行われる。両者は、同時に行われる必要はなく、続くステップＳＴ３の作業に入るまでに両者を終了させるとの意味である。
【００４９】
ソフトウェア開発者は、前記設定値の設定により、外部信号と機器信号の取り込みの有・無効の設定、外部信号および機器信号の取り込みタイミング、サンプリング周期、制御ユニット２の各駆動回路３の制御の有効・無効の切換え、制御周期の設定を行う。このステップＳＴ１の設定では、ソフトウェア開発者は、制御対象機器の制御に必要な情報として外部信号と機器信号の数と信号種別により、各チャンネルの有効・無効の選択と、制御対象機器数に応じて駆動回路３と受信部４の有効無効を選択する。入出力制御プログラムは、入力チャンネル数と出力チャンネル数に対応可能なプログラムとして予め規格化されているので、ソフトウェア開発者は、設定値の設定以外にプログラミングの必要はなく、設定値を仕様に応じて設定するのみで作業を終了できる。
【００５０】
ステップＳＴ２の作業では、ソフトウェア開発者は、外部信号から制御指令を生成するプログラムを設計およびプログラミングする。ソフトウェア開発者は、利用する制御則に則り、外部信号から制御指令を生成する命令群を決定しプログラミングすればよい。制御指令生成プログラムは、汎用コントローラＣが利用される制御対象機器と利用する制御則に応じて、制御対象機器に適するように設計およびプログラミングされる制御対象機器専用のプログラムである。
【００５１】
ステップＳＴ１およびステップＳＴ２の作業が終了すると、ステップＳＴ３へ移行して、ソフトウェア開発者は、入出力制御プログラムと制御指令生成プログラムを一つのソフトウェアとして記憶部６へ記憶させ、演算処理部５に実行させ、ソフトウェアのテストを行う。
【００５２】
つづいて、ステップＳＴ４へ移行して、ソフトウェア開発者は、ソフトウェアを実行する演算処理部５のテスト結果の確認を行う。このテスト結果の確認にて、テスト結果に不具合がある場合、ステップＳＴ６へ移行し、テスト結果に不具合がなければソフトウェア開発の作業を終了する（ステップＳＴ５）。
【００５３】
ステップＳＴ６では、ソフトウェア開発者は、不具合の原因が入出力制御プログラムの設定値の設定ミスか制御指令生成プログラムに問題があるかを判断する。
【００５４】
ステップＳＴ６の判断で、入出力制御プログラムの設定値の設定ミスが不具合の原因がある場合、ソフトウェア開発者は、ステップＳＴ１へ戻って設定値の設定を正しい設定値へ修正する。
【００５５】
ステップＳＴ６の判断で、制御指令生成プログラムに問題がある場合、ソフトウェア開発者は、ステップＳＴ７へ移行して制御指令生成プログラムの問題を解決するように制御指令生成プログラムを修正する。修正後は、ステップＳＴ３へ戻る。
【００５６】
以上の手順を行えば、ソフトウェア開発者は、汎用コントローラＣで実行するソフトウェアを開発できる。そして、ソフトウェア開発者は、汎用コントローラＣの制御対象機器への適用に当たり、入出力制御プログラムについては規格化されていて設定値の設定のみを行えば足り、制御指令生成プログラムのみを設計およびプログラミングを行えばよい。
【００５７】
本発明の汎用コントローラＣは、入力ユニット１と、制御ユニット２と、演算処理部５に外部信号の取り込みと駆動回路３を制御させる規格化された入出力制御プログラムと制御指令を求めさせる制御指令生成プログラムとを記録した記憶部６とを備えて構成される。このように汎用コントローラＣが構成されるので、ソフトウェア開発者は、汎用コントローラＣの制御対象機器への適用に当たり、制御指令生成プログラムのみを設計およびプログラミングを行えばよい。規格化された入出力制御プログラムは、汎用コントローラＣの開発時に一度開発すれば足り、動作確認済みのプログラムが使用される。そのため、ソフトウェアの適用時において動作に問題が生じた場合の問題の所在が入出力制御プログラムの設定値にあるのか制御指令生成プログラムにあるのかすぐに判明するので、デバックに要する時間も短縮される。
【００５８】
よって、本発明の汎用コントローラＣによれば、ソフトウェア開発者の開発工数と開発時間の短縮が可能となり、その結果、汎用コントローラＣのコストも低コストとなる。
【００５９】
また、本例の汎用コントローラＣでは、記憶部６は、制御指令生成プログラムを書き換え可能に記憶する。よって、記憶部６の交換の必要がなく、制御指令生成プログラムを実装できるので、汎用コントローラＣを別の制御対象機器への適用も可能となる。
【００６０】
さらに、本例の汎用コントローラＣでは、入力ユニット１が複数の入力チャンネルＣｈ１，Ｃｈ２・・・Ｃｈ６を有し、入出力制御プログラムの設定で、入力チャンネルＣｈ１，Ｃｈ２・・・Ｃｈ６毎に外部信号の取り込みの有効と無効の選択的な切換えが可能である。このように汎用コントローラＣが構成されると、複数の外部信号の入力が可能となり、汎用コントローラＣの汎用性が向上する。なお、チャンネル数は、一つの汎用コントローラＣに入力される可能性がある外部信号数以上に設定されるとよい。
【００６１】
また、本例の汎用コントローラＣでは、制御ユニット２が複数の駆動回路３を有し、入出力制御プログラムの設定で、駆動回路毎に有効と無効の選択的な切換えが可能である。このように汎用コントローラＣが構成されると、複数の制御対象機器への電流出力が可能となり、汎用コントローラＣの汎用性が向上する。なお、駆動回路数は、一つの汎用コントローラＣで制御する可能性がある制御対象機器数以上に設定されるとよい。
【００６２】
そして、さらに本例の汎用コントローラＣでは、制御ユニット２が制御対象機器からの機器信号を受信する受信部４を有し、入出力制御プログラムが演算処理部５に制御指令と機器信号に基づいて駆動回路３を制御させるように構成される。このように構成された汎用コントローラＣでは、規格化された入出力制御プログラムには、駆動回路３の電流フィードバック制御が含まれるが、制御指令生成プログラムには、駆動回路３の電流フィードバック制御が含まれず、制御指令生成プログラムの開発がより一層簡単になる。
【００６３】
また、制御ユニット２が異なる種類の制御対象機器に対応可能なように、異なる種類の複数の駆動回路３を備えていてもよい。このように汎用コントローラＣが構成されると、適用可能な制御対象機器の種類が多くなるので、汎用コントローラＣの汎用性が向上する。たとえば、前述したように、制御対象機器をソレノイドとモータとする場合、駆動回路３をソレノイドに適する駆動回路と、モータに適する駆動回路とすればよい。モータが三相ブラシレスモータである場合、駆動回路３は三相に対応したインバータとすればよいし、モータが直流ブラシ付きモータであればＨブリッジの駆動回路とすればよい。また、制御対象機器は、ソレノイドやモータに限られず、駆動回路３についても制御対象機器に適するものを利用すればよい。
【００６４】
なお、前述したところでは、車両の車体と車輪との間に介装される緩衝器ＤのソレノイドバルブＶのソレノイドＳｏｌを制御対象機器として、汎用コントローラＣで電流制御を行う例を挙げて本発明を説明したが、制御対象機器はこれに限定されない。よって、たとえば、建設機械等の産業用機器のソレノイドバルブ等を制御対象機器としてもよい。また、前述したところでは、ソレノイドバルブＶのソレノイドＳｏｌの制御に当たって、汎用コントローラＣでカルノップ制御を行って車体の振動を抑制する例を挙げているが、車体振動抑制に当たっての制御則についても前記制御に限定されない。つまり、汎用コントローラＣが使用される制御対象機器と、制御対象機器を制御するための外部信号の選択、外部信号の処理については任意に決定できる事項であり、汎用コントローラＣは広範な用途に利用できる。
【００６５】
なお、制御ユニット２は、駆動回路３の他に、デジタル信号を出力するデジタル出力回路を備えていてもよい。その場合には、入出力制御プログラムについてもデジタル出力回路の制御が可能となるように予め規格化しておけばよい。
【００６６】
以上で、本発明の実施の形態についての説明を終えるが、本発明の範囲は図示されまたは説明された詳細そのものには限定されないことは勿論である。
【符号の説明】
【００６７】
１・・・入力ユニット、２・・・制御ユニット、３・・・駆動回路、４・・・受信部、５・・・演算処理部、６・・・記憶部、Ｃ・・・汎用コントローラ、Ｃｈ１，Ｃｈ２，ＣＨ３，Ｃｈ４，Ｃｈ５，Ｃｈ６・・・入力チャンネル、Ｓｏｌ・・・ソレノイド（制御対象機器）
【図１】
2017111480.tif 000003
【図２】
2017111480.tif 000004
【図３】
2017111480.tif 000005
【図４】
2017111480.tif 000006
【図５】
2017111480.tif 000007
【図６】
2017111480.tif 000008