こんばんは。本日は、昨日投稿したPLC講座第4話「幕張の防波堤を三菱PLCで再現した」に登場したゲームの解説を行います。
今回の回路は、工場で「多品種混流ライン」を作る場合に、参考になるかと思います。必要に応じ、ご活用ください。
※下図が、タッチパネルの全体図になりますので、最初に図示しておきます。
1.投球コース選択:北別府システム
リレーを比較命令で使う方法
投球コースは5×5マスの中から選択します。このマスのうち、中心部の3×3マスの9分割されたゾーンがストライクゾーンになります。基本的にストレートを投球すればコース通りのゾーンに投球されますが、ストライクゾーンの下側3マスに縦スライダーを投げると、球が変化するので見逃されるとボールとなりますが、空振りを奪う事もできます。同様に、ストライクゾーンのうち、一番右の列3マスにシュートを投じるとボールになります。一方で、相手が右打者だと、詰まらせて内野ゴロを狙うチャンスが出てきます。
このシステムは北別府システムと名前を付けました。ストライクゾーンを9分割して投げ分けられる北別府投手にちなんで、名付けています(大きく振りかぶっての1巻で、そんな話がありましたね)。
このボタン選択のラダーは下図の通りです。量が多いので、一部抜粋して掲載します。
投球コースを選ぶボタンには、M300-M324のリレーが割り付けられており、コースが確定すると、M400-M424のコース確定のリレーがONします。M400-M424は、そのまま、ボタンのランプ点灯条件にしています。
M400-M424のリレーは自己保持をかけていますが、他コースを選択した場合はM326のb接点で自己保持を落とし、別のコースを選択できるようにしています。
M326は上図の一番上のラダーでONさせています。「<> K0 K4M300」は、「M300から16点分のリレーいずれかがONしている(0でない)」という意味になります。こういった形で記述する事で、リレーでも比較命令を扱うことができます。注意点として、4点ずつまとめて指定することになるので、対象のリレーの数が4の倍数でない場合は、上図のM324のように、ORで追加で記述しておく必要があります。
また、後々投球結果の処理を行うために、「D11:コースフラグ」に、選んだコースに対応した定数を格納しています。
2.球種確定
球種の確定は下図のボタンで行います。
小林雅英投手は、ストレートと縦に落ちるスライダー、シュートで勝負する投手でしたので、今回はこの3球種を選ぶことになります。ボタン選択の処理は、投球コース選択と同じです。
3.投球確定:乱数処理
コースと球種を選択すると、下図のボタンが点滅します。点滅した状態でこのボタンをクリックすると、投球処理に移り、投球結果を待つことになります。
この投球処理に関してですが、このゲームは常に下記の2つの乱数を作り続けています。
①投球結果計算用:0から4の値
②失投結果計算用:0から9の間
乱数生成のトリガーが異った方がゲーム性が出るのではと考えて、それぞれ異なる定数クロックで乱数を更新するようにしています。
投球結果の計算回路は下図の通りです。
動画でも説明した通り、投球結果は既に所定のレジスタに格納されています。この回路は、その所定のレジスタに格納されている値を読み出し、投球結果を格納するレジスタD15に送信するために組んだものです。
例えば、コース選択時M305を選択し、投球確定時に乱数が4だった場合、下図の対応表よりD15には「203」が格納されます。
「203」の内容は、下表の通り「ファール」になりますので、この場合の投球結果はファールになります。
乱数次第ですが、このコースだと「201:投球結果ボール」を返す事が多いので、基本的にはストレートは見送られると考えてよいです。
そもそも、打者まっつーの場合は、上図の通りストライクゾーンに投げるとほぼ、ヒットになり負けが確定します。変化球も同様なので、投げられるコースは殆どありません。動画の通り、まっつーは敬遠がベターです。
続いて失投処理ですが、失投は変化球を投げた時のみ発生します。
「M11:投球確定」時、失投判定を行います。図の通り、「D2:ボールカウント」の値が2以上の場合、失投になる確率が増えるよう、回路を組んでいます。早めに追い込んで勝負をかけないと、失投のリスクが増えてしまうので要注意です。
失投結果は、今回はパターンが少ないので、全パターン網羅できる回路で対応しています。失投結果も同じく、D15に値を返します。
最後に、D15に格納された値に応じて、処理を行います。下図が見逃しストライクの例です。「D1:ストライク」の値を加算するほか、結果を格納するフラグ「D15:打撃結果完了フラグ」に値を返すほか、今回のケースだと3ストライクで自動的に勝ちが決まりますので、「D18:勝利確定フラグ」にも値を返しています。
この処理に応じて、ストライク、ボール、得点の変化が発生しますので、状況に応じ勝ち負けを判定し、勝負が終わるならゲーム終了処理、まだゲームが続くなら、処理に使ったフラグをいったんリセットし、再びコース選択に戻ります。
また、まっつーにファーボールまたはデッドボールを与えた場合、打者をマッケンジに更新します。
今回使用した回路は乱数を使っていますが、工場の設備に応用する場合は、「あらかじめ決めておいたレシピやパターンをレジスタに格納しておき、生産する製品に合わせて呼び出す」、という仕組みを作る時に使えます。
こういった処理を行う場合は、PLCの電源ON/OFFで設定が消えないよう、ファイルレジスタを使う事が一般的です。この話はまた別途、記事にしたいと思います。
4.GOT:投球結果のコメント表示
最後に、GOTにある投球結果のコメント表示について、どのように対応しているか簡単に説明します。
投球結果に応じてコメントを変更するために、GOTのコメント機能を使用しています。下図が、今回登録したコメントになります。コメントグループは1です。
今回は、下図のシンプルアラームを使用しました。
設定は下図の通りです。表示したいコメントは24接点分なので、点数は24。コメントグループは1だったので1。使いたいコメントは、No.2の「見逃しストライク」からなので2としてます。今回の投球結果ですが、M200からM223の24点分、連続で割付られているので、デバイスNo.も「連続」を設定します。この設定を行う事で、投球結果に応じてM200-M223のどれかがONした時、対応したコメントが画面に表示されます。
他にも回路で設定している処理はありますが、特筆すべきものが無いため、今回のラダー紹介はここまでとしたいと思います。
コメントを残す