ユーザ用ツール

サイト用ツール


event_script

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
event_script [2016/09/14 15:36]
– [WAITIF命令の解説] yaasan
event_script [2022/02/25 22:05] (現在)
– [S88センサラッチ機能] yaasan
行 15: 行 15:
 ===== イベントの解説 ===== ===== イベントの解説 =====
  
-==== スタートアップ ====+==== 一覧 ====
  
-線路に電源が投入された時に動作します。 +^トリガの種類 ^トリガの内容^ 
-ルートの初期設定、たとえばポイントや信号機の初期化に使うと良いです。 +|進入 |S88センサがOFFからONに変わった瞬間に発生します。 | 
-==== 侵入 ====+|退出 |S88センサがONからOFFに変わった瞬間に発生します。 | 
 +|在線 |S88センサがONの時に発生します。ONが続く場合はイベント命令が全て実行が終わった時に最初に戻って繰り返します。 | 
 +|非在線 |S88センサがOFFの時に発生します。OFFが続く場合はイベント命令が全て実行が終わった時に最初に戻って繰り返します。 | 
 +|定周期 |一定周期でスクリプトを実行させます。何かの監視をする時に便利です。 | 
 +|時刻 | 懐中時計の時刻に合わせて動かすタイミングを選べます。| 
 +|ランダム | 指定した時間間隔の中でランダムにイベントを発生させます。1時間と指定したら、1時間以内でいつ発生するかは分かりません。1分後かもしれませんし、59分後かもしれません。| 
 +|走行中 |指定の車両が走行中(指定速度以上)かどうかでスクリプトを動作させます。 | 
 +|停止中 |指定の車両が停止中(指定速度以下)かどうかでスクリプトを動作させます。| 
 +|フラグ |フラグの値が指定の条件を満たす場合にスクリプトを動作させます。 | 
 +|ルート |ルート条件に適合するかどうか(ルートが開通しているか)でスクリプトを動作させます。 | 
 +|電源投入時(Startup) |線路に電源が投入された時に動作します。ルートの初期設定、たとえばポイントや信号機の初期化に使うと良いです。 |
  
-S88センサがOFFからONに変わった瞬間に発生します。 
  
 +進入:\\ 
 {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_entering-thumbnail2.png}} {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_entering-thumbnail2.png}}
  
-==== 退出 ==== +退出:\\ 
- +
-S88センサがONからOFFに変わった瞬間に発生します。 +
 {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_leaving-thumbnail2.png}} {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_leaving-thumbnail2.png}}
  
-==== 在線==== +在線:\\ 
- +
-S88センサがONの時に発生します。ONが続く場合はイベント命令が全て実行が終わった時に最初に戻って繰り返します。 +
 {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_existing-thumbnail2.png}} {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_existing-thumbnail2.png}}
  
-==== 非在線 ==== +非在線:\\ 
- +
-S88センサがOFFの時に発生します。OFFが続く場合はイベント命令が全て実行が終わった時に最初に戻って繰り返します。 +
 {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_none-thumbnail2.png}} {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_S88_none-thumbnail2.png}}
  
- 
-==== 時間関連トリガ ==== 
- 
-以下は時間に関係するトリガです。 
- 
-・定周期 一定周期でスクリプトを実行させます。何かの監視をする時に便利です。 
-・時刻  懐中時計の時刻に合わせて動かすタイミングを選べます。 
-・ランダム 指定した時間間隔の中でランダムにイベントを発生させます。1時間と指定したら、1時間以内でいつ発生するかは分かりません。1分後かもしれませんし、59分後かもしれません。 
- 
-==== 車両速度関連トリガ ==== 
- 
-以下は、機関車の速度に関係するトリガです。 
- 
-・走行中 
-・停止中 
- 
-==== ルート関連トリガ ==== 
- 
-以下は、ルート条件に適合するかどうか(ルートが開通しているか)で動作するトリガです。 
- 
-・ルート 
- 
-==== フラグ関連トリガ ==== 
- 
-以下はフラグの条件でトリガを動かします。 
- 
-・フラグ 
  
 ===== 車両選択の解説 ===== ===== 車両選択の解説 =====
