(57)【要約】【課題】複数のタイマを用いることなく、計測量を示すパルスを精度よく生成するパルス出力装置、電磁流量計、及びパルス出力方法を提供する。【解決手段】経時的に単位時間あたりの計測量を示す瞬時計測データを取得し、取得した瞬時計測データをパルス重みで除算した発生周波数を用いて位相変化量を求める変化量演算部と、位相変化量を累積処理した値である位相累積値を記憶する記憶装置と、前回の位相累積値に位相変化量を加算して現在の位相累積値を求める演算部と、を有するパルス出力装置。演算部は、現在の位相累積値が基準値以上となったときにパルスを出力し、現在の位相累積値から基準値を減算した値により、記憶装置内の前回の位相累積値を更新するものである。【選択図】図１
2019045344.tif 000002
【特許請求の範囲】
【請求項１】
経時的に単位時間あたりの計測量を示す瞬時計測データを取得し、取得した前記瞬時計測データをパルス重みで除算した発生周波数を用いて位相変化量を求める変化量演算部と、
前記位相変化量を累積処理した値である位相累積値を記憶する記憶装置と、
前記記憶装置内の前回の前記位相累積値に、前記変化量演算部において今回の演算タイミングで求められた前記位相変化量を加算して、現在の前記位相累積値を求める演算部と、を有し、
前記演算部は、
現在の前記位相累積値が基準値以上となったときにパルスを出力し、現在の前記位相累積値から前記基準値を減算した値により、前記記憶装置内の前回の前記位相累積値を更新するものである、パルス出力装置。
【請求項２】
前記基準値は、１０進数の１に相当する値である、請求項１に記載のパルス出力装置。
【請求項３】
前記変化量演算部は、
予め決められた設定周期ごとに前記瞬時計測データを取得するものである、請求項１又は２に記載のパルス出力装置。
【請求項４】
経時的にカウンタ時間を計測するリングカウンタと、
前記リングカウンタの前記カウンタ時間を経時的に取得し、前回のタイミングで取得した前記カウンタ時間と、現在の前記カウンタ時間との差分を経過時間として求める経過時間処理部と、を有し、
前記変化量演算部は、
前記経過時間ごとに前記瞬時計測データを取得するものである、請求項１又は２に記載のパルス出力装置。
【請求項５】
前記変化量演算部は、
前記発生周波数に前記設定周期を乗算して前記位相変化量を求めるものである、請求項３に記載のパルス出力装置。
【請求項６】
前記変化量演算部は、
前記発生周波数に前記経過時間を乗算して前記位相変化量を求めるものである、請求項４に記載のパルス出力装置。
【請求項７】
前記変化量演算部及び前記演算部は、
最上位ビットの左側に小数点が配置された固定小数点数により演算を行うものであり、
前記変化量演算部は、
前記発生周波数に前記設定周期及び前記基準値としての２ｎ（ｎは前記固定小数点数のビット数）を乗算し、乗算値から抽出した整数部を前記位相変化量として求めるものである、請求項３に記載のパルス出力装置。
【請求項８】
前記変化量演算部及び前記演算部は、
最上位ビットの左側に小数点が配置された固定小数点数により演算を行うものであり、
前記変化量演算部は、
最上位ビットの左側に小数点が配置された固定小数点数により演算を行うものであり、
前記発生周波数に前記経過時間及び前記基準値としての２ｎ（ｎは前記固定小数点数のビット数）を乗算し、乗算値から抽出した整数部を前記位相変化量として求めるものである、請求項４に記載のパルス出力装置。
【請求項９】
検出器による検出データに基づいて経時的に前記瞬時計測データを求める計測量処理部をさらに有する、請求項１〜８の何れか一項に記載のパルス出力装置。
【請求項１０】
測定管内を流れる流体の流量に応じた起電力を検出する検出器と、
前記検出器において検出された前記起電力に基づいて、単位時間あたりの計測量を示す瞬時計測データを求める制御装置と、
請求項１〜９の何れか一項に記載のパルス出力装置と、を備えた、電磁流量計。
【請求項１１】
経時的に単位時間あたりの計測量を示す瞬時計測データを取得するデータ取得ステップと、
前記データ取得ステップで取得した前記瞬時計測データをパルス重みで除算した発生周波数を用いて位相変化量を求める変化量演算ステップと、
前記位相変化量を累積処理した値として記憶装置に記憶されている前回の位相累積値に、前記変化量演算ステップにおいて今回の演算タイミングで求めた前記位相変化量を加算して、現在の前記位相累積値を求める累積値演算ステップと、
現在の前記位相累積値が基準値以上となったときにパルスを出力し、現在の前記位相累積値から前記基準値を減算した値により、前記記憶装置内の前回の前記位相累積値を更新する判定処理ステップと、を有する、パルス出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測データに基づくパルスを生成して出力するパルス出力装置、電磁流量計、及びパルス出力方法に関する。
【背景技術】
【０００２】
流量計などの計測機器は、検出器による検出データをもとに、流量などの計測量を求めるようになっている。従来の計測機器には、流体の流路中に設けられた羽根車を有する羽根車式流量計がある（例えば、特許文献１参照）。羽根車式流量計は、測定管内を流れる流体の流速が速くなれば羽根車の回転数が大きくなり、測定管内を流れる流体の流速が遅くなれば羽根車の回転数が小さくなるという原理をもとに、流体の流量を求めるものである。特許文献１の羽根車式流量計は、羽根車の羽根部の側面で反射された光に基づくパルスを検出して、流体の流速及び流量を求めるようになっている。
【０００３】
また、近年は、羽根車を用いずに計測量を求める計測機器が存在し、例えば、流体が磁界中を流れる際に発生する起電力を検出して、流体の流量を求める電磁流量計が知られている。こうした計測機器は、検出器による検出データに基づくパルスを生成して出力するパルス出力装置を備えている。
【０００４】
パルス出力装置は、電磁流量計に適用される場合、羽根車式流量計の原理の応用により、測定管内を流れる流体の流速が速くなればパルスの周波数が高くなり、測定管内を流れる流体の流速が遅くなればパルスの周波数が低くなるように構成される。そして、パルス出力装置が生成するパルスは、１パルスあたりの計測量が予め決められている。したがって、外部機器は、パルスの個数をもとに、計測量の積算値を求めることができる。
【０００５】
ところで、計測機器には、計測量を示す情報として、４−２０ｍＡの電流信号を外部機器へ出力する機能を備えたものもある。電流信号であれば、レンジを設定することにより、大きな流量から小さな流量まで分解能を落とさずに処理することができる。一方、パルス出力装置が出力するパルスの場合、パルスの数が計測量の積算値に対応するため、レンジ切り替えにより分解能を上げることができない。そのため、パルス出力装置には、０．００００１［Ｈｚ］〜３０００［Ｈｚ］といった広いレンジの周波数を発生させる機能が求められる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２６７７０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のパルス出力装置は、ＣＰＵなどのクロック周波数から０．００００１［Ｈｚ］〜３０００［Ｈｚ］といった広いレンジの周波数を作るために、複数のタイマを組み合わせて用いている。そして、こうしたタイマは、タイムアウトするまでは新しい周期に切り替わらないため、例えば低い周波数から高い周波数へ移行するときに応答が遅れる。さらに、複数のタイマを使って分周する場合、各タイマのタイムアウトはそれぞれ独立している。そのため、タイムアウトのばらつきに起因して、パルス周期の切り替わり時に発生する誤差及び遅れを回避することができず、マイコン等で累積した積算値と一致しないこともある。
【０００８】
本発明は、上記の課題を解決するためになされたものであり、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成するパルス出力装置、電磁流量計、及びパルス出力方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るパルス出力装置は、経時的に単位時間あたりの計測量を示す瞬時計測データを取得し、取得した瞬時計測データをパルス重みで除算した発生周波数を用いて位相変化量を求める変化量演算部と、位相変化量を累積処理した値である位相累積値を記憶する記憶装置と、記憶装置内の前回の位相累積値に、変化量演算部において今回の演算タイミングで求められた位相変化量を加算して、現在の位相累積値を求める演算部と、を有し、演算部は、現在の位相累積値が基準値以上となったときにパルスを出力し、現在の位相累積値から基準値を減算した値により、記憶装置内の前回の位相累積値を更新するものである。
【００１０】
本発明に係る電磁流量計は、測定管内を流れる流体の流量に応じた起電力を検出する検出器と、検出器において検出された起電力に基づいて、単位時間あたりの計測量を示す瞬時計測データを求める制御装置と、上記のパルス出力装置と、を備えたものである。
【００１１】
本発明に係るパルス出力方法は、経時的に単位時間あたりの計測量を示す瞬時計測データを取得するデータ取得ステップと、データ取得ステップで取得した瞬時計測データをパルス重みで除算した発生周波数を用いて位相変化量を求める変化量演算ステップと、位相変化量を累積処理した値として記憶装置に記憶されている前回の位相累積値に、変化量演算ステップにおいて今回の演算タイミングで求めた位相変化量を加算して、現在の位相累積値を求める累積値演算ステップと、現在の位相累積値が基準値以上となったときにパルスを出力し、現在の位相累積値から基準値を減算した値により、記憶装置内の前回の位相累積値を更新する判定処理ステップと、を有する。
【発明の効果】
【００１２】
本発明によれば、発生周波数から求まる位相変化量を前回の位相累積値に加算して現在の位相累積値を求め、求めた現在の位相累積値が基準値以上となったときにパルスを出力するため、ＣＰＵなどのクロック周波数を広いレンジの周波数に分周する処理が不要となる。よって、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１に係る計測機器の構成を概略的に示すブロック図である。
【図２】図１の計測機器の動作を示すフローチャートである。
【図３】本発明の実施の形態１の変形例に係る計測機器の構成を概略的に示すブロック図である。
【図４】本発明の実施の形態２に係る計測機器の構成を概略的に示すブロック図である。
【図５】図４の計測機器の動作を示すフローチャートである。
【図６】本発明の実施の形態３に係る計測機器が有するパルス出力装置の構成を例示したブロック図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
図１は、本発明の実施の形態１に係る計測機器の構成を概略的に示すブロック図である。計測機器１００は、電磁流量計、積算熱量計、及び差圧流量計などの計測機器である。本実施の形態１では、計測機器１００として、導電性を有する流体の流量を測定する電磁流量計を例示している。図１に示すように、計測機器１００は、検出器１０と、変換器２０と、を有している。検出器１０は、測定管１１と、励磁コイル１２と、電極１３ａと、電極１３ｂと、を有している。
【００１５】
測定管１１は、パイプ状に形成され、流体を通過させるものである。計測機器１００は、導電性を有する流体が測定管１１内を流れるように配設される。励磁コイル１２は、測定管１１内に磁界を発生させ、測定管１１内を流れる流体に磁界を印加するものである。励磁コイル１２は、磁界の発生方向が、測定管１１内を流れる流体の流れ方向に対して垂直となるように配置されている。
【００１６】
電極１３ａ及び電極１３ｂは、電極１３ａと電極１３ｂとを結ぶ直線が、測定管１１内を流れる流体の流れ方向、及び励磁コイル１２が発生させる磁界の方向に対して直交するように測定管１１内に配置され、一対の電極を構成している。電極１３ａ及び電極１３ｂは、励磁コイル１２が発生させる磁界中を流体が流れることで発生する起電力を検出し、検出した起電力を示す起電力信号を変換器２０へ出力するものである。
【００１７】
変換器２０は、増幅処理回路３０と、ＡＤ変換器３５と、制御装置４０と、パルス出力装置５０と、記憶装置６０と、表示装置７０と、励磁回路８０と、を有している。増幅処理回路３０は、電極１３ａ及び電極１３ｂから出力される起電力信号を増幅させるものである。増幅処理回路３０は、例えば、交流増幅回路と、サンプルホールド回路と、直流増幅回路と、を含んで構成することができる。交流増幅回路は、電極１３ａからの起電力信号と電極１３ｂからの起電力信号との差を増幅するものである。サンプルホールド回路は、励磁電流Ｉｅｘが正極性及び負極性のそれぞれのときの起電力信号の電圧を保持するものである。直流増幅回路は、励磁電流Ｉｅｘが正極性のときの起電力信号の電圧と、励磁電流Ｉｅｘが負極性のときの起電力信号の電圧との差を増幅するものである。ＡＤ変換器３５は、増幅処理回路３０において増幅されたアナログの起電力信号をデジタルの起電力信号に変換し、変換した起電力信号を制御装置４０に出力するものである。
【００１８】
制御装置４０は、計測量処理部４１と、表示処理部４２と、励磁制御部４３と、を有している。励磁制御部４３は、励磁回路８０に対して励磁電流Ｉｅｘの生成を指示するものである。表示処理部４２は、各種の情報を表示装置７０に表示させるものである。
【００１９】
計測量処理部４１は、検出器１０による検出データ、すなわち検出器１０が検出した起電力に基づいて、単位時間あたりの計測量を示す瞬時計測データＰＶを求めるものである。測定周期は、例えば２００［ｍｓ］に設定され、適宜変更することができる。
【００２０】
本実施の形態１における計測量処理部４１は、測定周期ごとに、ＡＤ変換器３５から出力される起電力信号の値であるＡＤ値を用いて、測定管１１内を流れる流体の流速を求めるものである。
【００２１】
より具体的に、計測量処理部４１は、流速を下記の式（１）により求めるようになっている。最大流速、最大流速ＡＤ値、及びゼロ点ＡＤ値は、電磁流量計の回路の特性のバラツキなどに応じて決まる値であり、キャリブレーション等で予め記憶装置６０などに記憶されている。ゼロ点とは、流体の流量が０の状態においても流れるオフセット電流などのバイアスを差し引いて調整された点である。すなわち、ゼロ点ＡＤ値は、ゼロ点におけるＡＤ値である。
【００２２】
［数１］
流速［ｍ／ｓ］＝最大流速［ｍ／ｓ］×（ＡＤ値−ゼロ点ＡＤ値）／（最大流速ＡＤ値−ゼロ点ＡＤ値）  ・・・  （１）
【００２３】
また、計測量処理部４１は、式（１）により求めた流速を用いて、１［ｓ］あたりの流量である瞬時流量を、下記の式（２）により求めるものである。式（２）の断面積は、測定管１１の断面積のことであり、下記の式（３）のように、測定管１１の口径を用いて求めることができる。
【００２４】
［数２］
瞬時流量［ｍ３／ｓ］＝流速［ｍ／ｓ］×断面積［ｍ２／ｓ］  ・・・  （２）
【００２５】
［数３］
断面積［ｍ２／ｓ］＝π×口径［ｍ］×口径［ｍ］／４  ・・・  （３）
【００２６】
測定管１１の断面積の情報は、予め記憶装置６０などに記憶されていてもよいし、計測量処理部４１が、式（３）により、都度計算するようにしてもよい。いずれにせよ、計測量処理部４１は、求めた流速に測定管１１の断面積を乗算して、瞬時流量を求めるものである。そして、計測量処理部４１は、求めた瞬時流量を、瞬時計測データＰＶとして、パルス出力装置５０へ出力するものである。
【００２７】
ここで、計測量処理部４１は、測定管１１内を流れる流体の１［ｓ］あたりの熱量である瞬時熱量を演算する機能を有していてもよい。すなわち、計測機器１００は、ビル空調などの熱交換器で消費した熱量を計測する機能を有していてもよい。
【００２８】
この場合、例えば、検出器１０は、流体の流れにおける熱交換器の下流側に設けられる。流体の流れにおける熱交換器の上流側には、熱交換器に流入する流体の温度である往温度を計測する往温度センサを含む往側感温部が設けられる。流体の流れにおける熱交換器の下流側には、熱交換器から流出する流体の温度である還温度を計測する還温度センサを含む還側感温部が設けられる。そして、計測量処理部４１は、往温度センサから往温度を取得すると共に、還温度センサから還温度を取得し、下記の式（４）により瞬時熱量を求める。
【００２９】
［数４］
瞬時熱量［ＭＪ／ｓ］＝瞬時流量［ｍ３／ｓ］×往還温度差［℃］×熱量換算係数  ・・・  （４）
【００３０】
往還温度差は、往温度センサにおいて計測された往温度と、還温度センサにおいて計測された還温度との差分のことである。すなわち、計測量処理部４１は、瞬時熱量を求める際に往還温度を求めるように構成される。なお、測定管１１内を流れる流体が水の場合、熱量換算係数は「４．１２３」に設定される。計測量処理部４１は、求めた瞬時熱量を、瞬時計測データＰＶとして、パルス出力装置５０へ出力する。
【００３１】
パルス出力装置５０は、計測量処理部４１から出力される瞬時計測データＰＶをもとに、１パルスあたりの計測量が予め決められたパルスを生成して外部機器へ出力するものである。つまり、パルス出力装置５０は、計測量の正確な積算値をパルスの数により外部機器へ伝えるものである。
【００３２】
ここで、羽根車の回転と同様の変化を示すパルス出力をマイコンなどのソフトウェアで実現するには、例えば１［ｍｓ］に定められる設定周期ΔＴごとにｓｉｎ（２πｆｔ）を計算し、ピーク又はゼロクロスのところでパルスを出すようにすればよい。こうすれば、位相は保存されるため、羽根車の回転と同じ周期でパルスを出すことができる。
【００３３】
ところで、ｓｉｎ（２πｆｔ）における「ｔ」は、設定周期ΔＴが１［ｍｓ］の場合、１［ｍｓ］のタイマ割り込みで０．００１［ｓ］ずつ加算される経過時間である。そして、ｓｉｎ（２πｆｔ）は、通常のマイコンなどのソフトウェアにより、１［ｍｓ］のタイマ割り込み内で演算するのは困難である。
【００３４】
ただし、１周期回転したかどうかを知るだけであれば、ｓｉｎ（２πｆｔ）を演算する必要はない。すなわち、ｓｉｎ（２πｆｔ）における「ｆｔ」の整数部が１増えたかどうかを判定することにより、「２πｆｔ」が２π、４π、・・・・と変化する様子を検出することができ、１周期分回転したかどうかを知ることができる。上記のような「ｆｔ」の整数部の増減に基づく羽根車のアルゴリズムでは、浮動小数点を用いた演算を行う必要がある。パルス出力装置５０は、ＩＥＥＥ７４５規格に準拠した単精度浮動小数点形式又は倍精度浮動小数点形式などのバイナリによる演算処理を行うことができる。
【００３５】
パルス出力装置５０は、データ取得部５１と、変化量演算部５２と、演算部５３と、を有している。演算部５３は、累積値演算部５４と、判定処理部５５と、を有している。データ取得部５１は、瞬時流量及び瞬時熱量のうちの少なくとも一つを、計測量処理部４１から瞬時計測データＰＶとして取得するものである。変化量演算部５２は、経時的にデータ取得部５１から瞬時計測データＰＶを取得し、取得した瞬時計測データＰＶをパルス重みＷで除算した発生周波数ｆを用いて位相変化量ΔＰを求めるものである。
【００３６】
本実施の形態１において、変化量演算部５２は、設定周期ΔＴごとに、データ取得部５１から瞬時計測データＰＶを取得するものである。そして、変化量演算部５２は、取得した瞬時計測データＰＶを用いて、下記の式（５）及び式（６）により、設定周期ΔＴあたりの位相の変化量を示す位相変化量ΔＰを求めるものである。
【００３７】
［数５］
ｆ＝ＰＶ／Ｗ  ・・・  （５）
【００３８】
［数６］
ΔＰ＝ｆ×ΔＴ  ・・・  （６）
【００３９】
式（５）において、パルス重みＷは、１パルスあたりの計測量である。例えば、瞬時計測データＰＶが瞬時流量［ｍ３／ｓ］であれば、パルス重みＷは、１パルスあたりの流量に相当し、瞬時計測データＰＶが瞬時熱量［ＭＪ／ｓ］であれば、パルス重みＷは、１パルスあたりの熱量に相当する。
【００４０】
設定周期ΔＴは、発生周波数ｆに応じて決定される。本実施の形態１では、ｓｉｎ波の周期を示す点（例えばゼロクロス）を検出する必要があるため、設定周期ΔＴは、発生周波数ｆの２倍以上の周波数に対応づけて決めるとよい。具体的には、例えばｆ＝５００［Ｈｚ］の場合、設定周期ΔＴは、１［ｍｓ］（１／５００×２［ｓ］）よりも短くするとよい。演算の精度は、サンプリング周期となる設定周期ΔＴが短いほど向上する。そのため、設定周期ΔＴは、例えばｆ＝５００［Ｈｚ］の場合、発生周波数ｆの４倍の周波数に対応づけて、０．５［ｍｓ］（１／５００×４［ｓ］）にするとよい。ここで、パルス出力装置５０は、内部のソフトウェアタイマにより、設定周期ΔＴをカウントしてもよいし、設定周期ΔＴのクロックを出力するハードウェアのタイマを有してもよい。
【００４１】
より具体的に、変化量演算部５２は、式（５）により、瞬時計測データＰＶをパルス重みＷで除算して発生周波数ｆを求めるものである。発生周波数ｆは、パルス出力装置５０が発生させるパルスの周波数であり、発生周波数ｆの逆数をとると、パルスの出力周期となる。そして、変化量演算部５２は、式（６）により、発生周波数ｆに設定周期ΔＴを乗算して、浮動小数点形式の位相変化量ΔＰを求めるものである。
【００４２】
累積値演算部５４は、設定周期ΔＴごとに、変化量演算部５２から位相変化量ΔＰを取得するものである。そして、累積値演算部５４は、取得した位相変化量ΔＰを用いて、下記の式（７）に基づく積算処理により、現在の位相累積値Ｐｍを求めるものである。すなわち、累積値演算部５４は、記憶装置６０内の前回の位相累積値Ｐｍ−１に、直近の設定周期ΔＴにおける位相変化量ΔＰを加算して、現在の位相累積値Ｐｍを求めるものである。ｍは１以上の整数である。
【００４３】
［数７］
Ｐｍ＝Ｐｍ−１＋ΔＰ  ・・・  （７）
【００４４】
ここで、前回の位相累積値Ｐｍ−１は、前回の演算タイミングまでの位相変化量ΔＰの累積値から、前回の演算タイミングまでの間に判定処理部５５が出力したパルスの数（自然数）を減算した値である。したがって、前回の位相累積値Ｐｍ−１は、１未満の値である。前回の位相累積値Ｐｍ−１は、パルス出力装置５０が演算処理を開始するタイミング、つまり初期状態において「０」に設定される。累積値演算部５４は、２回目以降の演算において、判定処理部５５が更新した前回の位相累積値Ｐｍ−１を用いる。なお、本実施の形態１では、判定処理部５５が、初期状態において、前回の位相累積値Ｐｍ−１を「０」に設定する。
【００４５】
現在の位相累積値Ｐｍは、現在までの位相変化量ΔＰの累積値から、前回の演算タイミングまでの間に判定処理部５５が出力したパルスの数（自然数）を減算した値である。したがって、累積値演算部５４が積算処理を開始してから現在までの間に、判定処理部５５がパルスを出力していない場合、現在の位相累積値Ｐｍは、累積値演算部５４が積算処理を開始してから現在までの位相変化量ΔＰの累積値となる。そして、初期状態では、前回の位相累積値Ｐｍ−１が「０」であるため、累積値演算部５４による初回の演算では、変化量演算部５２から取得した位相変化量ΔＰが、そのまま現在の位相累積値Ｐｍとなる。累積値演算部５４は、設定周期ΔＴごとに、現在の位相累積値Ｐｍを記憶装置６０に記憶させるようになっている。
【００４６】
判定処理部５５は、設定周期ΔＴごとに累積値演算部５４が求める現在の位相累積値Ｐｍが１以上であるか否かを判定するものである。判定処理部５５は、現在の位相累積値Ｐｍが１未満であれば、現在の位相累積値Ｐｍにより、前回の位相累積値Ｐｍ−１を更新するものである。
【００４７】
一方、判定処理部５５は、現在の位相累積値Ｐｍが１以上であれば、１個のパルスを外部機器へ出力するものである。その際、判定処理部５５は、現在の位相累積値Ｐｍから基準値を減算して、下記の式（８）の左辺の「Ｐｍ」に相当する更新用の現在の位相累積値Ｐｍを求めるものである。そして、判定処理部５５は、求めた更新用の現在の位相累積値Ｐｍにより、前回の位相累積値Ｐｍ−１を更新するものである。
【００４８】
［数８］
Ｐｍ＝Ｐｍ−基準値  ・・・  （８）
【００４９】
ここで、基準値は、１０進数の１に相当する値である。本実施の形態１では、パルス出力装置５０が浮動小数点数により演算処理を行うため、基準値は、１６進数の「０ｘ３ｆ８０００００」となる。なお、現在の位相累積値Ｐｍから基準値を減算する処理は、ｓｉｎ（２πｆｔ）を１周期分戻す処理に相当する。
【００５０】
すなわち、演算部５３は、記憶装置６０内の前回の位相累積値Ｐｍ−１に、変化量演算部５２において今回の演算タイミングで求められた位相変化量ΔＰを加算して、現在の位相累積値Ｐｍを求めるものである。そして、演算部５３は、現在の位相累積値Ｐｍが基準値以上となったときにパルスを出力するものである。
【００５１】
制御装置４０及びパルス出力装置５０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置と、こうした演算装置と協働して上記の各種機能を実現させる動作プログラムとによって構成することができる。
【００５２】
ここで、外部機器は、例えば、パルスカウンタモジュールと、液晶パネルなどの表示部とを備えた機器である。そして、判定処理部５５が出力するパルスは、１個のパルスに対して所定の計測量が設定されている。そのため、外部機器は、パルスの個数をもとに計測量の積算値を演算し、演算した計測量の積算値を表示部に表示することができる。もっとも、外部機器は、パルスカウンタ機能を備えたＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）であってもよい。
【００５３】
記憶装置６０には、制御装置４０及びパルス出力装置５０の動作プログラムが格納されている。また、記憶装置６０は、位相変化量ΔＰを累積処理した値である位相累積値を記憶するものである。すなわち、記憶装置６０には、変化量演算部５２及び演算部５３による位相変化量ΔＰの累積処理により、位相累積値として、前回の位相累積値Ｐｍ−１と、現在の位相累積値Ｐｍとが記憶される。本実施の形態１において、記憶装置６０には、浮動小数点形式である前回の位相累積値Ｐｍ−１及び現在の位相累積値Ｐｍが記憶される。前回の位相累積値Ｐｍ−１は、判定処理部５５によって設定周期ΔＴごとに更新される。すなわち、記憶装置６０は、浮動小数点形式の位相変化量ΔＰを累積するバッファを含んでいる。
【００５４】
記憶装置６０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等のＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等により構成することができる。
【００５５】
表示装置７０は、液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）、又は７セグメント式のＬＥＤディスプレイなどからなり、表示処理部４２からの制御信号に従って各種の情報を表示するものである。励磁回路８０は、励磁制御部４３からの指示に応じて、極性が交互に変化する励磁周波数ｆｅｘの励磁電流Ｉｅｘを励磁コイル１２に供給するものである。
【００５６】
図２は、図１の計測機器の動作を示すフローチャートである。図２を参照して、パルス出力装置５０によるパルス処理方法を説明する。パルス出力装置５０は、ステップＳ１０２〜Ｓ１０９の一連の処理を、設定周期ΔＴごとに行う定周期の割り込み処理により繰り返し実行する。
【００５７】
パルス出力装置５０は、記憶装置６０内の前回の位相累積値Ｐｍ−１を初期状態の値に設定にする。パルス出力装置５０は、例えば、累積値演算部５４により前回の位相累積値Ｐｍ−１を「０」に設定する。（ステップＳ１０１：初期設定ステップ）。
【００５８】
データ取得部５１は、計測量処理部４１から瞬時計測データＰＶを取得する（ステップＳ１０２：データ取得ステップ）。次いで、変化量演算部５２は、式（５）により、データ取得部５１が取得した瞬時計測データＰＶをパルス重みＷで除算して発生周波数ｆを求める（ステップＳ１０３：変化量演算ステップ）。そして、変化量演算部５２は、式（６）により、発生周波数ｆに設定周期ΔＴを乗算して位相変化量ΔＰを求める（ステップＳ１０４：変化量演算ステップ）。
【００５９】
次に、累積値演算部５４は、前回の位相累積値Ｐｍ−１に、変化量演算部５２が求めた位相変化量ΔＰを加算して、現在の位相累積値Ｐｍを求める（ステップＳ１０５：累積値演算ステップ）。次いで、判定処理部５５は、累積値演算部５４が求めた現在の位相累積値Ｐｍが１以上であるか否かを判定する（ステップＳ１０６）。
【００６０】
判定処理部５５は、現在の位相累積値Ｐｍが１未満であれば（ステップＳ１０６／Ｎｏ）、現在の位相累積値Ｐｍによって前回の位相累積値Ｐｍ−１を更新する（ステップＳ１０９）。一方、判定処理部５５は、現在の位相累積値Ｐｍが１以上であれば（ステップＳ１０６／Ｙｅｓ）、１個のパルスを外部機器へ出力すると共に（ステップＳ１０７）、現在の位相累積値Ｐｍから１を減算して更新用の現在の位相累積値Ｐｍを求める（ステップＳ１０８）。そして、判定処理部５５は、求めた更新用の現在の位相累積値Ｐｍによって前回の位相累積値Ｐｍ−１を更新する（ステップＳ１０９）。ここで、ステップＳ１０６〜Ｓ１０９の一連の処理は、本発明の「判定処理ステップ」に相当する。
【００６１】
以上のように、本実施の形態１のパルス出力装置５０は、設定周期ΔＴごとに、発生周波数ｆに基づく位相変化量ΔＰを前回の位相累積値Ｐｍ−１に加算して、現在の位相累積値Ｐｍを求める。そして、パルス出力装置５０は、求めた現在の位相累積値Ｐｍが基準値以上のときにパルスを出力する。そのため、ＣＰＵなどのクロック周波数から広いレンジの周波数に分周する処理が不要となる。よって、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成することができる。
【００６２】
すなわち、パルス出力装置５０は、流体の流路中に設けられた羽根車の回転と同様に変化するｓｉｎ（２πｆｔ）のうちで、周期的な変化を示す「ｆｔ」に相当する値を累積させて、現在の位相累積値Ｐｍを求める。そして、現在の位相累積値Ｐｍが１０進数の１に相当する基準値を超える度に、１個のパルスを出力し、現在の位相累積値Ｐｍから基準値を減算した値によって前回の位相累積値Ｐｍ−１を更新する。そのため、パルス出力装置５０によれば、パルスの数によって、計測量の積算値を外部機器へ精度よく伝えることができる。
【００６３】
ここで、パルス出力装置５０は、判定処理部５５が生成したパルスを、ワンショットタイマを介して出力するようにしてもよい。このようにすれば、外部機器が処理できるパルスのパルス幅が決まっていても、外部機器が処理可能なパルス幅のパルスを生成することができる。すなわち、判定処理部５５が生成できるパルス幅よりも、外部機器が処理できるパルスの最低幅が長い場合は、ワンショットタイマによりパルス幅を長くして対処することができる。一方、パルス波は、オンのときに電流が流れるため、ワンショットタイマによりパルス幅を可能な限り短くすれば、消費電力の削減を図ることができる。
【００６４】
＜変形例＞
上記の説明では、パルス出力装置５０が、定周期の割り込みで演算処理を行う場合を例示したが、これに限らず、パルス出力装置５０は、メインループ処理の一環として上記の演算処理を行うようにしてもよい。
【００６５】
図３は、本発明の実施の形態１の変形例に係る計測機器の構成を概略的に示すブロック図である。本変形例のパルス出力装置５０は、経時的にカウント時間を計測するリングカウンタ５６と、リングカウンタ５６のカウント時間を経時的に取得する経過時間処理部５７と、を有している。リングカウンタ５６は、ソフトウェア又はハードウェアによって構成することができる。リングカウンタ５６としては、例えば、クロック周波数が１［ＭＨｚ］であり、１［μｓ］ごとの計時が可能なリングカウンタを用いることができる。リングカウンタ５６は、デクリメントカウンタであってもよく、インクリメントカウンタであってもよい。
【００６６】
経過時間処理部５７は、例えば電源がオンになったときに、リングカウンタ５６の時間（タイムスタンプ）であるカウンタ時間を取得し、取得したカウント時間を前回のカウンタ時間ｔｐとして記憶装置６０に記憶させる。また、経過時間処理部５７は、メインループ処理における任意のタイミング、すなわちパルス出力装置５０が演算処理を行うタイミングにおいて、リングカウンタ５６のカウンタ時間を現在のカウンタ時間ｔｃとして取得する。そして、経過時間処理部５７は、判定処理部５５による前回の位相累積値Ｐｍ−１の更新処理が終わると、現在のカウンタ時間ｔｃによって前回のカウンタ時間ｔｐを更新する。
【００６７】
また、経過時間処理部５７は、現在のカウンタ時間ｔｃと前回のカウンタ時間ｔｐとの差分を経過時間Δｔとして求める。すなわち、経過時間処理部５７は、リングカウンタ５６のカウンタ時間を経時的に取得し、前回のタイミングで取得したカウンタ時間ｔｐと現在のカウンタ時間ｔｃとの差分を経過時間Δｔとして求める。そして、経過時間処理部５７は、求めた経過時間Δｔを変化量演算部５２へ出力する。
【００６８】
本変形例の変化量演算部５２は、経過時間Δｔごとに、データ取得部５１を介して瞬時計測データＰＶを取得する。そして、変化量演算部５２は、下記の式（９）により、発生周波数ｆに経過時間Δｔを乗算して、経過時間Δｔあたりの位相の変化量を示す位相変化量ΔＰを求める。
【００６９】
［数９］
ΔＰ＝ｆ×Δｔ  ・・・  （９）
【００７０】
以上のように、本変形例のパルス出力装置５０は、経過時間Δｔごとに、発生周波数ｆに基づく位相変化量ΔＰを前回の位相累積値Ｐｍ−１に加算して、現在の位相累積値Ｐｍを求める。そして、パルス出力装置５０は、求めた現在の位相累積値Ｐｍが基準値以上となったときにパルスを出力し、現在の位相累積値Ｐｍから基準値を減算した値によって前回の位相累積値Ｐｍ−１を更新する。そのため、ＣＰＵなどのクロック周波数から広いレンジの周波数に分周する処理が不要となる。よって、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成することができる。そして、パルスの数により、計測量の積算値を外部機器へ精度よく伝えることができる。
【００７１】
また、本変形例のパルス出力装置５０は、メインループ処理の一環としてパルスの生成及び出力を行うことができるため、ＣＰＵの負荷を小さくすることができ、演算速度の高速化を図ることができる。そして、本変形例のパルス出力装置５０によっても、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成することができる。
【００７２】
ところで、上記の説明では、経過時間Δｔのバラつきを考慮して、発生周波数ｆよりも数百倍高いクロック周波数のリングカウンタ５６を例示したが、これに限らず、発生周波数ｆの２倍以上のクロック周期を有するものであればよい。
【００７３】
実施の形態２．
図４は、本発明の実施の形態２に係る計測機器の構成を概略的に示すブロック図である。前述した実施の形態１では、ｓｉｎ（２πｆｔ）の「ｆｔ」に関する演算の精度を上げるため、ＩＥＥＥ７４５規格に準拠した浮動小数点形式のバイナリによる演算処理を行う。これに対し、本実施の形態２では、ｎビットの整数による演算処理を行うことにより、浮動小数点演算の桁落ちや情報落ちの回避とＣＰＵ負荷の低減とを図っている。ビット数ｎは、パルス出力装置１５０が演算に用いる固定小数点数のビット数である。本実施の形態２の計測機器２００は、実施の形態１の計測機器１００と同様に構成されているため、同等の構成部材については同一の符号を用いて説明は省略する。
【００７４】
本実施の形態２のパルス出力装置１５０は、ｎビットの整数による演算を行うようになっている。したがって、本実施の形態２の記憶装置６０は、ｎビットの整数により位相変化量ΔＰを累積するバッファを含んでいる。
【００７５】
より具体的に、パルス出力装置１５０は、先頭に、つまり最上位ビットの左側に小数点が配置されたｎビット（ｎは自然数）の固定小数点数のバイナリにより演算処理を行うようになっている。ここで、固定小数点数では、設定された小数点の位置に対して、右側が１未満と定義され、左側が１以上と定義される。すなわち、パルス出力装置１５０は、小数点の右側を１未満とし、小数点の左側を１以上として、固定小数点数による整数演算を実行する。
【００７６】
パルス出力装置１５０は、データ取得部５１と、変化量演算部１５２と、演算部１５３と、を有している。変化量演算部１５２及び演算部１５３は、最上位ビットの左側に小数点が配置された固定小数点数により演算を行うものである。
【００７７】
変化量演算部１５２は、データ取得部５１から取得した瞬時計測データＰＶを用いて、上記の式（５）及び下記の式（１０）により、設定周期ΔＴあたりの位相の変化量を示す位相変化量ΔＰを求めるものである。
【００７８】
［数１０］
ΔＰ＝ｉｎｔ（ｆ×ΔＴ×基準値）・・・  （１０）
【００７９】
すなわち、変化量演算部１５２は、発生周波数ｆに設定周期ΔＴ及び基準値を乗算し、乗算値から抽出した整数部を位相変化量ΔＰとして求めるものである。ここで、基準値は、１０進数の１に相当する値である。パルス出力装置１５０は、最上位ビットの左側に小数点が配置された固定小数点数により演算を行うため、基準値は２ｎ（ｎは固定小数点数のビット数）となる。
【００８０】
固定小数点数のビット数ｎが３２の場合、基準値は２３２となり、これを１６進数で表記すると「０ｘ１００００００００」となる。この場合、変化量演算部１５２は、式（５）から求めた発生周波数ｆに、設定周期ΔＴと２３２とを乗算して、暫定位相変化量ΔＰ０を求める。そして、変化量演算部１５２は、暫定位相変化量ΔＰ０から、整数部である位相変化量ΔＰを抽出する。
【００８１】
演算部１５３は、設定周期ΔＴごとに、変化量演算部１５２から位相変化量ΔＰを取得するものである。そして、演算部１５３は、取得した位相変化量ΔＰを用いて、上記の式（７）に基づく整数演算の積算処理により、現在の位相累積値Ｐｍを求めるものである。すなわち、演算部１５３は、記憶装置６０内の前回の位相累積値Ｐｍ−１に、変化量演算部１５２において今回の演算タイミングで求められた位相変化量ΔＰを加算して、現在の位相累積値Ｐｍを求めるものである。
【００８２】
本実施の形態２の整数演算では、現在の位相累積値Ｐｍが１０進数の１に相当する２ｎ以上となったときにオーバフローが生じる。そして、演算部１５３は、オーバフローが生じたタイミングでパルスを出力する。そのため、演算部１５３が出力したパルスの数は、現在の位相累積値Ｐｍがオーバフローした回数、つまり現在の位相累積値Ｐｍにキャリが発生した回数と等しくなる。
【００８３】
前回の位相累積値Ｐｍ−１は、現在の位相累積値Ｐｍにオーバフローが生じなければ、現在の位相累積値Ｐｍによって更新される。一方、現在の位相累積値Ｐｍにオーバフローが生じると、前回の位相累積値Ｐｍ−１は、現在の位相累積値Ｐｍから１０進数の１に相当する２ｎを減算した値により更新される。したがって、前回の位相累積値Ｐｍ−１は、２ｎ未満の値となる。
【００８４】
演算部１５３は、設定周期ΔＴごとに求める現在の位相累積値Ｐｍが基準値としての２ｎ以上であるか否かを判定するものである。つまり、演算部１５３は、現在の位相累積値Ｐｍにキャリが発生したか否かを判定するものである。そして、演算部１５３は、現在の位相累積値Ｐｍが２ｎ未満であれば、現在の位相累積値Ｐｍにより前回の位相累積値Ｐｍ−１を更新するものである。
【００８５】
また、演算部１５３は、現在の位相累積値Ｐｍが２ｎ以上となり、現在の位相累積値Ｐｍにキャリが発生すれば、１個のパルスを外部機器へ出力するものである。現在の位相累積値Ｐｍにオーバフローが生じると、現在の位相累積値Ｐｍは、２ｎ以上であるオーバフローした値から２ｎを除いた値となる。例えば、演算部１５３が３２ビットのレジスタに現在の位相累積値Ｐｍを記憶させる場合、レジスタには、「２３２−１」までしか累積できず、現在の位相累積値Ｐｍが２３２となったときにオーバフローが生じる。つまり、演算部１５３は、現在の位相累積値Ｐｍにオーバフローが生じたとき、現在の位相累積値Ｐｍを、レジスタから溢れた値によって更新する。すなわち、演算部１５３は、現在の位相累積値Ｐｍが基準値としての２ｎ以上となったとき、現在の位相累積値Ｐｍから２ｎを減算した値により、前回の位相累積値Ｐｍ−１を更新する。なお、現在の位相累積値Ｐｍにオーバフローが生じたときに、演算部１５３が現在の位相累積値Ｐｍを更新する処理は、ｓｉｎ（２πｆｔ）を１周期分戻す処理に相当する。
【００８６】
図５は、図４の計測機器の動作を示すフローチャートである。図５をもとに、固定小数点数のビット数ｎが３２である場合を想定して、パルス出力装置１５０によるパルス処理方法を説明する。パルス出力装置１５０は、ステップＳ１０２、Ｓ１０３、Ｓ２０２〜Ｓ２０７の一連の処理を、設定周期ΔＴごとに行う定周期の割り込み処理により繰り返し実行する。図２と同様の処理については同一の符号を用いて説明は省略する。
【００８７】
パルス出力装置１５０は、前回の位相累積値Ｐｍ−１を初期状態の値に設定にする（ステップＳ２０１：初期設定ステップ）。次いで、データ取得部５１が瞬時計測データＰＶを取得し（ステップＳ１０２：データ取得ステップ）、変化量演算部１５２が発生周波数ｆを求める（ステップＳ１０３：変化量演算ステップ）。
【００８８】
次に、変化量演算部１５２は、式（１０）に基づいて、発生周波数ｆに、設定周期ΔＴと基準値としての２３２とを乗算して、暫定位相変化量ΔＰ０を求める（ステップＳ２０２：変化量演算ステップ）。そして、変化量演算部１５２は、暫定位相変化量ΔＰ０の整数部を位相変化量ΔＰとして抽出する（ステップＳ２０３：変化量演算ステップ）。次いで、演算部１５３は、前回の位相累積値Ｐｍ−１に、変化量演算部１５２が求めた位相変化量ΔＰを加算して、現在の位相累積値Ｐｍを求める（ステップＳ２０４：累積値演算ステップ）。
【００８９】
続いて、演算部１５３は、累積値演算部５４が求めた現在の位相累積値Ｐｍが２３２以上であるか否かを判定する。すなわち、演算部１５３は、現在の位相累積値Ｐｍにキャリが発生したか否かを判定する（ステップＳ２０５）。
【００９０】
演算部１５３は、現在の位相累積値Ｐｍにキャリが発生しなければ（ステップＳ２０５／Ｎｏ）、現在の位相累積値Ｐｍによって前回の位相累積値Ｐｍ−１を更新する（ステップＳ２０７）。一方、演算部１５３は、現在の位相累積値Ｐｍにキャリが発生すれば（ステップＳ２０５／Ｙｅｓ）、１個のパルスを外部機器へ出力する（ステップＳ２０６）。そして、演算部１５３は、現在の位相累積値Ｐｍからキャリを除いた値によって前回の位相累積値Ｐｍ−１を更新する（ステップＳ２０７）。したがって、前回の位相累積値Ｐｍ−１は、２３２未満の値となる。ここで、ステップＳ２０５〜Ｓ２０７の一連の処理は、本発明の「判定処理ステップ」に相当する。
【００９１】
以上のように、本実施の形態２のパルス出力装置１５０は、設定周期ΔＴごとに、発生周波数ｆに基づく位相変化量ΔＰを前回の位相累積値Ｐｍ−１に加算して、現在の位相累積値Ｐｍを求める。そして、パルス出力装置１５０は、現在の位相累積値Ｐｍがオーバフローしてキャリが発生したとき、つまり現在の位相累積値Ｐｍが基準値としての２ｎ以上となったときにパルスを出力する。そのため、ＣＰＵなどのクロック周波数から広いレンジの周波数に分周する処理が不要となる。よって、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成することができる。そして、パルスの数により、計測量の積算値を外部機器へ精度よく伝えることができる。
【００９２】
上記の説明では、パルス出力装置１５０が、定周期の割り込みで演算処理を行う場合を例示したが、これに限らず、パルス出力装置１５０は、メインループ処理の一環として上記の演算処理を行うようにしてもよい。すなわち、本実施の形態２のパルス出力装置１５０にも、実施の形態１の変形例の構成を適用することができる。この場合、変化量演算部１５２は、発生周波数ｆに経過時間Δｔ及び２ｎを乗算し、乗算値から抽出した整数部を位相変化量ΔＰとして求める。
【００９３】
ここで、固定小数点数のビット数ｎが３２である場合を想定する。この場合、例えば、設定周期ΔＴ又は経過時間Δｔが０．１［ｍｓ］で、発生周波数ｆが０．０００００２３２［ＨＺ］以下になると、位相変化量ΔＰが１未満（０．０００００２３２［Ｈｚ］×０．０００１×２３２＜１．０）となる。また、経過時間Δｔが１［μｓ］で、発生周波数ｆが０．０００２３２［ＨＺ］以下になると、位相変化量ΔＰが１未満（０．０００２３２［Ｈｚ］×０．０００００１×２３２＜１．０）となる。よって、現在の位相累積値Ｐｍが増加しなくなることから、パルス出力装置１５０は、パルスを出力することができない状態となる。そのため、さらに低い発生周波数ｆに対応した演算処理を実現する場合は、演算用の固定小数点数のビット数ｎを、４０ビット、４８ビット、・・・というように増加させるとよい。
【００９４】
実施の形態３．
図６は、本発明の実施の形態３に係る計測機器が有するパルス出力装置の構成を例示したブロック図である。本実施の形態３のパルス出力装置２５０は、前述した実施の形態２のパルス出力装置１５０の構成の一部をハードウェアにより実現したものである。本実施の形態３の計測機器は、実施の形態１及び２の計測機器と同様に構成されているため、同等の構成部材については同一の符号を用いて説明は省略する。
【００９５】
クロック発振器２８０は、設定されたクロック周波数に従い、設定周期ΔＴごとに、演算部２７０へ向けてクロックを出力するものである。例えば、クロック周波数が１０［ｋＨｚ］に設定されていれば、クロック発振器２８０は、０．１［ｍｓ］ごとにクロックを出力することになる。演算部２７０は、クロック発振器２８０からのクロックに従って動作する。
【００９６】
パルス出力装置２５０は、回路制御部２６０と、演算部２７０と、クロック発振器２８０と、を有している。回路制御部２６０は、データ取得部５１と、変化量演算部１５２と、クリア処理部２６１と、を有している。演算部２７０は、カウントレジスタ２７１と、加算値レジスタ２７２と、加算器２７３と、ワンショットタイマ２７４と、を有している。
【００９７】
本実施の形態３において、変化量演算部１５２は、位相変化量ΔＰから抽出した位相変化量ΔＰを、カウントレジスタ２７１内の前回の位相累積値Ｐｍ−１に加算する値として、加算値レジスタ２７２に書き込むようになっている。例えば、発生周波数ｆが５［ｋＨｚ］であり、クロック発振器２８０のクロック周波数が１０［ｋＨｚ］であり、パルス出力装置２５０が３２ビットでの演算を行う場合を想定する。すると、変化量演算部１５２は、式（１０）に基づく「４２９４９６７２９６×（５０００／１００００）」という演算により（４２９４９６７２９６＝２３２）、位相変化量ΔＰとして「０ｘ８０００００００」という値を求めて加算値レジスタ２７２に書き込む。
【００９８】
クリア処理部２６１は、カウントレジスタ２７１の値である前回の位相累積値Ｐｍ−１をクリアするものである。すなわち、クリア処理部２６１は、計測量の積算を開始するタイミングで、カウントレジスタ２７１の前回の位相累積値Ｐｍ−１を初期状態の「０」に設定するものである。
【００９９】
回路制御部２６０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置と、こうした演算装置と協働して上記の各種機能を実現させる動作プログラムとによって構成することができる。
【０１００】
カウントレジスタ２７１は、設定周期ΔＴごとに、前回の位相累積値Ｐｍ−１として記憶されている値を加算器２７３へ出力し、その後、加算器２７３から出力される加算値を前回の位相累積値Ｐｍ−１として書き込むものである。加算値レジスタ２７２は、設定周期ΔＴごとに、変化量演算部１５２によって書き込まれた位相変化量ΔＰを加算器２７３へ出力するものである。
【０１０１】
加算器２７３は、設定周期ΔＴごとに、カウントレジスタ２７１から出力される前回の位相累積値Ｐｍ−１と、加算値レジスタ２７２から出力される位相変化量ΔＰとを加算するものである。そして、加算器２７３は、前回の位相累積値Ｐｍ−１と位相変化量ΔＰとの加算値をカウントレジスタ２７１へ出力するものである。加算器２７３は、設定周期ΔＴごとの加算処理において、前回の位相累積値Ｐｍ−１と位相変化量ΔＰとの加算値にキャリが発生した場合、１度だけ接点をオンしてパルスを出力するようになっている。より具体的に、加算器２７３は、オーバフローを検出したときにキャリを出力するキャリ出力部を有している。キャリ出力部は、オーバフローによりキャリが発生すると、その立ち上がりから設定周期ΔＴだけオンとなるパルスをワンショットタイマ２７４へ出力する。つまり、加算器２７３は、上記の式（７）及び式（８）に相当する処理を実行するものである。言い換えると、加算器２７３は、演算部１５３の一部の機能を実現するものである。
【０１０２】
ワンショットタイマ２７４は、加算器２７３から出力されるキャリのパルス幅を、出力先の外部機器が処理できる長さに調整するものである。ここで、加算器２７３から出力されるキャリのパルス幅は、クロック発振器２８０のクロック周期である設定周期ΔＴ分の幅しかない。よって、ワンショットタイマ２７４は、外部機器へ出力するパルスのパルス幅が、出力先の外部機器が処理できる規定時間となるように調整する。すなわち、加算器２７３は、キャリ発生の立ち上がりから規定時間だけオンが継続するパルスを、ワンショットタイマ２７４を介して外部機器へ出力する。
【０１０３】
加算器２７３が生成できる設定周期ΔＴ分の幅よりも、外部機器が処理できるパルスの最低幅が長い場合は、ワンショットタイマ２７４により、パルスのパルス幅を外部機器が処理できるように長くする。したがって、加算器２７３が生成する設定周期ΔＴ分のパルスを外部機器が処理できる場合、演算部２７０は、ワンショットタイマ２７４を設けずに構成することができる。もっとも、加算器２７３は、回路制御部２６０を介してパルスを外部機器へ出力するようにしてもよい。そして、回路制御部２６０が、ワンショットタイマ２７４と同様の機能を有するようにしてもよい。
【０１０４】
ここで、クロック発振器２８０のクロック周波数を１０［ｋＨｚ］にした場合は、５［ｋＨＺ］以上の周波数でパルスを生成することができない。また、固定小数点数のビット数ｎが３２の場合を想定する。この場合、設定周期ΔＴが０．１［ｍｓ］で、発生周波数ｆが０．０００００２３２［ＨＺ］以下になると、位相変化量ΔＰが「０ｘ００００００００」となる。したがって、前回の位相累積値Ｐｍ−１と位相変化量ΔＰとの加算値、すなわち現在の位相累積値Ｐｍが増加しないため、パルス出力装置２５０は、パルスを出力することができない状態となる。よって、さらに広範囲の発生周波数ｆに対応した演算処理を実現する場合は、演算用の浮動小数点数のビット数ｎを、４０ビット、４８ビット、・・・というように増加させるとよい。
【０１０５】
以上のように、実施の形態２のパルス出力装置１５０の構成の一部をハードウェアにより実現したパルス出力装置２５０によっても、複数のタイマを用いることなく、計測量を示すパルスを精度よく生成することができる。そして、パルスの数により、計測量の積算値を外部機器へ精度よく伝えることができる。
【０１０６】
上述した各実施の形態は、パルス出力装置、電磁流量計、及びパルス出力方法における好適な具体例であり、本発明の技術的範囲は、これらの態様に限定されるものではない。例えば、上述した各実施の形態では、計測機器１００及び２００が電磁流量計である場合を例示したが、これに限らず、計測機器１００及び２００は、積算熱量計、差圧流量計、渦流量計、又はコリオリ質量流量計などであってもよい。例えば、計測機器１００及び２００が積算熱量計である場合、計測量処理部４１は、瞬時計測データＰＶとして、瞬時熱量をパルス出力装置５０、１５０、及び２５０へ出力することになる。
【０１０７】
また、計測量処理部４１は、制御装置４０ではなく、パルス出力装置５０、１５０、及び２５０に設けられてもよい。さらに、図１では、制御装置４０と、パルス出力装置５０、１５０、及び２５０とが、記憶装置６０を共有する場合を例示したが、これに限定されない。制御装置４０とパルス出力装置５０、１５０、及び２５０とは、それぞれ個別に記憶装置を有してもよい。この場合、パルス出力装置５０、１５０、及び２５０に設けられる記憶装置は、位相変化量ΔＰを累積処理した値である位相累積値を記憶する。加えて、上述した各実施の形態では、制御装置４０が、内部のソフトウェアタイマにより測定周期をカウントする場合を例示したが、これに限定されない。パルス出力装置５０、１５０、及び２５０は、測定周期のクロックを制御装置４０に出力するハードウェアのタイマを有してもよい。
【符号の説明】
【０１０８】
１０  検出器、１１  測定管、１２  励磁コイル、１３ａ、１３ｂ  電極、２０  変換器、３０  増幅処理回路、３５  ＡＤ変換器、４０  制御装置、４１  計測量処理部、４２  表示処理部、４３  励磁制御部、５０、１５０、２５０  パルス出力装置、５１  データ取得部、５２、１５２  変化量演算部、５３、１５３  演算部、５４  累積値演算部、５５  判定処理部、５６  リングカウンタ、５７  経過時間処理部、６０  記憶装置、７０  表示装置、８０  励磁回路、１００、２００  計測機器、２６０  回路制御部、２６１  クリア処理部、２７０  演算部、２７１  カウントレジスタ、２７２  加算値レジスタ、２７３  加算器、２７４  ワンショットタイマ、２８０  クロック発振器、Ｐｍ−１  前回の位相累積値、Ｐｍ  現在の位相累積値、ＰＶ  瞬時計測データ、Ｗ  パルス重み、ｆ  発生周波数、ｆｅｘ  励磁周波数、ｔｃ  現在のカウンタ時間、ｔｐ  前回のカウンタ時間、ΔＰ０  暫定位相変化量、ΔＰ  位相変化量、ΔＴ  設定周期、Δｔ  経過時間。
【図１】
2019045344.tif 000003
【図２】
2019045344.tif 000004
【図３】
2019045344.tif 000005
【図４】
2019045344.tif 000006
【図５】
2019045344.tif 000007
【図６】
2019045344.tif 000008