
2023年9月30日
浄水場などで水道水を作る時には様々な薬品を原水に注入しています。こういう書き方だと誤解を招くようですが、生水を消毒したりpH値を調整して使える水に変えているんですよね。
その公式は原水の流量に対して注入率、薬品濃度、薬品比重を掛け合わせて算出します。流量の単位はm3/hで薬品注入ポンプの吐出量はmL/minだったりするので単位の換算なんかも合わせて行います。通常はどの薬品も公式があるのですが、お客様によっては濁度によって薬品の注入量を細かく設定しています。
ご存知かもしれませんが、PLCの除算は整数扱いです。商と余りで答えを返してくるので当然そこは「切り捨て」になってしまいます。電卓叩いた数字とはならないし一般的な認識である「四捨五入」でもありません。
この例に出した浄水場の薬品注入に限らず、PLCの除算が絡む場合の計算は倍精度浮動小数点形式に変換してから演算を行うようにしています。自分自身でHMIを扱う場合にも浮動小数点実数で扱うようにしています。
よく桁を合わせるために100倍して演算して、それを10で割ってというプログラムを見る事がありますが、経験が浅ければ何をしているのか理解に苦しむと思います。