質問編集履歴
4
データ格納範囲の修正
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
変更の内容を簡潔化しました。
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時刻
|
118
|
+
ビッグエンディアンorリトルエンディアンで指数値(INT)に変換して、UNIX時刻があっているかどうか。
|
120
|
-
リトルエンディアンで指数値(INT)に変換して、UNIX時刻にすると1995年10月09日
|
121
|
-
と違うようです。
|
122
119
|
他の書式指定文字で同様に何パターンか試してみましたが、マッチする組み合わせがありませんでした。
|
123
120
|
|
124
|
-
yyyymmddHHMMSSsssの形
|
121
|
+
yyyymmddHHMMSSsssの形(10進数)が16進数で格納されているケースを想定して
|
125
|
-
|
122
|
+
16進数を10進数に変換した数値が合っているか確認しました。
|
126
123
|
yymmddHHMMSSの形式などのいくつかのパターンを同様に試してみましたがマッチする組み合わせがありませんでした。
|
127
124
|
|
128
125
|
|
2
これまでの情報をまとめました
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
以下の質問に対する回答を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,3 +6,7 @@
|
|
6
6
|
structライブラリを用いて変換するコードを書きたいのですが、そもそもどういったルールでデータが変換されているのかわかりません。
|
7
7
|
何かわかりそうであればご教示頂きたく宜しくお願いします。
|
8
8
|
|
9
|
+
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
|
10
|
+
以下の質問に対する回答を追記してまとめておきます。
|
11
|
+
|
12
|
+
|