SSブログ

ダイヤモンドクロスで八の字自動運転 [S88]

 恐怖の平面交差のダイヤモンドクロッシングの八の字運転をS88でやってみました。前回のループ線もそうですが、DCCじゃないとできないものをやってみようとしております。
 レイアウト写真は以下です。(全景が写っていない・・・。)
re_DSC00521.jpg
 そして、うまく言った動画が以下です。

 京急はドレミファにしてあります。センサを二つだけでやっているので、恐ろしくトロトロと走らせております。傷ついたら立ち直れなさそうだし。
 動画の拡大版は以下です。こんなに危ない電車乗りたくないです。

 センサ位置は以下のようにしています。
八の字.png
 S88イベントスクリプトの分岐があるものを久しぶりに書いたのですが、そのクセを忘れていたため、相当苦労しました。
 センサ1側の処理で、「センサ6が踏まれたら、出発」としたくて、普通にWaitをおかずにセンサ6を見続けるループを書いたら、DesktopStationソフトがフリーズします。気づくまでに数時間かかりました。ラベルの名前にStopがあると止まるのか?とか、S88Jump命令だからか?とかいろいろやってましたが、そこらへんは原因として外れでした。
・電車は113系が9番(49161)、2100形が3番(49155)です。
・Flag0が全体のステートのフラグでFlag0=0の時センサ1側が113系、Flag0=1の時センサ1側が2100形です。
・Flag1はセンサ1が踏まれたときに1になり、イベントが終わったときに0にします。
・Flag6はセンサ6が踏まれたときに1になり、イベントが終わったときに0にします。
・113系、2100形はスピードなどが違うため、Speedコマンドで送るスピードを変えています。
 安全を考えるなら、もちろんどちらかの電車が横切り終わったらもう一方の電車を走らせはじめるという感じのスクリプトを書くべきですが、まあ、スクリプトで書くには複雑なのでやめて、113系が出発して10秒後に2100形が出発するという、そのうち絶対に事故になるようなスクリプトにしてあります。
 スクリプトはセンサ1側は以下です。

DESKTOPSTATION,SCRIPT,2013
SETFLAG,1,1,0
JUMP,113stop,0,0
JUMP,2100stop,0,1
EXIT,,,0
LABEL,113stop,,0
SPEED,49161,0,0
WAIT,30,,0
LABEL,113loop,,0
JUMP,113start,6,1
WAIT,5,,0
JUMP,113loop,9,0
LABEL,113start,,0
SPEED,49161,350,0
WAIT,50,,0
SETFLAG,0,1,0
SETFLAG,1,0,0
EXIT,,,0
LABEL,2100stop,,0
SPEED,49155,0,0
WAIT,30,,0
LABEL,2100loop,,0
JUMP,2100start,6,1
WAIT,5,,0
JUMP,2100loop,9,0
LABEL,2100start,,0
WAIT,100,,0
SPEED,49155,250,0
WAIT,50,,0
SETFLAG,0,0,0
SETFLAG,1,0,0
EXIT,,,0

センサ6側は以下です。

DESKTOPSTATION,SCRIPT,2013
SETFLAG,6,1,0
JUMP,113stop,0,1
JUMP,2100stop,0,0
EXIT,,,0
LABEL,113stop,,0
SPEED,49161,0,0
WAIT,30,,0
LABEL,113loop,,0
JUMP,113start,1,1
WAIT,5,,0
JUMP,113loop,9,0
LABEL,113start,,0
SPEED,49161,350,0
WAIT,50,,0
SETFLAG,6,0,0
EXIT,,,0
LABEL,2100stop,,0
SPEED,49155,0,0
WAIT,30,,0
LABEL,2100loop,,0
JUMP,2100start,1,1
WAIT,5,,0
JUMP,2100loop,9,0
LABEL,2100start,,0
WAIT,100,,0
SPEED,49155,250,0
WAIT,50,,0
SETFLAG,6,0,0
EXIT,,,0

 そのうち、もう少し安全な方法を考えたいなあとは思います。

コメント(2)  トラックバック(0) 

コメント 2

Yaasan

センサを見るだけであれば、フリーズするとはなかなか考えにくいです。バグの可能性があるので、フリーズするスクリプトを頂ければ、原因を調べます。
by Yaasan (2016-03-27 20:18) 

fujigaya2

コメントありがとうございます。

DesktopStation_094gで、
何らかの条件で開始して、S88の1ポートが1で抜けるスクリプトです。

下記はフリーズします。
DESKTOPSTATION,SCRIPT,2013
LABEL,loop,,0
JUMPS88,end,0,1
GOTO,0,,0
LABEL,end,,0
EXIT,,,0

下記はフリーズしません。
DESKTOPSTATION,SCRIPT,2013
LABEL,loop,,0
JUMPS88,end,0,1
WAIT,1,,0
GOTO,0,,0
LABEL,end,,0
EXIT,,,0

よろしくお願いいたします。



by fujigaya2 (2016-03-27 22:10) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。