HOME >> 鉄道模型自動運転システム >  卓上レイアウトで楽しもう 自動運転 その14

卓上レイアウトで楽しもう 自動運転 その14

  .

 今回は、自動運転その13にて紹介したレイアウトに、予定していたリバース運転を組込むことにしましょう。 でも、あちこちでつまずき、四苦八苦したうえでやっと順調に作動させることが出来ました。

 

■ センサの追加作業とリバース運転のシーケンス

 リバースモードが完了した時点を検知するために、右に示すレイアウト図に示す S3 と S4 の位置にセンサを追加しました。  直線路となるセンサーレールの手持ちが無かったので、下の写真に示すようにワンタッチ装着センサを使用しましたが、やはり作動は不安定でした。 装着場所は方向を何度も変えてテストを実施し、何とか作動するようになりましたが、万全とは言えませんでした。

 通常の周回運行の場合のポイント位置を正位として定義して置き、内周路を出発してリバースして外周路に移行する場合のポイント位置を反位としています。 この時は、 P1と P2 のポイントを操作します。 外周路から内周路にリバースする場合は、P2 と P3 を反位に操作してます。

 リバース運行の場合は、内周路から外周路へ、さらに、外周路から内周路へと走行します。 このため、外周路と内周路を同時に運行させると衝突や追突の恐れがあります。 これを防止するには個別に運行する必要があります。

 今回の自動運転の制御は、内周路と外周路の制御を別々のマイコンで実施していますが、それは、マルチタスクによる制御方法を未修得であるからです。 内周路と外周路は線路長ささが異なるので、駅の到着時間などが違ってきますので、同時に制御出来ません。 このため、内周路と外周路を別々のPICマイコンで制御するようにしたのですが、どうせリバース運転では同期が必要なために、最初から同期させれば良かったのですが・・・・・・・・・・。

 もう一つの理由は、今後信号機を追加して信号の制御を追加しようと目論んでおり、このためにも出力ポートを開けておき、制御も独立して実施するのがベターではと考えていたからです。

 とにかく、リバース運行を実施するには、二つのマイコンの相互通信が必要となってきました。 そして、この運行モードを考えてみました。 何度か書き直した後のシーケンス表を下に示す。

■ 回路図

 電気回路は、大きな変更はありませんが、運転開始スイッチを追加しています。 PICマイコンへの入力は RA7 のポートを使用し、二つのマイコンに同時に入力されるように構成しました。 スイッチがON の時に HIGH となるようにしています。 また、モータドライバのユニットは 10μF のチップコンデンサは引っ剥がしています。 このため、PWM制御のパワーユニットが使用出来るようになっています。

 

■ プログラムの作成

  .

 先回記述したプログラムに追加すべく、上記のシーケンス表をもとに、フローチャートを作成しました。 そのチャートを右に示しますが、その複雑化した構造に唖然としています。 本当にこれで問題無く運行出来るのだろうかと心配になってきました。 もし、エラーとなってしまったらその原因を探る事が出来るのだろうかと不安になり、基本に戻ることにしました。

 C言語の初歩の教則本を紐解き、プログラムの基本を復習しましたが、基本構造には下記のように分類され、それぞれに適した構成がある事を復習しました。

順次構造 分岐構造 繰り返し構造
上から順に処理を実行する。 条件によって処理を分岐(選択)する。 条件が成立する限り処理を反復する。
 
if 文、switch 文
for 文、while 文
処理を順次実行して行く。 シーケンス制御など。 状態や条件に応じて処理を分けて実施する場合など。 操作待ちや信号待ちの場合、あるいはカウントアップやダウンなどの処理など。

 今回作成したフローチャートは、大きく分けて停車制御と発車制御のに分類し、条件によって処理を実行する分岐構造の入子形式となっていました。

 しかし、制御シーケンスから見ると、最初から順次構造の処理の仕方で実施し、信号待ちなど状態を while 文で記述すれば単純な記述で実施出来るので、方針を変更することにしました。 上記に示したシーケンス表はこうして見直し後の状態です。

 プログラムの基本構成について補足します。 当初は、単純なシーケンス制御と考えて while 文を使った順次構造としていましたが、「ATS列車自動停止システム 南部制御回路の工作」(2019/8/16)において、この方法では欠点に気が付きました。 そして、分岐構造の構成を使用する事によって対応した経緯があります。 その後、この卓上レイアウトでの制御もこの分岐構造を採用してきたが、ここにきて、この方式の欠点に気が付いたのであります。
  即ち、それぞれの方式には長所と短所があり、その使用条件によって使い分ける必要がある事を勉強しました。 当然ですね!

 また、今回はポイント操作が取り込まれていますので、最初にポイントの動作チェックを実施するようにしています。 この操作の状態をみてポイントの配線方向をチェックすることが出来ますので、ポイントの駆動回路との接続確認も容易に実施できます。 正位と反位が反対であった場合は、コネクタの接続を逆にするだけで良いのです。

 

 また、我がプログラムには、フェールセーフは一切考慮していません。 もし、通過センサの信号が発信されなかった場合とか、ポイントが正常に切変わらなかった場合、あるいは途中で脱線した場合など、いろいろな想定外のトラブルの発生が予想されますが、こういった場合の対応は一切考慮していません。

 このような想定される不具合や、さらには、予想もしなかったトラブルへの対応は、実用的なシステムとして非常に大切です。 津波による原子力発電所の事故を想定外とするのは許されない事と思います。 今、世界では自動車の自動運転システムの開発競争が激化していますが、ここでも、想定外に対する処理方法が命なのです。 おそらく、想定される多くの事象に対して IF 文のお化けになっているのではないだろうか。 あるいはもっと効率的なプログラム構造になっているのだろうか興味ありますね。

 我がシステムでは、この様なトラブルの場合は、システムの常として、一度電源を落として再稼働すれば良いのです。 このリセット対応が気楽に出来る軽いシステムなのです。

 作成したプログラムを下に示す。

 

