MA-E360/NLには、沖電気工業株式会社の 920MHz帯無線通信モジュール MH920 (透過モデル/コーディネータ)が内蔵されています。
このモジュールは、Linuxからはttyデバイス(/dev/ttyS0)として認識されます。 このデバイスに特定のデータフォーマットでデータを書き込むと、モジュールを制御したり、モジュールを通して無線の向こう側のデバイス(例: Modbus機器)とデータをやりとりすることができます。
このモジュールに対して、以下の操作を行えるソフトウエアを用意しました。
ブリッジソフトウェアは、upstartで起動の有無を設定し、独自の設定ファイルで詳細な設定を行います。
upstartの設定ファイルは、 /etc/default/mh920_bridge にあります。
ブリッジソフトウェアを起動させるには、ENABLE=1とします。
ENABLE=0 CONFIG=/opt/mh920/bridge/mh920_bridge.ini # --- Example --- # ENABLE=1|0 # CONFIG=(Full path to configuration file)
独自の設定ファイルは、デフォルトのものが /opt/mh920/bridge/mh920_bridge.ini にあります。
[General] nwkey=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 pan_id=0 nw_id=MH920 channel=1 device=/dev/ttyMH920 virtdev=/dev/virtMH920 debug=yes [ShortAddress] 2=2 3=3 [PFilter] pfilter=1 timeout=10 [PingMode] enable=no mac_1=00 25 36 00 00 00 00 01 interval=20
セクション | 項目 | 内容 | Notes |
---|---|---|---|
[General] | 動作全般の設定 | ||
nwkey | ネットワーク暗号鍵 | 2桁の16進数を16個。未指定の場合暗号化しない | |
pan\_id | IEEE802.15.4g PAN ID | 0001~FFFE | |
nw\_id | ネットワーク名 | 16文字以内 | |
channel | IEEE802.15.4g チャネル | 1〜27, 奇数のみ | |
device | MH920デバイス名 | /dev/ttyMH920固定 | |
virtdev | 仮想デバイス名 | 他のソフトウエアがこのデバイス(tty)に書き込むと、MH920に送信される | |
debug | デバッグ出力 | yesにすると/var/log/upstart/mh920\_bridge.logにデバッグメッセージが出力される | |
[ShortAddress] | 局番→ショートアドレスの対応 | ||
(数字) | ショートアドレス | 項目名の数字の局番をもつ機器に対応する子機のショートアドレスを指定する。 例: Modbusの局番5の機器がショートアドレス7の子機に接続されている場合は“5=7”と指定する |
|
[PFilter] | パケットフィルタ | ||
pfilter | パケットフィルタの種類 | 0: なし 1: あり(ポーリング) 2: あり(通知型) |
|
timeout | ポーリング時通信タイムアウト時間 | 1~60(秒) 0.1秒単位で指定可能 | |
[PingMode] | ノード生存確認要求 | 子機に対してノード生存確認要求を送信し続ける専用モード | |
enable | 有効化 | yesにするとブリッジとしては動作しなくなる | |
mac_(数字) | 要求送信先MACアドレス | 2桁の16進数を8個 項目名の数字を変えて複数指定可能 |
|
interval | 要求送信間隔 | 秒 |
設定ファイルを編集したら、upstartを使って起動します。
root@plum:~# initctl reload-configuration root@plum:~# initctl start mh920_bridge mh920_bridge start/running, process 2515
最後の行の出力が「start/running」となったら起動しています。
[PingMode]セクションで「enable=yes」とした場合、pingモードで起動します。
動作ログは /var/log/upstart/mh920_bridge.log で確認できます。
子機の電源を途中からOnしたりOffした場合の動作ログを示します。
# API_reset: # API_set_basic_setting: # API_set_protocol_setting: # API_set_nwkey_setting: # API_set_addrlist_setting: # API_set_packet_filtering: # API_start_operation: wait for joinning network. confirmed joinning network. Getting route info. ←(1) No route info. ←(2) Getting route info. No route info. Getting route info. ←(3) Sending ping. ←(4) ping response recieved. ←(5) Getting route info. Sending ping. ping response recieved. Getting route info. ←(6) Sending ping. ←(7) No response. ←(8)
(1)の時点では、対象の子機への経路情報が取得出来ないので、(2)のように出力されます。
(3)の時点で、子機の電源がOnされたので、子機への経路情報が取得されます。その結果、(4)で生存確認要求が送信され、(5)で返答がありました。
(6)の時点で、子機の電源がOffされたので、子機への経路情報はモジュールに残っていて取得出来ますが、生存要求への返答要求はなくなりました(8)。
(準備中)