# 保存するデータサイズの計算

バックアップメモリー (SRAM) または外部ストレージに保存されている各データのサイズは、システム設定の編集画面で確認できます。

各データサイズの計算については、以下を参照してください。

- アラーム
- データロギング
- 操作ログ
- 変数値 (保持変数)

MEMO:変数値 (保持変数) の保存先は、バックアップメモリー (SRAM) のみです。

## アラーム

(単位: バイト)

Header (3072) + ActiveAlarms + AlarmLog + SystemErrors (2048)

- ActiveAlarms = (すべてのアラームグループ内のアラーム総数 × ([アラーム動作]*1 + すべてのアラームグループ内の変数の総サイズ*2) / 1024 )*3 × 1024
- AlarmLog = ([最大レコード]*4 × (31 + 最大変数サイズ*5) / 1024)*3 × 1024

*1 [アラーム動作]で [任意確認] が選択されている場合は 65、[必須確認] が選択されている場合は 73 です。

*2 変数サイズはデータ型によって異なります。詳しくは、以下の「変数サイズ」の表を参照してください。

*3 小数点以下は切り上げます。

*4 [すべてのアラーム] の [最大レコード] プロパティの値です。

*5 変数の中で最も大きいデータ型のサイズです。変数データ型のサイズについては、以下の「変数サイズ」の表を参照してください。アラーム設定が無効になっている場合、最大変数サイズは 0 になります。

変数サイズ

データの種類 | サイズ (バイト)
BOOL | 1
BYTE | 3
WORD | 5
DWORD | 10
LWORD | 20
SINT | 4
USINT | 3
INT | 6
UINT | 5
DINT | 11
UDINT | 10
LINT | 20
ULINT | 20
REAL | 20
LREAL | 20

## データロギング

ロギングが無効になっている場合、データサイズは 0 になります。

(単位: バイト)

Header + LoggingGroups + StartLogs + LoggingState (1024)

- Header = ((H_LoggingGroups + H_LoggingGroup_Views + H_LoggingGroup_Startlog + H_Logging_state) / 1024) *1 × 1024 + HeaderEmptySpace
  - H_LoggingGroups = すべてのロギンググループの合計サイズ
    ロギンググループ = 172 + 42 × ロギンググループ内の変数の数
  - H_LoggingGroup_Views = すべての LoggingGroup_View の合計サイズ
    LoggingGroup_View = 213 + 33 × ロギンググループ内の変数の数
  - H_LoggingGroup_Startlog = 176 × ロギンググループ数
  - H_Logging_state = 144
  - HeaderEmptySpace = 1024 (((H_LoggingGroups + H_LoggingGroup_Views + H_LoggingGroup_Startlog + H_Logging_state) / 1024) が 2 の場合)、0 (それ以外)。
- LoggingGroups = ロギンググループの合計サイズ
  (26 + 各変数に対する (変数サイズ*2 + 1) の合計) が 512 以下の場合:
  ロギンググループ = ([最大レコード] *3 / (1024 / (26 + 各変数に対する (変数サイズ*2 + 1) の合計))*4)*1 × 1024 + LoggingGroupEmptySpace
  それ以外の場合:
  ロギンググループ = ((26 + 各変数に対する (変数サイズ*2 + 1) の合計) / 1024)*1 × [最大レコード] *3 × 1024 + LoggingGroupEmptySpace
  - LoggingGroupEmptySpace = 1024 (((26 + 各変数の (変数サイズ*2 + 1) の合計) × [最大レコード] *3) / 1024) が 2 以上の場合、0 (それ以外)。
- StartLogs = LoggingGroup_Startlogs: の合計
  LoggingGroup_Startlog = (24 × [最大レコード] *3 /1024)*1 × 1024 + StartlogEmptySpace
  - StartlogEmptySpace = 1024 (((24 × [最大レコード]*3) / 1024)*1 が 2 以上の場合)、0 (それ以外)。

*1 小数点以下は切り上げます。

*2 変数サイズはデータ型によって異なります。詳しくは、以下の「変数サイズ」の表を参照してください。

*3 [ロギンググループ] の [最大レコード] プロパティの値です。

*4 小数点以下は切り捨てます。

変数サイズ

データの種類 | サイズ (バイト)
BOOL | 1
BYTE | 2
WORD | 3
DWORD | 10
LWORD | 20
SINT | 1
USINT | 2
INT | 2
UINT | 3
DINT | 4
UDINT | 10
LINT | 20
ULINT | 20
REAL | 20
LREAL | 20
STRING | [バイト数] + 1
WSTRING | [バイト数] + 1
TIME | 4
TIME_OF_DAY | 4
DATE | 4
DATE_AND_TIME | 4

## 操作ログ

操作ログが無効になっている場合、データサイズは 0 になります。

(単位: バイト)

Header (1024) + ((478 × [最大レコード*1] / 1024)*2 × 1024) + EmptySpace

- EmptySpace = 1024 ((478 × [最大レコード*1] / 1024) が 2 以上の場合)、0 (それ以外)。

*1 [操作ログ] の [最大レコード数] プロパティの値。

*2 小数点以下は切り上げます。

## 変数値 (保持変数)

変数の [保持] のプロパティが無効になっている場合、データサイズは 0 になります。

(単位: バイト)

Header (1024) + ((RetentiveVariables / 1024)*1 × 1024) + EmptySpace

- RetentiveVariables = [保持] プロパティが有効な変数の合計サイズ
  保持変数 = Header (7) + ID (2) + 変数のサイズ*2
- EmptySpace = 1024 ((保持変数 / 1024) が 2 以上の場合)、0 (それ以外)。

*1 小数点以下は切り上げます。

*2 変数サイズはデータ型によって異なります。詳しくは、以下の「変数サイズ」の表を参照してください。

変数サイズ

データの種類 | サイズ (バイト)
BOOL | 1
BYTE | 3
WORD | 5
DWORD | 10
LWORD | 20
SINT | 4
USINT | 3
INT | 6
UINT | 5
DINT | 11
UDINT | 10
LINT | 21
ULINT | 20
REAL | 20
LREAL | 20
STRING | [バイト数] x 2 + 2
TIME | 11
TIME_OF_DAY | 10
DATE | 10
DATE_AND_TIME | 10