いわゆる西暦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.

最も人気の FAQ RSS

  1. LD言語で、ある接点がFALSEの場合、それ以降のファンクションブロックを実行しないように出来るか? (44513 回の閲覧)
  2. SFC要素の「ステップ」と「トランジション」の意味と役割を教えてください。 (43415 回の閲覧)
  3. ISaGRAF WorkbenchをWindows 7で使用するにはどうしたらよいでしょうか? (40929 回の閲覧)
  4. ISaGRAFはIEC1131-3のシステム定義に準拠しているか? (38989 回の閲覧)
  5. PLCプログラムをより早く動かすにはどうすればよいですか? (38818 回の閲覧)
  6. LD言語で、立ち上がり・立ち下がりの出力はあるか? (36875 回の閲覧)
  7. VxWorksターゲットにおける変数管理の留意点について (36382 回の閲覧)
  8. 日立製作所製SHマイコン用コンパイラ使用時の注意事項 (35575 回の閲覧)
  9. Cファンクション/ファンクションブロックの"Hidden" パラメータとはどのようなものか (35525 回の閲覧)
  10. FBD/LD言語で同じ行に複数の演算がある場合の実行順序は? (33516 回の閲覧)

最近の FAQ RSS

  1. ファンクションブロックはネストできますか。 (2016-08-05 15:07)
  2. Cファンクション/ファンクションブロックの"Hidden" パラメータとはどのようなものか (2015-01-30 14:24)
  3. 前のISaGRAFで作成したプロジェクトをインポートしたら、コメントが文字化けを起こしています。 (2014-05-07 06:52)
  4. 前のバージョンで作成したプロジェクトは読み込めますか。 (2014-03-07 07:46)
  5. ISaGRAFでコンフィグレーション、リソースそれにPOUはそれぞれいくつ作成できますか。 (2014-03-07 02:06)