電子天秤のデータ収集システム(完)

ご相談者様からお借りした機材と支給して頂いた、 市販のWiFiアダプタ REX-WF60 を組合わせ、自宅事務所内のWiFiネットワークで、定期的に秤量値をExcelのシートに記録するExcelアドインを開発を開始し、3週間程で、ようやく試用アドインの提出に至りました。

アドインの仕様としては、1台のPCでExcel1インスタンスあたり、1アドインを呼び出せるものとして、実装メモリ、パフォーマンスの許す範囲で、1台のPCで複数の天秤のデータを同時測定できる仕様となっています。

自宅事務所内で1対1通信でデータを記録する範囲では、特段の躓きもなく、15秒に一回だろうが5秒に1回だろうが、快調にデータを記録していましたが、無線(WiFi)を介してのソケット通信ですので、いつ何時であっても通信が正常に行われるものとは限りません。

通信が停滞する事も想定してコードを実装したつもりではありましたが、いざ、試用アドインを現場環境で試用してみると、開発中には発生しなかった想定外の遅延現象が発生しました(;’∀’)

REX-WF60は固定IP設定として運用する事とし、WiFiアクセスポイントの設定を各々のアダプタに設定します。

お客様の使用環境では室内にBaffalo製のWiFiアクセスポイントが設置されておりますので、こちらのSSIDとアクセスキーを設定し、REX-WF60は予定通り、固定IPの端末として、ネットワークに参加する事ができました。

次は、A&Dの電子天秤(GX-4000)の内部設定値を変更し、シリアル通信ポートの通信速度を9600bpsに変更、シリアル通信時に応答する、秤量値のデータフォーマット形式を調整します。

電子天秤(GX-4000)の説明書では、外部通信により、天秤内部の各種設定値(内部時計等)を変更するコマンドが公開されていませんので、手動で設定を変更する必要があります。内部時計の設定や、通信プロトコル、データフォーマット等をシリアル通信を使って変更できればより便利な使い方ができますので、機会があれば、A&Dさんに便利な隠しコマンドの有無?を問合せてみたいところです。

通信環境も整いましたので、測定を記録するExcel導入済みのPCに試用品のアドインをインストールし、Excelのアドインメニューよりデータロガーメニューを呼びだし、先ほど設定した REX-WF60 の固定IPアドレスを指定して、接続テストボタンを押します。

GXLoggerDialog

自宅事務所であれば、特段の問題も発生せず、定期的に電子天秤の秤量値をエクセルの指定せるを先頭に、測定をSTOPするまで記録し続けます・・・
が、しかし・・・こちらの現場では、通信エラーが発生しまくりで、測定間隔が、10秒なら10秒きっかりで刻みません(;’∀’)

実際には1分~2分の間隔で測定する用途が多いそうなので、数秒のズレは問題視しないとのお言葉を頂きましたが、現場のWiFi環境の悪さについては、想定外でしたし、この状況を想定したエラー処理コードの実装をしていなかったのは反省点でもあり、「三現主義」の大切さを改めて感じる機会になったことは言うまでもありません。

現場に設置されているアクセスポイントは家庭用の製品で、接続端末数の上限としては、9台前後との情報がネット上には見つかりますが、現場の状況としては上限に達している様子はなさそうです。

PC単独でも時々WiFiが途切れる現象がある、とのお話でもありますが、この日私が見ている範囲ではPCのWiFiが断絶している様子はありませんでした。
ただ、事務所内を移動して複数のアクセスポイントを使っているとの事でしたので、天秤測定の場合は、アクセスポイントに依存するネットワーク構成になっている事情があります。

ご相談者さまのネットワーク構成については積極的には関与できませんので、現状としては、特定のアクセスポイントに接続する事を安定動作の要件としてさせて頂き、通信異常が発生した際の再計測の復元動作を改良をして、完成品として納品させて頂く事としました。

自宅事務所に戻ってから、現場発生していた接続不良を再現させるべく、自宅にあるWiFi接続装置を事務所部屋に設置しているアクセスポイントに接続させてYouTubeの連続再生を開始です(笑)

10台接続させたものの、端末がもう品切れとなってしまいましたので、この状態で電子天秤のデータ測定開始です。

しかし、通信異常はなかなか発生しません・・・

WiFiアクセスポイントの管理画面を見ても10台接続状態は確認できていて、それぞれの端末でYouTubeの再生は継続しています。
状況が見えないWiFiは難しい・・・苦笑

WiFiアクセスポイントの仕様としては、自宅事務所で使っている製品のほうが年代も古く性能的には見劣りするので、通信負荷を過剰にかけてしまえば、何らかのトラブルが再現できるものと考えていましたが、なかなか手ごわい?再現テストになりました。

YouTubeの映像が遅延する様子がでている端末は出てきたので、そろそろロガー記録にも影響でるか!?と期待?しましたが、さっぱり出ません・・・

業を煮やして、と言うか、半ば諦めかけた気持ちもあり、強制的に通信を途絶させるために、REX-WF60の電源アダプターを引っこ抜いて、電源再投入してみました。当然のことながら、REX-WF60がネットワークに接続するまでの間は通信異常が発生しますが、復帰まで数十秒です。
この間は想定通りの通信異常が発生し、その後当然のように復帰するのだろうと観察していましたが、ここで想定とは違う現象が発生しました!

先ほどまで順調に定期的に天秤と通信して測定値を記録していたのですが、いったん、アクセスポイントと強制的に断絶させてから、再度渋滞中のアクセスポイントネットワークに参加させたところ、通信が不安定になり、不定期ではありますが、定期的なデータ記録に揺らぎが出るように再試行処理が割り込まれる状態となりました!

普段から安定的に使用していて気に留めたこともなかったWiFi接続状況でしたが、どうやらアクセスポイントの性能というのは、接続数が多くなり、通信量の増大に比例して、後発接続の端末に性能の低下が実感できるように挙動するのかもしれません。

普段なら有線LANに接続して、NASへデータのバックアップをとるのですが、WiFiの挙動を確認する機会にもなると考えて、WiFiのままバックアップを実行してみたところ、想定していたとおり、天秤データの測定に影響がでる、再現性のある現象を観察することができました。

バックアップのデータファイルが1単位あたり~数メガ程度であれば、ウィンドウズ共有ファイルの通信以外に影響がでないのでしょうが、100メガ、1ギガを超えるようなファイルをNASへ転送しているタイミングとなると、アクセスポイントへの通信状態が占有に近づく様子で、その他ノードへの通信が遅延する様子でした。あるいはPCの処理の渋滞?なのかもしれませんが、再現性がある通信遅延、リトライ現象であることは発見でした。

ご相談者さまの現場において、同様にこの現象が発生している・・・とは思えないのですが、再現テストとしてはこのような状況で、アドインはどのように挙動すべきなのか、を再考することはできました。

結局のところ、アクセスポイントの性能に依存する現象であると考えるのですが、天秤に問合せしたコマンドにより、一定時間内に天秤が応答を返さない場合は、早急にリトライする、という仕様以外の対策が思いつきませんでしたので、この仕様にしたがって、タイムアウト検出コードの若干の見直しと、タイムアウト発生時や今後の不測の状況を把握するためのログ記録のコードを見直すこととしました。

お盆前に改善した版のアドインと納品し、試用品と差し替えて使用して頂くようお願いし、今後も経過観察をしながらではありますが、改めて納品したアドインを評価して頂いて、提出済みの見積金額で検収して頂く事ができました。

お忙しいなか現場の案内、現地作業の段取り準備、機材の手配・支給にご協力いただいたご担当者様のおかげで、独立後の初納品ができました事に感謝です!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする