(58)【調査した分野】(Int.Cl.,DB名)
前記デバイスは、所定の範囲内で可動する可動要素、前記可動要素を動かす駆動部、及び、前記可動要素の位置情報を取得するセンサを含み、前記演出に用いられる可動体であり、
前記周辺基板は、前記駆動部を駆動制御するとともに前記センサから位置情報の信号を受ける可動体制御部であり、
前記サブ基板は、前記可動体制御部に対して前記駆動部を駆動する前記コマンドを送った後、予め定められた時間内において前記センサによる前記可動要素の位置情報を取得できなかったとき、前記通信異常と判定し、当該通信異常を前記異常記憶部に記憶することを特徴とする請求項1記載の遊技機。
【発明を実施するための形態】
【0014】
発明の実施の形態1.
図1は前扉を閉めた状態を示すスロットマシンの正面図、
図2は前扉を180度開いた状態を示すスロットマシンの正面図を示す。
【0015】
図1及び
図2中、100はスロットマシンを示すもので、このスロットマシン100は、
図1に示すように、スロットマシン本体120と、このスロットマシン本体120の前面片側にヒンジ等により開閉可能に取り付けられた前扉130とを備えている。前記前扉130の前面には、
図1に示すように、ほぼ中央にゲーム表示部131を設け、ゲーム表示部131の右下隅部に、遊技者がメダルを投入するためのメダル投入口132を設け、メダル投入口132の下側には、メダル投入口132から投入され、詰まってしまったメダルをスロットマシン100外に強制的に排出するためのリジェクトボタン133が設けられている。
【0016】
また、前記ゲーム表示部131の左下方には、ゲームを開始するためのスタートスイッチ134を設けてあり、3つの回胴のそれぞれに対応して3つのストップスイッチ140を設けてある。前扉の下端部中央には、メダルの払出し口135を設けてある。前記ゲーム表示部131の上側には、液晶表示装置LCDが設けてある。
【0017】
スロットマシン本体120の内部には、
図2に示すように、その内底面に固定され、内部に複数のメダルを貯留して、貯留したメダルを前扉130の前面に設けた払出し口135に1枚ずつ払い出すためのホッパ装置121が設置されている。このホッパ装置121の上部には、上方に向けて開口し、内部に複数のメダルを貯留するホッパタンク122を備えている。スロットマシン本体120の内部には、前扉130を閉めたときにゲーム表示部131が来る位置に三個の回胴からなるリール(回胴)ユニット203が設置されている。リールユニット203は、外周面に複数種類の図柄が配列されている3つの回胴(第1回胴〜第3回胴)を備えている。ゲーム表示部131には開口部が設けられていて、それを通して遊技者が前記リールユニット203の各回転回胴の図柄を見ることができるようになっている。ホッパ装置121の左側には電源部205が設けられている。
【0018】
前記前扉130の裏面には、
図2に示すように、メダル(コイン)セレクタ1が、前扉130の前面に設けられたメダル投入口132の裏側に取り付けられている。このメダルセレクタ1は、メダル投入口132から投入されたメダルの通過を検出しながら、当該メダルをホッパ装置121に向かって転動させ、外径が所定寸法と違う異径メダルや、鉄又は鉄合金で作製された不正メダルを選別して排除するとともに、1ゲームあたりに投入可能な所定枚数以上のメダルを選別して排除するための装置である。
【0019】
また、メダルセレクタ1の下側には、
図2に示すように、その下部側を覆って前扉130の払出し口135に連通する導出路136が設けられている。メダルセレクタ1により振り分けられたメダルは、この導出路136を介して払出し口135から遊技者に返却される。
【0020】
図3は発明の実施の形態に係るスロットマシン100の機能ブロック図を示す。
【0021】
この図において電源系統についての表示は省略されている。図示しないが、スロットマシンは商用電源(AC100V)から直流電源(+5Vなど)を発生するための電源部を備える。
【0022】
スロットマシン100は、その主要な処理装置としてメイン基板(処理部)10とこれからコマンドを受けて動作するサブ基板20とを備える。なお、少なくともメイン基板10は、外部から接触不能となるようにケース内部に収容され、これら基板を取り外す際に痕跡が残るように封印処理が施されている。
【0023】
メイン基板10は、遊技者の操作を受けて内部抽選を行ったり、リールの回転・停止やメダルの払い出しなどの処理(遊技処理)を行うためのものである。メイン基板10は、予め設定されたプログラムに従って制御動作を行うCPUと、前記プログラムを記憶する記憶手段であるROMおよび処理結果などを一時的に記憶するRAMを含む。
【0024】
サブ基板20は、メイン基板10からコマンド信号を受けて内部抽選の結果を報知したり各種演出を行うためのものである。サブ基板20は、前記コマンド信号に応じた予め設定されたプログラムに従って制御動作を行うCPUと、前記プログラムを記憶する記憶手段であるROMおよび処理結果などを一時的に記憶するRAMを含む。コマンドの流れはメイン基板10からサブ基板20への一方のみであり、逆にサブ基板20からメイン基板10へコマンド等が出されることはない。
【0025】
メイン基板10には、ベットスイッチBET、スタートスイッチ134,ストップボタン140,リールユニット(リール駆動装置を含む)203,リール位置検出回路71、ホッパ駆動部80、ホッパ81及びホッパ81から払い出されたメダルの枚数を数えるためのメダル検出部82(これらは前述のホッパ装置121を構成する)が接続されている。サブ基板20には液晶表示装置の制御用の液晶制御基板200、スピーカ基板201、LED基板202などの周辺基板(ローカル基板)が接続されている。
【0026】
メイン基板10には、さらに、メダルセレクタ1のメダルセンサS1及びS2が接続されている。
【0027】
メダルセレクタ1には、メダルを計数するためのメダルセンサS1及びS2が設けられている。メダルセンサS1及びS2は、メダルセレクタ1に設けられた図示しないメダル通路の下流側(出口近傍)に設けられている(メダル通路の上流側はメダル投入口132に連通している)。2つのメダルセンサS1とS2は、メダルの進行方向に沿って所定間隔を空けて並べて設けられている。メダルセンサS1、S2は、例えば、互いに対向した発光部と受光部とを有して断面コ字状に形成され、その検出光軸をメダル通路内に上方から臨ませて位置するフォトインタラプタである。各フォトインタラプタにより、途中で阻止されずに送られてきたメダルの通過が検出される。なお、フォトインタラプタを2つ隣接させたのは、メダル枚数を検出するだけでなく、メダルの通過が正常か否かを監視するためである。すなわち、フォトインタラプタを2つ隣接させて設けることにより、メダルの通過速度や通過方向を検出することができ、これによりメダル枚数だけでなく、逆方向に移動する不正行為を感知することができる。
【0028】
ホッパ駆動部80は、ホッパ81を回転駆動して、メイン基板10によって指示された払出数のメダルを払い出す動作を行う。遊技機は、メダルを1枚払い出す毎に作動するメダル検出部82を備えており、メイン基板10は、メダル検出部82からの入力信号に基づいてホッパ81から実際に払い出されたメダルの数を管理することができる。
【0029】
投入受付部1050は、メダルセレクタ1のメダルセンサS1とS2の出力を受け、遊技毎にメダルの投入を受け付けて、規定投入数に相当するメダルが投入されたことに基づいて、スタートスイッチ134に対する第1リール〜第3リールの回転開始操作を許可する処理を行う。なお、スタートスイッチ134の押下操作が、第1リール〜第3リールの回転を開始させる契機となっているとともに、内部抽選を実行する契機となっている。また、遊技状態に応じて規定投入数を設定し、通常状態およびボーナス成立状態では規定投入数を3枚に設定し、ボーナス状態では規定投入数を1枚に設定する。
【0030】
メダルが投入されると、遊技状態に応じた規定投入数を限度として、投入されたメダルを投入状態に設定する。あるいは、遊技機にメダルがクレジットされた状態で、ベットスイッチBETが押下されると、遊技状態に応じた規定投入数を限度して、クレジットされたメダルを投入状態に設定する。メダルの投入を受け付けるかどうかは、メイン基板10が制御する。メダルの投入を受け付ける状態になっていないときは(許可されていないときは)、メダルを投入してもメダルセンサS1、S2でカウントされず、そのまま返却される。同様に、メイン基板10はベットスイッチBETの有効/無効を制御する。ベットスイッチBETが有効になっていないときは(許可されていないときは)、ベットスイッチBETを押下しても、それは無視される。
【0031】
メイン基板10は、乱数発生手段1100を内蔵する。乱数発生手段1100は、抽選用の乱数値を発生させる手段である。乱数値は、例えば、インクリメントカウンタ(所定のカウント範囲を循環するように数値をカウントするカウンタ)のカウント値に基づいて発生させることができる。なお本実施形態において「乱数値」には、数学的な意味でランダムに発生する値のみならず、その発生自体は規則的であっても、その取得タイミング等が不規則であるために実質的に乱数として機能しうる値も含まれる。
【0032】
内部抽選手段1200は、遊技者がスタートスイッチ134からのスタート信号に基づいて、役の当否を決定する内部抽選を行う。すなわち、メイン基板10のメモリ(図示せず)に記憶されている抽選テーブル(図示せず)を選択する抽選テーブル選択処理、乱数発生手段1050から得た乱数の当選を判定する乱数判定処理、当選の判定結果で大当たりなどに当選したときにその旨のフラグを設定する抽選フラグ設定処理などを行う。
【0033】
抽選テーブル選択処理では、図示しない記憶手段(ROM)に格納されている複数の抽選テーブル(図示せず)のうち、いずれの抽選テーブルを用いて内部抽選を行うかを決定する。抽選テーブルでは、複数の乱数値(例えば、0〜65535の65536個の乱数値)のそれぞれに対して、リプレイ、小役(ベル、チェリー)、レギュラーボーナス(RB:ボーナス)、およびビッグボーナス(BB:ボーナス)などの各種の役が対応づけられている。また、遊技状態として、通常状態、ボーナス成立状態、およびボーナス状態が設定可能とされ、さらにリプレイの抽選状態として、リプレイ無抽選状態、リプレイ低確率状態、リプレイ高確率状態が設定可能とされる。
【0034】
乱数判定処理では、スタートスイッチ134からのスタート信号に基づいて、遊技毎に前記乱数発生手段(図示せず)から乱数値(抽選用乱数)を取得し、取得した乱数値について前記抽選テーブルを参照して役に当選したか否かを判定する。
【0035】
抽選フラグ設定処理では、乱数判定処理の結果に基づいて、当選したと判定された役の抽選フラグを非当選状態(第1のフラグ状態、オフ状態)から当選状態(第2のフラグ状態、オン状態)に設定する。2種類以上の役が重複して当選した場合には、重複して当選した2種類以上の役のそれぞれに対応する抽選フラグが当選状態に設定される。抽選フラグの設定情報は、記憶手段(RAM)に格納される。
【0036】
入賞するまで次回以降の遊技に当選状態を持ち越し可能な抽選フラグ(持越可能フラグ)と、入賞の如何に関わらず次回以降の遊技に当選状態を持ち越さずに非当選状態にリセットされる抽選フラグ(持越不可フラグ)とが用意されていることがある。この場合、前者の持越可能フラグが対応づけられる役としては、レギュラーボーナス(RB)およびビッグボーナス(BB)があり、それ以外の役(例えば、小役、リプレイ)は後者の持越不可フラグに対応づけられている。すなわち抽選フラグ設定処理では、内部抽選でレギュラーボーナスに当選すると、レギュラーボーナスの抽選フラグの当選状態を、レギュラーボーナスが入賞するまで持ち越す処理を行い、内部抽選でビッグボーナスに当選すると、ビッグボーナスの抽選フラグの当選状態を、ビッグボーナスが入賞するまで持ち越す処理を行う。このときメイン基板10は、内部抽選機能により、レギュラーボーナスやビッグボーナスの抽選フラグの当選状態が持ち越されている遊技でも、レギュラーボーナスおよびビッグボーナス以外の役(小役およびリプレイ)についての当否を決定する内部抽選を行っている。すなわち抽選フラグ設定処理では、レギュラーボーナスの抽選フラグの当選状態が持ち越されている遊技において、内部抽選で小役あるいはリプレイが当選した場合には、既に当選しているレギュラーボーナスの抽選フラグと内部抽選で当選した小役あるいはリプレイの抽選フラグとからなる2種類以上の役に対応する抽選フラグを当選状態に設定し、ビッグボーナスの抽選フラグの当選状態が持ち越されている遊技において、内部抽選で小役あるいはリプレイが当選した場合には、既に当選しているビッグボーナスの抽選フラグと内部抽選で当選した小役あるいはリプレイの抽選フラグとからなる2種類以上の役に対応する抽選フラグを当選状態に設定する。
【0037】
リプレイ処理手段1600は、所定条件下で内部抽選におけるリプレイの当選確率を変動させる制御を行うことがある。リプレイ処理手段1600については、後に再度説明を加える。リプレイの抽選状態として、リプレイが内部抽選の対象から除外されるリプレイ無抽選状態、リプレイの当選確率が約1/7.3に設定されるリプレイ低確率状態、およびリプレイの当選確率が約1/6に設定されるリプレイ高確率状態という複数種類の抽選状態を設定可能とされている。リプレイの抽選状態を変化させることにより、内部抽選におけるリプレイの当選確率を変動させる。
【0038】
リール制御手段1300は、遊技者がスタートスイッチ134の押下操作(回転開始操作)によるスタート信号に基づいて、第1リール〜第3リールをステッピングモータにより回転駆動して、第1リール〜第3リールの回転速度が所定速度(約80rpm:1分間あたり約80回転となる回転速度)に達した状態において回転中のリールにそれぞれ対応する3つのストップボタン140の押下操作(停止操作)を許可する制御を行うとともに、ステッピングモータにより回転駆動されている第1リール〜第3リールを抽選フラグの設定状態(内部抽選の結果)に応じて停止させる制御を行う。
【0039】
また、リール制御手段1300は、3つのストップボタン140に対する押下操作(停止操作)が許可(有効化)された状態において、遊技者が3つのストップボタン140を押下することにより、そのリール停止信号に基づいて、リールユニット203のステッピングモータへの駆動パルス(モータ駆動信号)の供給を停止することにより、第1リール〜第3リールの各リールを停止させる制御を行う。
【0040】
すなわち、リール制御手段1300は、3つのストップボタン140の各ボタンが押下される毎に、第1リール〜第3リールのうち押下されたボタンに対応するリールの停止位置を決定して、決定された停止位置でリールを停止させる制御を行っている。具体的には、記憶手段(ROM)に記憶されている停止制御テーブル(図示せず)を参照して3つのストップボタンの押下タイミングや押下順序等(停止操作の態様)に応じた第1リール〜第3リールの停止位置を決定し、決定された停止位置で第1リール〜第3リールを停止させる制御を行う。
【0041】
ここで停止制御テーブルでは、ストップボタン140の作動時点における第1リール〜第3リールの位置(押下検出位置)と、第1リール〜第3リールの実際の停止位置(または押下検出位置からの滑りコマ数)との対応関係が設定されている。抽選フラグの設定状態に応じて、第1リール〜第3リールの停止位置を定めるための停止制御テーブルが用意されることもある。
【0042】
遊技機では、リールユニット203がフォトセンサからなるリールインデックス(図示せず)を備えており、リール制御手段1300は、リールが1回転する毎にリールインデックスで検出される基準位置信号に基づいて、リールの基準位置(リールインデックスによって検出されるコマ)からの回転角度(ステップモータの回転軸の回転ステップ数)を求めることによって、現在のリールの回転状態を監視することができるようになっている。すなわち、メイン基板10は、ストップスイッチ140の作動時におけるリールの位置を、リールの基準位置からの回転角度を求めることにより得ることができる。
【0043】
リール制御手段1300は、いわゆる引き込み処理と蹴飛ばし処理とをリールを停止させる制御として行っている。引き込み処理とは、抽選フラグが当選状態に設定された役に対応する図柄が有効な入賞判定ライン上に停止するように(当選した役を入賞させることができるように)リールを停止させる制御処理である。一方蹴飛ばし処理とは、抽選フラグが非当選状態に設定された役に対応する図柄が有効な入賞判定ライン上に停止しないように(当選していない役を入賞させることができないように)リールを停止させる制御処理である。すなわち本実施形態の遊技機では、上記引き込み処理及び蹴飛ばし処理を実現させるべく、抽選フラグの設定状態、ストップボタン140の押下タイミング、押下順序、既に停止しているリールの停止位置(表示図柄の種類)などに応じて各リールの停止位置が変化するように停止制御テーブルが設定されている。このように、メイン基板10は、抽選フラグが当選状態に設定された役の図柄を入賞の形態で停止可能にし、一方で抽選フラグが非当選状態に設定された役の図柄が入賞の形態で停止しないように第1リール〜第3リールを停止させる制御を行っている。
【0044】
本実施形態の遊技機では、第1リール〜第3リールが、ストップボタン140が押下された時点から190ms以内に、押下されたストップボタンに対応する回転中のリールを停止させる制御状態に設定されている。すなわち回転している各リールの停止位置を決めるための停止制御テーブルでは、ストップボタン140の押下時点から各リールが停止するまでに要するコマ数が0コマ〜4コマの範囲(所定の引き込み範囲)で設定されている。
【0045】
入賞判定手段1400は、第1リール〜第3リールの停止態様に基づいて、役が入賞したか否かを判定する処理を行う。具体的には、記憶手段(ROM)に記憶されている入賞判定テーブルを参照しながら、第1リール〜第3リールの全てが停止した時点で入賞判定ライン上に表示されている図柄組合せが、予め定められた役の入賞の形態であるか否かを判定する。
【0046】
入賞判定手段1400は、その判定結果に基づいて、入賞時処理を実行する。入賞時処理としては、例えば、小役が入賞した場合にはホッパ81を駆動してメダルの払出制御処理が行われるか、あるいはクレジットの増加され(規定の最大枚数例えば50枚まで増加され、それを超えた分だけ実際にメダル払い出される)、リプレイが入賞した場合にはリプレイ処理が行われ、ビッグボーナスやレギュラーボーナスが入賞した場合には遊技状態を移行させる遊技状態移行制御処理が行われる。
【0047】
払出制御手段1500は、遊技結果に応じたメダルの払い出しに関する払出制御処理を行う。具体的には、小役が入賞した場合に、役毎に予め定められている配当に基づいて遊技におけるメダルの払出数を決定し、決定された払出数に相当するメダルを、ホッパ駆動部80でホッパ81を駆動して払い出させる。この際に、ホッパ81に内蔵される図示しないモータに電流が流れることになる。
【0048】
メダルのクレジット(内部貯留)が許可されている場合には、ホッパ81によって実際にメダルの払い出しを行う代わりに、記憶手段(RAM)のクレジット記憶領域(図示省略)に記憶されているクレジット数(クレジットされたメダルの数)に対して払出数を加算するクレジット加算処理を行って仮想的にメダルを払い出す処理を行う。
【0049】
リプレイ処理手段1600は、リプレイが入賞した場合に、次回の遊技に関して遊技者の所有するメダルの投入を要さずに前回の遊技と同じ準備状態に設定するリプレイ処理(再遊技処理)を行う。リプレイが入賞した場合には、遊技者の手持ちのメダル(クレジットメダルを含む)を使わずに前回の遊技と同じ規定投入数のメダルが自動的に投入状態に設定される自動投入処理が行われ、遊技機が前回の遊技と同じ入賞判定ラインを有効化した状態で次回の遊技における回転開始操作(遊技者によるスタートスイッチ134の押下操作)を待機する状態に設定される。
【0050】
また、メイン基板10は、通常状態、ボーナス成立状態、およびボーナス状態の間で遊技状態を移行させる制御を行うことがある(遊技状態移行制御機能)。遊技状態の移行条件は、1の条件が定められていてもよいし、複数の条件が定められていてもよい。複数の条件が定められている場合には、複数の条件のうち1の条件が成立したこと、あるいは複数の条件の全てが成立したことに基づいて、遊技状態を他の遊技状態へ移行させることができる。
【0051】
通常状態は、複数種類の遊技状態の中で初期状態に相当する遊技状態で、通常状態からはボーナス成立状態への移行が可能となっている。ボーナス成立状態は、内部抽選でビッグボーナスあるいはレギュラーボーナスに当選したことを契機として移行する遊技状態である。ボーナス成立状態では、通常状態における内部抽選でビッグボーナスが当選した場合、ビッグボーナスが入賞するまでビッグボーナスに対応する抽選フラグが当選状態に維持され、通常状態における内部抽選でレギュラーボーナスが当選した場合、レギュラーボーナスが入賞するまでレギュラーボーナスに対応する抽選フラグが当選状態に維持される。ボーナス状態では、ボーナス遊技によって払い出されたメダルの合計数により終了条件が成立したか否かを判断し、入賞したボーナスの種類に応じて予め定められた払出上限数を超えるメダルが払い出されると、ボーナス状態を終了させて、遊技状態を通常状態へ復帰させる。
【0052】
リールユニット203は、図示しない3つのリールを備えるが、3つのリールそれぞれにひとつづつステッピングモータが取り付けられている。ステッピングモータは、回転子(ロータ)として歯車状の鉄心あるいは永久磁石を備え、固定子(ステータ)として複数の巻線(コイル)を備え、電流を流す巻線を切り替えることによって回転動作させるものである。すなわち、固定子の巻線に電流を流して磁力を発生させ、回転子を引きつけることで回転するものである。回転軸を指定された角度で停止させることが可能なことから、スロットマシンのリールの回転駆動に使用されている。複数の巻線がひとつの相を構成する。相の数として、例えば、2つ(二相)、4つ(4相)、5つ(5相)のものもある。
【0053】
ステッピングモータは、各相の巻線への電流の与え方を変えることにより、特性を変えることができる(励磁モードが変わる)。二相型については次の通りである。
【0054】
・一相励磁
常に巻線一相のみに電流を流す。位置決め精度は良い。
【0055】
・二相励磁
二相に電流を流す。一相励磁の約2倍の出力トルクが得られる。位置決め精度は良く、停止したときの静止トルクが大きいため、停止位置を確実に保持できる。
【0056】
・一−二相励磁
一相と二相を交互に切り替えて電流を流す。一相励磁・二相励磁の場合のステップ角度の半分にすることができるので、滑らかな回転を得られる。
【0057】
なお、ステッピングモータを「駆動する」とは、当該モータを上記励磁により回転させることとともに、所望の位置で停止させその位置を保持するために各相を励磁することも含むものとする。
【0058】
スロットマシンでは、例えば、4相の基本ステップ角度1.43度のステッピングモータを使用し、パルスの出力方法として一−二相励磁を採用している。
【0059】
図4は、サブ基板20とその周辺基板の接続の説明図である。
図3に示すように、サブ基板20には、液晶制御基板200、スピーカ基板201、LED基板202が接続されている。これらは、サブ基板20の周辺基板(「スレーブ基板」と表現することもある)と言うべきものである。周辺基板は、サブ基板20からのコマンドに基づき所定の演出を行うデバイスを制御するものである。デバイスとは、液晶制御基板200であれば液晶表示装置LCDであり、スピーカ基板201であれば図示しないスピーカ(音響発生装置)であり、LED基板202であればアーチやサイドランプに内蔵された発光素子(図示せず)である。
【0060】
これら複数の周辺基板は、
図4のように接続されている。すなわち、複数のスレーブ基板が共通のバス(BUS、通信路)に接続され、当該バスを通じてサブ基板20と通信を行う。当該バスを流れる信号は、パラレル信号(例えば8ビットの線で信号を伝送するもの)あるいはシリアル信号(例えば、I2C(Inter-Integrated Circuit)のようにデータ線とクロック線の2本の線で信号を伝送するもの)である。なお、
図4の例ではサブ基板20から出た信号がサブ基板20に戻っているが、これは一例であり、一般的なバス構造のように接続端の反対側の端が開放されていてもよい。
【0061】
サブ基板20からスレーブ基板へは、アドレスを指定してデータを送る。例えば、スレーブ基板としてのスピーカ基板201へデータを送る場合は、スピーカ基板201に予め対応づけられているアドレスを指定してデータをバスに流す。スピーカ基板201は、アドレスにより自分宛のデータであることを認識すると、アドレスに引き続くデータをラッチに取り込む。取り込んだデータに従って所定の動作を行う。取り込んだデータが、スピーカ基板201で取得したあるいは取得可能なデータをサブ基板20へ送信するコマンドであれば、当該データをサブ基板20へ送信する(所定のデータ受信後は、予めさだめられたデータを常にサブ基板20へ送信するようにすることもできる)。
【0062】
図4では、遊技機の処理に必要な処理部CPUと、バッファBUFとを示している。バッファBUFはスレーブ基板へのデータ及び/又はスレーブ基板からのデータを一時的に記憶するものである。
【0063】
サブ基板20は、さらに、サブ基板20と周辺基板201,202などとの間の通信の異常を検知する通信異常検知部DETと、通信異常検知部DETにより検知された異常を記憶する異常記憶部EMと、異常記憶部EMに接続された出力手段OUTとを備える。異常記憶部EMは、電源オフのときでも記憶内容を保持するものであり、その記憶内容は出力手段OUTにより外部に取り出し可能である。
【0064】
図5は、サブ基板20のハードウエア構成の説明図である。サブ基板20は、実際には
図5のハードウエア構成で実現される。すなわち、複数のビット(配線)からなるBUSに、CPU(処理装置)、ROM(不揮発性記憶部)、メモリRWM(読み出し及び書き込み可能なメモリ)及びI/O(入出力装置)が接続されている。さらに、サブ基板20は、上記異常記憶部EMとして機能するメモリRWM2と、遊技機の電源がオフであってもメモリRWM2の記憶内容を維持するためのバックアップ電源(電池)BATとを備える。
【0065】
通信処理は、
図5のROMに予め記憶されたプログラムに従ってCPUが動作することで実現される。CPUは、処理を行う際に各種データをメモリRWMに記憶させ、必要に応じて読み出し、処理を行い、必要に応じて再度記憶する、といった処理を行う。
【0066】
通信異常検知部DETも同様に、
図5のROMに予め記憶されたプログラムに従ってCPUが動作することで実現される。例えば、サブ基板20と特定の周辺基板との間の通信が一定時間経っても終わらない(タイムアウト)、通信相手である周辺基板から応答(ACK)が返ってこない、異常なデータ(例えばパリティ・チェックサムが正しくないデータ)を受信した、などの場合に異常と判定される。
【0067】
タイマTMは、処理部CPUに対して割り込みを一定間隔でかけるものであり、例えば専用のICなどのハードウエアで実現されるが、ソフトウエア(プログラム)で実現するようにしてもよい。I/Oは、例えば通信処理用のICであり、所定のプロトコルにしたがってデータ通信を行う。図示しないレジスタにアドレス及びデータを設定することで、スレーブ基板との通信を自動的に行う。
【0068】
図4で示したバッファBUFは、例えば、
図5のメモリRWM上で実現される(当該メモリの特定の領域にバッファBUFに書き込むべきデータが書き込まれる)。あるいは、バッファBUFは、レジスタICのようなハードウエアで実現されてもよい。
【0069】
次に、遊技機における遊技処理について
図6を参照して説明を加える。
【0070】
一般的に、遊技機において、メダルの投入(クレジットの投入)に始まり、払い出しが終了するまで(又はクレジット数の増加が終了するまで)が一遊技である。一遊技が終了するまでは次回の遊技に進めないという決まりがある。
【0071】
先ず、規定枚数のメダルが投入されることでスタートスイッチ134が有効になり、
図4の処理が開始される。
【0072】
ステップS1において、スタートスイッチ134が操作されることにより、スタートスイッチ134がONとなる。そして、次のステップS2に進む。
【0073】
ステップS2において、メイン基板10により抽選処理が行われる。そして、次のステップS3に進む。
【0074】
ステップS3において、第1リール〜第3リールの回転が開始する。そして、次のステップS4に進む。
【0075】
ステップS4において、ストップボタン140が操作されることにより、ストップボタン140がONとなる。そして、次のステップS5に進む。
【0076】
ステップS5において、第1リール〜第3リールのうち押下されたストップボタン140に対応するリールについて回転停止処理が行われる。そして、次のステップS6に進む。
【0077】
ステップS6において、三個のリールに対応するストップボタン140の操作が行われたか否かが判定される。そして、三個のリールに対応する3つのストップボタン140すべての操作が行われたと判定された場合、次のステップS7に進む。
【0078】
ステップS7において、抽選フラグ成立中に当該抽選フラグに対応する入賞図柄が有効入賞ライン上に揃ったか否か、すなわち、入賞が確定したか否かが判定される。そして、入賞が確定したと判定された場合、次のステップS8に進む。なお、入賞が確定しなかったときは、抽選フラグが成立していてもメダルの払い出しは行われない。
【0079】
ステップS8において、入賞図柄に相当するメダルが払い出される。
【0080】
メダルの投入からステップS8の実行完了までが、一遊技である。ステップS8の待機処理が終了すると、処理はフローチャートの最初に戻る。言い換えれば、次の遊技が可能な状態になる(次遊技へ移行する)。
【0081】
図7のフローチャートを参照して、発明の実施の形態に係る遊技機の通信異常検知処理について説明を加える。
【0082】
サブ基板が任意の周辺基板と通信を開始しようとするとき、
図7の処理が開始する。
【0083】
S100:サブ基板20の処理部が出力データを構築する。
【0084】
S101:サブ基板20の処理部が当該出力データの出力先である制御対象デバイスを選択する。例えば、アーチなどの電飾を点滅させるときには、出力データとして電飾のLEDの点灯データを生成するとともに、その出力先としてLED基板202を選択し、当該点灯データにLED基板202宛のアドレスを設定する。このようにして構築した出力データをバッファBUFに格納する。格納した出力データは通信路BUSを経由してLED基板202宛に順次送信される。
【0085】
S102:通信異常検知部DETが通信路BUSの状態を監視する。正常であればS103を行い、異常であればS104とS105を行う。
【0086】
通信異常検知部DETが異常と判定するのは次のような場合である。
【0087】
(1)通信路BUSの占有が解放されない(バスビジー)。
図4に示すように通信路BUSが共通であるから、サブ基板20がある周辺基板と通信しているとき、他の周辺基板とは通信することができない。通信終了を待って他の周辺基板が通信を開始する。通信は限られた時間内に終了することになっているが、いつまでも通信路が開放されないときには異常と判定する。具体的にはバスビジーの状態を図示しないカウンタで計時し、これが予め定められた閾値を超えたときに異常と判定する。バスビジーかどうかは、通信路に信号が存在しているかどうかを直接調べるか、あるいはサブ基板20から周辺基板へ又は周辺基板からサブ基板20へ通信終了の信号が送られたかどうかで判断する。
【0088】
(2)周辺基板が応答していない。サブ基板20から周辺基板へデータを送るときにまずその旨の信号を送る。これを受けて周辺基板は応答する(ACKをサブ基板20へ返す)。正常であれば周辺基板は必ず応答を返すから、これがないときに異常と判定する。
【0089】
(3)サブ基板20が周辺基板から異常なデータを受信したとき異常と判定する。例えばパリティが正しくないデータを受信したとき、予め定められたコマンド体系から逸脱したデータを受信したときが該当する。
【0090】
S103:正常であれば、サブ基板20は通信を開始する。
【0091】
S104:異常であれば、通信異常検知部DETは検知した異常に関する情報を異常記憶部EMに記憶する。そして所定のエラー処理(例えば当該周辺基板との通信を強制的に打ち切るなど)を行う(S105)。
【0092】
S106:サブ基板20は通信を終了する。
【0093】
異常記憶部EMに記憶される内容の一例を
図8に示す。例えば、(1)どの周辺基板と通信したときに異常になったか、(2)そのときの異常の内容は何か、(3)当該異常の発生時刻、(4)同一周辺基板・同一異常内容の発生回数、が記憶されている。
【0094】
異常記憶部EMの内容は、出力手段OUTを通じて外部へ出力することができる。出力手段OUTはシリアル伝送を行うようにしてもよい。出力手段は例えば
図5のI/Oであり、これを通じて外部のコンピュータからRWM2の内容を吸い出すことができる。
【0095】
本発明の実施の形態によれば、遊技機における通信の異常を、電源断でも内容の消えることのない記憶部に記憶するようにしたので、例えば、遊技機がホールから外されて戻ってきたときに記憶内容を取り出すことができる。当該異常の記録を商品開発へフィードバックすることで、よりよい製品の開発に資することができる。遊技機のデバイス毎に不具合内容や回数を集計することができ、不具合の原因追求や対策等の参考情報として開発ヘフィードバックできる。
【0096】
なお、異常記憶部EMの記憶内容は、所定のスイッチの操作や、メイン基板10からサブ基板20へ送る特別なコマンドなどのより消去するようにしてもよい。
【0097】
発明の実施の形態2.
上記説明において、通信異常検知部DETはサブ基板20と周辺基板の間の通信異常を検知するものであったが、メイン基板10とサブ基板20の間の通信異常を検知するようにもできる。
図9乃至
図16を参照して、本発明の実施の形態2に係る遊技機について説明を加える。
【0098】
図9は、本発明の実施の形態に係る、メイン基板からサブ基板へデータ伝送を行う装置のブロック図である。本発明の実施の形態に係る動作の説明に必要な部分のみを示し、
図3の投入受付手段1050など他の要素の表示は省略している。同図の装置は、例えば、メイン基板10、サブ基板20のCPUがそれぞれ所定のプログラムを実行することで実現される。あるいは、ICなどのハードウエアで実現することもできる。
【0099】
以下に説明では特に断らない限り、「コマンド」とは所定の動作を行わせる特定のコマンドではなく、コマンド全般のことを意味する。コマンドはメイン基板10で生成するがコマンドそのもの及びその生成手順は公知であるので説明は省略する。以下の説明においてはコマンドは所与の前提として考える。
【0100】
10−1は、メイン基板10で生成されたコマンドを格納している送信バッファである。当該コマンドはひとつ以上の順番に配列された電文(電文とは、ひとまとまりのデータ、典型的には1バイトのデータ)からなるものである。その一例を
図12に示す。送信バッファ10−1は例えば先入れ先出しメモリ(First In First Out:FIFO)であり、電文を送信の順番に従って格納している。
図12のコマンドの例では、電文1、電文2,電文3,電文4、チェックサム、チェックサムの順番で格納している。なお、以下の説明では、特に断らない限り電文1〜チェックサムを電文と表現する。特定の電文について言及するときは「電文1」のように表現する。発明の実施の形態に係る電文は、電文識別用のビットを備えておらず、その全てのビットをデータ格納に使用することができる。
【0101】
10−2は、電文の送信(「コマンドの送信」と表現することもある)が許されている第1期間(
図15などにおける符号TPA)を示す信号と電文の送信が許されていない第2期間(同、符号TPB)を示す信号とを交互に発生する送信タイミング発生部である。送信タイミング発生部10−2は例えばタイマであり、所定間隔で信号(同、符号TmAとTmB、TmA=TmBとなることもある)を出力する。
【0102】
10−3は、送信バッファ10−1から順番に電文を読み出し、送信タイミング発生部10−2の出力に基づき第1期間において電文を順番に送信する送信部である。送信部10−3は、例えば、
図13のように符号TPAの開始タイミングで電文の送信を開始する。
【0103】
10−4は、メイン基板10で作成されたコマンドの電文を送信バッファ10−1に格納するコマンド書込部である。コマンド書込部10−4は、電文を格納する前に送信バッファ10−1が空かどうか調べ、空でないとき送信バッファ10−1をクリアする。クリアすることにより、送信バッファ10−1に送信されない前のコマンドの電文が残っていたときでも、電文エラーを起こさずにコマンドを送信することができる(電文エラーについては
図11及びその説明参照)。
【0104】
20−1は、送信部10−3からの電文を受信する受信部である。受信部20−1は、メイン基板10から電文を受信するごとにそれを受信バッファ20−2に格納する。
【0105】
20−2は、受信した電文を順番に格納する受信バッファである。受信バッファ20−2は例えば先入れ先出しメモリ(First In First Out:FIFO)であり、電文を受信の順番に従って格納している。エラーがなく正常に伝送が行われたときは、電文1、電文2,電文3,電文4、チェックサム、チェックサムの順番で格納する。
【0106】
20−3は、予め定められた一定の時間間隔(
図15などにおける符号Ts。以下「受信チェック間隔」とする)で信号を出力する受信バッファチェックタイミング発生部である。受信バッファチェックタイミング発生部20−3は例えばタイマであり、所定間隔Tsで信号を出力する。
【0107】
20−4は、受信バッファチェックタイミング発生部20−3の出力に基づき受信バッファ20−2に格納されている電文の数をチェックする受信電文数所得部である。当該電文の数は、前回の受信バッファチェックから今回の受信バッファチェックまでに格納された電文の数を意味する。コマンド送信中(この最大期間は概ね第1期間TPAにメイン基板10からサブ基板までの伝送時間を加えた時間)は、当該電文の数は0ではない。しかし、当該電文の数はコマンドを構成する電文の数(
図12の例では6個)を超えることはない。これに対し、コマンド非送信中(この最大期間は概ね第2期間TPBにメイン基板10からサブ基板までの伝送時間を加えた時間)は、当該電文の数が0となる。この点については後に詳しく説明を加える。したがって、電文の数により、送信側であるメイン基板10が第1期間TPAであるのか、第2期間TPBであるのかを判別することができる。メイン基板10とサブ基板20の動作はそれぞれ独立であり、サブ基板20からはメイン基板10がどのような状態にあるか知ることはできないが、本発明の実施の形態によれば電文の数に基づきメイン基板10の動作状態(動作フェーズ)を知ることができる。
【0108】
20−5は、受信バッファ202に電文が格納されているときに当該電文を読み出す受信電文読出部である。受信電文読出部20−5は、データ送信中を意味する電文の数が0でないときに受信バッファ202の電文を全て読みだす。
【0109】
20−6は、受信電文読出部20−5により読み出された電文を順番に格納する電文バッファである。
【0110】
20−7は、受信バッファ20−2に電文が格納されていないときに電文バッファ20−6に格納されている電文を順番に読み出し、メイン基板10からのコマンドとして出力するコマンド出力部である。コマンド出力部20−7は、データ送信完了を意味する電文の数が0であるときに電文バッファ20−6の電文を全て読みだす。
【0111】
20−8は、受信電文読出部20−5が受信バッファ20−2から読み出して電文バッファ20−6に格納した電文を計数する受信連続電文数カウンタである。
【0112】
コマンド出力部20−7は、コマンドを出力するとき、受信連続電文数カウンタ20−8の値を調べ、当該値が予め定められた規定値(
図12の例では電文の数が6でありこれが規定値となる)と一致しないときに電文エラーし、コマンド出力を行わない。
【0113】
また、コマンド出力部20−7は、コマンド出力を行ったとき、電文エラーやチェックサムエラーなどによりコマンド出力を行わなかったときなどに、受信連続電文数カウンタ20−8を初期値(=0)に戻す。
【0114】
コマンド出力部20−7からエラーが出力されると、当該エラーは前述の異常記憶部EMに記憶される。コマンド出力部20−7は、通信異常記憶部DETに相当する。
【0115】
第1期間TPA、第2期間TPB、受信チェック間隔Tsについて説明を加える。
【0116】
第1期間TPAは、コマンドに含まれる全ての電文を送信するに要する時間と同じか又はこれよりも長い。例えば、ひとつの電文の送信時間をtTxとし、コマンドに含まれる電文の数をNとしたとき、第1期間TPA≧N×tTxである。こうすることで、第1期間TPAにおいてコマンドの送信を完結することができ、ひとつのコマンドの電文が間に第2期間TPBを挟んで送信されるといったことが生じない。
【0117】
第2期間TPBは、1つのコマンドがある第1期間TPAで送信され、他の1つのコマンドが第2期間TPBを挟んで次の第1期間TPAで送信されるといった場合に、サブ基板20でメイン基板10のコマンド非送信中である(電文の数=0である)ことを検知できる程度に長く設定される。第2期間TPBを第1期間TPAよりも十分長くとればその条件を満たすことができるが、反面、長くしすぎるとコマンド送信に使用できる時間が短くなり多くのコマンドを送信できないという問題がある。第2期間TPBは、受信チェック間隔Tsよりも長くなければならない(受信チェック間隔Tsよりも短くなると電文の数=0とはならなくなる)。第2期間TPBが受信チェック間隔Tsの2倍よりも長ければ(第2期間TPB>2×受信チェック間隔Ts)コマンド非送信中であることを検知できると考えられる。例えば、受信チェック間隔Tsを第2期間TPBの三分の一程度にする。
【0118】
なお、送信側の処理を簡単にするように、第1期間TPAと第2期間TPBを同じ長さとしてもよい。
【0119】
図10はメイン基板10におけるコマンド送信処理フローチャートを示す。同図の処理はメイン基板10においてコマンドが生成されたときに開始される。
【0120】
S10:コマンド書込部10−4がメイン基板10で生成されたコマンドを受ける。これによりS11以下の処理が実行される。
【0121】
S11:コマンド書込部10−4は、送信バッファ10−1にコマンドを書き込む前に、送信バッファ10−1が空であるかどうか調べる。前述のように、送信可能な第1TPAはコマンドの全ての電文を送信するのに十分な時間に設定されているから、送信が正常に行われている限り新たなコマンドを書き込む際には送信バッファ10−1は空になる(送信バッファ10−1のオーバーフローを避けるために、コマンドの生成頻度は第1期間TPAと第2期間TPBの合計時間に対してせいぜい1個であり、第1期間TPAと第2期間TPBの期間において2個以上生成されないものとする)。
【0122】
しかし、何らかの原因で一部の電文が送信されず、送信バッファ10−1に残っていることも考えられる。そのままの状態でさらに送信バッファ10−1にコマンドの電文をスタックするとコマンドの送信がうまくいかず、コマンドが失われることになりかねない。本発明の実施の形態では第1期間TPAにおいてひとつのコマンドを送信するようにしているから、そこに異なるコマンドの電文が混じると電文エラー又はチェックサムエラー(
図11及びその説明参照)となり、正常なコマンドが出力されない。送信バッファ10−1に残っていたコマンドのみならず、新たに格納したコマンドも失われることになる。そこで送信バッファ10−1をクリアすることで新たに格納したコマンドをサブ基板20へ正常に伝達できるようにする。
【0123】
S12:送信バッファ10−1に前のコマンドの電文が残っていたとき(S11でNO)、コマンド書込部10−4は、送信バッファエラーと判定する。
【0124】
S13:コマンド書込部10−4は、送信バッファ10−1をクリアする。
同じく、送信バッファ10−1に前のコマンドの電文が残っていたとき(S11でNO)、送信バッファ10−1をクリアする。
【0125】
S14:コマンド書込部10−4は、送信コマンドを送信バッファ10−1に格納する。
コマンドを、これを構成する電文ごと順番に送信バッファ10−1に格納する。コマンドの構成の一例を
図12に示す。同図のコマンドは6つの電文(各1バイト)から構成される。同図の左側が先頭である。電文1〜電文4はコマンドの本文であり、後ろの2つはそれらのチェックサム(2バイト)である。
図12の例では、送信バッファ10−1に、電文1、電文2、電文3、電文4、チェックサム(その1)、チェックサム(その2)の順番で格納される。先に説明したように、これら6つの電文は電文識別用のビットを備えておらず、その全てのビットをデータ格納に使用することができる。電文1〜電文4、チェックサムは単なる1バイトのデータであるからその内部構造の図示及び説明は省略する。
【0126】
S15:送信部10−3は、送信タイミング発生部10−2の信号を監視し、送信可タイミングであるかどうか判定する。第1期間TPAになったらYESとなる。
【0127】
S16:送信可タイミングになったら、送信部10−3は送信バッファ10−1から電文を順番に読み出し、サブ基板20へ送信する。
【0128】
図11はサブ基板20におけるコマンド受信処理フローチャートを示す。同図の処理は、受信バッファチェックタイミング発生部20−3による受信バッファチェックタイミングで開始される。
【0129】
S20:受信電文数取得部20−4は、受信バッファチェックのタイミングであるかどうか判定する。YESのときにS21以下の処理を実行する。
【0130】
S21:受信電文数取得部20−4は、受信バッファ20−2にある電文の数(電文数)を取得する。取得した電文数を受信電文読出部20−5へ送る。
【0131】
S22:受信電文読出部20−5は、電文数に応じて処理を振り分ける。電文数が1以上であれば第1期間TPAに係る電文受信中であるとしてS23〜S27の処理を行う。電文数が0であれば第2期間TPBに係る電文受信休止中であるとしてS28〜S33の処理が行われる。
【0132】
なお、一定回数以上連続して電文数=0となったときにインターバルとしてS28〜S33の処理を行うようにしてもよい(例えばS28で「0」になったときにS28〜S33の処理を行う)。
【0133】
S23:受信電文読出部20−5は、受信電文数取得部20−4からの出力に基づき取り出すべき電文数(取得数)を設定する。
【0134】
S24:受信電文読出部20−5は、ひとつの電文を取り出し、それを電文バッファ20−6に保存する。
【0135】
S25:受信電文読出部20−5はひとつの電文を取り出すごとに受信連続電文数カウンタ20−8を動作させ、受信連続電文数を加算する。
【0136】
S26:受信電文読出部20−5は、取り出すべき電文数(取得数)をひとつ減算する。
【0137】
S27:受信電文読出部20−5は、受信バッファ20−2の全ての電文を読み出すまで上記S24〜S26を繰り返す。S27で電文数=0となったときは受信バッファ20−2が空になる。
【0138】
S28:コマンド出力部20−7は、受信連続電文数カウンタ20−8から受信連続電文数を受け、これに基づき処理を振り分ける。
【0139】
受信連続電文数=0であれば、電文が送信されていない状態(インターバル)が繰り返されたとして
図11の処理を抜ける。インターバルの連続は異常とはしない。
【0140】
受信連続電文数=6であれば、
図12のコマンドの全ての電文を受信したことになるので、コマンドを出力するためにS29〜S31の処理を行う。
【0141】
受信連続電文数≠0かつ≠6であれば電文エラーとする(S32)。受信連続電文数が1以上で5以下のときは本来受信すべき電文の一部を受信できず、コマンドを正常に出力できないから電文エラーとする。また、受信連続電文数が7以上のときはノイズ等を誤って電文として受信したことを意味するからやはりコマンドを正常に出力できず、電文エラーとする。
【0142】
電文エラー(S32)になったとき、
図7のS102で「異常」となり、当該エラーは前述の異常記憶部EMに記憶される(
図7のS104)。例えば、異常基板=メイン基板、異常内容=電文数エラー、時刻=検知時刻、累積回数=前回回数+1のように記憶される。
【0143】
S29:コマンド出力部20−7は、受信したチェックサムに基づき電文1〜電文4をチェックする。チェックサムに関する処理は公知であるのでその説明は省略する。
【0144】
S30:チェックサムによるチェックの結果が正常であれば、コマンド出力部20−7は受信したコマンド(電文1〜電文4)を出力する。
【0145】
S31:チェックサムによるチェックの結果が以上であれば、コマンド出力部20−7はチェックサムエラーとして受信したコマンドを出力しない。
【0146】
チェックサムエラー(S31)になったとき、
図7のS102で「異常」となり、当該エラーは前述の異常記憶部EMに記憶される(
図7のS104)。例えば、異常基板=メイン基板、異常内容=チェックサムエラー、時刻=検知時刻、累積回数=前回回数+1のように記憶される。
【0147】
S33:コマンド出力部20−7は、受信連続電文数カウンタ20−8をクリアする。この処理は、S30、S31、S32の後に行う。これにより次の第1期間TPAでコマンドを受信する準備が整う。
【0148】
次に、
図13〜
図16のタイミングチャートを参照して、発明の実施の形態に係る装置の動作について説明を加える。
図13〜
図16では、時刻tm1からtm2にかけての第1期間TPAにおいて電文1〜電文4、2つのチェックサム(これらを電文5と電文6に表現することがある)を送信している。それらのデータの流れを符号a1〜a6で示している。その後の時刻tm2からtm3が第2期間TPBでありデータ送信を中止している。受信バッファチェックタイミングは一定間隔Tsで繰り返されており、それらを符号ts1〜ts8で示している。第1期間TPAと第2期間TPBの組み合わせが繰り返される。
【0149】
図13はコマンドを正常に受信した例を示す。
【0150】
時刻ts2においてはその直前に符号a1で電文1が伝送されてくるから受信バッファ20−2にある電文数は1となる(
図11のS22で「1以上」)。電文1が受信バッファ20−2から取り出され、電文バッファ20−6に格納される(
図11のS24)。そして、受信連続電文数=1となり(
図11のS25)、処理を終了する。
【0151】
時刻ts3においては同様に電文2と電文3を格納し、受信連続電文数=1+2=3となる。
【0152】
時刻ts4においても同様に電文4と電文5(チェックサム)を格納し、受信連続電文数=3+2=5となる。
【0153】
時刻ts5においても同様に電文6(チェックサム)を格納し、受信連続電文数=3+1=6となる。
【0154】
時刻ts6においては、時刻ts5以降に電文を受けていないから受信バッファ20−2は空であり、電文数は0となる(
図11のS22で「0」)。受信連続電文数は上述のように6であるから正常と判定され(
図11のS28で「6」)、次にチェックサムを検査し、正常であれば電文1〜電文4をコマンドとして出力する(
図11のS30)。そして受信連続電文数をクリアする(S33)。
【0155】
図14はノイズを電文と誤って受信した例を示す。
【0156】
時刻ts2〜ts4の動作は
図13の場合と同じである。
【0157】
時刻ts5においてはその直前に符号a6で電文6が伝送されてきたが、その後ノイズを電文と誤認して受信バッファ20−2に格納したので、受信バッファ20−2にある電文数は2となる(
図11のS22で「1以上」)。電文6とノイズが受信バッファ20−2から取り出され、電文バッファ20−6に格納される(
図11のS24)。そして、受信連続電文数=5+2=7となり(
図11のS25)、処理を終了する。
【0158】
時刻ts6においては、時刻ts5以降に電文を受けていないから受信バッファ20−2は空であり、電文数は0となる(
図11のS22で「0」)。受信連続電文数は上述のように7であるから異常と判定され(
図11のS28で「6以外又は0以外」)、電文エラーとなる(
図11のS32)。そして受信連続電文数をクリアする(S33)。
【0159】
図15はノイズを電文と誤って受信した例を示す。
図15は、
図14と異なり、コマンドを正常に受信した後のインターバルの期間においてノイズを受信している。
図15ではコマンドは失われていない。
【0160】
時刻ts2においてはその直前に符号a1で電文1と電文2が伝送されてくるから受信バッファ20−2にある電文数は2となる(
図11のS22で「1以上」)。電文1と電文2が受信バッファ20−2から取り出され、電文バッファ20−6に格納される(
図11のS24)。そして、受信連続電文数=2となり(
図11のS25)、処理を終了する。
【0161】
時刻ts3においては同様に電文3と電文4を格納し、受信連続電文数=2+2=4となる。
【0162】
時刻ts4においても同様に電文5と電文6(チェックサム)を格納し、受信連続電文数=4+2=6となる。
【0163】
時刻ts5においては、時刻ts4以降に電文を受けていないから受信バッファ20−2は空であり、電文数は0となる(
図11のS22で「0」)。受信連続電文数は上述のように6であるから正常と判定され(
図11のS28で「6」)、次にチェックサムを検査し、正常であれば電文1〜電文4をコマンドとして出力する(
図11のS30)。そして受信連続電文数をクリアする(S33)。
【0164】
時刻ts6においては、ts5とts6の間でノイズを電文と誤認して受信バッファ20−2に格納した。受信バッファ20−2にある電文数は1となる(
図11のS22で「1以上」)。そして、受信連続電文数=1となる(
図11のS25)。
【0165】
時刻ts6においては、時刻ts6以降に電文を受けていないから受信バッファ20−2は空であり、電文数は0となる(
図11のS22で「0」)。受信連続電文数は上述のように1であるから異常と判定され(
図11のS28で「6以外又は0以外」)、電文エラーとなる(
図11のS32)。そして受信連続電文数をクリアする(S33)。
【0166】
図16はノイズなどにより一部の電文を受信できなかった例を示す。
図16では符号a4の電文4を受信できなかった。
【0167】
時刻ts2においてはその直前に符号a1で電文1と電文2が伝送されてくるから受信バッファ20−2にある電文数は2となる(
図11のS22で「1以上」)。電文1と電文2が受信バッファ20−2から取り出され、電文バッファ20−6に格納される(
図11のS24)。そして、受信連続電文数=2となり(
図11のS25)、処理を終了する。
【0168】
時刻ts3においては電文3を受信したものの、電文4は受信できなかった。受信連続電文数=2+1=3となる。
【0169】
時刻ts4においては電文5と電文6(チェックサム)を受信し、受信連続電文数=3+2=5となる。
【0170】
時刻ts5においては、時刻ts4以降に電文を受けていないから受信バッファ20−2は空であり、電文数は0となる(
図11のS22で「0」)。受信連続電文数は上述のように5であるから異常と判定され(
図11のS28で「6以外又は0以外」)、電文エラーとなる(
図11のS32)。そして受信連続電文数をクリアする(S33)。
【0171】
発明の実施の形態2によれば、メイン基板とサブ基板の間の通信異常を検知するとともにその情報を保存することができる。ノイズ等による電文の誤受信があったときでもこれを検出することができ、不適切なコマンドを解釈実行することもない。
【0172】
また、コマンドを構成する電文にその識別のための情報(ビット)を設ける必要がなく、電文の全てのビットを送るべき情報に割り当てることができるので、より多くの情報を効率よく伝送することができる。すなわち、コマンドのまとまりをコマンド間のインターバルにより認識することで、電文に電文識別情報を含める必要がなくなり、8ビットの電文ひとつで0〜255の全ての表現が可能となった。これによりソフトウエア設計の効率向上や処理負荷軽減が期待できる。なお、電文は8ビットに限定されないのは言うまでもない。
【0173】
発明の実施の形態3.
通信異常を記録することに加えて、通信異常が生じたときに周辺基板に対する制御を中止するようにしてもよい。例えば、可動役物(可動体)を動作させているときにACKが返ってこない場合において、コマンドが届いていないのかそれとも応答が返ってこないだけなのか判断できない。仮に後者の場合、可動体が動作を続けることになり、最悪は可動体が限界を超えて動いて破損し、可動体を駆動するモータが過負荷になり焼損することもあり得る。そこで、特に可動体について通信異常が生じたときは制御を打ち切り、停止コマンドを送ることでトラブルを防止することが好ましい(応答が返ってこないだけであれば停止コマンドで可動体を停止させることができ、コマンドが届いていないのであれば可動体はそもそも動作しない)。発明の実施の形態3はそのような遊技機に関する。
【0174】
図17は前扉を閉めた状態を示すスロットマシンの正面図を示す。
図1とは、可動体50を追加で備える点を除き同じである。
【0175】
液晶表示装置LCDの位置には可動体50が設けられている。可動体50は2つのシャッター(可動体要素)51L及び51Rを備える。2つのシャッター51L及び51Rは演出に従い左右に動き、液晶表示装置LCDを隠す。同図では、2つのシャッター51L及び51Rがそれぞれ左右に一杯に開き、液晶表示装置LCDが露出している(遊技者が画面をみることができる)状態を示している。
【0176】
なお、
図17の可動体50は一例であり、他の形態のものもある。例えば、液晶表示装置LCDがゲーム表示部131の右側に設けられているときは可動体50も同じ位置に設けられる。可動体50のシャッター51Lと51Rで隠されるものが、LEDや電球などの電飾である場合もある。シャッターの数が1枚であることもある。
【0177】
図18は発明の実施の形態3に係るスロットマシン100の機能ブロック図を示す。
図3とは、可動体50及び可動体制御部60を追加で備える点を除き同じである。
【0178】
サブ基板20には液晶表示装置の制御用の液晶制御基板200、スピーカ基板201、LED基板202などの周辺基板(ローカル基板)が接続されている。さらに、可動体50を制御する可動体制御部60が接続されている。
【0179】
図19は、発明の実施の形態に係る可動体50の概略図である。同図(a)は上面図、同図(b)は正面図、同図(c)はB−B矢視断面図、同図(d)はA−A矢視断面図である。なお、同図ではステッピングモータ54を含む駆動部と、インデックス56及びインデックスセンサ57は右側のシャッター51Rにのみ示されているが、同じものが左側のシャッター51Lについても設けられている(左側のものについての図示は省略されている)。
【0180】
可動体50は、左側のシャッター51L及び右側のシャッター51Rと、シャッター51L及び51Rの上端及び下端をそれぞれ摺動自在に保持する上側のレール52U及び下側のレール52Lと、可動体50の内側に下側のレール52Lと平行に設けられたラック53aと、これにかみ合うピニオン53bと、ピニオン53bがその回転軸に直接あるいは図示しない減速歯車機構を介して取り付けられたステッピングモータ54と、右側のシャッター51Rの内側に取り付けられたブラケット55(腕金・張り出し金具であるブラケット55はステッピングモータ54の取り付け台座でもある)と、右側のシャッター51Rの内側に取り付けられたインデックス56と、インデックス56を検知するインデックスセンサ57とを備える。同図では、ピニオン53b〜インデックス56を右側のシャッター51Rについて示しているが、左側のシャッター51Lについても同様の構造であり、その説明は省略する。
【0181】
同図(b)は、シャッター51L及び51Rをそれぞれ両側へ一杯に開いた状態をしめしており、同図の例では当該状態においてインデックスセンサ57はインデックス56を検知する。インデックスセンサ57は、例えばフォトインタラプタのような光学式あるいはマイクロスイッチのような接触式などのセンサである。シャッター51L及び51Rの移動可能な範囲は同じであり、可動体50の中央(詳しくは、シャッター51L及び51Rをそれぞれ両側へ一杯に開いた状態におけるシャッター51L及び51Rの端間の中点)である中間点までしか移動できない。同図(b)の0、50、100の数字は移動範囲を示す。100は中間点に相当する。シャッター51Lは左側の0から中央の100まで移動可能であり、シャッター51Rは右側の0から中央の100まで移動可能である。そして、インデックスセンサ57は、シャッター51L、51Rが「0」の位置に来たことを検知するものである。すなわち、
図20(a)に示すように、シャッター51L、51Rが一杯に開いたとき(下限に達したとき)にその端が「0」の位置にある。2つのシャッター51L及び51Rの端がそれぞれ「0」の位置にあると、それらがそれぞれ左右に一杯に開き、液晶表示装置LCDが露出する(遊技者が画面をみることができる)。
図20(b)に示すように、シャッター51L、51Rが完全に閉じたとき(上限に達したとき)にその端が「100」の位置にある。2つのシャッター51L及び51Rの端がそれぞれ「100」の位置に移動しそれらが完全に閉じると、液晶表示装置LCDは全く見えなくなる。
【0182】
ラック53aとピニオン53bは、回転力を直線の動きに変換する機構である。ピニオン53bは小口径の円形歯車であり、ラック53aは平板状の棒に歯切りをした(歯がつけられた)ものである。ステッピングモータ54によりピニオン53bに回転力を加えると、シャッター51L,51Rがラック53a上を水平方向に動く。
図19によれば、ラック53aは可動体50のフレームに固定され、ステッピングモータ54はブラケット55によりシャッター51L,51Rに取り付けられているから、シャッター51L,51Rのほうが動く。
【0183】
ステッピングモータは、回転子(ロータ)として歯車状の鉄心あるいは永久磁石を備え、固定子(ステータ)として複数の巻線(コイル)を備え、電流を流す巻線を切り替えることによって回転動作させるものである。すなわち、固定子の巻線に電流を流して磁力を発生させ、回転子を引きつけることで回転するものである。回転軸を指定された角度で停止させることが可能なことから、スロットマシンのリールの回転駆動に使用されている。複数の巻線がひとつの相を構成する。相の数として、例えば、2つ(二相)、4つ(4相)、5つ(5相)のものもある。ステッピングモータのコイルに所定の順番で電流を流すことでモータの軸は回転し、逆の順番で電流を流すとモータの軸は逆回転する。
【0184】
図19及び
図20に示した可動体はあくまで一例である。また、上記のインデックス56とインデックスセンサ57の位置関係及び可動体51L,51Rの位置の定義はあくまで一例である。例えば、可動体の移動範囲が−50から100までであり、インデックスセンサが−20,0,+20などの位置を検知するものであってもよい。ここで、マイナスの値は、可動体51L,51Rの0の位置からさらに外側(マイナス側)に動くことを意味する。例えば、−50は、
図19(b)の0の位置から、0と50の間に相当する距離を外側に(100の位置とは反対側に)動いた位置になる。
【0185】
上記例では、可動体51L,51Rの位置をインデックス56とインデックスセンサ57により検出していたが、他の位置検出手段(センサ)を使用するようにしてもよい。例えば、インデックス56とインデックスセンサ57に代えて磁石とリードスイッチの組み合わせを用いることができる。あるいは、スライド抵抗のようなポテンショメーターを、その作用部が可動体51L,51Rの動きに連動するように設ければ、当該ポテンションメーターの抵抗値(あるいは電圧値)に基づき可動体51L,51Rの位置を直接知ることができる(可動体が特定の位置にあることだけではなく、可動体がどの位置にあるかを知ることができる)。
【0186】
可動体の制御について簡単に説明する。
演出の要請に応じて可動体をどのように動かすか(例えば、シャッター51R,51Lを全開する、あるいは全閉する、特定の位置まで動かしてそこで止める、開閉を繰り返すなど)が決定される。これを受けて、ステッピングモータ54の移動ステップ数(与えるパルス数)、回転方向、回転速度(パルスの周波数)、などの情報(動作情報)を登録する。動作情報とは、可動体の動きを指示するための情報である。例えば、シャッター51R,51Lを特定の位置まで動かしてそこで止める場合は、現在位置と目標位置の差に基づき移動ステップ数を決定し、現在位置と目標位置の位置関係に基づき回転方向を設定し(前記差が小さくなるように回転方向を設定する)、素早い演出であればパルス周波数を高い周波数fHとし、ゆっくりとした演出であればそれを低い周波数fLとする(fH>fL)。
【0187】
周辺基板である可動体制御部60へ励磁データを送るため、及び、可動体制御部60からインデックスセンサ57のデータを受けるための設定を行ために、例えば、I/Oの特定のレジスタに励磁データとともに、可動体制御部60に対して取得したインデックスセンサ57のデータを送るように命ずるコマンドを書き込む。ここで設定されたデータは所定のタイミングで(例えば、通信用のIC(I/O)のレジスタに送受信データ及び相手先のアドレスが設定されていて、当該ICに対してデータ送受信の割り込みがかけられたとき)、指定された相手である可動体制御部60へ送られる。可動体制御部60は、受けた励磁データに基づきステッピングモータ54の所定の相に電流を流し、他の相の電流をオフにする。ステッピングモータ54を停止する際には、全ての相に電流を流し(全相励磁)、停止後に全ての相の電流をオフにする。他に、特定の相に一定時間持続して電流を流して停止させるというやり方もある。
【0188】
前記コマンドに従って、可動体制御部60はサブ基板20へインデックスセンサ57のデータ(位置情報)を送るが、それは励磁データ受信処理の後である。サブ基板20と周辺基板の間では所定のプロトコルでデータ送受信が行われており、データの形式も予め定められている。このため、ステッピングモータ54の励磁命令(例えば、第1相はオン、第2相はオフといった命令)をそのまま送ることはできず、通信に適する形式の励磁データにする必要がある。また、励磁データを受けた可動体制御部60では、当該励磁データを、ステッピングモータ54を直接駆動する命令に変換する必要がある(例えば、第1相の端子A,Bの間に電圧を印加し、第2相の端子C,Dの電圧をゼロ(オフ)にする)。同様に、インデックスセンサ57の信号についても、そのオンオフ信号(H/L信号)を所定の形式のデータに変換し、サブ基板20へ送る。サブ基板20は、受けたデータをインデックスセンサ57のオンオフ信号(H/L信号)に対応するデータ(0,1)に変換する。インデックスセンサ57のデータ(センサの位置情報)に基づきインデックスセンサの値(位置情報)を更新する。
【0189】
図21のフローチャートを参照して、発明の実施の形態3に係る遊技機の通信異常検知処理について説明を加える。
【0190】
サブ基板が可動体制御部60と通信を開始しようとするとき、
図7の処理が開始する。
【0191】
S100:サブ基板20の処理部が出力データを構築する。
例えば、可動体制御部60へ励磁データを送るためにI/Oの特定のレジスタに励磁データを書き込むとともに、可動体制御部60からインデックスセンサ57のデータを受けるために、インデックスセンサ57のデータを送るように命ずるコマンドを書き込む。
【0192】
S101:サブ基板20の処理部が当該出力データの出力先である制御対象デバイスを選択する。ここでは、可動体制御部60を選択する。
【0193】
S103:サブ基板20は可動体制御部60と通信を開始する。
上記コマンドを送信するとともに、可動体制御部60からのインデックスセンサ57のデータを待つ。
【0194】
S102:通信異常検知部DETが通信路BUSの状態を監視する。正常であればS103を行い、異常であればS104とS105を行う。
【0195】
通信異常検知部DETが異常と判定するのは前述した(1)乃至(3)のような場合であるが、加えて、発明の実施の形態3では、予め定められた時間内においてインデックスセンサ57のデータ(センサの位置情報)に基づき位置情報が更新されない(タイムアウトエラー)ときにも異常と判定する。発明の実施の形態3ではもっぱら当該ケースについて説明を加える。
【0196】
当該ケースは、前述の「(2)周辺基板が応答していない」に概ね相当するが位置情報が更新されないことは、モータ54が動作しているのもかかわらずシャッター51が動いていない(モータ54過負荷)、インデックスセンサ57が故障している(シャッター51のオーバーランの可能性)というような不具合を含む。このような不具合が発生したときは異常と判定するのみならず、装置の故障を避けるために制御を中止することが望ましい。
【0197】
S104:異常であれば、通信異常検知部DETは検知した異常に関する情報を異常記憶部EMに記憶する。
【0198】
S105b:制御を中止する。ここでは、単にサブ基板20で制御処理を中止するのみならず、可動体制御部60に対してモータ54の駆動を止めるように指令する。すなわち、I/Oの特定のレジスタに励磁中止を指令するデータを書き込む。
【0199】
S106:サブ基板20は通信を終了する。
【0200】
発明の実施の形態3によれば、発明の実施の形態1と同様の効果を奏するとともに、通信異常のときに制御を中止するので、演出用デバイスや周辺機器の損傷などのトラブルを防止することができる。
【0201】
なお、以上の説明では遊技機としてスロットマシンを例に挙げたが、本発明の実施の形態はパチンコ機のようなほかの遊技機にも適用することができる。
【0202】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。