>> TOP > SFDN Articles > 開発秘話 > SF Train Commander 開発秘話
SFDN Articles SF Train Commander 開発秘話
Articles
開発秘話

第1話 SF Train Commander の誕生


 鉄道模型をコンピューターから制御したい・・・そんな夢を実現させたのが SF Train Commander システムでした。ここでは実現までの道のりを振り返り、Software Factoryとしての取り組みをご紹介します。


■SF Train Commanderシステム

 株式会社 関水金属 が開発したデジタル鉄道制御システム 「KATO DIGITAL」と 弊社独自センサーシステムを組み合わせて、アプリケーションソフトウェア「SF Train Commander」にてコンピューター制御を行うシステムです。

■制作のきっかけ

 まだ高校生だった頃、当時在籍していた鎌倉学園の鉄道研究同好会にて、KATO DIGITALを導入したことに始まります。KATO DIGITAL はコントローラー単体で5万円、レシーバー等も1つ1万円近い高価な商品で、とても一般の学生が手にすることなどできない高額商品でした。このKATO DIGITALには、パソコンと接続可能なRS-232C端子が付いており、コンピューター制御を行うことが可能でした。ところがコンピューター制御を行う為のソフトウェアは販売されておらず、ユーザーが独自に開発する必要がありました。
 当時、鉄道よりコンピューターに興味を持っていた私が、高校の卒業記念にと作成を始めたのが「Train Commander」でした。

■KATO DIGITALとは

 ここで、KATO DIGITALについて、簡単に説明をしましょう。
 一般的な鉄道模型は、レールに直流電流を流し、その電圧を変えることで列車のスピードを変えます。その為、線路内に複数の車両を乗せるとすべて同じ速度で動き出してしまいます。
 KATO Digitalでは、レール上に一定電圧を常にかけ、車両に搭載されたレシーバーに対して信号を送ることで個々の列車の制御を行います。

 従来の鉄道模型で1つのレールに複数の列車を走らせ、個別に制御する為には線路を電気的に分割し、それぞれにコントローラを取り付けて制御する方法(ブロックコントロール)があります。(図1)
 この方法でも、1つのブロックに複数の列車を走行させることはできず、区間が変わる度に別のコントローラーで制御する必要があり、操作が非常に複雑になってしまいます。 また、配線も非常に複雑になってしまいます。
 
従来の鉄道模型
図1 従来のパワーパックによるブロックコントロールシステム
複数の列車を1つの線路で動かす為には、区間を分割し、それぞれにコントローラーを取り付けて制御する必要があり、複雑な配線を必要とした。

 これがKATO Digitalを使用すると、レールへの配線は1カ所のみとなり、非常に簡単な配線になります。(図2)
 もちろん、レール上に複数の列車を全く別個の方向・スピードで走行させることができます。
KATO Digitalでの配線
図2 KATO DIGITALによるコントロールシステム
レールへの配線は1カ所のみ。レール上の列車は、すべて別個にコントロールすることが可能。

 そして、Train Commanderの開発の契機にもなった特徴が、メインコントローラー(図3)にRS-232Cが搭載されており、コンピューターからコントローラーを制御することが可能であったことです。
KATO DIGITALメインコントローラー
図3 RS-232Cが搭載されたメインコントローラー
RS-232Cインターフェースを搭載しており、パソコンから制御することが可能であった。

■製品のコンセプト

 マクロのようなイメージで、列車制御コマンドを列挙した運行表を作成することで列車を制御します。
 同時制御可能な列車数は、KATO DIGITALとしては128列車まで制御可能なのですが、当時学校にあったレシーバー数は4つであったことから、4列車同時運転できることとしました。
 画面の操作イメージは当時発売されていたWindows3.0を意識して開発しました。(図4)
運行表作成画面(SF Train Commander Ver.1.0)
図4 運行表作成画面
当時のあこがれ?Windows3.0を意識した画面インタフェースで作成。もちろんMS-DOSアプリケーションなのでウィンドウを動かしたり、マウスで操作することは不可能ですが(笑)


■MS-DOSでのシリアルポートの制御

 本プログラムの作成において、最も重要なのがシリアルポート(RS-232C)の制御です。通常ですとMS-DOS付属のRSDRV.SYSというデバイスドライバを使用して制御するのですが、Turbo CにはPC-9801のRS-232Cを直接制御する関数ライブラリがあり、これを使用してシリアルポートへデータを送信しました。
 開発にあたり、まずはKATO DIGITALへ直結する前にコンピューター同士をクロスケーブルで直結し正しくコマンドが送信されているか確認しました。この時使用していたのが、メインマシンPC-9801FAと送信相手PC-9801UVでした。ディスプレイが1台しか無いため、つなぎ換えないとみることができないのが辛いところでした。


 こうして完成に近づいたソフトウェア。実際にKATO DIGITAL に接続したのですが・・・