この端末の進捗を読み込んでいます…
PLC Gym
PLC Gym ホームレベル 1, 0 XP · あなたの進捗
ミッション 59 · PRO (Pro が必要)

直近 N 個の読み取り値を平均する: 移動平均の演習

ノイズの多いレベルをなめらかにします。持っている読み取り値だけを平均し、いちばん古いものを捨てます。

SmoothedLevel を、直近 WindowSize 個の Level の読み取り値の平均として求めます。値の番号つきの一覧である REAL の配列に保存します。配列の外に出ない FOR ループで、足し合わせます。Sample が ON の間は、スキャンごとに読み取り値を1つ取ります。ウィンドウがいっぱいになるまでは、N ではなく ValidCount で割ります。Reset が優先され、結果を 0 にします。

このミッションは Pro の一部です無料アカウントを作りましょう。すべてのアカウントに 12月5日 まで Pro 無料体験がつきます。

カード登録不要。支払いなし。解約手続きなし。

Official release: 5 December. 当日ランキング1位になると、Pro 3か月分と、友だちにあげられる Pro 2週間分を獲得できます。2位は4週間分、3位は2週間分です。 ルール

  • ゼロから始める、すべてのレッスン
  • レベルアップに合わせて、すべてのミッションとレッスン
  • 称号ごとの実技テストと、認定証
  • どのテストも、1スキャンずつ巻き戻し
  • 行き詰まったときの、解説付きの解答
  • コード変換ツールを好きなだけ
このミッションが動く3DプロセスタンクPRO (Pro が必要) ミッション
テストの進み方

ウォームアップでは、有効な読み取り値だけを使う

テスト 1 / 11
テストが設定テストがチェックステップ 18/18 · 360 ms
Level
上級
時間
概要 25 分
報酬
+450 XP
設備
3D のプロセスタンク
Siemens のエディタ
SCL
Rockwell のエディタ
ストラクチャードテキスト
Beckhoff のエディタ
ストラクチャードテキスト
ステージ
18. 最新の読み値を保つ
必要な動作

直近 N 個の読み取り値を平均する: コードがしなければならないこと

ノイズの多いレベルの読み取り値は、あちこちに跳ねます。なめらかにすると、あとのロジックが、細かいちらつきのたびに反応しなくなります。「トレンド」には、Level と SmoothedLevel が、スキャンごとに並んで表示されます。あなたのフィルタは、あとのロジックのための数値を求めるだけで、ポンプやバルブは切り替えません。

サンプルとウィンドウの大きさ
Reset の前に、WindowSize を1から8の整数に設定します。バッチの間は、同じ値のままにします。Sample が ON なら、スキャンごとに Level の読み取り値を1つ取ります。Sample が OFF なら、SmoothedLevel と ValidCount はそのままにします。
いっぱいになるまでと、一周するとき
保存した読み取り値が N 個より少ないときは、あるものだけを平均します。いっぱいになったら、最新の N 個を平均します。ValidCount は、保存した数で、最大 N です。小数点以下の桁は保ちます。バッファの作り方は、お任せします。
Reset
Reset が ON の間は、Sample が ON でも、毎スキャン SmoothedLevel と ValidCount が 0 です。新しいバッチは、新しい読み取り値だけを使わなければなりません。
タグテーブル

直近 N 個の読み取り値を平均する: 入力と出力

プログラムは 4 個の入力を読み、2 個の出力を設定します。 名前はどのメーカーのエディタでも同じです。

タグデータ型あなたのコード機械の上での意味
ResetBOOL読むコードが必要とする入力リセットボタン
LevelREAL読むコードが必要とする入力タンクのレベル(%)
SampleBOOL読むコードが必要とする入力ON の間、スキャンごとに Level の読み取り値を1つ取ります。
WindowSizeDINT読むコードが必要とする入力平均する読み取り値の数(N)で、1から8です。Reset の前に設定し、バッチの間は変えません。
ValidCountDINT書くコードが設定する出力ここまでに保存した読み取り値の数です。WindowSize を超えることはありません。
SmoothedLevelREAL書くコードが設定する出力直近 N 個の読み取り値の平均(%)です。

Siemens SCL では、TIA Portal と同じように、ブロック自身のタグの前に # をつけて書きます: #Reset. Rockwell と TwinCAT 名前だけを書きます: Reset.

自動テスト

直近 N 個の読み取り値を平均する: テストでチェックする内容

  1. N が1から8のどれでも、いっぱいになるまでの間も、何周もしたあとも、正しく動きます。
  2. Sample が OFF の間は、平均と個数は動きません。Sample を ON にしたままだと、スキャンごとに読み取り値が1つ加わります。
  3. Sample が ON でも、Reset でウィンドウは空になります。読み取り値の小数点以下の桁は保ちます。
  1. 試す モデルの下のボタンを使い、設備の反応を見てください。
  2. 解答をテスト ボタン1つで、すべてのチェックがあなたのコードで実行されます。
  3. 巻き戻し PRO (Pro が必要) 不合格のチェックがあれば、1スキャンずつさかのぼって原因を確かめられます。

このミッションで行き詰まりましたか?こちらでメンバーに聞いてみましょう: ロッカールーム.

なぜ大切か

現場で目にする場面

水面の波立ちで、工場のタンクのレベルの読み値が飛び跳ねます。作業者は、表示でもっと安定した数を見たいのです。

最近のいくつかの読み値を平均すると、波立ちがなめらかになります。空のスロットを数えると、実際より低い読み値になります。古い読み値を長く持ちすぎると、本当の変化が隠れます。

現場で見かける場所飲料を 1 バッチ作る

飲料工場では、バルブが決まった量の水とシロップを混合タンクに入れます。電動ミキサが、それを 1 バッチに混ぜます。そのあと出口バルブが、飲料を貯蔵タンクへ送ります。充填機がそこからボトルに詰めます。

  1. 原料タンク水とシロップを入れておく
  2. ミキシングタンク1 バッチを満たし、混ぜ、測る現在地
  3. 貯蔵タンク完成した飲料をすぐ使える状態で保つ
  4. ボトル充填機飲料をボトルに入れる
実際の現場:場所、部品、安全
  • 飲料工場 — 水とシロップの調合
  • 塗料工場 — 原料を混ぜて均一な色にする
  • 浄水場 — 決まった量の薬品の混合液を準備する
  • 醸造所 — 設備洗浄用のお湯を温める

満杯のタンクは、自分の入口を閉じません。バルブが閉じるまで水が入り続けるので、入口が開いたままだと部屋が水浸しになるおそれがあります。

液体に覆われていないヒーターは、過熱するおそれがあります。本物のタンクには、PLC プログラムとは別に、安全装置もあります。

大きさ、タイミング、断面図は教えるための選択で、特定の実際の設備を描いたものではありません。

さらに続ける

道のりの次の一歩