HOME 戻る

計測アナログスケールの設定

 
 
アナログ計測にはA/Dコンバータという装置を用います。
A/Dコンバータは、アナログ電圧を数値に置き換えるというICで弱電素子でもあります。
ですので、どのような電圧でも扱えるという訳にはいきません。
計測しようとするアナログ電圧の幅は、計測対象それぞれで一定ではありません。
ミリボルトを扱う人もいれば、数百数千ボルトのレベルを扱う人もいます。
A/Dコンバータの入力電圧は、装置によって仕様がそれぞれ決められています。
計測する人は、計測出力電圧をこの入力電圧内に納めるよう工夫をしなければなりません。
 
A/Dコンバータに入力された電圧は、比例数値化されます。
どのように数値化されるかは、A/Dコンバータの分解能仕様によります。
10ビットの分解能を持つA/Dコンバータでは、入力電圧を1024分の1に分解します。
(1/1024計測誤差は、約0.1%というところでしょうか)
この場合入力された電圧の数値出力は、0〜1023 の(1024段階数)範囲内となります。
ちなみに12ビットA/Dコンバータの場合は、0〜4095 の範囲内となります。
参考のため弊社製品の分解能は、TK0040Aが10ビット、AK0822Aが12ビットです。
 
弊社製品 TK0040A を用いてアナログ計測した場合、
装置から送られて来るデータは、上記述べた通り 0〜1023 です。
この送られて来たデータは、A/Dコンバータの出力値そのものなので、
実際の単位系にするための数値変換が必要になります。
つまり、スケールリングの演算が必要になるということになります。
 
プログラムS1では、スケール演算を自動的に行ってくれます。
但し、スケールの上下限値は与えてやらねばなりません。
その値の設定に、属性を用いています。
 
スケールに関連した属性には、2種類あります。
表示用のものと通信用のものです。
表示用のスケールは、実際の計測値に合わせる必要がありません。
表示用のスケールは、グラフ表示のスケールを決める為だけのものと考えてください。
計測グラフ値を拡大や縮小させて表示する為のスケールですのでここでは説明を省きます。
プログラムS1では、スケール演算に使う上下限値に通信用に設定されたものを使用しています。
ここに、A/Dコンバータ値0〜1023に対応する、実際の計測単位の上下限値を設定してください。
 
プログラムS1では、スケール演算に以下の式を用いています。 (TK0040Aの場合)
計測値 = ( ( A/D値 / 1023 ) * ( H - L ) ) + L
※A/D値=A/Dコンバータ値(0〜1023)
※H=スケール上限値、L=スケール下限値
 
 

 
 
スケール演算を行う場合、
A/Dコンバータ値を上記の様な単純スケール比例分配計算するだけでは対応できない場合があります。
この場合、希望する計算アルゴリズムをプログラムS1に対し改造できる人は挑戦してみてください。
これが、現在のところ少々無理だなという方には、以下の計算アルゴリズムを試してみてください。
この計算方法のことを、ここでは ABC演算 と呼びます。
ABC演算は、A/Dコンバータ値を一旦 0.0 から 1.0 に正規化してしまいます。
この正規化された数値に対し、任意の値を掛けてオフセットを加えるというものです。
以下、計算式を示します。
※線形のセンサーでは、これで結構いけるかもしれません。
 
X = A/D値 / 1023
計測値 = A * ( X + B ) + C
※X=正規化値(0〜1)
※A=A/D値係数、B=Xのオフセット値、C=全体のオフセット値
 
【使い方】
プログラムS1では、
スケール演算方式の切替えは、ポイントの汎用属性を用いて行います。
ポイント属性ですので、ポイント毎に方式を指定できることになります。
「ポイント属性設定」画面の汎用ボタンを押した画面で設定します。
切替えを行う為の設定属性は、「整数 属性 6 」です。
環境によっては、「0=スケール演算 1=ABC演算」と表示されています。
※環境とは、プログラムS1が実行している場合です。S1が実行時に属性名を変更している為です。
(1)設定値に、0を与えるとスケール演算、1を与えるとABC演算になります。
そして、ABC演算を指定した場合、上記各係数を更に与える必要があります。
その指定に、「実数 属性 1 〜 3 」を用います。
環境によっては、「A:Y={A*(X+B)+C}」等と表示されています。
(2)「実数属性1」或は「A:Y={A*(X+B)+C}」に上記説明の A を設定します。
(2)「実数属性2」或は「B:Y={A*(X+B)+C}」に上記説明の B を設定します。
(2)「実数属性3」或は「C:Y={A*(X+B)+C}」に上記説明の C を設定します。
 
なお、ABC演算を指定した場合、
上下限スケール属性値(通信用)は未使用となり無意味なものになります。(注:表示用は有効)
 
 

 
 
 
 
参考: AD592温度センサ[摂氏-25〜+105℃]を使用した場合の計測スケール設定に関して
A/Dの入力スケールを5V(デフォルト)と設定したTK0040Aを使用して、
温度センサAD592(摂氏-25〜+105℃)の温度電流(248〜378μA[1℃1μA])を、
10KΩの抵抗器で受けて計測した場合の誘起電圧は、2.73+(℃/100) ボルトとなります。
これを、上記「ABC演算」方式で変換する場合のABCの定数は以下の通りです。
A = 500.0
B = 0.0
C = -273.0
※通常手に入る普及版のAD592(AN)の平均的な個体誤差は±1.5℃あります。
  無調整で高い精度(±0.3℃)を求めたい場合、約3倍コスト高のAD592(CN)を求めると良いでしょう。
  普及版AD592(AN)を温度計を用いて校正させられる場合、定数Cの-273.0を誤差分±させ調整してください。
 
 

HOME 戻る