2000年問題の対策(PLCの場合)

プログラマブルコントローラの2000年問題について
■ 西暦2000年問題とは ■
コンピュータシステムが、西暦年を4桁でなく下2桁(例:“1957”の場合“57”)の記述によって処理している場合、
00年(=2000年)を1990年代/2000年代と判定出来ず、2000年以降の西暦年データが業務上発生する時点で、正常な処理が行われなくなる、
あるいは、1999年12月31日を越すと、コンピュータシステムが正しく機能しなくなる、という問題です。
業務上発生する具体的な例としては、下記の内容が考えられます。
@ 99年(=1999年)より00年(=2000年)の方が小さいと判断し、日付の並びが逆転したり、データが
集計されなくなる。
A 日付で99年と入力すると、無期限とコンピュータが判断して処理してしまう。
B 日付で00年が入力不可となる。(エラーとなる)
C 伝票日付の先打ちができない。
D 仕入・在庫・出荷等のシステムの連携ができなくなる
E 食品の賞味期間が超過とみなされ商品が破棄される
F 予約業務で過去の予約とみなし、入力不可となる
G 金利計算でマイナス計算される
H 年金計算で年金の支給がストッブされる

■ 時計機能を持っているプログラマブルコントローラ(idec製)と実装している時計デバイス ■

   ・ FA3S−CP11T
: MSM62X42BRS-A ( 沖電気製 )
・ FA2−PF2−CPU1T/FA2−PF2−CPU5M
: RP5C15 ( リコー製 )
   ・ MICRO3 / MICRO3C / オープンネットコントローラ
   : RF5C62 ( リコー製 )

● これらの時計デバイス自体に “2000年問題” を引き起こす不具合はありませんが、年の表示は2桁です
から、1999年−2000年が制御対象のアプリケーションであれば、ソフトウエア(ユーザプログラム)で何ら
かの対策が必要な場合もあるかも知れません。
尚、上記以外のidec製プログラマブルコントローラ (FA1、FA1J、FA2、FA2J) には時計機能はなく、
2000年問題は存在しません。

■ 時計機能を搭載したプログラマブルコントローラの2000年問題の対処方法について?■
   時計機能を搭載したプログラマブルコントローラは、ファームウェアで直接”年”を扱うような命令や
 機能は搭載しておりません。 基本的には、時計LSIに対してのリード/ライトの機能があるだけです。

    ユーザが ”年” データを単純に比較した場合、時計LSIは2桁しかデータを持っていませんので当然
のことながら、2000年問題になる可能性があります。

   この場合は、下記フローチャートの様な考え方のユーザプログラムを作成し、対処してください。
  <プログラム例>
オープンネットコントローラの場合
・ M8125 :特殊内部リレー "運転中出力"
・ D8008 :特殊内部データレジスタ "時計年データ"
・ D20 :2000年対策後の年データ
<MICRO3・MICRO3Cの場合>
上記ラダープログラムの1行目を以下の用に変更します。
			:M317は運転中出力
CALR D10 :カレンダーリード 年データ ――> D10
月データ ――> D11
日データ ――> D12
曜日データ ――> D13
 なお、オープンネットコントローラにはウィークコンペアの命令がありますが、"年"データは取り扱えません。

<FA3Sの場合>
FA3Sには時計命令がありますが、1999年と2000年をまたぐユーザプログラムは基本的に組く事ができ
ません。(プログラムを作成し実行した時点でユーザプログラム実行エラーとなる)
従って、現在稼働しているユーザプログラムには2000年問題の対象となるユーザプログラムは存在しません。

<FA2−PF2−CPU5M、−CPU1Tの場合>
年データはデータレジスタに割り当てられますからオープンネットコントローラと同様な方法で対処します。

■  閏年は1901年〜2099年までの期間、全機種自動的に補正します。
(以上)

1998.11.24作成(^^)1998.11.25更新  Return to TOP Page