PLC講座第4話 「幕張の防波堤を三菱PLCで再現した」のラダー解説 

 こんばんは。本日は、昨日投稿したPLC講座第4話「幕張の防波堤を三菱PLCで再現した」に登場したゲームの解説を行います。

 今回の回路は、工場で「多品種混流ライン」を作る場合に、参考になるかと思います。必要に応じ、ご活用ください。

  1. 投球コース選択:北別府システム
  2. 球種確定
  3. 投球開始処理:乱数処理
  4. GOT:投球結果のコメント表示

 ※下図が、タッチパネルの全体図になりますので、最初に図示しておきます。

全体図

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した時、対応したコメントが画面に表示されます。

シンプルアラームの設定

 他にも回路で設定している処理はありますが、特筆すべきものが無いため、今回のラダー紹介はここまでとしたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です