いわゆる西暦2000問題(西暦2000年を境にシステムが日付を誤認識し、不具合をおこしてしまう問題)の対応状況は?



ISaGRAF Ver.4/5

ISaGRAF Ver.4/5ではいくつかの2000年コンプライアンス試験にパスしています。

試験に当たっては、以下のようなISaGRAF Ver.4/5のプロジェクトが使用されています。

      1. リソース数は1個です。
      SFCプログラムのトランジションでタイマ型の変数を評価しています。
      プログラム内ではタイマが関連するBLINK, TON, TOF, TP, SIG_GENブロックを使用しています。
      2. バインディングを使用します。下図をご覧下さい。3つのリソースが2つのコンフィギュレーションに存在し、以下のようにバインディングが設定されています。
       DINSTANT_manyFB と ImportingData.
       LocalExportingBlink3 と ImportingData
      バインディングリストは全ての単純な変数型(BOOL, SINT, DINT, REAL, TIME, STRING)と一つの配列(200個のBOOL型変数)から構成されています。


    使用環境
    ISaGRAF Ver4.02
    ワークベンチ環境:Windows NT V4.0 とWindows95
    ターゲット環境 :WindowsNTターゲット(Windows NT V4.0)
    OS-9ターゲット(OS-9 V3.0.3 VM42-68040CPU)

    テストの詳細
  • BLINK ブロック:5秒毎にカウントとリスタートを繰り返します。
  • TON ブロック:2000年をまたいでタイマをカウントします。
  • TOF ブロック:2000年をまたいでタイををカウントします。
  • TPブロック:TPのダイアグラムの4つの状態それぞれで2000年になるよう設定した4種類のテストを行います。
  • SIG_GENブロック:入力パラメータ‘run’がTRUEの間に2000年になるように設定します。SFCプログラムでトークンが2秒毎に2つのステップの間を行き来するようにプログラムします (自動的に付加される、ステップの活性化時間をあらわすタイマ変数を利用) 。
  • バインディング
    • NTターゲットで、2つのリモートコンフィギュレーション間でのバインディング
    • NTターゲットで、複数のローカルリソース間でのバインディング
    • OS-9ターゲットで、2つのリモートコンフィギュレーション間でのバインディング
    • OS-9ターゲットで、複数のローカルリソース間でのバインディング

    全てのテストにおいて、下記の項目をテストしました。
      1. プロジェクトを1999年の12月31日の24時数分前にコンパイルする
      2. コードをダウンロードしてテストを開始する。
      3. 2000年になったところでシステムの動作をチェックする
      4. 0時を過ぎてからデバッグを停止する。

    結果
    ISaGRAF Ver.4/5 ワークベンチ Ver4.02、ターゲット Ver4.02において、
    • NTターゲット→OK VxWorksターゲット→VxWorksにはカレンダ-の概念がないため、強制的に1999年12月31日に日付を設定して、事前に2000年テストを行うことは出来ません。
    • OS-9ターゲット→OK

    ワークベンチのテスト(WindowsNTとWindows 95で実施)
    • プロジェクト(複数のリソースと、各リソースに1つのプログラム)を2000年の前にコンパイルし、更に同じプロジェクトを2000年の1月にまたコンパイルする。
      • ISaGRAF Ver4.02 →OK (プログラム自体はリコンパイルされず、辞書のチェックとリンクのみ実行される)プロジェクト(複数のリソースと、各リソースには1つのプログラム)を2000年の前にコンパイルし、プログラムを1つ変更してから2000年の1月にプログラムをまたコンパイルする。
      • ISaGRAF Ver4.02 →OK (全てのプログラムはコンパイルされず、変更されたプログラムのみコンパイルされる。)
      • 2000年に変わる時の日付の表示→OK 
      • ISaGRAF Ver.4/5には日付の表示機能はありません。
      • 2000年の1月にプロジェクトドキュメントの印刷→OK (日付は正確に印刷される)


    OSの西暦2000年テストの一例
     ご使用のOSのシステム時計を1999年12月31日の24:00直前に変更し、タイマーを起動する。2000年の1月1日になったところで、タイマー値が正しいか確認する。
最終更新:
2009-03-19 15:22
改訂:
1.1
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

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

タグ