行 88: 行 62:
  
 通常は、上記で示した通り、自動置換機能で、車両をコマンドごとに設定する必要はありませんが、たまに特定の車両だけ動かしたい場合があります。この時は、置換機能を使わずに直接、アドレスを設定します。切替方法は簡単で、「自動置換」のチェックボックスを外せば、アドレスを指定できます。 通常は、上記で示した通り、自動置換機能で、車両をコマンドごとに設定する必要はありませんが、たまに特定の車両だけ動かしたい場合があります。この時は、置換機能を使わずに直接、アドレスを設定します。切替方法は簡単で、「自動置換」のチェックボックスを外せば、アドレスを指定できます。
 +なお、アドレスではなくスロットを指定することもできます。スロットは、SPEED,FUNCTION,DIRECTIONのみ、指定が可能です。
  
 自動置換設定時:\\  自動置換設定時:\\ 
行 95: 行 70:
 {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_1_4-thumbnail2.png}} {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/AutoControl_1_4-thumbnail2.png}}
  
 +スロット指定時:\\
 +{{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/SLOT_DSS2-thumbnail2.png}}
 ===== 速度変更命令の解説 ===== ===== 速度変更命令の解説 =====
  
行 122: 行 99:
  
  
-===== JUMP系命令の解説 =====+===== S88センサラッチ機能 =====
  
-JUMP命令と、LABEL命令はセットで使うものです。JUMP命令には条件を設定します。その条件に合うとき、LABELに飛ぶ処理を行います。LABEL関数は、それだけは何もしません。単なるJUMP先の目印でしか使いません。なので、何個設置しても何も起きません。たとえば、以下の様な使い方ができます。+**0.97以降からサポート** 
 + 
 +ラッチ機能=S88の指定センサの状態を強制的にOFF(赤)かON(緑,在線)に設定変更して、解除の合図があるまではそれを保持する機能です。 
 + 
 +理由としては、センサはどうしてもチャタリングすることが多く、電流式であっても、ギャップをまたぐときに誤動作のリスクもありました。また、複数のセンサを連動して考えるとき、S88のハードでは実現が難しいので、プログラミングでどうにかするには、結構面倒でした。 
 + 
 +なぜ複数のセンサを連動させたいかというと、次の閉塞区間まできちんと行ったかどうかを判定するとき、センサを通過してしまうと自動的に非在線に戻ります(特に光式センサの場合が顕著)。特に信号機などを連動させると、自動的に戻るのが困る状況がよくあります。そこで、自動で戻らないようにして、ある条件で復帰するようにするためにラッチ機能を使用するのです。 
 + 
 +SETすると、その状態を強制的に保持する形になります。 
 +OPENすると、ラッチ(SETした状態の保持)を解除します。 
 + 
 +===== JUMP系命令の解説(廃止予定) ===== 
 + 
 +**JUMP系命令は廃止予定です。0.97以降からコマンド追加ができません。汎用性の高いGOTOIFコマンドを使用下さい。** 
 + 
 + 
 +JUMP命令と、LABEL命令はセットで使うものです。JUMP命令には条件を設定します。その条件に合うとき、指定されたLABELの付いた行に飛ぶ処理を行います。LABEL関数は、それだけは何もしません。単なるJUMP先の目印でしか使いません。なので、何個設置しても何も起きません。たとえば、以下の様な使い方ができます。
  
 (A)オーソドックスな形です。(B)はちょっと変則ですが、何かの条件が成立するまで待つなどの処理に使えます。 (A)オーソドックスな形です。(B)はちょっと変則ですが、何かの条件が成立するまで待つなどの処理に使えます。
行 149: 行 142:
  
  
-===== WAITIF命令の解説 =====+===== IF命令の解説 =====
  
