質問編集履歴

4

データ格納範囲の修正

2022/03/14 12:39

投稿

angew
angew

スコア20

test CHANGED
File without changes
test CHANGED
@@ -1,16 +1,24 @@
1
1
  とある測定機器が出力するファイル(バイナリー形式)から取り出したい日時データがあります。
2
2
  Stirlingというソフトを使って、ファイルを比較しながら、必要なデータの格納場所は判明しました。
3
3
  データは
4
- "4A 9D B2 5B"で、2021/05/07 05:59:22,971です。
4
+ ~~"4A 9D B2 5B"で、2021/05/07 05:59:22,971です。
5
- "0A 4D 14 3F"で、2021/04/19 08:49:15,020です。
5
+ "0A 4D 14 3F"で、2021/04/19 08:49:15,020です。~~
6
6
  structライブラリを用いて変換するコードを書きたいのですが、そもそもどういったルールでデータが変換されているのかわかりません。
7
7
  何かわかりそうであればご教示頂きたく宜しくお願いします。
8
8
 
9
9
  **他データの参考例**
10
- 2022/01/24 07:21:00,870 ⇒ 4C E0 53 01
10
+ ~~2022/01/24 07:21:00,870 ⇒ 4C E0 53 01
11
11
  2022/01/24 07:37:08,310 ⇒ 4C E0 53 22
12
12
  2022/01/24 08:05:16,079 ⇒ 4C 60 54 40
13
- 2022/01/24 08:29:01,881 ⇒ 4C 60 D4 05
13
+ 2022/01/24 08:29:01,881 ⇒ 4C 60 D4 05~~
14
+
15
+ **データの格納場所について範囲の拡大が必要であることがわかりましたので訂正致します。申し訳ありません。**
16
+ 2022/01/24 07:21:00,870 ⇒ 4C E0 53 01 00 00 00 00 60 00 00 00 10 27
17
+ 2022/01/24 07:37:08,310 ⇒ 4C E0 53 22 00 00 00 00 01 00 00 00 10 27
18
+ 2022/01/24 08:05:16,079 ⇒ 4C 60 54 40 00 00 00 00 01 00 00 00 10 27
19
+ 2022/01/24 08:29:01,881 ⇒ 4C 60 D4 05 00 00 00 00 68 01 00 00 10 27
20
+ 2021/05/07 05:59:22,971 ⇒ 4A 9D B2 5B 00 00 00 00 08 07 00 00 D0 07
21
+ 2021/04/19 08:49:15,020 ⇒ 0A 4D 14 3F 00 00 00 00 08 07 00 00 D0 07
14
22
 
15
23
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
16
24
  **CSVデータ①**

3

変更の内容を簡潔化しました。

2022/03/14 10:41

投稿

angew
angew

スコア20

test CHANGED
File without changes
test CHANGED
@@ -115,14 +115,11 @@
115
115
 
116
116
  **これまでに行ったこと**
117
117
  UNIX時刻で格納されているケースを想定して
118
- 4A 9D B2 5Bを
119
- ビッグエンディアンで指数値(INT)に変換して、UNIX時刻にすと2005年03月14日
118
+ ビッグエンディアンorリトルエンディアンで指数値(INT)に変換して、UNIX時刻があっていかどうか。
120
- リトルエンディアンで指数値(INT)に変換して、UNIX時刻にすると1995年10月09日
121
- と違うようです。
122
119
  他の書式指定文字で同様に何パターンか試してみましたが、マッチする組み合わせがありませんでした。
123
120
 
124
- yyyymmddHHMMSSsssの形16進数で格納されているケースを想定して
121
+ yyyymmddHHMMSSsssの形0進数)が16進数で格納されているケースを想定して
125
- 2021/05/07 05:59:22,971を変換と47 CD 59 5D CC 7F 1Bと違うようです
122
+ 16進数を10進数に変換した数値が合っていか確認しました
126
123
  yymmddHHMMSSの形式などのいくつかのパターンを同様に試してみましたがマッチする組み合わせがありませんでした。
127
124
 
128
125
 

2

これまでの情報をまとめました

2022/03/14 10:38

投稿

angew
angew

スコア20

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,124 @@
6
6
  structライブラリを用いて変換するコードを書きたいのですが、そもそもどういったルールでデータが変換されているのかわかりません。
7
7
  何かわかりそうであればご教示頂きたく宜しくお願いします。
8
8
 
