もどる

PCをDCCネットワーク(loconet)へ接続

秋月のFT232モジュールで動く事を追記
開発版、安定版に関して追記 2007/09/08
USB-232接続実験の旨追記 2006/06/19


いろいろといじってようやっとPCと接続出来たのでJMRIを使ってみる

JMRIとはJAVAで動くDCCのコントロールセットの事。
つまりPCの画面上に現在の状態を表示するとか、或いはPCを利用して列車や線路を操作出来るようになる。

まずハードウェアを接続しなければならない。 使っているコントローラがDCS100とKatoのD101(つまりDigitrax製DCS50)なので PCとLoconetを接続する為にMS100を用意する。 これをPCのRS232端子へ接続する訳だが、このMS100というのはコントローラを内蔵している訳でもなんでもなく ただ単に電気的な問題を解決する為のアダプタなので、通信速度が16600bpsを出せないRS232には 接続しても通信を行う事が出来ない(Loconetの通信速度は16600bpsで1bitが60u秒と規定)
まぁ云ってしまうと、USB232はほぼ全滅。
keyspan社のものが使えるらしいが手に入る訳でもなく、手元にあったXircom/A-TEN/ELECOMと3種類全滅
デスクトップの232ポートでは使えてもノートで使えない事には運転会などに持ち出せない訳で
たまたまあったPCカードタイプの232を取り付ける事でこれを回避。
(いや手持ちのノートって全部232はついていません。98ノートにならあるんですが…てコントローラチップが異なるので無理でしょう)
ここで使ったカードはRatocのREX-CF60というWindowsCE用のカードだが、別にCE専用という訳でもない。
とかくノートPCとかでRS232の無い場合はPCMCIA経由で232を取り付けなければならない。
どうしてもUSB232を使いたい場合はkeyspan社の物を取寄せて付加回路を組むか、或いは LocoBufferIIを取寄せ或いは LocoBuffer自作して此で通信速度の変換をするしかない。


FTDI社のFT232シリーズを使用したUSB-232変換器なら16.660kbpsが出せ、接続できるみたいです。
接続実験はこちらで。2006/06/19追記

今更ですが、秋月のFT232モジュールでもいけました。
完成状態ですのでさっくりと。9P-25Pの変換を挟みMS-100を接続して動きました。2007/09/08追記


ハードの接続が可能であればソフトウェアのインストールをする。
JMRIを実行するにはJAVA環境が必要なので ここ(sun.com)からJ2SE JREというのをダウンロードする。
SSLで保護された使用契約にAcceptし続行する。
下の方へとスクロールしWindows Platformの好きな方を入れれば良い。 Offline版は全て一括でダウンロードとなり、もう一つの小さい方はインストール時にネットへ接続し 必要な物をダウンロードする形となる。 JAVAのインストールに特に選択する事はないのでそのままインストール->完了で
さてJAVAのインストールが済んだら次はいよいよJMRIのインストール
プロジェクトのダウンロードページから適当なバージョンを選べば良い
とりえあずtest版と成っている最新版を入れる事にして1.5.3ReleaseNotesからWindows版をダウンロード。
test版が不安であればStableと成っている1.4を入れれば良い。



っと補足。2007/09/06追記
ここでは最新として1.5.3を指定しましたが、オープンソースな流儀で1.4が安定版、1.5が開発版となります。
現時点では1.7.xが開発版(完了したので1.9へ移行と思われる)、んで1.8が安定版になります。
とかく、奇数表記は開発版、偶数表記は安定版になります。



インストールが済むとデスクトップにDecoderProというアイコンが出るのでここから起動
起動すると環境設定を求められる。

接続しているのはLocoNetにMS100なので此を選択し、すると続いてポートやコマンドステーションの 型番を求めれるのでそれを選択する。 またGUIstyleもMetalが気に入らなければ替えれば良い。
左からCDE/Metal/Windows
CDE Metal Windows
このウィンドは起動後もメニューのEDITから呼び出せるので今すぐに決定をしなければいけない訳ではない。
ただし、設定をしSaveした後には反映の為にプログラムの再起動を要求される。

