Easy Automationスクリプトを使用したエアロックのサンプル。
ブロックと名前・設定
ブロック | 名前 | 備考 |
---|---|---|
ドア類 | A1_Door_OUT | 外側のドア |
A1_Door_IN | 与圧空間側のドア | |
ライト類 | A1_Light_OUT | 外側の表示用ライト |
A1_Light_IN | 与圧空間側の表示用ライト | |
エアベント | A1_Vent | エアロック内のベント |
酸素タンク | 任意 | ある程度酸素を入れてベントに繋いでおく |
LCD類 | Code Panel | ここにコードを書く |
タイマー | Easy Automation TB | プログラマブルブロックのRunを Argumentに何も書かずに設定。 (Easy Automationの共通の設定) |
プログラマブルブロック | 任意 | Easy Automationのスクリプトを保存 |
ボタンパネル | 任意 | 起動用 プログラマブルブロックのRunを Argumentは「Code Panel(Airlock1)」にして設定 |
- ワールド設定の「Enable airtightness」はデフォルトがオフなのでオンにしておくこと。
挙動
- 最初の動作
- エアロックのドアを閉じる。
- 表示ライトが黄色に変わる。
- 1秒経った後、与圧状態の操作。
- ドアの電源を切る(ドアをロックする代わり)
- 減圧がオンかどうかを判定し、分岐。加圧または減圧を開始。
- 3秒経った後、通れるようになる。
- 表示ライトが通れる側は緑、通れない側は赤に変わる。
- 通れるようになる側のドアのロックが解除される。
- そのドアが開く。
コード
@Airlock1{ Open_Off A1_Door Color of A1_Light = 255:255:0 Delay 1000
OnOff_Off A1_Door If Depressurize of A1_Vent = On { Depressurize_Off A1_Vent Delay 3000
Color of A1_Light_IN = 0:255:0 Color of A1_Light_OUT = 255:0:0 OnOff_On A1_Door_IN Open_On A1_Door_IN } Else { Depressurize_On A1_Vent Delay 3000
Color of A1_Light_OUT = 0:255:0 Color of A1_Light_IN = 255:0:0 OnOff_On A1_Door_OUT Open_On A1_Door_OUT } }
簡易解説
@Airlock1{ | ここから始まる括弧{}の中身は、Airlock1という名前のコードブロック |
Open_Off A1_Door | 名前にA1_Doorと付くブロックのOpen_Offアクションを実行 |
Color of A1_Light = 255:255:0 | 名前にA1_Lightと付くブロックのColorプロパティを255:255:0にする |
Delay 1000 | 1000ミリ秒、待機 |
OnOff_Off A1_Door | 名前にA1_Doorと付くブロックのOnOff_Offアクションを実行 |
If Depressurize of A1_Vent = On | もし、名前にA1_Ventと付くブロックのDepressurizeプロパティがOnなら、後に続く括弧{}の中身を実行 |
略 | |
Else | 直前の{}のIfの条件が満たされていなかったら、これに続く括弧{}の中身を実行 |
略 |