デュアルCPUの二重化システムにおいて、エラー検出時に予備のCPU上でISaGRAFの動作を継続させたい


標準のISaGRAFのターゲットには、そのような機能は持っていませんが、追加するための仕組みは持っています。
2つのCPU間でのデータ転送と、1つめのCPUがダウンした時に転送されたデータをもとに予備CPU上でアプリケーションのホットリスタートを実装するようにします。

原理
      1. CPUはそれぞれ「マスタCPU」と「スレーブCPU」とします。
      2. アプリケーションコードはあらかじめ両方のCPU環境下にダウンロードしておきます。
      3. はじめは「マスタCPU」側のみ起動しておきます。スレーブ側は停止状態です。
      4. 毎サイクル、マスタ側からスレーブ側にデータをコピーします。
      5. マスタ側の異常を検知した場合、スレーブ側をいわゆる「ホットリスタート」モードで起動します。このとき、マスタから転送されていたデータを元にアプリケーションの実行を開始します。

これは元々あるISaGRAFのユーザによって実装されたものです。CPU間のデータの転送にはファーストイーサネットを使って実現していますが、共有メモリなど他の方法でも実現は可能です。

ISaGRAFはターゲットソースレベルで以下のような機能を提供しています。
      1. マスタCPU側からのデータ転送を可能にするフック関数
      2. ホットリスタートモードで起動するためのカーネル側のオプションコード
      3. どのようなデータを転送すべきかという情報はCJ Internationalから提供されます。

注意事項
ISaGRAF自身には
    • データ転送
    • CPUエラーの検出
    • スレーブCPUの起動
などの機能は実装されていません。これらの機能はインテグレータによって実装されるべきものです。
上記のフック関数やソフトウェアはISaGRAF開発ツールキット(NSS-I3-IDK)で提供されています。ただし、マニュアル内には「ホットリスタート」の説明は、一切なされていません。ドキュメントや機能の説明は別途テクニカルサポートの対象となります。
最終更新:
2008-08-01 13:56
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