気を付けなければ成らない事は、選択したCOMポートが存在しない場合エラーを出し続け起動しないという事
通常はそのような事はないがUSB232とかPCカードの場合、接続順序によってポート名称が異なるので注意が必要。
もし判らなくなって設定を消去してもかまわなければ、c:\Document and settings\アカウント名\JMRIの下にDecoder〜.xml
というファイルがあるので これを削除すれば起動時にまた設定ダイアログが開く。当然ウィンドスタイルは標準のMetalとなっているが…
Windows2000とXPの場合ですよ。95/98/Meの場合はどこになるのか入れた事なし。

設定も済み再起動したのであれば、PCとLoconetが正しく通信出来ているのか気になるので
とりあえず一番簡単な方法で確認してみる事にする。
メニューのToolsからPowerControlを選択する とonとoffのボタンしかないウィンドが開くので、このボタンを適当に押してみる。


これは線路への電源供給をon/offのコマンドなのでコントローラのTrackStatusランプが応答しているかで確認する事が出来る。
さて、電源のコントロールが出来たら次はポイントの転換をテストしてみる事にしよう。
メニューのToolsからTurnout Controlを選択。


すると電源コントロールと同じように2つのボタンと、turnoutとある1つのテキストボックスからなる小さいウィンドが現れる。
ボタンにはThrownとClosedとあるのでそれぞれポイントの切り替え、テキストボックスには転換を行うポイントの入力となります。
切り替えたいポイントの番号をテキストボックスに入力し、それからThrown或いはClosedを押すと切り替えを行います。
これでポイントが切り替えられるとはいえポイントを切り替える毎に番号を入力するのでは意味がないですし
この程度なら通常使っているスロットルで十分ですからPCなりの運用を行うことにします。

さて、せっかくPCと連携が出来るのにテキストボックスに数字を入力なんて使いづらくて仕方がありません。
トップのスクリーンショットの様に大雑把とはいえ線路の配置通りにパネルを作ります。
メニューのPanelsからNewPanelを選択すると2つのウィンドが開きます。
1つはPanelとだけあってナニも表示されていないウィンド、もう一つはいくつかのボタンがあるPanelEditor

このPanelEditorのボタンを押す事で、Panelのウィンドに配線がなされます。
まず、xとyに数字が入っていますがコレはウィンドや配置の大きさではなく、ウィンドのx.yの位置にレール(アイコン)が配置と成ります。
配置したアイコンを右クリックするとポップアップメニューが出ます、ここでRotate(回転)やRemove(削除)が行えます。
また右クリックでなく、右ドラックをすると移動が出来ます。左クリックはポイントの転換となります。
Set panel name はウィンドのタイトルバー(初期値Panel)を任意の文字列に変更できます。
Pick background image はサンプルのCTCパネルの様な下地を敷く事が出来ます。

Add text はテキストボックスに入れた文字が配置されます。
Add icon はナニとも関連づけされないアイコンが配置されます。初期値では直線レールが出ます。
またその右にあるEdit iconでそのiconを変更出来ます。
 初期値のアイコンセットは+resources/icons/smallschematics/tracksegmentsの下のgifファイルです。
 ツリービューを展開し、ファイルを選択してから上にあるボタンをクリックすると置き換えられます。
Add right-hand turnoutとleft(略)はそれぞれ右分岐と左分岐を配置します。
配置前にそれぞれのテキストボックスに配置するポイントの番号を入力しておく必要があります。
また複数のポイントに同じ番号を付けて渡り線などを作ることも可能です。
Add sensor/Add signalはセンサーレールなどを持っていないので使って無いです。

最後のチェックボックス3つは
Panel items popup menus active はチェックがあると配置されたアイコンを右クリックでメニューが出ます。
Panel items can be repositioned はチェックがあると右ドラックでアイコンを移動出来ます。
 Panel作成時にはチェックを入れておき、運転時などはチェックをはずしておけば誤操作が防げます。
Panel items control layout はチェックがあると左クリックでポイントの操作が出来ます。
 チェックをはずすとポイントの切り替え状態などを表示するだけの端末となります。

配置が終わればPanelEditorのメニューからFile-Store panelsでセーブをします。
パネルを複数枚配置することは可能ですが、セーブデータは1つになります。
たとえば、駅のパネルと作って保存、あたらしく交換駅パネルを作成して保存しても 交換駅パネルを保存したときに駅が存在していれば同じファイルに保存されます。