9
+ **他データの参考例**
10
+ 2022/01/24 07:21:00,870 ⇒ 4C E0 53 01
11
+ 2022/01/24 07:37:08,310 ⇒ 4C E0 53 22
12
+ 2022/01/24 08:05:16,079 ⇒ 4C 60 54 40
13
+ 2022/01/24 08:29:01,881 ⇒ 4C 60 D4 05
14
+
9
15
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
10
- 以下の質問に対する回答を追記してまとめておきます。
16
+ **CSVデータ①**
17
+ 取り込みモード,ノーマル
18
+ 収集開始日時,2021/04/19 08:49:15,020
19
+ サンプリング周期,2s
20
+ AD積分時間,2ms(500Hz)
21
+ データ数,1800
22
+ データ圧縮処理,標準
23
+
24
+ CH設定
25
+ チャンネル,,1)TH_CH1,1)TH_CH2,1)TH_CH3,1)TH_CH4,1)TH_CH5,1)TH_CH6,1)TH_CH7,1)TH_CH8,MB_CH1,MB_CH2,MB_CH3,MB_CH4,MB_CH5,MB_CH6,MB_CH7,MB_CH8,MB_CH9,MB_CH10,MB_CH11,MB_CH12,MB_CH13,MB_CH14,MB_CH15,MB_CH16
26
+ チャンネル名,,Channel1,温度5ch,温度6ch,温度7ch,Channel5,圧力5ch,圧力6ch,圧力7ch,Modbus1,Modbus2,Modbus3,Modbus4,Modbus5,Modbus6,Modbus7,Modbus8,Modbus9,Modbus10,Modbus11,Modbus12,Modbus13,Modbus14,Modbus15,Modbus16
27
+ 入力レンジ,,K熱電対,K熱電対,K熱電対,K熱電対,±1V,±1V,±1V,±1V,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16
28
+ 小数点以下の桁数,,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
29
+ 単位,,℃,℃,℃,℃,kPa,kPa,kPa,kPa,,,,,,,,,,,,,,,,
30
+ 測定処理,,OFF,OFF,OFF,OFF,スケーリング,スケーリング,スケーリング,スケーリング,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***
31
+ 計測値1,,,,,,1.00000,1.00000,1.00000,1.00000,,,,,,,,,,,,,,,,
32
+ 計測値2,,,,,,-1.00000,-1.00000,-1.00000,-1.00000,,,,,,,,,,,,,,,,
33
+ 表示値1,,,,,,101.300,101.300,101.300,101.300,,,,,,,,,,,,,,,,
34
+ 表示値2,,,,,,-101.300,-101.300,-101.300,-101.300,,,,,,,,,,,,,,,,
35
+ アラーム1,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
36
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
37
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
38
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
39
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
40
+ アラーム2,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
41
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
42
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
43
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
44
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
45
+ アラーム3,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
46
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
47
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
48
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
49
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
50
+ アラーム4,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
51
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
52
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
53
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
54
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
55
+
56
+ #EndHeader,ms,1)TH_CH1,1)TH_CH2,1)TH_CH3,1)TH_CH4,1)TH_CH5,1)TH_CH6,1)TH_CH7,1)TH_CH8,MB_CH1,MB_CH2,MB_CH3,MB_CH4,MB_CH5,MB_CH6,MB_CH7,MB_CH8,MB_CH9,MB_CH10,MB_CH11,MB_CH12,MB_CH13,MB_CH14,MB_CH15,MB_CH16
57
+ 2021/04/22 17:49:15,380,BURNOUT,19.95,20.00,19.90,27.0,-0.8,-4.9,-2.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
58
+ 2021/04/22 17:49:17,380,BURNOUT,19.95,20.00,19.85,29.2,-0.8,-4.9,-2.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
59
+ 2021/04/22 17:49:19,380,BURNOUT,19.90,19.95,19.85,29.8,-0.8,-4.9,-2.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
60
+
61
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
62
+ **CSVデータ②**
63
+ 取り込みモード,ノーマル
64
+ 収集開始日時,2021/05/07 05:59:22,971
65
+ サンプリング周期,2s
66
+ AD積分時間,2ms(500Hz)
67
+ データ数,1800
68
+ データ圧縮処理,標準
69
+
70
+ CH設定
71
+ チャンネル,,1)TH_CH1,1)TH_CH2,1)TH_CH3,1)TH_CH4,1)TH_CH5,1)TH_CH6,1)TH_CH7,1)TH_CH8,MB_CH1,MB_CH2,MB_CH3,MB_CH4,MB_CH5,MB_CH6,MB_CH7,MB_CH8,MB_CH9,MB_CH10,MB_CH11,MB_CH12,MB_CH13,MB_CH14,MB_CH15,MB_CH16
72
+ チャンネル名,,Channel1,温度5ch,温度6ch,温度7ch,Channel5,圧力5ch,圧力6ch,圧力7ch,Modbus1,Modbus2,Modbus3,Modbus4,Modbus5,Modbus6,Modbus7,Modbus8,Modbus9,Modbus10,Modbus11,Modbus12,Modbus13,Modbus14,Modbus15,Modbus16
73
+ 入力レンジ,,K熱電対,K熱電対,K熱電対,K熱電対,±1V,±1V,±1V,±1V,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16
74
+ 小数点以下の桁数,,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
75
+ 単位,,℃,℃,℃,℃,kPa,kPa,kPa,kPa,,,,,,,,,,,,,,,,
76
+ 測定処理,,OFF,OFF,OFF,OFF,スケーリング,スケーリング,スケーリング,スケーリング,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***,***
77
+ 計測値1,,,,,,1.00000,1.00000,1.00000,1.00000,,,,,,,,,,,,,,,,
78
+ 計測値2,,,,,,-1.00000,-1.00000,-1.00000,-1.00000,,,,,,,,,,,,,,,,
79
+ 表示値1,,,,,,101.300,101.300,101.300,101.300,,,,,,,,,,,,,,,,
80
+ 表示値2,,,,,,-101.300,-101.300,-101.300,-101.300,,,,,,,,,,,,,,,,
81
+ アラーム1,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
82
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
83
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
84
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
85
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
86
+ アラーム2,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
87
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
88
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
89
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
90
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
91
+ アラーム3,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
92
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
93
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
94
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
95
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
96
+ アラーム4,,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF,OFF
97
+ 値A,,,,,,,,,,,,,,,,,,,,,,,,,
98
+ 値B,,,,,,,,,,,,,,,,,,,,,,,,,
99
+ オンディレイ時間(s),,,,,,,,,,,,,,,,,,,,,,,,,
100
+ アラーム出力先,,,,,,,,,,,,,,,,,,,,,,,,,
101
+
102
+ #EndHeader,ms,1)TH_CH1,1)TH_CH2,1)TH_CH3,1)TH_CH4,1)TH_CH5,1)TH_CH6,1)TH_CH7,1)TH_CH8,MB_CH1,MB_CH2,MB_CH3,MB_CH4,MB_CH5,MB_CH6,MB_CH7,MB_CH8,MB_CH9,MB_CH10,MB_CH11,MB_CH12,MB_CH13,MB_CH14,MB_CH15,MB_CH16
103
+ 2021/05/07 09:59:23,329,BURNOUT,212.85,22.75,22.20,34.5,2.7,0.3,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
104
+ 2021/05/07 09:59:25,329,BURNOUT,212.85,22.75,22.20,37.4,2.7,0.4,0.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
105
+ 2021/05/07 09:59:27,329,BURNOUT,212.85,22.75,22.20,40.2,2.7,0.4,0.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
106
+
107
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
108
+
109
+ **データの格納場所について**
110
+ 本データの構成は測定機器情報(ヘッダー部分)+測定結果(数値テーブル部分)で構成されており、今回知りたい日時の情報は測定機器情報に含まれる『収集開始日時』です。
111
+ 比較しているデータは測定機器情報が収集開始日時を除いてすべて同じで、Stirlingで比較した際に上述している4Byteのみ異なるため、格納場所が間違っていなことに自信があります。
112
+ ※測定結果はデータが異なるのでバイナリーデータも違いますが、こちらの数値デーブルはすべて抽出できているので、間違いなく収集開始日時のデータは含まれていません。
113
+
114
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
115
+
116
+ **これまでに行ったこと**
117
+ UNIX時刻で格納されているケースを想定して
118
+ 4A 9D B2 5Bを
119
+ ビッグエンディアンで指数値(INT)に変換して、UNIX時刻にすると2005年03月14日
120
+ リトルエンディアンで指数値(INT)に変換して、UNIX時刻にすると1995年10月09日
121
+ と違うようです。
122
+ 他の書式指定文字で同様に何パターンか試してみましたが、マッチする組み合わせがありませんでした。
123
+
124
+ yyyymmddHHMMSSsssの形で16進数で格納されているケースを想定して、
125
+ 2021/05/07 05:59:22,971を変換すると47 CD 59 5D CC 7F 1Bと違うようです。
126
+ yymmddHHMMSSの形式などのいくつかのパターンを同様に試してみましたがマッチする組み合わせがありませんでした。
11
127
 
12
128
 
129
+

1

以下の質問に対する回答を追記

2022/03/14 10:33

投稿

angew
angew

スコア20

test CHANGED
File without changes
test CHANGED
@@ -6,3 +6,7 @@
6
6
  structライブラリを用いて変換するコードを書きたいのですが、そもそもどういったルールでデータが変換されているのかわかりません。
7
7
  何かわかりそうであればご教示頂きたく宜しくお願いします。
8
8
 
9
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
10
+ 以下の質問に対する回答を追記してまとめておきます。
11
+
12
+