保持変数を使用していて、バックアップメモリに保持変数をコピーしている瞬間に電源が落ちたら、データは壊れないか?


確かに、いきなり電源が落ちるとデータが異常になることもあり得ます。データを守るにはターゲット側の機能にいくつか工夫が必要です。

※保持変数の機能の実装及び電源断時の対処の機能を実装するためには、ISaGRAF開発ツールキット(IDK)/ISaGRAF Ver.4開発ツールキット(PRDK)が必要です。

ISaGRAF Ver.4の場合

前提として保持変数の値は毎サイクル、補助記憶装置に書きこむ必要があります。値の書きこみは、関数rtnCusWrite()で行います。(詳細は ISaGRAF Ver.4開発ツールキットのオンラインマニュアルを参照)

バーチャルマシン(VM)のタスクが終了する直前には、関数rtnCusExit()がコールされます。この中では、システムを終了するために必要な処理を全て実行するようにしてください。ただし、保持されている値の消去だけは行ってはいけません。

電源断時にはすべてのVMが正常な手続きで終了しているようにしてください。もし、rtnCusWrite() 関数の実行中に電源遮断が起こると、保持データが壊れる可能性があります。
このような障害のもっとも良い回避方法は、シャットダウンのための最低限の電力が供給されているかどうか、ハードウェアから情報を取得することです。この場合、条件を満たしている場合のみ変数を書き出すようにrtnCusWrite()関数を修正することができるはずです。
最終更新:
2008-08-01 14:12
改訂:
1.1
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

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

タグ