ルートの作成
これは1つの操作で複数のポイントを制御することが出来ます。
たとえば交換駅(ヤード付き)にあるようなヤードを作った場合、どのポイントを切り替えるかが 結構面倒になりますが、これをルートという形で解決出来ます。
ここでは1番線から6番線までありますが、右側にあるウィンドの6番線 Setというボタンを押すと 関連するポイントがすべて転換出来るという優れものです。

メニューからToolsのRoute Tableを選びます。
すると新しいウィンドが出てくるので、一番下のAddを選択します。
するとAdd/Edit Routeというウィンドが出てきます。

まずRouteSystemNameに適当な記号を与え、RouteUserNameにはその名称を与えます。
SystemNameは管理用の名前で、UserNameが名称と思います。まぁ運行番号と列車名みたいな感じですかね。
(ここではYardなのでy1、1番線とかしていますが)
ウィンドの中央にあるボックスには配置されているポイントの一覧が出ていますので このルートで転換するポイントのincludeにチェックを入れ、SetStateを転換方向とします。
たとえばこの1番線では11番のポイントをCloseにするわけです。(10番は進入用のスリップなのでいじらない)
そして、その下の入力可能な場所はoptionalと成っていますから入力はパスしてAddRouteします。
このオプション部分は指定したセンサ、ポイントに動きが有ればこのルートへの転換を行うトリガです。
たとえば、Turnout - 5 - Closeとかしておくと、5番のポイントをCloseすると指定したポイントが順次切り替わる訳です。

もし、決定したRouteを再編集したい場合にはRouteSystemNameを入力してEditRouteを押します。

設定した内容が呼出されるので、変更を加えUpdate Routeを押し、変更を適用します。

ルートの入力が終わったらこのAdd/Editウィンドを閉じ、RouteTableウィンドを利用してRouteを選択できます。
このRoute情報はRouteTableからFile - Store configurationとして保存が出来ますが、呼び出しはPanelsからとなり
その際にPanelごと呼出してくれる訳では無いのでうまく扱う必要があります。

あくまでPanelはPanelで、RouteはRouteとも思ったのですが、Panelで保存するとRouteも含まれていました。
ですからPanelはPanelで保存し、Routeは別ファイルとして保存、読み込みはPanelとRouteそれぞれ行うのが良いとも考えます。

これでPC側で処理したいことが出来るように成った訳ですが、せっかくなので列車もPCで制御してみようと思います。
メニューのToolsからThrottles - New Throttleを選びます。新しくスロットルウィンドが出てきます。

このウィンドの右下側にあるAddressPanelに列車の番号を入れSetを押します。
うまく処理出来ればすべてがグレーから有効な色に変わりスライドバーで制御が可能に成ります。
STOPは緊急停止、Idleは停止です。また、運転を終了する際にはReleaseして解放する必要があります。
PCではなくふつうのスロットルに切り替えるにはDispatchをするとその速度を維持したまま制御を離れます。

このスロットルで併結をする場合はメインメニューのToolsからConsistingToolを呼出します。

consistの中に主となる列車番号(Address)を、NewLocomotiveに従となる列車番号をいれaddボタンを押すと総括となります。
この図では10番の車に12番の車を連結して運転をしています。
addを押す前にDirectionNormalのチェックを外すと現在の進行方向同士で総括となります。
通常線路に置く時に前を揃えてあればこのチェックは関係ありませんが、前進が異なる場合はこのチェックを外す必要があります。
また、総括制御から外すには列車番号の右側にあるDELを押せば切り離されます。
この操作は従来の方式と思われ、現行のMUと呼ばれる総括制御とは異なる
コマンドステーションの方で制御するのではなく、デコーダのConsistAddressを変更するので
きちんと切り離してやらないと、車輌は併結したアドレスで走り続ける事になるかと思われる。

スロットル割り当てがうまくいかない時は前に使った状態がなにか残っている場合があります。
メインメニューのLocoNetからSlotMonitorを選ぶとSlotの状態を表示します。

このスロットというのはDCS50では10、DB150では22、DCS100では120というアレの事と思いますので、
使っていないのにInUseとかのがあれば解放(Free)してあげると割り当てがうまくいく場合があります。


スロットル(Throttle)とスロット(Slot)とは別ものです。
スロットルはコントローラの事、スロットとは見えるものではなくコマンドステーション内部の管理テーブルの事
運転をするときにはこのあいているスロットに列車のアドレスとスロットルIDを関連づけて格納し、管理している。


そのほかに便利なデコーダの管理に関してはおいおい追記って事で…