httpHA  - LAN経由でスイッチやA/D変換をリモートコントロール -

httpHAはhttpにより遠隔でスイッチのON/OFFやアナログ電圧を測定するファームウェアです。H8/3069Fで動作します。
同様の装置にIP Power 9212が販売されていますが、連続でアクセスしたり無線LANのようなパケットが紛失するNWで利用するとハングアップすることが多いので自作しました。条件文を指定して入出力ポートを監視するような操作も可能です。
なお、H8/3069Fから制御するI/Oボードは用途に合わせて自作する必要があります。
開発にあたってのノウハウはH8マイコンボードの開発にまとめてありますので参考にしてください。

【動作条件】

ハードウェア 秋月電子通商
H8/3069Fネット対応マイコンLANボード
「AKI-H8/3069FフラッシュマイコンLANボード[MITSUIWA board]」という商品でマザーボード付きのものもありますが、マザーボードに差してhttpHAを利用する場合は入出力ピンに注意してください。デフォルトの状態では入出力の設定が異なるためCPUを破損するおそれがあります。
なお、自分で組み立てるキットもありますがトラブルを避けるためにも完成品をお勧めします。httpHAファームウェアは16MbitのDRAMの搭載が前提です。(左記のボードを購入するにあたっては電源も忘れずに)
自作I/Oボード (作成例を近日中に紹介予定)
ソフトウェア
(ファームウェア)
H8OS 3.51(改) H8OS 3.51をベースに、WDTを有効にし、TCPスタックを改良しました。
アプリケーション httpによるアクセスで入力8ch、出力8ch、A/D入力4chをの入出力を行います。詳細は下記を参照してください。

【アプリケーションの仕様】

(1) H8ポート
httpHAでは下記に示すような入出力ポートを制御します。

ICのポート名ICのピンH8ボードのソケット
デジタル入力8ch P40-P47 18-21 23-26 CN2:5〜12
アナログ入力8ch AN0-AN7 78-85 CN1:12〜19
デジタル出力8ch PA0-PA7 93-100 CN1:25〜32
keepalive PB7 CN1:40
pilot lamp PB6 8 CN1:39

(2) httpアクセスインタフェース

httpにより上記のポートを制御します。制御方法は次の5パターンです。1番目、2番目、4番目はIP Power 9212と同じインタフェース形式ですが、今回はこれにアナログ入力とプログラマブルを追加しました。特にプログラマブルにより クライアントからのアクセス回数を大きく軽減できますし、ポートの監視を自律的に行うことができます。
下表のP50〜P57、P60〜67、Pa0〜Pa7は、(1)のP40〜P47、PA0〜PA7、AN0〜AN7に対応します。

ポート リクエスト 応答例
デジタル入力状態 http://address/GetP5? P50=0,P51=0,P52=1,P53=0,P54=1,P55=0,P56=0,P57=1
OK
デジタル出力状態 http://address/GetP6? P60=0,P61=0,P62=1,P63=0,P64=1,P65=0,P66=0,P67=1
OK
アナログ入力状態 http://address/GetPan
nはチャネル番号(0〜7)
963
OK
デジタル出力制御 http://address/SetIO?P6n=d
nはチャネル番号(0〜7)、dは0または1
P60=0,P61=0,P62=1,P63=0,P64=1,P65=0,P66=0,P67=1
OK
プログラマブル 【例】
http://address/Proc?IF(P51==1)THEN(P60=1)DO(IF(TGT300)THEN(P60=1))

入力ポート1(P51)がONなら出力ポート0(P60)をONにセットし、300秒後に出力ポート0(P60)をOFFにする。
OK(TRUE)
OK
5番目のプログラマブルの詳細については別途解説予定です。
また保守用の操作として次のhttpインタフェースを用意しています。
http://address/ IPアドレスやキープアライブ時間、ライセンス等の情報を表示します
http://address/CMD プログラマブルで設定した状態を読み取ります
http://address/Reboot 装置をリブートします
http://address/OFF 装置を全体リセットします
(3) 信頼性
(a) WDT ファームウェアが何らかの異常で暴走した場合にはWDTにより自動的にリブートします。
(b) keepalive 一定時間httpでのアクセスがない場合には全体リセットがかかります。デフォルトでは48時間です。
(c) 段階的リセット 100秒程度以内に3回のリブートが発生すると全体リセットがかかります。

全体リセット時にはH8/3069FのPB7ピンをONにセットします。例えば、このピン出力にワンショットタイマー回路を接続して、H8/3069Fの電源をON/OFFしたりできます。無線LANコンバータを接続しているような場合には無線LANコンバータの電源をON/OFFすることもできます。

【プログラマブルの仕様】
次の2つの形式でアクセスできます。

アクセス形式その1 http://address/Proc?IF(condition1)THEN(action1)
condition1が真ならばaction1を実行する。
アクセス形式その2 http://address/Proc?IF(condition1)THEN(action1)DO(IF(conditon2)THEN(action2))
condition1が真ならばaction1を実行し、condition2が真になるまでcondition2を監視し、真になるとaction2を実行する。

上記のconditionおよびactionは次の形式です。

condition1 Pnm==d nは5または6、mは0〜7、dは0または1 入出力ポートPnmdに等しければ真
Pam==x mは0〜7、xは0〜1023 A/DポートPamxに等しければ真
PamGTx A/DポートPamxよりも大きければ真
PamGEx A/DポートPamx以上であれば真
PamLTx A/DポートPamxよりも小さければ真
PamLEx A/DポートPamx以下であれば真
(condition_a)&(condition_b) condition_aおよびcondition_bconditionの表記 condition_aかつcondition_b
(condtion_a)|(condtion_b) condition_aおよびcondition_bconditionの表記 condition_aまたはcondition_b
condition2 condition1と同じ表記
TGTx xは正の整数値 x秒経過したら真(ただし秒数の精度は目安程度です)
action P6m=d mは0〜7、dは0または1 出力ポートP6mdにセットする
(action),(action) 2つのactionを実行(動作確認中)


【初期化】
初期化にはリブートと全体リセットの2種類があります。初期設定の範囲は次の通りです。○が初期化される部分です。


I/O状態 Ethernet
コントローラ
プログラマブル状態 [起動条件] [備考]
リブート- WDTのタイムアウト
http://address/Reboot

全体リセットkeepalive時間の期間にhttpのアクセスがない
http://address/OFF
100秒以内のリブートが3回発生
リセットがかかり立ち上がるまでの間はPB7がONとなる



目次| >次