-WAITIF関数は、条件が成立するまでひたすらイベントの中で待つ動作をします。待つための条件は、構文を入れて指定します。+GOTOIF関数は、条件が成立している場合、指定ラベルにジャンプします。条件が不成立の場合、何も実行しません。ジャンプするための条件は、IF構文を入れて指定します。WAITIF関数は、条件が成立するまでひたすらイベントの中で待つ動作をします。待つための条件は、IF構文を入れて指定します。
  
 {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/DSS160901_4-thumbnail2.png}} {{http://buin2gou.sakura.ne.jp/sblo_files/powerele/image/DSS160901_4-thumbnail2.png}}
行 172: 行 165:
 |SSPD | 指定スロットの速度。速度の範囲は0-1023.スロットはA~Hまで指定できます。SSPD.G==500 | |SSPD | 指定スロットの速度。速度の範囲は0-1023.スロットはA~Hまで指定できます。SSPD.G==500 |
 |SDIR | 指定スロットの車両の進行方向, 1=FWD, 2=REV. スロットはA~Hまで指定できます。SDIR.G==1| |SDIR | 指定スロットの車両の進行方向, 1=FWD, 2=REV. スロットはA~Hまで指定できます。SDIR.G==1|
-|S88 | S88デコーダの指定アドレス。数字のみ。1~ |+|S88 | S88デコーダのアドレス。数字のみ。センサ1ならS88.1、センサ52ならS88.52 |
 |ACC | ポイント・信号機の分岐方向, 0=分岐, 1=直進。アドレスはそのまま指定できます。ACC.1==1| |ACC | ポイント・信号機の分岐方向, 0=分岐, 1=直進。アドレスはそのまま指定できます。ACC.1==1|
 |ROUTE | ルートが開通状態(1)か、非開通状態(0)かを返します。ROUTE.2==1| |ROUTE | ルートが開通状態(1)か、非開通状態(0)かを返します。ROUTE.2==1|
行 179: 行 172:
 ==== 使用例 ==== ==== 使用例 ====
  
-■どのよう使うか+ドットを入れて、構文指定したい数値条件のための命令を指定します。すべて大文字で、ACC.5やSIDR.Cなどと指定してください。
  
-ぱっと思いつくのは、ポイントが開通するまで待つという処理です。ポイント3が、直進に開通するまで待つ、という処理であれば以下のように記載します。+実際の使い方ですが、ぱっと思いつくのは、ポイントが開通するまで待つという処理です。ポイント3が、直進に開通するまで待つ、という処理であれば以下のように記載します。
  
-WAITIF,ACC.3==1, +WAITIF,ACC.3==1,\\  
-もしくは+もしくは\\ 
 WAITIF,ACC.3!=0, WAITIF,ACC.3!=0,
  
 ==== 注意事項 ==== ==== 注意事項 ====
  
-空白スペースを入れてはいけません +  * 空白スペースを入れてはいけません 
-全角を指定してはいけません。半角英数字・記号のみ指定します。 +  全角を指定してはいけません。半角英数字・記号のみ指定します。 
-カッコ、四則演算には対応していません+  * 命令は小文字にしないでください。 
 +  * カッコ、四則演算には対応していません 
 + 
 +===== サンプル ===== 
 + 
 +DesktopStationSoftwareを使用した、イベントスクリプトのサンプルスクリプトや、解説のサイトをご紹介します。 
 + 
 +  - [[EventScript_Template_Shuttle]] 
 +  - [[EventScript_Template_cross]] 
 + 
 +あそびっとさん: 
 + 
 +  * [[http://ameneko.net/aso-bit/2016/160829/160829.html|DesktopStationで列車交換]]  
 +  * [[http://ameneko.net/aso-bit/2016/160125/160125.html|DesktopStationで自動運転]] 
 +  * [[http://ameneko.net/aso-bit/2016/161118/161118.html|2列車自動運転]]  
 +  * [[http://ameneko.net/aso-bit/2016/160312/160312.html|自動運転で機回し]]  
 + 
 +エンゼルエクスプレスさん 
 + 
 +  * [[https://angelex.exblog.jp/237226770/|箱庭計画11~在線検知とイベントスクリプト~]]  
 +  * [[https://angelex.exblog.jp/238409712/|箱庭計画15 ~自動運転テスト(定周期発車往復編)~]] 
  
event_script.1473834994.txt.gz · 最終更新: 2016/09/14 15:36 by yaasan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki