CLIMATEC,Inc.
  • ホーム
  • 文字サイト
  • 応用分野
  • メール
  • 会社概要
  • サポート
  • アクセス

カード記録データが異常の場合のデータ救済方法

1)CFカードデータがうまく回収できない場合

まず最初に Repair 処理を行ってみて下さい。 方法はこちら
1) 当社に状況をメールでお知らせ下さい
お名前、会社名(所属名)、職名
使用ロガー、CFカードの情報(容量、メーカー、型番)、FORMATの方法(FAT/FAT32)
どんなデータか(データの期間、並び、インターバル)
データの重要性
2) CFカードに記録された生データファイルを用意して下さい(*.dat)
3) Zipまたは、LZHタイプに圧縮して下さい
4) 宅ファイル便やFTPサイトを使用して、ファイルをお送り下さい
メールには添付しないで下さい
100M以上の場合は、当社にご相談下さい(FTPサイトをご紹介します)
5) 当社にて解析します
6) 回収に成功したデータをお送りします。
データファイルは、1日、1時間、30分区切りが選択できます
条件
以下の条件をご了承頂ける場合、当社のサービスを受けられます。
データの救済を保証するものではありません
当社のお客様以外は、1ユーザー、1ファイルまでとします。
お送り頂いたファイルは、第3者に公開、コピーすることはありません。
解析した結果をWeb上に公表することがあります(その場合、オリジナルデータはわからないように、マスクします。

2)自分で解析し、回収したい方向け

大前提>>元の生データファイルは、必ず保存しておいて下さい
同じファイルを圧縮して、バックアップとしても保存してください。

CR1000などのロガーで記録したTOB3形式データが異常な場合の
修正方法の解説です
専門的な用語も出てきますので、手に負えない場合は、当方にご連絡下さい

異常データの処理例を今後記載していきます
(なお、16進数は、2Ch 10進数は 32xなどと、表示します。 簡単な演算方法はこちら

データサイズが大きい場合(1GBなど)には、USBフラッシュなど高速なメディアにコピーして
作業されることをお奨めします。また、PCには十分なメモリー容量(1GB以上)が必要です。

ここでは、RDtob V2.41以後を使用した救済方法を記します。


目次

その1:ヘッダーの後にある、不要データを読み飛ばし


その1) ヘッダーの後にある、不要データを読み飛ばし

症状:時刻が最初からずれている

バイナリーエディター(例えば、Stirling)で対象のファイルを表示します。

0)基礎

CR1000などで採用している TOB2,3のバイナリファイル形式は、以下の通りです

ファイル
ヘッダー(512バイト)・・・ヘッダーの長い場合は、512(200h)の倍数
フレーム

フレーム
フレーム(EOFフレーム)

という構造で 1つのフレームは

フレーム
フレームヘッダー(12バイト):フレーム番号と時刻情報
データレコード*約1000バイトになるまでの数
フレームフッター(4バイト):終了情報

1)RDtobで読み取り

とりあえず、エラーは出ますが、RDtobで読み込んでみます。
致命的でない限りヘッダーの情報を得ることができます

下の例では、Start time End time が異常になっています
ヘッダーサイズ:512
データサイズ:990
レコードサイズ:22
1フレームの中のレコード数:45
というデータが得られます

上記より、1フレームの長さは
12+990+4=1006バイト/フレーム

2)バイナリーエディターで調査

1)正しい例

200hよりデータフレームが始まります。

200-20Bh 最初の12バイト:フレームのヘッダー(時刻など)
必ず、00 00 00 00 という004個組が存在する
20C-221h データ1(22バイト)
222-237h データ2(22バイト)

200h + 1006x(3DEh) = 5EEh
5D4-5E9h:データ45
5EA-5EDh:1フレーム目 最後の4バイト:フレームフッター
5EE-60Fh:2フレーム目 ヘッダー(12バイト)
610-625h:データ46(2フレーム目 最初のデータ)

2)正しくない例

200h:初めのフレームヘッダーに、00 00 00 00 という004個組が存在しない

以下を検索する

検索すると、最初に以下がヒット

前後調べてみると
54E-551:前のフレームのフッター
552-55D:フレームヘッダー

上記前後はデータ

であるとみられる。更に次のフレームを調査

940-94Bh:フレームヘッダー
のようだ

940h-552h=3FEh=1006x

ということで、ちょうどフレーム間隔であることが判明
200h-551hまでの850xバイトを読み飛ばせば、正常に処理できる可能性がある。

3)RDtobで読み取り処理

3-1) Startデータの読込

仮読み込みした後、読み飛ばし数がわかったのでEDITボタンを押します

ウィンドウが表示されるので、読み飛ばし数850を入力→OKをクリック

以下の、右下のAuto search end of dataのチェックをはずします

そして、もう一度、ファイルを読み直します

今度はデータが正常に読み込めました。
これでスタートデータレコードはOK

3-2)終了データレコードの探索
自動検索がうまくいかない場合、以下の方法で検索していきます

Data Read:のチェックをはずしてから、NextMark>> ボタンをクリックします。
Frame Headerのテキストボックスのフレーム番号がカウントアップされ、時刻が表示されます
上記オプションでは、フレームのヘッダーだけ読み込むので、高速にデータを検索できます。


ある程度読み込むと、上のように1990/01/01というように、日付が異常になります。
そこで、STOPボタンを押します。
最後のデータはそれより前なので、今度は、<<PrevMarkを押します
以下のように正常な日付が見られたら、再度STOPボタンを押すということを
繰り返し、最後のフレーム近くまで位置を動かします


上記方法は高速で特定できないので、Data ReadボタンをONにしてゆっくりと、表示していき、
最後のフレームを特定します
Next frame>  1フレームずつ、前に進みます
Next Mark>>  連続でStopを押すまで前に進みます Prevはその逆

STOPの下のテキストボックスにフレーム番号を入力し、
Next Mark>>ボタンを押すと、ジャンプすることができます

最終フレームが特定できたら、出力フレームを設定します

3-3)データのファイル出力

n

File Output設定の中で、OutFrameのなかのEndを指定します。
その後、オプションを設定して、Output to Fileボタンを押すと
データが出力されます。

以上で終了。

参考) 16進計算

16進の演算はWindows標準の電卓で簡単に行えます。

16進で200hは

10進では、512xです。
10進ボタンを押すだけ。

16進の演算、そのまま16進モードで行います。

16進10進の混合演算。

入力するたびに、各モードへ移行します

ページの先頭へ