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

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

ノイズの多いレベルをなめらかにします。読み取り値を4つ持ち、新しいものが来るたびに、いちばん古いものと入れ替えます。

SmoothedLevel を、直近4個の Level の読み取り値の平均として求めます。Readings という、スロットが0から3の4つある REAL の配列に保存します。Sample が ON の間は、スキャンごとに読み取り値を1つ取ります。それを WriteIndex が指すスロットに入れ、そのあと WriteIndex を1つ進めます。スロット3の次は、WriteIndex を0に戻します。こうすると、最新の読み取り値が、いちばん古いものと入れ替わります。4つのスロットを FOR ループで足し合わせ、4で割ります。

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

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

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

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

4つの読み取り値でウィンドウが埋まる

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

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

ノイズの多いレベルの読み取り値は、あちこちに跳ねます。なめらかにすると、あとのロジックが、細かいちらつきのたびに反応しなくなります。「トレンド」には、Level と SmoothedLevel が、スキャンごとに並んで表示されます。これは、同じフィルタを使う2つのミッションの1つ目です。ここでは、ウィンドウ、つまり平均する読み取り値の数は、4に固定です。4つのスロットはすべて0.0から始まるので、最初の3つの結果は低く出ます。次のミッションでは、それを直し、ウィンドウの大きさも変えられるようにします。あなたのフィルタは、あとのロジックのための数値を求めるだけで、ポンプやバルブは切り替えません。

Sample
Sample が ON なら、スキャンごとに Level の読み取り値を1つ取ります。Sample が OFF なら、SmoothedLevel はそのままにします。
保存して、一周する
読み取り値は、4つのスロットの次のスロットに入ります。4つ目の次は1つ目に戻るので、最新の読み取り値が、いちばん古いものと入れ替わります。バッファの作り方は、お任せします。
平均
読み取り値を取るたびに、SmoothedLevel は、4つのスロットを足して4で割った値です。小数点以下の桁は保ちます。
最初の3つの読み取り値
4つのスロットはすべて0.0から始まり、SmoothedLevel も同じです。空のスロットも、0として数えます。そのため、10%と30%だけが入っているとき、結果は10%です。40を4で割った値です。
タグテーブル

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

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

タグデータ型あなたのコード機械の上での意味
LevelREAL読むコードが必要とする入力タンクのレベル(%)
SampleBOOL読むコードが必要とする入力ON の間、スキャンごとに Level の読み取り値を1つ取ります。
SmoothedLevelREAL書くコードが設定する出力直近 4 個の読み取り値の平均(%)です。

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

自動テスト

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

  1. 読み取り値を取るたびに、SmoothedLevel は、4つのスロットを足して4で割った値です。読み取り値の小数点以下の桁は保ちます。
  2. 5つ目の読み取り値は1つ目と入れ替わり、そのあとも同じように4つのスロットを順に回ります。読み取り値がいくつ来ても同じです。
  3. Sample が OFF の間は、平均は動きません。Sample を ON にしたままだと、スキャンごとに読み取り値が1つ加わります。
  1. 試す モデルの下のボタンを使い、設備の反応を見てください。
  2. 解答をテスト ボタン1つで、すべてのチェックがあなたのコードで実行されます。
  3. 巻き戻し PRO (Pro が必要) 不合格のチェックがあれば、1スキャンずつさかのぼって原因を確かめられます。

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

なぜ大切か

現場で目にする場面

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

最新の4つの読み値を平均すると、波立ちがなめらかになります。違うスロットに残った読み値や、入れ替わらない読み値があると、数値が正しくなくなり、本当の変化が隠れます。

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

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

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

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

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

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

さらに続ける

道のりの次の一歩