Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

数学関数

  • Last UpdatedOct 08, 2024
  • 1 minute read

数学関数を使用すると、特定の数学式の答えを返すことができます。

QuickScript では、オペランドのデータ型に関係なく、算術演算の結果は内部で倍精度浮動小数点型として計算されます。除算演算の結果は、精度を維持するために標準の数学規則に従って常に丸められます。丸め処理は中間値ではなく最終結果でのみ行われ、商はターゲット データ型に一致します。これは SCADA および DCS システムの標準の方法で、これらのシステムで必要なデータの整合性、精度維持、タイムスタンプ、および全体的なデータ品質反映と集計を提供します。

最終結果だけでなく各ステップで丸め処理を行う場合、QuickScript for .NET ライブラリに組み込まれているサポートを活用し、System.Math.Floor および System.Math.Round メソッドを使用して中間ステップで明示的に丸め処理を行うことができます。例として、以下のスクリプトを考えてみます。

整数で配当を暗くします。
整数で2割り切ります。
整数として暗い商;
剰余を整数で暗くします。
配当金=8;
除数=3;
LogMessage(「配当金の値=+配当金」);
LogMessage("divisorの値="+divisor);
商=配当/除数。
LogMessage("商の値="+商);
剰余=配当モッズ割り算;
LogMessage("valueof剰余="+剰余);
配当金=除数*商+剰余;
LogMessage(「配当金の値=」+配当);

結果は、8/3=3になります。

余りをドロップする場合(最終結果を最近似の整数に丸めない場合)、Math.Floor メソッドへの呼び出しを追加して、以下のスクリプトを使用できます。

整数で配当を暗くします。
整数で2割り切ります。
整数として暗い商;
剰余を整数で暗くします。
配当金=8;
除数=3;
LogMessage(「配当金の値=+配当金」);
LogMessage("divisorの値="+divisor);

// *** Math.Floor への呼び出しを追加内部の倍精度浮動小数点型の結果を整数に丸めるのではなく、余りがドロップされます。
quotient = System.Math.Floor(dividend/divisor);

LogMessage("Value of quotient = " + quotient);
remainder = dividend mod divisor;
LogMessage ("Value of remainder = " + remainder);
dividend = divisor*quotient +remainder;
LogMessage ("Value of dividend = " + dividend);

結果は、8/3=2になります(剰余2)