サンプルの右上に表示される
下記のアイコンを左クリックすると
スクリプトだけが別窓で開くので、
右クリックメニューの[すべて選択]→[コピー]をしてください。
スクリプトの編集ウィンドウにあるメニューで[編集]→[張り付け]をしてください。
当ページの解説の中で
ご不明な点がありましたら、
お気軽に下記までご質問下さい。
このページのスクリプトサンプルを使用した場合のビュワー動画です。
どのようなことが出来るのか、はじめに映像でご確認ください。
センサーと警報機、遮断機を図のように配置してください。
踏切への列車進入を検知させるセンサーは踏切から少し距離を置いて、
列車脱出を検知させるセンサーは踏切の近くに配置すると、
よりリアルな踏切の挙動になります。
なお、解説をわかりやすくするため、
レイアウト画面の左側を上り方面、右側を下り方面とします。
↓
踏切の警報機と遮断機には、固有の名前を設定します。
左図の警報機の名称には、「踏切1-警報機A」と入力してください。
↓
左図の遮断機の名称には、「踏切1-遮断機A」と入力してください。
↓
左図の警報機の名称には、「踏切1-警報機B」と入力してください。
↓
左図の遮断機の名称には、「踏切1-遮断機B」と入力してください。
下記の踏切スクリプトをコピーして貼り付けてください。
▼ 踏切スクリプト
//変数を用意 Var SIGN Var LINE-1 Var LINE-2 Var LINE-3 Var LINE-4 //踏切を閉鎖 BeginFunc IN Var STATUS GetCrossingSign STATUS ifeq STATUS SIGN SetCrossingSign 3 else if< STATUS 3 xor SIGN 3 SetCrossingSign SIGN SetCrossingStatus 2 endif endif EndFunc //踏切を開放 BeginFunc OUT Var STATUS GetCrossingSign STATUS Var LINE-L add LINE-L LINE-1 add LINE-L LINE-3 Var LINE-R add LINE-R LINE-2 add LINE-R LINE-4 ifeq STATUS 3 ifzero LINE-L xor SIGN 3 SetCrossingSign SIGN endif ifzero LINE-R xor SIGN 3 SetCrossingSign SIGN endif endif ifeq STATUS 2 ifzero LINE-L set SIGN 0 SetCrossingSign SIGN SetCrossingStatus 1 endif endif ifeq STATUS 1 ifzero LINE-R set SIGN 0 SetCrossingSign SIGN SetCrossingStatus 1 endif endif EndFunc
下記の踏切スクリプトをコピーして貼り付けてください。
▼ 踏切スクリプト
//遮断機を下降 BeginFunc IN SetCrossingStatus 2 EndFunc //遮断機を上昇 BeginFunc OUT SetCrossingStatus 1 EndFunc
下記の踏切スクリプトをコピーして貼り付けてください。
▼ 踏切スクリプト
//変数を用意 Var SIGN //踏切を閉鎖 BeginFunc IN Var STATUS GetCrossingSign STATUS ifeq STATUS SIGN SetCrossingSign 3 else if< STATUS 3 xor SIGN 3 SetCrossingSign SIGN SetCrossingStatus 2 endif endif EndFunc //踏切を開放 BeginFunc OUT Var STATUS GetCrossingSign STATUS Var LINE-L add LINE-L 踏切1-警報機A.LINE-1 add LINE-L 踏切1-警報機A.LINE-3 Var LINE-R add LINE-R 踏切1-警報機A.LINE-2 add LINE-R 踏切1-警報機A.LINE-4 ifeq STATUS 3 ifzero LINE-L xor SIGN 3 SetCrossingSign SIGN endif ifzero LINE-R xor SIGN 3 SetCrossingSign SIGN endif endif ifeq STATUS 1 ifzero LINE-L set SIGN 0 SetCrossingSign SIGN SetCrossingStatus 1 endif endif ifeq STATUS 2 ifzero LINE-R set SIGN 0 SetCrossingSign SIGN SetCrossingStatus 1 endif endif EndFunc
下記の踏切スクリプトをコピーして貼り付けてください。
▼ 踏切スクリプト
//遮断機を下降 BeginFunc IN SetCrossingStatus 2 EndFunc //遮断機を上昇 BeginFunc OUT SetCrossingStatus 1 EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 0 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の閉鎖制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-1 1 set 踏切1-警報機A.SIGN 1 set 踏切1-警報機B.SIGN 2 call 踏切1-警報機A IN call 踏切1-警報機B IN ifeq 踏切1-警報機A.SIGN 2 call 踏切1-遮断機A IN call 踏切1-遮断機B IN endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 1 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の開放制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-1 0 set 踏切1-警報機A.SIGN 2 set 踏切1-警報機B.SIGN 1 call 踏切1-警報機A OUT call 踏切1-警報機B OUT ifeq 踏切1-警報機A.SIGN 0 call 踏切1-遮断機A OUT call 踏切1-遮断機B OUT endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 0 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の閉鎖制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-2 1 set 踏切1-警報機A.SIGN 2 set 踏切1-警報機B.SIGN 1 call 踏切1-警報機A IN call 踏切1-警報機B IN ifeq 踏切1-警報機A.SIGN 1 call 踏切1-遮断機A IN call 踏切1-遮断機B IN endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 1 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の開放制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-2 0 set 踏切1-警報機A.SIGN 1 set 踏切1-警報機B.SIGN 2 call 踏切1-警報機A OUT call 踏切1-警報機B OUT ifeq 踏切1-警報機A.SIGN 0 call 踏切1-遮断機A OUT call 踏切1-遮断機B OUT endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 0 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の閉鎖制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-3 1 set 踏切1-警報機A.SIGN 1 set 踏切1-警報機B.SIGN 2 call 踏切1-警報機A IN call 踏切1-警報機B IN ifeq 踏切1-警報機A.SIGN 2 call 踏切1-遮断機A IN call 踏切1-遮断機B IN endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 1 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の開放制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-3 0 set 踏切1-警報機A.SIGN 2 set 踏切1-警報機B.SIGN 1 call 踏切1-警報機A OUT call 踏切1-警報機B OUT ifeq 踏切1-警報機A.SIGN 0 call 踏切1-遮断機A OUT call 踏切1-遮断機B OUT endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 0 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の閉鎖制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-4 1 set 踏切1-警報機A.SIGN 2 set 踏切1-警報機B.SIGN 1 call 踏切1-警報機A IN call 踏切1-警報機B IN ifeq 踏切1-警報機A.SIGN 1 call 踏切1-遮断機A IN call 踏切1-遮断機B IN endif EndFunc
図の部分に配置したセンサーへスクリプトを記述します。
下記のセンサースクリプトをコピーして貼り付けてください。
▼ センサースクリプト
//列車の先頭を検知 SetSensorMode 1 //センサーイベント Var ctrl-crs SetEventSensor CTRL-CRS ctrl-crs //踏切の開放制御 BeginFunc CTRL-CRS set 踏切1-警報機A.LINE-4 0 set 踏切1-警報機A.SIGN 1 set 踏切1-警報機B.SIGN 2 call 踏切1-警報機A OUT call 踏切1-警報機B OUT ifeq 踏切1-警報機A.SIGN 0 call 踏切1-遮断機A OUT call 踏切1-遮断機B OUT endif EndFunc
ビュワーを起動して、列車に踏切を通過させて動作を確認してください。
もし、ビュワーが起動できない場合や、
ご自身のレイアウトに合わせて改造したい場合など、
ご不明な点やご質問がありましたら、下記までお気軽にご連絡ください。