PLC講座第1話スロットのラダー解説

 こんにちは、まつりぬいです。

 本日は下記リンク先動画のラダー解説をお送りします。

  • 解説:1スキャンON、インクリメントレジスタの初歩、GOTロギング機能

  1. 仕様と初期値代入
  2. スロットの開始と出目回転
  3. すべり機能
  4. ロギングでの所持金推移

1.仕様と初期値代入

 今回の動画の仕様を、簡単に1ページにまとめたものが下図になります。動画でも使っている画像です。

 では、最初にスロットの出目に初期値を代入する処理を見ていきます。こちらは下図の通り、1スキャンONと、インデックスレジスタを使い、PLCのRUN直後に値を代入しています。

  • 1スキャンON:特殊リレーSM402、PLCがRUN直後の1スキャンのみONする
  • インデックスレジスタ(Z):レジスタをオフセットさせ繰り返し代入したい場合に使う
初期値代入の処理

 ポイントはインデックスレジスタを使い、最初の10スキャンでスロットの出目を設定している点です。1スキャン目にD40の値(10進数の1)がD10、D20、D30の各レジスタに代入されます。以降、スキャンを重ねるごとに、D11、D12、D13に2、3、4…と値が代入されていき、最後に出目の最大数10をレジスタに格納し、処理を終えます。

 初期値の設定やインデックスレジスタの使い方は様々ですが、今回の記述だと10スキャン処理完了までに時間がかかっている点に要注意です。1スキャンで処理を終わらせたい場合は、もう少し回路を改良する必要があります。

2.スロットの開始と出目回転

 スロット開始と出目の回転は1列目を中心に見ていきましょう。

スロット開始

 上図はスロット開始のトリガーとなる回路です。1度開始すると、全列が完了するまで開始状態を保持し続けます

 また、ベット額の確定と、所持金を減らす処理をここで行っています。ベット額を減らす処理は、「-P」のパルス処理を使い、「M1:スロット開始」が最初にONした時だけ成立するようにしています。

列1の回転処理

 スロットは列ごとに停止させたいので、列ごとに停止の処理を分けています。列1の場合は、1度開始記憶が成立すると、停止のボタンを押すまで、0.3秒間隔でデータのシフト処理を行い、出目を回転させています。なお、この転送間隔は列ごとに値を変更し、列ごとに回り方が変わるようにしています。

 「M12:列1シフト」に着目していただくと、このシフト処理は1スキャンのみONさせるよう、M12のb接点で回路の自己保持を切るようにしています。こういった1スキャンのみ処理を使うときの注意点としては、1スキャンしかONしていないので、この接点を使って成立させたい回路はすべて、この行よりも後に1スキャン内に成立するよう記述する必要がある点です。以前も記事にしましたが、PLCは基本的には上から下に処理していきますので、こういった1スキャンのみ処理させる命令については、記述する位置に注意してください。

 すべりに関しては、後述します。

データシフト処理

 データのシフトは上図の通り、「M12:列1シフト」の立ち上がり時にのみ、処理しています。仕様図の通り、10列目の値をいったん、D41に退避させた後、BMOVで丸ごとデータをシフトさせ、D41に退避させていた値を、1列目のレジスタD10に転送する事で、出目が回転しているように見せています。

スロット完了時の処理

 同じような処理を列2、列3で行い、全列処理が完了したときに出目が揃っているかどうかを判定します。揃っているかどうかは、2行目のレジスタの値を比較し、すべて同じ値であればベットした額の4倍のお金が入る仕組みにしました。

  リーチ時にランプが光る処理も入れています。リーチ時には0.1秒クロックを使い、ランプが高速点滅します。この処理の注意点として、どの列からスロットを止めるのはプレイヤー次第ですので、どの列から止めても2列分が同じ値であれば、高速点滅処理を行うようにしている点でしょうか。

3.すべり機能

 動画でも少し触れていた、出目のすべり機能について解説します。

出目のすべり値決定

 すべり処理有効時、上図の回路ですべり値を設定します。0.1秒毎に0から値を加算していき、すべり時間を決めています。最大値は0.8秒にしています。この処理はすべり有効時であれば、常に裏で処理し続けています。これは、プレイヤーに次の出目のすべり量を推測させないためです。

すべり値確定

 すべり値はスロット開始時に確定します。すべり量を計算しているD60の値を、スロット開始時にD50に転送し、この値をすべり量としています。

すべり量タイマー開始
出目の確定

 列停止と同時に、すべり値のタイマーの計算が始まります。図だと、「T11:列1すべり」がそのタイマーで、タイマーの値はD50を参照するようにしました。そして、そのタイマーT11を列シフトを止めるための条件として、「M11:列停止記憶」のb接点のORのところに、b接点で使っています。ORとb接点の組み合わせを使うことで、この列1シフトはすべり有効時は、M11とT11の両方がONするまでシフト処理が続きます

4.ロギングでの所持金推移

 最後にGOT側で設定したロギング機能について解説します。

 今回、所持金の値はD0で管理していますので、この値をロギングで設定します。ロギング機能は、GOTの編集ソフト、GT Designer 2000(または1000)のプロジェクト欄から設定を行います。

プロジェクト欄の中に、ロギング機能がある
ロギング設定①

 上図が今回のロギング設定です。この画面で、データの保管先や収集するタイミングを設定します。ロギング機能自体については別途記事で説明したいと思いますので、今回は詳細説明は割愛します。

 今回の注意点として、データの収集トリガーはM1のスロット開始時に絶対にONする接点にして、シミュレーター上で動作させる必要もあったので、データはバッファリングエリアに保管するようにしました。

収集対象

 収集対象のデバイスを上図のように設定しました。今回はD0の所持金だけで良いので、上記の通り、寂しく1行だけの設定です。

画面側の設定

 最後に、登録したロギング設定をグラフで表示できるよう、画面編集を行います。上図の通り、ヒストリカルトレンドグラフを設定し、グラフで使いたいロギングID(今回は1だったので1)、その中で表示させたい収集対象(今回はD0なのでD0)を設定しました。その他、グラフを素描するうえで、太さや各軸の目盛りを設定すれば、グラフ表示の設定は完了です。

  以上で解説は完了です。ロギング機能など、普段の仕事の中でも活用できる機能について、もし触ったことが無い方がいらっしゃれば、こういったスロット等お遊び機能で練習がてら触ってみて、どんなふうに設定すればよいのか、感覚を掴むのもお勧めです。

 たかがスロット。されどスロット。ラダーだけではなく操作盤も編集しますので、動画にもある通り、はじめてPLCを触る担当者に勉強してもらうための教材として、これほど適したものはないのでは、と個人的に思っています。

コメントを残す

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