■ 作動状態の紹介

 まずは、まともに作動するようになった状態を紹介します。 当初の予定であったトーマスとパーシーを走らせている状態です。

 快速モードの後に駅に停車してから、リバースモードに入るシーケンスを繰り返しています。 この状態に持ってくるまでのトラブルや調整作業の要点を記録しておくことにします。

◆ ポイントの切替タイミングの調整

 上に示すリバースモード運行シーケンス表に於いて、6〜9の作動タイミングの設定を調整する必要がありました。 列車の動きとポイントを作動させるタイミングを調整するのですが、問題は外周でのポイントと駅構内に設けたギャップの間の給電タイミングなのです。 最初のリバースの完了を知らせる S3 センサの信号をもとに、駅に停車しているA車を発車させるのですが、P1とP3のポイントを素早く対応させると、P3とギャップ間の給電が止まってしまい、列車が駅の前で止まってしまいます。

 また、モタモタしていると停車しているA車にリバースしてきたB車が追いついてしまい、B車が駅で停車してくれません。 しからば、A車が発車したらすぐにB車への対応を実施すると、A車がまだ駅構内を走行中に通電が止まってしまい、中央部にある動力車の場合は、発車してすぐに停車してしまいます。

 そして、P1の正位に戻す操作が遅れると、今度は発車したA車が無給電区間に入ることによって停車してしまいます。 F0 による給電区間を増やための配線をすれば対応できるのですが、今回は、タイミングの調整とギャップ位置の変更で対応しました。

◆ コントローラの過電流防止に引っかかる

 PWM制御式のコントローラが使用できるようになったので、テープ式LEDを組込んだ客車をC12にて牽引させました。 その時の動画を紹介します。 しかし、ここでも思わにトラブルに遭遇しました。

 この時しようしていたコントローラは、TOMIX のTCSパワーユニットの古いモデルである N-1000-CL です。 このコントローラがたびたび赤LEDを点灯して給電を停止してしまうのです。 下左の写真。 過電流スイッチが作動したのです。 定格電流は1.2Aなので、それ以上の電流が流れたものと考えると、給電回路のどこかでショートしたとしか考えられません。 様子を観察すると、どうやらポイントを切り替える時にショートしている様子でした。

 想定されるポイントを取り換えたり、リバース円内の線路に於いて、内周路と外周路の切替タイミングでショートするのかとも考えてギャップを設け、内周と外周路の通電を遮断したのですが効果はありませんでした。 この古いモデルは、「パワーユニットのスイッチを交換」(2012/2/10)にて報告しているように、電源スイッチが壊れるというお粗末な製品でした。 そう言えば、ポイント切り替え時にこのようなトラブルがあったことを思い出し、コントローラを新しいモデルの N-1001-CL 取り換えてみることにしました。 上右の写真。

 そして、この様なトラブルは発生しなくなったので、やはり、過電流センサの過剰反応と判断することにしました。 モデルの違いなのか、個体の違いなのかは分かりません。 それにしても、TOMIX のポイントは、切替途中でショートするような構造なのか?の疑問は残ったままです。 わまりません!

◆ その他

 今回も、制御盤の一部に手を入れています。 箱の奥の壁に開けた穴を大きくして、ポイントやセンサなどの配線作業を容易にできるように改善しました。 下左の写真。

 また、今回もPICマイコンへのプログラム書込みのために、ブレッドボードから頻繁に脱着を繰り返しました。 この時、マイコンICの足を保護するために、ICソケットを履かせています。 ソケットは丸穴の高級品(?)を使っていますので、頻繁な脱着にもびくともしませんでした。 下右の写真。 これは常識なのですかね。

 最近、Arduino 関係のサイトを見ている時、Arduino Nano や Arduino Nano Every がある事を知りました。 これは、Arduino Uno を小型にしたもので、ブレッドボードに差し込んで使用できるように、ピンヘッダが装着されています。 通信もミニタイプのUSBを使うのでコンパクトですし、書込みのための脱着の必要ないようです。 いつか、この石に挑戦してみる価値がありそうです。

 

 次回は、そろそろ信号機の取付けに挑戦してみようかな?

 

ページトップへ戻る .


 2020/1/20 作成