# AWSデータセンター電気設備制御プログラム(ラダー図版)
以下は、AWSデータセンターの電気設備を制御するためのラダー論理(Ladder Diagram)プログラムです。主電源監視、UPS/発電機制御、温度管理、負荷監視の機能を実装しています。
```
Network 1: 主電源監視とUPS起動
| MainPower UPSRuntime.DN GeneratorControl UPSControl
|----] [------------]/[---------------]/[------------------( )----|
| |
| MainPower |
|----]/[-------------------------------------------------------|
| | UPSRuntime.IN | |
| |-----[TON]-----| |
| | PT: T#5M | |
| |_______________| |
| |
| MainPower UPSRuntime.DN GeneratorStartTimer.DN GeneratorControl
|----]/[------------] [---------------]/[------------------( )----|
| |
| MainPower GeneratorStartTimer.IN |
|----]/[-------------[TON]-------------------------------------|
| | PT: T#10S | |
| |_______________| |
Network 2: 発電機自動停止
| MainPower GeneratorControl GeneratorControl
|----] [------------] [---------------------(/)------------------|
Network 3: 温度監視と冷却システム制御
| Temp_High CoolingSystem CoolingSystem
|----] [------------]/[------------------( )----|
| Temp_High: Temperature > MaxTemperature |
| |
| Temp_Low CoolingSystem CoolingSystem
|----] [------------] [------------------(/)----|
| Temp_Low: Temperature < MinTemperature |
Network 4: 温度アラーム
| Temp_Critical CriticalAlarm
|----] [----------------------------------------( )----|
| Temp_Critical: Temperature > CriticalTemperature |
| |
| Temp_High WarningAlarm
|----] [----------------------------------------( )----|
Network 5: 電力負荷アラーム
| Load_High CriticalAlarm
|----] [----------------------------------------( )----|
| Load_High: PowerLoad > PowerCriticalLevel |
| |
| Load_High WarningAlarm
|----] [----------------------------------------( )----|
Network 6: アラームリセット
| MainPower Temp_High Load_High CriticalAlarm
|----] [------------]/[------------]/[-------------(/)----|
| |
| MainPower Temp_High Load_High WarningAlarm
|----] [------------]/[------------]/[-------------(/)----|
Network 7: テスト用タイマー(実際の実装では削除)
| Clock_1s Counter_Test Counter_Test
|----] [------------] [------------------( )----|
| |
| Counter_Test.DN |
|----] [----------------------------------------|
| | Counter_Test | |
| |-----[CTU]----| |
| | PV: 10 | |
| |______________| |
| |
| Counter_Test.DN Temp_Test Temp_Test
|----] [------------------] [-------------( )----|
| Temp_Test: Temperature + 0.1 |
| |
| Temp_Test Temp_Reset Temp_Test
|----] [------------] [-------------(RES)-------|
| Temp_Reset: Temperature > 35.0 |
```
## ラダー図の説明
1. **Network 1**: 主電源監視とUPS起動
- 主電源が落ちるとUPSを起動
- UPSは5分間稼働後、発電機を起動
- 発電機起動には10秒かかる
2. **Network 2**: 発電機自動停止
- 主電源が復旧すると発電機を停止
3. **Network 3**: 温度制御
- 温度が上限を超えたら冷却システムON
- 温度が下限を下回ったら冷却システムOFF
4. **Network 4-5**: アラームシステム
- 危険温度または過負荷時に重大アラーム
- 許容範囲超え時に警告アラーム
5. **Network 6**: アラームリセット
- 全ての状態が正常化したらアラームをリセット
6. **Network 7**: テスト用ロジック(実際の実装では削除)
- 温度と負荷を自動変化させるテスト用
## 変数定義表
| 変数名 | タイプ | 説明 |
|-----------------------|----------|-----------------------------------|
| MainPower | BOOL | 主電源状態 (TRUE=正常) |
| UPSControl | BOOL | UPS制御信号 |
| GeneratorControl | BOOL | 発電機制御信号 |
| CoolingSystem | BOOL | 冷却システム制御 |
| CriticalAlarm | BOOL | 重大アラーム |
| WarningAlarm | BOOL | 警告アラーム |
| Temperature | REAL | 温度センサー値 (°C) |
| PowerLoad | REAL | 電力負荷 (%) |
| UPSRuntime | TON | UPS稼働時間タイマー (5分) |
| GeneratorStartTimer | TON | 発電機起動タイマー (10秒) |
| MaxTemperature | REAL | 冷却作動温度 (27.0°C) |
| MinTemperature | REAL | 冷却停止温度 (18.0°C) |
| CriticalTemperature | REAL | 危険温度 (32.0°C) |
| PowerCriticalLevel | REAL | 危険電力負荷 (85.0%) |
## 実装上の注意点
1. **実際のI/Oマッピングが必要**:
- 入力変数は実際のセンサーアドレスに割り当て
- 例: `MainPower` → `%I0.0` (Siemens PLCの場合)
2. **安全機能の追加**:
- 実際の運用では以下の回路を追加推奨:
- 非常停止回路(ハードワイヤード)
- ハートビート監視
- 自己診断機能
3. **PLCメーカーによる差異**:
- タイマーや比較演算の記述方法がメーカーにより異なる
- 例: Siemensなら`>R`比較演算、Allen-Bradleyなら`GRT`命令
4. **テスト用ロジック**:
- Network 7はシミュレーション用で、実際の実装では削除
5. **拡張可能な設計**:
- 必要に応じて以下を追加:
- 遠隔監視用通信機能 (Modbus/TCPなど)
- データロギング機能
- 冗長化制御
このラダー図プログラムはIEC 61131-3標準に準拠しており、主要なPLCブランド(Siemens S7、Allen-Bradley ControlLogix、Mitsubishi MELSECなど)で使用可能です。実際の実装前にターゲットPLCのプログラミングマニュアルを参照してください。