メインコンテンツまでスキップ

計算式の適用

英語名称ではフォーミュラ (Formula) とも呼ばれます。

PLCが送ってくるraw値をそのまま使わず、単位変換 / ゼロ点補正 / スケール調整を行いたいときに使用します。

よくある事例:

  • 圧力センサーが整数 1638 を送ってくるが、実際は 163.8 kPa の場合 → ${VALUE}*0.1
  • 摂氏 → 華氏変換 → ${VALUE}*1.8+32
  • mV → V変換 → ${VALUE}/1000

どこに入力しますか​

タグ登録 / 修正フォームの**[計算式]**欄に数式を記述します。登録即時に、次の収集サイクルから変換された値が画面に表示されます。

  • 空欄の場合はraw値がそのまま使用されます。
  • 一度入力しておけば、以降の収集ごとに自動適用されます。

基本の使い方​

${VALUE} はPLCから読み取ったばかりのraw値を意味します。

したいこと計算式入力 → 出力
そのまま使う(空欄)100 → 100
10倍にする${VALUE}*105 → 50
10分の1にする (整数→小数)${VALUE}*0.11638 → 163.8
1000で割る (mV → V)${VALUE}/10003300 → 3.3
加算 (摂氏 → ケルビン)${VALUE}+273.1525 → 298.15
減算 (ゼロ点補正)${VALUE}-1001024 → 924
華氏変換${VALUE}*1.8+3225 → 77.0
二乗${VALUE}*${VALUE} または ${VALUE}^25 → 25
平方根sqrt(${VALUE})144 → 12.0
毎分回転数 → Hz${VALUE}/601800 → 30.0

他のタグの値を参照​

他のタグの最後の値を ${태그ID} 形式で取得できます。ゼロ点値を別タグで管理したり、補正係数を別に持つパターンで便利です。

したいこと計算式
他のタグをゼロ点として減算${VALUE}-${TAG_ZERO}
2つのタグを合算${VALUE}+${TAG_OFFSET}
補正 (gain × x + offset)${VALUE}*${TAG_GAIN}+${TAG_OFFSET}

ここで TAG_ZERO、TAG_OFFSET、TAG_GAIN は他のタグのタグIDです。事前に別タグとして登録されている必要があります。

参照タグがまだない場合

${TAG_ZERO} と記述したが、そのタグが一度も収集されたことがない場合、計算は失敗します(該当タグの状態に「計算式変数値なし」というエラー)。ゲートウェイが一度動作すれば自動的に正常化されるので、少し待ってください。


使用可能な関数​

四則演算だけでなく、よく使う数学関数も使用できます。

種類表記例
四則演算+、-、*、/${VALUE}+1
累乗^${VALUE}^2 (= 二乗)
括弧(、)(${VALUE}+10)*2
平方根sqrt(...)sqrt(${VALUE})
立方根cbrt(...)cbrt(${VALUE})
自然対数ln(...)ln(${VALUE})
常用対数 (底10)log(...)log(${VALUE})
サイン/コサイン/タンジェント (ラジアン)sin、cos、tansin(${VALUE})
逆三角関数asin、acos、atanatan(${VALUE})
双曲線関数sinh、cosh、tanhtanh(${VALUE})
定数pi、e${VALUE}*pi/180 (角度 → ラジアン)

度(degree)入力をラジアンに変換するには *pi/180 を掛けてください。例: sin(${VALUE}*pi/180)。


適用されるデータ形式​

計算式は数値型(Float、Double、Integer、Long)タグにのみ適用されます。

  • String、Boolean タグには計算式が無視され、raw値がそのまま出力されます。
  • 補正後の結果が整数範囲を超える場合は、Float または Double にデータ形式を変更してください。

間違えやすいポイント​

誤ったパターンなぜ問題か正しいパターン
VALUE * 0.1${...} 表記の省略${VALUE}*0.1
${VALUE}*0,1カンマ使用 (日本語キーボードのミス)${VALUE}*0.1 (ピリオドを使用)
if(${VALUE}>0, ...)条件文は未対応条件が必要な場合は別システムで処理
${VALUE} & 0xFFビット演算は未対応算術で可能な形式に変更

よくある質問​

Q. 計算式が適用されているかどうか、どう確認しますか?​

タグの[現在値]欄に表示される値が変換後の値です。raw値を確認したい場合は、同じアドレスを計算式なしで別タグとして登録し比較してください。

Q. 単位変換を2種類 (例: 摂氏と華氏) 同時に送りたいです​

同じPLCアドレスを指すタグを2つ作成し、片方はそのまま、もう片方は ${VALUE}*1.8+32 のような変換式を入力すればOKです。

Q. 結果が NaN / Infinity になります​

  • 0で割る場合 → Infinity
  • 負数の平方根 → NaN

PLCのraw値の範囲が想定と異なる可能性が高いです。計算式なしでraw値をまず確認してください。

Q. より複雑な加工が必要です (条件分岐 / 複数変数 / 外部データ)​

計算式だけでは困難です。PlantPulse プラットフォームの後処理段または別のデータ加工ツール (Node-RED など) を併用することをお勧めします。アプリケーション管理 ページの Node-RED 項目を参照してください。

全関数 / 変数リファレンスが必要な場合は、上級 — Formula リファレンス ページを参照してください。