HOME 戻る

TK0040A イベント通信の紹介

 
 
本ガイドのプログラムで紹介している通信方式は、イベント駆動ではなくポーリング通信方式です。
この理由は、ポーリングが何といっても単純で非常に分かりやすい通信方式である事が理由です。
システムには365日の安定動作が求められますから単純は信頼性向上にとって大きなメリットです。
プログラム作りを専門とされていない人にとっても安心が得られる標準的なものと言えるでしょう。
加えて、システムは構成される通信設備や機器の異常を速やかに捕らえることも性質上重要です。
これに関してもポーリング通信方式は容易です。
ポーリングは相手を絞って通信する訳ですからその通信相手から応答が無かった時点で、
比較的簡単な判断プログラム(リトライ)で通信路や通信相手装置の状態を調べやすいからです。
以上のことなどから本ガイドではポーリング通信方式を紹介しています。
しかし、ある特殊な場合においてイベント駆動で出来てポーリング通信で不可能な事があります。
ここではその例を紹介します。
 
ポーリング通信の手順は、ホスト(CentOS)がIPアドレス既知の装置にコマンドを送ることから始まります。
つまり、ポーリング通信ではホストがその装置のIPアドレスを予め認識していなければならないのです。
つまり、ホストが認識通信できる固定のIPアドレスを装置に予め設定しておくという事になります。
このことは、技術的に関して言えば自宅や職場のLAN環境で大きな問題となる事は無いでしょう。
しかし、このことがインターネットを介した装置となると技術的にも簡単ではなくなります。
装置に対し、以下のIPアドレスを与えられれば問題ありませんが、
  1. インターネット固定(グローバル)IPが直接装置に与えられている場合
  2. インターネットに接続されるルータに固定(グローバル)IPが与えられ、
     そのルータがLAN等を介して装置を認識しデータ転送(フォワード通信)ができる場合
これら以外の場合ですとポーリングでの通信は相手装置を特定出来なくなる理由で不可能となります。
通信不可能なケースの代表例を以下まとめておきます。
  1. インターネット下ルータ下LAN下の装置に、ルータがデータ転送(フォワード通信)ができない場合
  2. インターネット下ルータ下LAN下の装置が、DHCP等で動的プライベートIPが割り当てられている場合
 
ここで、この環境で通信可能とさせるのがイベント駆動(イベントドリブン)による通信方式となります。
但し、ポーリングの時とは逆にイベントを受けるホストのIPアドレスは既知となっていなければなりません。
つまり、ホストにはインターネット固定(グローバル)IP等が与えられていないといけません。
この前提で、例えば自宅のLANに勝手に置いた装置がイベント通信を使いホストと接続できるようになります。
 
イベント駆動通信とは、イベントの発呼をきっかけに相互通信を行う方式です。
イベントの発呼とは、以下2つの条件で自発的に装置からデータが送信されるものです。
  1. 装置I/Oの状態が(リアルタイム)変化する毎
  2. ある間隔(キープアライブ|ハートビート)時間毎   (※I/O無変化時にも装置情報を時々ホストに送る)
装置より送信されたデータは、ルータ(ゲートウエイ)等を経由し、インターネットを通り、ホストに向かいます。
 
装置から送信されたイベントデータを受信したホストは、これに応答(操作信号含む)します。
戻り経路は、ルータにより許されそしてある寿命時間確保されますので相互通信に使える事になるのです。
この様にしてイベントによる通信が確立します。
 
なお、
ホストはイベントデータを常時受信待ち(recvfrom)で待機するように作るのが一般的です。
そして、イベントデータを受信したホストは、データがどこから来たものか、
また、悪意を持った不正なものか否かを十分に確かめる必要があります。
この処理用にイベントデータには、チェック情報が付加されています。
 
  イベントパケットデータ内容 (装置コマンドリファレンス参照のこと)
@TK0040A   現場装置名称   各種I/O情報   装置CPU時間   IPアドレス   MD5チェックサム
  1. @TK0040A 装置形式コードです。TK0040A装置の場合、@TK0040A です。
  2. 現場装置名称 装置固有の(かつ管理しやすい)名称でユーザが設定するものです。
  3. 各種I/O情報 装置のリアルタイムI/O情報です。
  4. 装置CPU時間 装置の時間(秒単位)で、起動してからの時間(68年間)が分かります。
  5. IPアドレス 装置のIPアドレスです。DHCP含め現地における設定IPアドレスが分かります。
  6. MD5チェックサム データの改竄をチェックする為のMD5データです。
 
 
 
 
 
 

HOME 戻る