(58)【調査した分野】(Int.Cl.,DB名)
前記フィルタ部は、前記位相制御部で生成された前記制御値に対して、時定数が予め規定された値に設定されたローパスフィルタ処理を行なうことを特徴とする請求項1記載の同期装置。
前記第1基準信号が入力されたときの前記計数部の計数値である第1計数値と、次に前記第1基準信号が入力されたときの前記計数部の計数値である第2計数値との差が予め規定された閾値よりも小さい場合に、前記第2計数値を前記計数部の目標計数値に設定する起動制御部を備えることを特徴とする請求項1又は請求項2記載の同期装置。
物理量の検出を行う検出部を備えており、該検出部から出力される検出信号に対する信号処理を行って前記検出部で検出を行っている物理量を求めるフィールド機器において、
前記検出部から出力される検出信号に対する前処理を行う第1処理部と、
前記第1処理部からの信号に対して後処理を行う第2処理部と、
前記第1処理部と前記第2処理部とを同期させる請求項1から請求項5の何れか一項に記載の同期装置と
を備えることを特徴とするフィールド機器。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態による同期装置及びフィールド機器について詳細に説明する。尚、以下では、理解を容易にするために、フィールド機器が配管内を流れる流体の流量を測定する流量計である場合を例に挙げて説明する。但し、本発明は、流量を測定するフィールド機器以外に、圧力、温度、湿度等(物理量)を測定するフィールド機器にも適用可能である。
【0014】
〔第1実施形態〕
図1は、本発明の第1実施形態によるフィールド機器の要部構成を示すブロック図である。
図1に示す通り、本実施形態のフィールド機器1は、検出部11、信号処理部12、及び出力部13を備えており、配管内を流れる流体(図示省略)の流量を測定し、その測定結果を示す測定信号S3を出力する。
【0015】
検出部11は、検出対象の流体が流れる配管に取り付けられており、信号処理部12に設けられるCPU24の制御の下で、配管を流れる流体の流量を測定する上で必要な検出を行う。例えば、流体の流れに沿う向きに超音波信号を送信したときの透過信号(流体を透過した超音波信号)と、流体の流れに逆らう向きに超音波信号を送信したときの透過信号とを検出し、各々の検出結果を検出信号S1として出力する。この検出部11は、流体或いは流体が流れる配管と電気的に接続されているため電気的に接地されている。
【0016】
信号処理部12は、ADC(Analog to Digital Converter:アナログ/ディジタル変換器)21、信号処理回路22(第1処理部)、絶縁回路23a(第1絶縁回路)、絶縁回路23b(第2絶縁回路)、CPU(中央処理装置)24、タイマ25(生成回路)、及び同期回路26(同期装置)を備えており、検出部11からの検出信号S1に対する信号処理を行って配管を流れる流体の流量を求め、その流量を示す流量信号S2を出力する。ここで、信号処理部12は、ADC21、信号処理回路22、及びタイマ25と、CPU24及び同期回路26との間が絶縁回路23a,23bによって電気的に絶縁されている。これは、コストの上昇を招くことなく接地される検出部11と出力部13との間を電気的に絶縁する必要があるからである。
【0017】
ADC21は、検出部11から出力される検出信号S1(アナログ信号)をディジタル信号に変換する。信号処理回路22は、ADC21から出力される信号に対し、流体の流量を求める上で必要となる前処理を行う。例えば、流体の流れに沿う向きに超音波信号が送受信された場合における超音波信号の伝播時間と、流体の流れに逆らう向きに超音波信号が送受信された場合における超音波信号の伝播時間との差を求める処理を行う。この信号処理回路22は、タイマ25からの基準クロックCK1(第1基準信号)が入力されるタイミングで上記の前処理を行う。
【0018】
絶縁回路23aは、信号処理回路22とCPU24との間に設けられ、これらの間を電気的に絶縁する。具体的に、絶縁回路23aは、一端が信号処理回路22に接続されたシリアルバスの他端と、一端がCPU24に接続されたシリアルバスの他端とにそれぞれ接続されており、これらシリアルバスを電気的に絶縁することによって、信号処理回路22とCPU24との間を電気的に絶縁する。尚、上記のシリアルバスは、UART(Universal Asynchronous Receiver Transmitter)、I
2C(登録商標)(Inter-Integrated Circuit)バス、SPI(登録商標)(Serial Peripheral Interface)バス等である。絶縁回路23bは、タイマ25と同期回路26との間に設けられ、これらの間を電気的に絶縁する。これら絶縁回路23a,23bとしては、例えばフォトカプラを用いることができる。
【0019】
CPU24は、信号処理回路22の前処理結果を用いて流体の流量を求めるとともに、フィールド機器1の動作を統括的に制御する。このCPU24には、通信部31、流量演算部32(第2処理部)、位相制御部33、及びフィルタ演算部34(フィルタ部)が実現される。これらは、CPU24が不図示のメモリに格納されているプログラムを読み出して実行することによって実現される。
【0020】
通信部31は、信号処理回路22との間で絶縁回路23aを介した通信(シリアル通信)を行う。流量演算部32は、信号処理回路22からの信号(絶縁回路23a及び通信部31を介した信号)に対して後処理を行って流体の流量を求め、その流量を示す流量信号S2を出力する。例えば、流量演算部32は、信号処理回路22の前処理結果から配管内を流れる流体の平均流速を求める処理(演算)を行い、求めた平均流速に対して配管の断面積を掛ける処理(演算)を行うことによって流体の流量を求める。この流量演算部32は、同期回路26からの基準クロックCK2(第2基準信号)が入力されるタイミングで上記の後処理を行う。
【0021】
位相制御部33は、同期回路26から出力されるカウント値C1に応じて、基準クロックCK1(信号処理回路22における前処理のタイミングを規定する基準クロック)に対する基準クロックCK2(流量演算部32における後処理のタイミングを規定する基準クロック)の位相差を制御するための制御値C2を生成する。ここで、同期回路26から出力されるカウント値C1は、基準クロックCK1と基準クロックCK2との位相差を示すものである。
【0022】
図2は、本発明の第1実施形態における位相制御部の入出力関係を示す図である。尚、
図2においては、同期回路26からのカウント値C1を横軸にとり、位相制御部33から出力される制御値C2を縦軸にとっている。また、
図2中の値「k」は、信号処理回路22における前処理のタイミングを規定する基準クロックCK1の1周期の長さと、同期回路26のカウンタ43(詳細は後述する)の動作周期とによって規定される値である。具体的に、値「k」は、基準クロックCK1の1周期の間にカウンタ43によってカウントされるカウント値である。
【0023】
図2に示す通り、位相制御部33は、同期回路26から出力されるカウント値C1が「0」の場合には値が「k」になり、カウント値C1が「0」から「k/2」の間はカウント値C1が大きくなるにつれて値が徐々に大きくなる制御値C2を出力する。また、同期回路26から出力されるカウント値C1が「k」の場合には値が「k」になり、カウント値C1が「k」から「k/2」の間はカウント値C1が小さくなるにつれて値が徐々に小さくなる制御値C2を出力する。尚、カウント値C1が「0」から「k/2」の間は、基準クロックCK1に対する基準クロックCK2の位相が進んでいる状態であり、カウント値C1が「k」から「k/2」の間は、基準クロックCK1に対する基準クロックCK2の位相が遅れている状態である。
【0024】
フィルタ演算部34は、位相制御部33から出力される制御値C2に対するフィルタ処理(例えば、時定数が10sec程度に設定されたローパスフィルタ処理)を行う。ここで、フィルタ演算部34を設けて制御値C2に対するローパスフィルタ処理を行うのは、基準クロックCK1,CK2の位相差が予め規定された位相差(本実施形態では零)からずれている場合に、その位相差のずれを徐々に解消する(予め規定された位相差に徐々に近づける)ためである。尚、詳細は後述するが、フィルタ演算部34の出力値は、同期回路26に設けられるカウンタ43でカウントすべき目標カウント値として用いられる。
【0025】
タイマ25は、信号処理回路22における前処理のタイミングを規定する基準クロックCK1を出力する。具体的に、タイマ25は、例えば10〜100msec程度の周期で基準クロックCK1を出力する。同期回路26は、割込制御部41、レジスタ42a,42b、カウンタ43(計数部)、及びレジスタ44を備えており、絶縁回路23aを介した基準クロックCK1を用いて基準クロックCK2を生成し、信号処理回路22と流量演算部32との動作を同期させる。
【0026】
ここで、タイマ25から出力された基準クロックCK1は、絶縁回路23bを介することによってノイズが混入し、或いは欠落が生ずる場合がある。このため、以下では、絶縁回路23bを介してノイズ混入や欠落等の可能性のあるものを「基準クロックCK11」といい、タイマ25から出力される基準クロックCK1と区別することにする。
【0027】
割込制御部41は、基準クロックCK11に基づいてCPU24に対する割り込み制御を行う。具体的に、割込制御部41は、基準クロックCK11が入力された場合に、CPU24に対して割込信号IP1を出力するとともに、一定期間だけ基準クロックCK11による割り込みを禁止する。ここで、基準クロックCK11による割り込みが禁止されるのは、CPU24から割込解除信号IP2が出力されるまでの間である。尚、割込制御部41からの割込信号IP1が入力されてから割込解除信号IP2が出力されるまでの時間は任意に設定することができる。
【0028】
レジスタ42aは、CPU24のフィルタ演算部34から出力される値を一時的に保持する。レジスタ42bは、カウンタ43でカウントすべき目標カウント値(目標計数値)を保持する。具体的に、レジスタ42bは、カウンタ43から基準クロックCK2が出力されるタイミングでレジスタ42aに保持されている値を目標カウント値として取り込んで保持する。
【0029】
カウンタ43は、基準クロックCK1の周期よりも十分に短い周期で動作し、レジスタ42bに保持された目標カウント値をカウントした場合に、CPU24の流量演算部32における後処理のタイミングを規定する基準クロックCK2を出力する。また、カウンタ43は、目標カウント値をカウントした場合には、カウント値をクリアしてレジスタ42bから目標カウント値を取り込んでカウントを開始する。このカウンタ43は、例えば1〜10μsec程度の周期でカウント動作を行う。レジスタ44は、割込制御部41から割込信号IP1が出力されたときのカウンタ43のカウント値を取り込んで保持するとともに、カウント値C1として出力する。
【0030】
出力部13は、アナログ伝送線(例えば、「4〜20mA」信号の伝送に使用される伝送線)に接続されており、信号処理部12の流量演算部32から出力される流量信号S2をアナログ信号に変換してアナログ伝送線に出力する。尚、出力部13は、アナログ信号のみを出力するものであっても、アナログ信号にディジタル信号を重畳して出力するものであっても良い。
【0031】
次に、上記構成におけるフィールド機器1の動作について説明する。
図3は、本発明の第1実施形態によるフィールド機器の動作を説明するためのタイミングチャートである。まず、信号処理部12に設けられたCPU24によって検出部11が制御されると、検出部11によって配管を流れる流体の検出が行われ、検出部11からは検出信号S1が出力される。具体的には、流体の流れに沿う向きに超音波信号を送信したときの透過信号と、流体の流れに逆らう向きに超音波信号を送信したときの透過信号とが検出され、各々の検出結果が検出信号S1として順次出力される。
【0032】
検出部11から出力された検出信号S1は、信号処理部12のADC21でディジタル信号に変換されて信号処理回路22に順次入力され、タイマ25からの基準クロックCK1が入力されるタイミングで前処理が行われる。具体的には、基準クロックCK1のタイミングで、流体の流れに沿う向きに超音波信号が送受信された場合における超音波信号の伝播時間と、流体の流れに逆らう向きに超音波信号が送受信された場合における超音波信号の伝播時間との差を求める処理が行われる。
【0033】
信号処理回路22で前処理された信号は、絶縁回路23aを介してCPU24の通信部31で受信されて流量演算部32に入力され、同期回路26からの基準クロックCK2が入力されるタイミングで後処理が行われる。具体的には、基準クロックCK2のタイミングで、信号処理回路22の前処理結果から配管内を流れる流体の平均流速を求め、この平均流量に対して配管の断面積を掛けて流体の流量を求める処理が行われる。流体の流量が求められると、流量演算部32から出力部13に対して流量信号S2が出力される。この流量信号S2は出力部13においてアナログ信号に変換されて、測定信号S3としてアナログ伝送線に出力される。
【0034】
上述した信号処理回路22における前処理のタイミングを規定する基準クロックCK1は、一定の周期(例えば、10〜100msec程度の周期)でタイマ25から出力される。これに対し、上述した流量演算部32における後処理のタイミングを規定する基準クロックCK2は、基準クロックCK11(絶縁回路23bを介した基準クロックCK1)に基づいて同期回路26によって生成される。同期回路26は、基準クロックCK2を生成するタイミングを制御して、信号処理回路22の動作と流量演算部32の動作とを同期させる。以下、同期回路26の動作について詳細に説明する。
【0035】
図3に示す通り、同期回路26では、カウンタ43がレジスタ42bに保持された目標カウント値をカウントする動作が繰り返し行われる。時刻t11において基準クロックCK11が同期回路26に入力されると、割込制御部41からCPU24に対して割込信号IP1が出力され、割込信号IP1が出力された時点におけるカウンタ43のカウント値「CNT2」がレジスタ44に保持されるとともにカウント値C1としてCPU24に出力される。尚、割込信号IP1を出力すると、割込制御部41は、CPU24からの割込解除信号IP2が入力されるまで基準クロックCK11による割り込みを禁止する状態になる。
【0036】
同期回路26からのカウント値C1がCPU24に入力されると、位相制御部33からはカウント値C1に応じた制御値C2が出力される。ここで、時刻t11で同期回路26からカウント値C1として出力されるカウント値「CNT2」は、時刻t10で同期回路26から出力された基準クロックCK2と、時刻t11で同期回路26に入力された基準クロックCK11との位相差を示すものであり、
図3に示す通り、基準クロックCK2は基準クロックCK11よりも位相が進んでいる。このため、位相制御部33からは、
図2中の値「k」よりも大きく、基準クロックCK2の周期を長くする制御値C2が出力される。
【0037】
位相制御部33から上記の制御部C2が出力されると、フィルタ演算部34において、制御値C2に対するフィルタ処理(例えば、時定数が10sec程度に設定されたローパスフィルタ処理)が行われる。フィルタ演算部34におけるフィルタ処理によって得られた値は、同期回路26のレジスタ42aに一時的に保持される。
図3に示す例では、値「N3」がレジスタ42aに保持される。
【0038】
いま、時刻t12において、カウンタ43がレジスタ42bに保持された目標カウント値(
図3に示す例では、値「N2」)のカウントを終了したとすると、カウンタ43からCPU24に対して基準クロックCK2が出力される。この基準クロックCK2がCPU24に入力されると、流量演算部32において前述した後処理が行われる。また、基準クロックCK2がカウンタ43から出力されると、レジスタ42aに保持されている値(
図3に示す例では、値「N3」)がレジスタ42bに取り込まれて保持される。そして、カウンタ43のカウント値がクリアされ、カウンタ43でレジスタ42bに保持された目標カウント値「N3」をカウントする動作が開始される。
【0039】
次いで、時刻t13において基準クロックCK11が同期回路26に入力されると、時刻t11で基準クロックCK11が入力された場合と同様に、割込制御部41からCPU24に対して割込信号IP1が出力される。そして、割込信号IP1が出力された時点におけるカウンタ43のカウント値「CNT3」がレジスタ44に保持されるとともにカウント値C1としてCPU24に出力される。
【0040】
ここで、前述した通り、割込制御部41は、割込信号IP1を出力するとCPU24からの割込解除信号IP2が入力されるまで基準クロックCK11による割り込みを禁止する状態になる。このため、
図3に示す通り、CPU24からの割込解除信号IP2が入力される前の時刻t14において、ノイズの混入によって基準クロックCK11の立ち下がりが生じたとしても、これによる割り込みは禁止される。
【0041】
同期回路26からのカウント値C1がCPU24に入力されると、位相制御部33からはカウント値C1に応じた制御値C2が出力される。ここで、時刻t13で同期回路26からカウント値C1として出力されるカウント値「CNT3」は、時刻t12で同期回路26から出力された基準クロックCK2と、時刻t13で同期回路26に入力された基準クロックCK11との位相差を示すものであり、
図3に示す通り、基準クロックCK2は基準クロックCK11よりも位相が進んでいる。このため、位相制御部33からは、基準クロックCK2の周期を長くする制御値C2が出力される。
【0042】
位相制御部33から上記の制御部C2が出力されると、フィルタ演算部34において、制御値C2に対するフィルタ処理(例えば、時定数が10sec程度に設定されたローパスフィルタ処理)が行われる。フィルタ演算部34におけるフィルタ処理によって得られた値は、同期回路26のレジスタ42aに一時的に保持される。
図3に示す例では、値「N3」がレジスタ42aに保持される。
【0043】
以下同様に、同期回路26において基準クロックCK2の周期を調整する制御が繰り返し行われることによって、基準クロックCK2の位相は基準クロックCK11の位相に徐々に一致する。基準クロックCK11は、ノイズ混入や欠落等がなければ基準クロックCK1と同じものと考えられるため、以上説明した同期回路26の動作によって基準クロックCK2の位相が基準クロックCK1の位相に一致することになる。
【0044】
図4は、本発明の第1実施形態において基準クロックが同期する様子を示す図である。
図4に示す通り、同期回路26からは、基準クロックCK1と基準クロックCK2との位相差に応じたカウント値C1が出力され、CPU24の位相制御部33及びフィルタ演算部34においてカウント値C1に応じた目標カウント値が求められてレジスタ42bに保持される。これにより、カウンタ43によってカウントされる時間(基準クロック信号CK2)の周期が調整され、
図4に示す通り、基準クロックCK1と基準クロックCK2との位相差が徐々に零になって両者の位相が一致する。基準クロックCK1と基準クロックCK2との位相が一致することによって、信号処理回路22の動作と流量演算部32の動作とが同期する。
【0045】
以上の通り、本実施形態では、基準クロックCK11(絶縁回路23bを介した基準クロックCK1)と基準クロックCK2との位相差をカウンタ43のカウント値から求め、その位相差を制御するための制御値C2を位相制御部33で生成し、制御値C2に対するローパスフィルタ処理を行ってカウンタ43の目標カウント値(基準クロックCK2の出力タイミングを規定する値)をフィルタ演算部34で求めるようにしている。このため、絶縁回路23aを介して接続され、基準クロックCK1で前処理のタイミングが規定される信号処理回路22と、基準クロックCK2で後処理のタイミングが規定される流量演算部32とを高精度に同期させることができる。
【0046】
また、本実施形態では、フィルタ演算部34が位相制御部33からの制御値C2に対してローパスフィルタ処理を行ってカウンタ43に設定すべき目標カウント値を求めている。このため、絶縁回路23bからの基準クロックCK11にノイズが混入し、或いは欠落が生じていたとしても、同期回路26で生成される基準クロックCK2は基準クロックCK11と同様のノイズ混入や欠落が生じたものとはならないため、基準クロックCK11と基準クロックCK2との同期精度を大幅に損ねることはない。
【0047】
〈第1変形例〉
図5は、本発明の第1実施形態によるフィールド機器の第1変形例を説明するための図であって、(a)は本変形例で用いられる位相制御部の入出力関係を示す図であり、(b)は本変形例におけるフィールド機器の動作を説明するためのタイミングチャートである。
図2に示す入出力関係を有する位相制御部33は、同期回路26から出力されるカウント値C1の各々に対して互いに異なる制御値C2を出力するものであった。これに対し、本変形例では、同期回路26から出力されるカウント値C1が、予め設定されたマスク範囲(
図5(a)に示す範囲R)内の値である場合に、カウント値C1をマスクして制御値C2を出力しないものを位相制御部33として用いている。
【0048】
フィールド機器が正常に動作している定常状態では、基準クロックCK1と基準クロックCK2とは位相がほぼ一致しているため、同期回路26から出力されるカウント値C1は殆ど「0」又は「k」に近い値になる。このため、カウント値C1の値が、「0」又は「k」から大幅にずれている場合には、ノイズの影響によるものであると考えることができる。そこで、本変形例では、
図5(a)に示す通り、同期回路26から出力されるカウント値C1が「0」又は「k」に近い値である場合には制御値C2を出力し、カウント値C1がマスク範囲R内の値である場合にはカウント値C1をマスクして制御値C2を出力しないものを位相制御部33として用いている。
【0049】
ここで、
図5(b)に示す通り、ノイズQ11,Q12が重畳された基準クロックCK11(絶縁回路23bを介した基準クロックCK1)が同期回路26に入力された場合を考える。基準クロックCK11に重畳されたノイズQ11,Q12によって割込制御部41からは割込信号IP1がそれぞれ出力され、同期回路26からCPU24の位相制御部33に対し、各々の割込信号IP1が出力された時点におけるカウンタ43のカウント値がカウント値C1としてそれぞれ出力される。
【0050】
図5(b)に示す通り、基準クロックCK11に重畳されたノイズQ11は、基準クロックCK11の立ち下がりエッジから離れた部分に現れているため、ノイズQ11に起因して同期回路26から位相制御部33に出力されるカウント値C1は、位相制御部33に設定されたマスク範囲R内の値になる。これにより、位相制御部33のマスクが「有効」になってカウント値C1がマスクされ、位相制御部33からは制御値C2は出力されない。つまり、フィールド機器1の動作がノイズQ11に全く影響されない。
【0051】
これに対し、基準クロックCK11に重畳されたノイズQ12は、基準クロックCK11の立ち下がりエッジに近い部分に現れているため、ノイズQ11に起因して同期回路26から位相制御部33に出力されるカウント値C1は、位相制御部33に設定されたマスク範囲R外の値になる。これにより、位相制御部33のマスクが「無効」になってカウント値C1がマスクされず、位相制御部33からはカウント値C1に応じた制御値C2が出力される。ここで、フィールド機器1の動作はノイズQ12によって多少の影響を受けるものの、基準クロックCK11と基準クロックCK2との同期精度を大幅に損ねることはない。
【0052】
以上の通り、本変形例では、同期回路26から出力されるカウント値C1が「0」又は「k」に近い値である場合には制御値C2を出力し、カウント値C1がマスク範囲R内の値である場合にはカウント値C1をマスクして制御値C2を出力しないものを位相制御部33として用いている。このため、基準クロックCK1で前処理のタイミングが規定される信号処理回路22と、基準クロックCK2で後処理のタイミングが規定される流量演算部32とをより安定して同期させることができる。
【0053】
〈第2変形例〉
図6,
図7は、本発明の第1実施形態によるフィールド機器の第2変形例を説明するための図であって、(a)は本変形例で用いられる位相制御部の入出力関係を示す図であり、(b)は本変形例におけるフィールド機器の動作を説明するためのタイミングチャートである。
図2に示す入出力関係を有する位相制御部33は、基準クロックCK2を基準クロックCK1の位相に一致させる制御を行うものであった。これに対し、本変形例では、基準クロックCK1と基準クロックCK2とを予め規定された位相差にする制御を行うものを位相制御部33として用いている。
【0054】
図6(a)に示す入出力関係を有する位相制御部は、基準クロックCK2の位相を基準クロックCK1よりも進めて基準クロックCK1と基準クロックCK2との位相差をΔ1にする制御を行うものである。この位相制御部は、
図2に示す位相制御部の入出力関係を、基準クロックCK1と基準クロックCK2との位相差Δ1に相当するカウント値M1だけ、いわば横軸右方向にシフトさせた入出力関係を有する。かかる入出力関係を有する位相制御部を用いることにより、
図6(b)に示す通り、位相差Δ1の分だけ基準クロックCK2の位相が進んだ状態で、基準クロックCK1と基準クロックCK2とを同期させることができる。
【0055】
図7(a)に示す入出力関係を有する位相制御部は、基準クロックCK2の位相を基準クロックCK1よりも遅らせて基準クロックCK1と基準クロックCK2との位相差をΔ2にする制御を行うものである。この位相制御部は、
図2に示す位相制御部の入出力関係を、基準クロックCK1と基準クロックCK2との位相差Δ2に相当するカウント値M2だけ、いわば横軸左方向にシフトさせた入出力関係を有する。かかる入出力関係を有する位相制御部を用いることにより、
図7(b)に示す通り、位相差Δ2の分だけ基準クロックCK2の位相が遅れた状態で、基準クロックCK1と基準クロックCK2とを同期させることができる。
【0056】
〔第2実施形態〕
図8は、本発明の第2実施形態によるフィールド機器の要部構成を示すブロック図である。尚、
図8においては、
図1に示したブロックと同じブロックについては同一の符号を付してある。
図8に示す通り、本実施形態のフィールド機器2は、
図1に示すフィールド機器1が備えるCPU24に起動制御部51を新たに実現した構成である。尚、この起動制御部51も、CPU24が不図示のメモリに格納されているプログラムを読み出して実行することによって実現される。
【0057】
前述した第1実施形態のフィールド機器1は、基準クロックCK1と基準クロックCK2との位相を徐々に一致させて基準クロックCK1と基準クロックCK2とを同期させるものであった。このフィールド機器1は、電源投入時(起動時)に基準クロックCK1と基準クロックCK2との位相が大幅にずれていると、基準クロックCK1と基準クロックCK2との位相が一致するまで(起動するまで)に長時間を要する。本実施形態のフィールド機器2は、起動に要する時間を短縮するものである。
【0058】
起動制御部51は、基準クロックCK11(絶縁回路23bを介した基準クロックCK1)が入力されたときのカウンタ43のカウント値C1(第1計数値)と、次に基準クロックCK11が入力されたときのカウンタ43のカウント値C1(第2計数値)との差を求める。そして、この差が予め規定された閾値よりも小さい場合に、後者のカウント値C1を目標カウント値として同期回路26のレジスタ42aに出力する制御を行うものである。尚、後者のカウント値C1に代えて前者のカウント値C1を目標カウント値として出力しても良い。
【0059】
ここで、タイマ25は、基準クロックCK1を生成するために水晶振動子、セラミック振動子、その他の振動子を備える。一般的な水晶振動子の精度は、100ppm(0.01%)以下である。フィールド機器2の起動時における基準クロックCK1と基準クロックCK2との位相差は不定であるが、水晶振動子を備えるタイマ25を用いた場合には、0.02%以下の精度で周期が一致する。このため、起動制御部51で用いられる上記の閾値は、レジスタ42bに保持される目標カウント値の初期値、タイマ25に設けられる水晶振動子の精度、マージン等を考慮して設定される。
【0060】
次に、上記構成におけるフィールド機器2の動作について説明する。
図9は、本発明の第2実施形態によるフィールド機器の動作を説明するためのタイミングチャートである。フィールド機器2が起動されると、まず起動制御部51から同期回路26のレジスタ42aに対し、基準クロックCK2の周期を基準クロックCK1の周期と等しくさせるための初期値「Ninit」が出力される。この初期値「Ninit」は、カウンタ43のカウントが終了した時点で目標カウント値として同期回路26のレジスタ42bに設定され、これによりカウンタ43によるカウントが開始される(時刻t21)。
【0061】
カウンタ43のカウントが行われている最中に基準クロックCK11が入力されると、同期回路26の割込制御部41から割込信号IP1が出力され、割込信号IP1が出力された時点におけるカウンタ43のカウント値(ここでは「N1」とする)がカウント値C1としてCPU24の起動制御部51に入力される(時刻t22)。カウンタ43が上記の初期値「Ninit」のカウントを終えると、起動制御部51から出力されて同期回路26のレジスタ42aに保持された初期値「Ninit」がレジスタ42bに取り込まれて、カウンタ43によるカウントが開始される(時刻t23)。
【0062】
カウンタ43のカウントが行われている最中に基準クロックCK11が再び入力されると、同期回路26の割込制御部41から割込信号IP1が出力され、割込信号IP1が出力された時点におけるカウンタ43のカウント値(ここでは「N2」とする)がカウント値C1としてCPU24の起動制御部51に入力される(時刻t24)。すると、起動制御部51において、入力された2つのカウント値C1(時刻t22で入力されたカウント値「N1」、及び時刻t24で入力されたカウント値「N2」)の差が求められ、この差が予め規定された閾値よりも小さいか否かが判断される。
【0063】
ここで、上記のカウント値「N1」,「N2」の差が上記の閾値よりも小さいと判断した場合には、起動制御部51は、時刻t24で入力されたカウント値「N2」をレジスタ42aに出力する。尚、上記のカウント値「N1」,「N2」の差が上記の閾値以上であると判断した場合には、起動制御部51は、上記の初期値「Ninit」をレジスタ42aに出力する。
【0064】
カウント値「N1」,「N2」の差が上記の閾値よりも小さいと起動制御部51で判断された場合において、カウンタ43が上記の初期値「Ninit」のカウントを終えると、レジスタ42aに保持された値「N2」がレジスタ42bに取り込まれて、カウンタ43によるカウントが開始される(時刻t25)。ここで、上記の値「N2」は、基準クロックCK11と基準クロックCK2との位相差を示すものであるため、カウンタ43が値「N2」をカウントすれば、カウントが終了した時点でカウンタ43から出力される基準クロックCK2と基準クロックCK11とは位相がほぼ一致することになる(時刻t26)。基準クロックKC11と基準クロックCK2との位相がほぼ一致すると、位相制御部33による通常の制御(第1実施形態で説明した制御)が行われる。
【0065】
図10は、本発明の第2実施形態において起動時にノイズ混入等が生じた場合の動作を示すタイミングチャートであって、(a)は基準クロックにノイズが混入した場合の動作を示すものであり、(b)は基準クロックの欠落が生じた場合の動作を示すものである。
図10(a)に示す例では、時刻t32において基準クロックCK11にノイズQ21が重畳されており、
図10(b)に示す例では、時刻t42において基準クロックCK11の欠落Q22が生じている。
【0066】
図10(a)に示す通り、レジスタ42aに保持される目標カウント値が値「Ninit」に固定されている間は、カウンタ43は、値「Ninit」を繰り返しカウントすることになる。また、基準クロックCK1は、一定の周期でタイマ25から出力される。このため、基準クロックCK1から生成される基準クロックCK11にノイズQ21が重畳されていなければ、基準クロックCK11が入力される度に起動制御部51に入力されるカウント値C1はほぼ同じ値になる。具体的には、
図10(a)中の時刻t31で入力されるカウント値「N1」、時刻t33で入力されるカウント値「N3」、及び時刻t34で入力されるカウント値「N4」はほぼ同じ値になる。
【0067】
これに対し、基準クロックCK11に重畳されたノイズQ21に起因して時刻t32で入力されるカウント値「N2」は、上記のカウント値「N1」,「N3」,「N4」とは大きく異なるものになる。このため、起動制御部51では、カウント値「N1」,「N2」の差、及びカウント値「N2」,「N3」の差は閾値以上であると判断されるものの、カウント値「N3」,「N4」の差は閾値よりも小さいと判断される。これにより、起動制御部51から同期回路26のレジスタ42aに対して値「N4」が出力されて、時刻t35においてレジスタ42bに目標カウント値として取り込まれる。このように、ノイズQ21が重畳された基準クロックCK11が起動時に入力された場合であっても、フィールド機器2の起動に要する時間を短縮することができる。
【0068】
図10(b)に示す通り、基準クロックCK11の欠落Q22が生じていない時刻t41及び時刻t43では、基準クロックCK11が入力される時点におけるカウンタ43のカウント値がカウント値C1として起動制御部51にそれぞれ入力される。これに対し、基準クロックCK11の欠落Q22が生じている時刻t42では、カウント値C1が起動制御部51に入力されない。このため、起動制御部51では、時刻t41で入力されたカウント値「N1」と、時刻t43で入力されたカウント値「N2」との差が閾値よりも小さいかが判断される。
【0069】
このカウント値「N1」,「N2」の差が閾値よりも小さいと判断された場合には、起動制御部51から同期回路26のレジスタ42aに対して値「N2」が出力されて、時刻t44においてレジスタ42bに目標カウント値として取り込まれる。このように、欠落が生じている基準クロックCK11が起動時に入力された場合であっても、フィールド機器2の起動に要する時間を短縮することができる。
【0070】
以上の通り、本実施形態では、起動制御部51が、基準クロックCK11が入力されたときのカウンタ43のカウント値C1と、次に基準クロックCK11が入力されたときのカウンタ43のカウント値C1との差を求め、この差が予め規定された閾値よりも小さい場合に、後者のカウント値C1を目標カウント値に設定している。このため、起動時に基準クロックCK1と基準クロックCK2との位相が大幅にずれていても起動に要する時間を短縮することができる。また、ノイズが重畳された基準クロックや欠落が生じている基準クロックが起動時に同期回路26に入力されたとしても、起動に要する時間を短縮することができる。
【0071】
尚、上述した第2実施形態では、基準クロックCK11が入力されたときに得られる2つのカウント値C1の差が閾値よりも小さいか否かを判断して起動制御を行う起動制御部51を例に挙げて説明した。しかしながら、起動制御部51は、閾値を用いずに、3つ以上のカウント値C1を比較し、その比較結果に基づいて起動制御を行うものであっても良い。例えば、
図10(a)に示す例において、カウント値「N1」,「N2」,「N3」のうち、カウント値「N1」,「N3」はほぼ同じ値であるが、カウント値「N2」はカウント値「N1」,「N3」とは大きく異なる値である。このため、カウント値「N2」を省いてカウント値「N1」,「N3」を用いて起動制御を行っても良い。
【0072】
〔第3実施形態〕
図11は、本発明の第3実施形態によるフィールド機器の要部構成を示すブロック図である。尚、
図11においては、
図1,
図8に示したブロックと同じブロックについては同一の符号を付してある。
図11に示す通り、本実施形態のフィールド機器3は、
図1に示すフィールド機器1が備える絶縁回路23bを省略し、一端がCPU24に接続されて他端が絶縁回路23bに接続されたシリアルバスに同期回路26を接続している。
【0073】
尚、フィールド機器3は、
図1に示す信号処理回路22及び割込制御部41に代えて信号処理回路61及び割込制御部63をそれぞれ備えており、CPU24に判定部62を新たに実現している。この判定部62は、CPU24が不図示のメモリに格納されているプログラムを読み出して実行することによって実現されるものである。
【0074】
前述した第1,第2実施形態のフィールド機器1,2は、信号処理回路22とCPU24との間を絶縁回路23aで絶縁し、タイマ25と同期回路26との間を絶縁回路23bで絶縁するものであった。本実施形態のフィールド機器3は、絶縁回路23bを省略するとともに、信号処理回路22に代えて設けられた信号処理回路61とCPU24とを接続するシリアルバスに同期回路26を接続することにより、コストを低減するとともに信号線の数を減らすものである。
【0075】
信号処理回路61は、
図1,
図8に示す信号処理回路22と同様に、ADC21から出力される信号に対し、タイマ25からの基準クロックCK1が入力されるタイミングで流体の流量を求める上で必要となる前処理を行う。これに加えて、信号処理回路61は、タイマ25からの基準クロックCK1のタイミングを示すデータであって同期回路26に送信すべきデータ(以下、「同期データ」という)と、前処理の処理結果を示すデータであってCPU24に送信すべきデータ(以下、「前処理データ」という)とを生成する処理を行う。
【0076】
図12は、本発明の第3実施形態において信号処理回路で授受されるデータのフォーマットを示す図である。
図13に示す通り、信号処理回路61は、1ビットのスタートビットB1、8ビットのデータビットB2、1ビットのパリティビットB3、及び1ビットのストップビットB4からなる計11ビットのデータを単位として絶縁回路23aを介したデータの授受を行う。
【0077】
ここで、信号処理回路61で授受されるデータは、
図12に示す通り、データの先頭部分にスタートビットB1が配置されるため、データの先頭部分において必ず立ち下がることになる。信号処理回路61は、このスタートビットB1の性質を利用して、上記の同期データを生成する。具体的には、スタートビットB1と、予め規定された特定の値が設定されたデータビットB2と、パリティビットB3と、ストップビットB4とからなる11ビットのデータを同期データとして生成する。
【0078】
また、信号処理回路61は、上記の前処理データとして、前処理の前処理結果を示すデータに対して前処理データであることを示す識別データが付加されたものを生成する。具体的には、前処理の前処理結果を示すデータの前に、スタートビットB1と、同期データのデータビットB2に設定された値とは異なる特定の値が設定されたデータビットB2と、パリティビットB3と、ストップビットB4とからなる11ビットの識別データが付加された前処理データを生成する。
【0079】
図13は、本発明の第3実施形態において信号処理部から送信される同期データ及び前処理データを模式的に示す図である。尚、
図13では、理解を容易にするために、同期データD1を「A」で示しており、前処理データD2を「B」及び「Data」で示している。ここで、前処理データD2の「B」は識別データD21を示しており、「Data」は前処理の処理結果を示すデータD22を示している。
【0080】
信号処理回路61は、タイマ25の基準クロックCK1が入力されるタイミングで前処理を行い、基準クロックCK1が入力されたタイミングから一定時間だけ遅延したタイミングで同期データD1(基準クロックCK1と同期した同期データD1)を送信する。但し、基準クロックCK1が信号処理回路61に入力されてから前処理が完了するまでにはある程度の処理時間を要し、しかもこの処理時間にはバラツキがあることがある。このため、信号処理回路61は、基準クロックCK1が入力されてから上記のバラツキのある処理時間が経過したタイミングで前処理データD2を送信する。
【0081】
判定部62は、信号処理回路61から送信されて通信部31で受信されたデータが、同期データD1であるか前処理データD2であるかを判定する。通信部31で受信されたデータが前処理データD2であると判定した場合には、判定部62は前処理データD2の一部をなす前処理の処理結果を示すデータD22を流量演算部32に出力する。この、判定部62の判定結果は、割込解除信号IP2の出力制御にも用いられる。
【0082】
割込制御部63は、信号処理回路61からの同期データD1に基づいてCPU24に対する割り込み制御を行う。具体的に、割込制御部63は、信号処理回路61からの同期データD1及び前処理データD2を受信したタイミング(スタートビットB1の立ち下がりのタイミング)で、CPU24に対して割込信号IP1をそれぞれ出力する。そして、CPU24から割込解除信号IP2が出力されるまでの間、基準クロックCK11による割り込みを禁止する。
【0083】
次に、上記構成におけるフィールド機器3の動作について説明する。
図14は、本発明の第3実施形態によるフィールド機器の動作を説明するためのタイミングチャートである。まず、第1実施形態と同様に、信号処理部12に設けられたCPU24によって検出部11が制御されて配管を流れる流体の検出が行われ、信号処理回路61においてタイマ25からの基準クロックCK1が入力されるタイミングで検出部11からの検出信号S1に対する前処理が行われる。
【0084】
ここで、上記の信号処理回路61に対する基準クロックCK1の入力タイミングが
図14中の時刻t51であるとする。すると、信号処理回路61から同期データD1(
図14中の「A」)が通信信号RXとして送信され、CPU24の通信部31及び同期回路26の割込制御部63でそれぞれ受信される。CPU24の通信部31で受信された通信信号RXは、判定部62において同期データD1であると判定される。
【0085】
また、同期回路26の割込制御部63で同期データD1が受信されると、割込制御部63からCPU24に対して割込信号IP1が出力され、割込信号IP1が出力された時点におけるカウンタ43のカウント値がレジスタ44に保持されるとともにカウント値C1としてCPU24に出力される。尚、割込信号IP1を出力すると、割込制御部63は、割り込みを禁止する状態になり、CPU24は、判定部62における判定結果に基づいて、同期データD1の受信が完了した後に割込解除信号IP2を出力する。
【0086】
同期回路26からのカウント値C1がCPU24に入力されると、第1実施形態と同様に、位相制御部33からはカウント値C1に応じた制御値C2が出力され、フィルタ演算部34において制御値C2に対するフィルタ処理が行われる。このフィルタ処理によって得られた値は、同期回路26のレジスタ42aに一時的に保持される。
図14に示す例では、値「N3」がレジスタ42aに保持される。
【0087】
次に、時刻t51(信号処理回路61から同期データD1が出力された時刻)から前処理の処理時間が経過した時刻t52になると、信号処理回路61から前処理データD2(
図14中の「B」及び「Data」)が通信信号RXとして送信され、CPU24の通信部31及び同期回路26の割込制御部63でそれぞれ受信される。CPU24の通信部31で受信された通信信号RXは、判定部62に出力されて前処理データD2であると判定され、前処理の処理結果を示すデータ「Data」が流量演算部32に出力される。
【0088】
また、同期回路26の割込制御部63で前処理データD2が受信されると、割込制御部63からCPU24に対して割込信号IP1が出力され、割込信号IP1が出力された時点におけるカウンタ43のカウント値がレジスタ44に保持されるとともにカウント値C1としてCPU24に出力される。尚、割込信号IP1を出力すると、割込制御部63は、割り込みを禁止する状態になり、CPU24は、判定部62における判定結果に基づいて、前処理データD2の受信が完了した後に割込解除信号IP2を出力する。
【0089】
ここで、同期データD1が同期回路26に入力された場合と同様に、前処理データD2が同期回路26に入力された場合にも、同期回路26からのカウント値C1(時刻t52におけるカウント値)がCPU24に入力される。但し、時刻t52で受信された通信信号RXは前処理データD2であるとCPU24の判定部62で判定されているため、位相制御部33からの制御値C2(時刻t52で同期回路26から出力されたカウント値C1に応じた制御値C2)の出力は行われない。
【0090】
いま、時刻t53において、カウンタ43がレジスタ42bに保持された目標カウント値(
図14に示す例では、値「N2」)のカウントを終了したとすると、カウンタ43からCPU24に対して基準クロックCK2が出力される。この基準クロックCK2がCPU24に入力されると、流量演算部32で後処理が行われて流体の流量が求められ、流量演算部32から出力部13に対して流量信号S2が出力される。この流量信号S2は出力部13においてアナログ信号に変換されて、測定信号S3としてアナログ伝送線に出力される。
【0091】
また、基準クロックCK2がカウンタ43から出力されると、レジスタ42aに保持されている値(
図14に示す例では、値「N3」)がレジスタ42bに取り込まれて保持される。そして、カウンタ43のカウント値がクリアされ、カウンタ43でレジスタ42bに保持された目標カウント値「N3」をカウントする動作が開始される。以下、第1実施形態と同様に、同期回路26において基準クロックCK2の周期を調整する制御が繰り返し行われることによって、基準クロックCK2の位相は基準クロックCK11の位相に徐々に一致する。
【0092】
以上の通り、本実施形態では、基準クロックCK1のタイミングで信号処理回路61から出力された同期データD1と基準クロックCK2との位相差をカウンタ43のカウント値から求め、その位相差を制御するための制御値C2を位相制御部33で生成し、制御値C2に対するローパスフィルタ処理を行ってカウンタ43の目標カウント値(基準クロックCK2の出力タイミングを規定する値)をフィルタ演算部34で求めるようにしている。このため、基準クロックCK1で前処理のタイミングが規定される信号処理回路61と、基準クロックCK2で後処理のタイミングが規定される流量演算部32とを高精度に同期させることができる。
【0093】
また、本実施形態では、
図1に示すフィールド機器1が備える絶縁回路23bを省略するとともに、CPU24と絶縁回路23bとを接続するシリアルバスに同期回路26を接続し、信号処理回路61から絶縁回路23aを介してCPU24及び同期回路26に対し、同期データD1と前処理データD2とを送信している。このため、コストを低減することができるとともに、信号線の数を減らすことができる。
【0094】
〈第1変形例〉
図15は、本発明の第3実施形態によるフィールド機器の第1変形例を説明するためのタイミングチャートである。上述した実施形態によるフィールド機器3では、信号処理回路61から送信された同期データD1を受信した場合、及び前処理データD2を受信した場合の何れの場合にも、同期回路26の割込制御部63からCPU24に対して割込信号IP1が出力されていた。CPU24に対する割り込みが多くなると、負荷が増えてCPU24の処理能力の低下に繋がる。本変形例は、CPU24に対する割り込みを低減して、CPU24の処理能力の低下を防止するものである。
【0095】
具体的に、本変形例では、基準クロックCK2の位相を基準クロックCK1よりも進め、基準クロックCK2が入力された場合に割り込みを許可し、同期データD1(
図14中の「A」)が入力された場合に割り込みを禁止することによって、CPU24に対する割り込みを低減している。つまり、
図6(a)に示す入出力関係を有する位相制御部を位相制御部33として用い、
図6(b)を用いて説明した第1実施形態の第2変形例と同様に、基準クロックCK2の位相を基準クロックCK1よりも進めている。そして、CPU24から出力される割込解除信号IP2に代えて基準クロックCK2を割り込み制御部63に入力している。
【0096】
これにより、
図15に示す通り、時刻t61において信号処理回路61からの同期データD1が同期回路26の割込制御部63で受信されると、割込制御部63からCPU24に対して割込信号IP1が出力されて、割込制御部63がCPU24に対する割り込みを禁止する状態になる。これにより、信号処理回路61からの前処理データD2(
図15中の「B」及び「Data」)が同期回路26の割込制御部63で受信されても割込制御部63からCPU24に対する割込信号IP1は出力されない。そして、その後の時刻t62において、基準クロックCK2が同期回路26から出力されると、割り込み制御部63が割り込みを許可する状態になる。
【0097】
ここで、基準クロックCK1に対する基準クロックCK2の位相を進め過ぎると、信号処理回路61からの前処理データD2(正確には、前処理の処理結果を示すデータ「Data」)が流量演算部32に入力されるタイミングと、同期回路26から基準クロックCK2が出力されるタイミングとが重なってしまい、正常な演算が行われない可能性がある。このため、基準クロックCK1に対する基準クロックCK2の位相は、信号処理回路61からの前処理データD2が流量演算部32に入力されるタイミングと重ならない範囲にする必要がある。
【0098】
〈第2変形例〉
図16は、本発明の第3実施形態によるフィールド機器の第2変形例を説明するためのタイミングチャートである。上述した実施形態によるフィールド機器3では、信号処理回路61からCPU24及び同期回路26に対して一定の時間間隔をもって同期データD1が送信されていた。信号処理回路61における処理時間のバラツキが十分小さい場合には同期データD1は不要である。本変形では、同期データD1と前処理データD2の識別データD21とを省略し、信号処理回路61からCPU24及び同期回路26に対して前処理の処理結果を示すデータ「Data」のみを送信するものである。
【0099】
図16に示す通り、信号処理回路61は、基準クロックCK1が入力されるタイミング(時刻t71,t73,t75)から前処理に要する一定時間だけ遅れたタイミング(時刻t72,t74,t76)で前処理の処理結果を示すデータ「Data」をそれぞれ送信する。そして、割込制御部63は、前処理の処理結果を示すデータ「Data」を受信したタイミング(スタートビットB1の立ち下がりのタイミング)で、CPU24に対して割込信号IP1をそれぞれ出力する。尚、本変形例では、
図11中の判定部62を省略することができる。
【0100】
以上、本発明の実施形態による同期装置及びフィールド機器について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上述した第1〜第3実施形態では、同期回路26に設けられるカウンタ43が、初期値「0」からカウント値を順次インクリメントして目標カウント値までカウントするアップカウンタである場合を例に挙げて説明した。しかしながら、カウンタ43は、目標カウント値を初期値とし、カウント値を順次デクリメントして値「0」までカウントするダウンカウンタであっても良い。
【0101】
カウンタ43としてダウンカウンタを用いる場合には、位相制御部33として、いわば
図2に示す横軸を反転させた入出力関係を有するものを用いる必要がある。つまり、同期回路26から出力されるカウント値C1が「0」,「k」である場合には値が「k」になる点は
図2に示すものと同じであるが、カウント値C1が「0」から「k/2」の間はカウント値C1が大きくなるにつれて値が徐々に小さくなる制御値C2を出力し、カウント値C1が「k」から「k/2」の間はカウント値C1が小さくなるにつれて値が徐々に大きくなる制御値C2を出力するものを用いる必要がある。
【0102】
また、上記第1〜第3実施形態では、絶縁回路23aを介して接続され、基準クロックCK1で前処理のタイミングが規定される1つの信号処理回路22(信号処理回路61)と、基準クロックCK2で後処理のタイミングが規定される1つの流量演算部32と同期させる例について説明した。しかしながら、本発明は、1つの信号処理回路22(信号処理回路61)に対して複数の流量演算部32を並列に接続し、信号処理回路22(信号処理回路61)と複数の流量演算部32とを同期させることもできる。
【0103】
また、上記実施形態では、位相制御部33及びフィルタ演算部34は、CPU24がプログラムを実行することによってソフトウェア的に実現されるものであるものとして説明した。しかしながら、これら位相制御部33及びフィルタ演算部34は、同期回路26内にハードウェアによって実現されていても良い。
【0104】
更に、上記実施形態では、フィールド機器に設けられた信号処理回路22(信号処理回路61)と流量演算部32とを同期させる例について説明した。しかしながら、本発明の同期装置は、フィールド機器に設けられた信号処理回路22(信号処理回路61)と流量演算部32とを同期させる場合に限られず、入力信号の前処理を行う第1処理部と、第1処理部からの信号に対して後処理を行う第2処理部とを同期させる場合一般について適用可能である。ここで、上記の第1,第2処理部は、上述した実施形態のように絶縁回路を介して接続されていても良く、ノイズの重畳や信号の欠落が生じ得る伝送線路等の接続線を介して接続されていても良い。