WEBアプリケーションでシリアル通信を考える

AIRやFLEXと言うのはコンパイラ系のアプリケーションと異なりできないことが多い。
特にハードウエアに関わることは得意では無い。

工業系の仕事では時々、シーケンサー(PLC)との通信が必要となる場合がある。
このような場合、大抵、RS232c(COM)と言われる昔ながらのシリアル通信をする事になるが、デスクトップアプリケーションと言う事になっているAIRでもこれは出来ない。

例えば、Gainerなどの制御をする場合もシリアル通信で制御するが、Funnel やserial_proxyと言ったProxyサーバを通じて行う必要がある。

今回検討した案件は、ネットワーク上のPCでアプリケーションが同期しながら(つまり、現場のPC含めて、ネットワーク上のどのPCで操作しても動作する様にしたいと言う事)、現場にあるシーケンサー(PLC)の制御を行う必要がある為、現場にローカルサーバを立ててそのサバー内でFlexによるWEBアプリケーションを動かして、RED5で同期を取ると言う方法を考えたが、肝心のFlexからRS232Cをどうやって制御するかで悩んだ。

現場のローカルサーバでAIRアプリケーションを立てて、他のFlexアプリケーションとRED5で同期を取りながら、serial_proxyを通じて通信すると言う案を最初に考えたが、これはどうもスマートではない。

もう一つは、以前やったが特定のPLCとシリアル通信が出来るコンポーネントを積んだExcelアプリケーションをProxyサーバとして、MySQLデータベースを経由してAIRと通信すると言う方法。
データベースへパラメータ用のテーブルを作り、そこへパラメータやフラグをセット、リセットしながら、Excelと同期を取ると言う訳だ。
この場合、Excelアプリケーションに色々仕込めるのだが、これもWEBアプリケーション直接では無いので、スマートではない。

結果的にPHPにシリアル通信を行う拡張モジュールがあると言う事を知り、それをインストールして、FlexからPHPへWEBORB経由で接続してこれを利用すると言うアイデアを思いついた。
これならPHPはFlexのクラスオブジェクトとして利用できるので、シンプルだ。

まあ、Flex系の物は割り込みなどが利用できないので、PLCからの受信データなどは基本ポーリングで読み込む必要があり面倒だが、これなら、特定のProxyサーバを立ち上げること無く、Webアプリケーションでシリアル通信が可能となる筈だ。

現場に設置するローカルサーバ一台に様々な技術が詰まっているのでそれなりの金額になるのだが、どうも概算を伝えると難色を示されたので、予算を聞くと、30万くらいでと言う事だった(笑)

内容からすると土台無理な話なんだが。。

まあ、このアイデアは他の機会に使えるかもしれないので、暇な時に実験しておきたい。
取り敢えずサーバ環境やモジュール等はインストールしたが、モジュールの読み込みなどは問題ない様だ。

カテゴリー: Flash Builder, 仕事   パーマリンク

コメントは受け付けていません。