チュートリアル:回路ネットワークのクックブック
これは初心者向けのチュートリアルです。回路ネットワークの概要については回路ネットワークのページを、より高度なチュートリアルについては回路のチュートリアルを参照してください。
序文
このページでは、シンプルな回路ネットワークの設計例と、そうでもない設計例を紹介します。これらは他の人が利用したり組み合わせたり変更したりしやすいように設計されています。回路部品を開かずに設定を見るには、設定->インターフェース->Altモードの 「回路の設定を Altモードで表示する」をチェックし、「Altモード」をオンにする必要があります。
照明
チェストの内容の状態を表示するランプ
最も単純な回路ネットワークの使い方です。ランプは、チェストに入っているアイテム(この例では空のドラム缶)の数によって点灯するかどうかが決まります。
回路接続のセットアップ
- ランプをチェストに接続します。
- ランプを、チェスト内の空のドラム缶が10個未満になったときに点灯するように設定します。
照明の条件設定
- ランプを開きます(左クリック)。
- 作動条件に空のドラム缶をセットします。
- 演算子を < (未満) にセットします。
- 定数をセットします。
- 定数を左クリックします。
- スライダーを10になるまで移動させるか、値を直接入力します。
- 「適用」をクリックします。
設定した条件によって、チェストが空になるか、必要な数のアイテムしかないと、ランプが点灯します。
このシナリオの欠点は、ランプの光が白いため、夜間に普通のランプと区別がつきにくいことです。
条件付き照明
- この回路では、並んだランプと貯蔵タンクを接続します。
- それぞれのランプに異なる条件を設定することで、細長いメーターを作れます。
- 最初のランプの作動条件は、石油ガス > 100です。
- 他は、それぞれ石油ガスが 200, 300, 400, 500 より大きいときに点灯するようにします。
この構成では、ランプと貯蔵タンクを直接接続できます。
色付き照明
石油に関する構成
石油ガス、軽油、重油の生産量のバランスを取ることは、回路ネットワークの最も重要な使い道の一つです。
軽油を石油ガスに分解
重油を軽油に分解
- この回路は一つ前の回路を拡張し、潤滑油を供給するための重油に、分解のオプションを追加したものです。
- ポンプは、作動条件が 重油 > 20000に設定されています。
分解と潤滑油製造についてのもう一つの構成
この構成は、決まった値で判断する代わりに、異なる流体のレベルをそれぞれ比較します。軽油に余裕があるときには石油ガスが生産され、石油ガスに余裕があるときには軽油が分解されないといった担保があり、重油の分解や潤滑油の生産にも同様のルールがあります。
以下の4ステップが必要です。
- 重油・軽油・石油ガス・潤滑油の貯蔵タンクを用意します。それぞれの流体は、それを製造または消費する場所とパイプで接続します。
- それぞれの化学プラント(あるいは、並べて使っているならその並び)に対して、水ではない流体の入力側にポンプを追加し、逆流を防止します。注:あるいは、化学プラントの出力側に逆流防止のポンプを追加しても大丈夫です。入力と出力の両方に追加する必要はありません。
- 全てのポンプと貯蔵タンクを、一つの回路ネットワークにレッド(またはグリーン)ケーブルで接続します。これで、回路ネットワークは、各貯蔵タンクの流体レベルがわかるようになり、それぞれのポンプにこの情報を渡します。
- 回路に接続されたそれぞれのポンプで、「動作条件」を対応する化学プラントの「[入力の流体] > [出力の流体]」に設定します。例えば、重油を軽油に分解するプラントの入力ポンプであれば、「重油 > 軽油」に設定します。潤滑油を製造するプラントの入力ポンプであれば、「重油 > 潤滑油」に設定します。軽油を石油ガスに分解するプラントの入力ポンプであれば、「軽油 > 石油ガス」に設定します。
完成です!これで、全てのポンプは、各流体が同じ流体レベルになるように動作します。これで、1種類の流体が大量に存在し、他の流体が製造できなくなる流体システムのデッドロックを防ぐことができます。
その他
複数の保管場所
- 複数のチェストを電柱に接続すると、電柱はチェスト内のアイテムの合計を表示します。
- これは、貯蔵タンクやロボットステーションでも同じことができます。
定数回路
- 定数回路を使って、必要とあればどんな信号でも作り出せます。
- この例では、レーザータレット50と貫通弾薬200の信号を作りました。
- 定数回路は、それだけではあまり役に立ちませんが、この後使ってみましょう。
定数回路看板 (文字)
- 定数回路を使って看板を作れます。定数回路に文字の信号を設定するだけです。それぞれの回路が2文字を並べて表示できます。
- これらの文字を見るには、ALTモードをオンにしなければならず、インターフェース設定で「回路の設定を Altモードで表示する」が有効化されている必要があるので注意してください。
定数回路看板 (ベルトの管理)
- 前の例と似ていますが、定数回路看板は、このベルトにどのアイテムが入ってくるべきかを表示するために使えます。これは建設計画を共有するときにとても役立ちます。建設計画を共有することは可能ですが、どのアイテムがどのベルトのためのものかは共有されないためです。
メモリセル / カウンタ
- インサータが運んだ全アイテムを数える基本的なメモリセルです。
- 高速インサータを算術回路の両方の端子に接続します。
- 高速インサータがこのティックで何も拾っていないと、算術回路の入力と出力は同じ値になるので、値が保持されます。
- 高速インサータが何かを拾ったとき、前のティックの出力に、この値が加算されるので、そのアイテムの値が増えます。
インサータ
チェストに入れるアイテムを制限する
均等にチェストに格納する
目的:n個のチェストに概ね均等にアイテムを収納します。列車に積み込む駅で使うことができます。MadZuri's smart loading train station(英語)
- n個のチェストとn個のインサータを配置します。
- 算術回路を1個配置します。
- 回路の入力に「それぞれ(黄色いアスタリスク)」を設定し、チェストの数の負の値で割ります。(例:-n)
- レッドケーブルで全てのチェストを互いに接続し、回路の入力側に接続します。
- レッドケーブルで全てのインサータを互いに接続し、回路の出力側に接続します。
- インサータとインサータが入れる先の箱をそれぞれグリーンケーブルで接続します。
- 各インサータの作動条件を「全て(赤いアスタリスク)< 0」に設定します。
回路はチェスト内のアイテムの平均数を計算し、それをマイナスの値にします。各インサータは、チェストに入れるアイテムがチェスト内にいくつあるかを数え、負の平均値を加えます。つまり、平均よりいくつ多く自分が担当するチェストに入っているかを計算します。もし、この数字が負になると、チェストの内容が平均よりも少ないことになるので、インサータが動作可能になります。
インサータのスタック容量ボーナスのため、カウントは正確になりません。もし、正確なカウンタが必要な場合は、スタックサイズを1に設定してください。
前線基地に特定のアイテムを備蓄する
- この回路は前線基地にある貯蔵チェストがアイテムごとに指定した数量を備蓄できるようにします。
- 例えば、レーザータレット50個と貫通弾薬200個を、前線基地が確保しておけるようにしつつ、それらがあふれる心配をしなくてすみます。
- 貯蔵チェストは算術回路の入力側(図の左側)にレッドケーブルで接続されています。
- もう一つのレッドケーブルの組は、算術回路の出力側(右側)と定数回路とスタックフィルターインサータを繋いでいます。
- 算術回路は、(貯蔵チェストからの)それぞれの入力値に -1を掛けます。
- 最後に、スタックフィルターインサータの動作モードをフィルターを設定に変更します。
- スタックフィルターインサータの入力が、<定数回路> - <貯蔵チェストの内容>になり、チェストの内容で最初に来るアイテムのフィルターが設定されます。
ソーラーパネルと蓄電池の適正比率での製造
- この回路は、ソーラーパネルと蓄電池の製造を、希望する比率(ここでは24:20)に調整します。
- 最初の算術回路では、チェスト内の蓄電池の数を受け取り、24を掛けます。
- 2つ目の算術回路では、最初の算術回路の出力を受け取り、20で割ります。
- この結果として、両方のインサータで、ソーラーパネルの数量と直接比較できる蓄電池の数が得られます。
- 蓄電池の数が大きければ、ソーラーパネルのインサータを有効にし、ソーラーパネルの数が大きければ、蓄電池のインサータを有効にします。
- しかし、これらが同じ場合どちらのインサータも何もしなくなってしまいます。そこで、定数回路を使って、蓄電池の信号を片方のインサータに、これまでとは別の色のケーブルで送ることで、デッドロックを回避しています。
寿司ベルト
読み取り用ベルトの設計
- 一列に並んだ6つのベルトを、レッドケーブルで接続し、ベルト上のアイテムを取得するかつホールドに設定します。
- このレッドケーブルは、ベルトにアイテムを置くインサータにも接続します。
- 全てのインサータの「掴んでいるアイテムを取得する」をオフにします。
- 全てのインサータの動作モードを有効/無効に設定します。
- 最初のインサータは、自動化サイエンスパック = 0のときに有効にします。
- 他のインサータも同様に、他のサイエンスパックに対して設定します。
メモリセルの設計
- この回路は、インサータによってベルトから出し入れされた数を数えることで、ループしているベルト上のそれぞれのアイテムの数を記憶します。
- ベルトからアイテムを取り出すインサータは、互いにレッドケーブルで接続し、それぞれ動作モードをなし、掴んでいるアイテムを取得するをオンにし、読み取りモードをパルスに設定します。
- これらのインサータは、左の算術回路の入力に接続します。
- 左の算術回路は、それぞれの入力を-1倍し、それぞれを出力します。
- 右の算術回路は、上に述べた メモリセルです。
- メモリセルの入力は、ベルトにアイテムを置くインサータおよび、左の算術回路の出力と接続します。
- ベルトにアイテムを置くインサータは、ベルト上のアイテムの数に応じて有効になる条件を設定します。
電力
予備の蒸気発電
原子力発電のための燃料棒消費の最適化
電力消費に合わせて燃料消費が調整される通常の蒸気発電と異なり、原子炉は、一定時間で燃料を消費します。正確には燃料棒1つを、ちょうど200秒で消費します。
燃料棒の製造には時間とコストがかかるため、実際の消費電力に合わせて使用を最適化する価値があります。
この図は、蒸気が不足すると燃料棒を1つだけ消費する原子炉4つの構成を示しています。
注:画像内のGUIは重要なポイントが画像内に収まるように加工しています。
この構成は、いくつかの要素からできています。
- 貯蔵タンクは、蒸気の信号を出しています。他の貯蔵タンクとパイプで繋がっている貯蔵タンク1つの値だけを読み取るようにしてください。
- チェストには、原子炉用の燃料棒が入っています。
- 原子炉から使用済み燃料棒を取り出す出力インサータです。これは蒸気の信号をを監視するために貯蔵タンクに接続され、燃料棒の信号を監視するためにチェストに接続されます。蒸気の残量が少なくなり、燃料棒がある場合、原子炉から使用済み燃料棒を取り出し、使用済み燃料棒の信号を送ります。(「掴んでいるアイテムを取得する」がチェックされているためです)。
- 入力インサータは、燃料棒を原子炉に投入します。これは、使用済み燃料棒の信号を監視するために出力インサータと接続します。「スタックサイズを上書きする」を1に設定し、インサータが一度につかむ燃料棒を1つだけにします。
- 複数の原子炉を使用する場合は、1つの出力インサータを1つの蒸気タンクにのみ配線し、すべての入力インサータを1つの出力インサータに接続する必要があります。こうすることで、燃料投入を同期させ、原子炉の隣接ボーナスを最大にすることができる。その他の原子炉は、使用済み燃料棒を直ちに取り出す「考えない」出力インサータを設置します。
この設計では、使用済み燃料棒を原子炉に燃料を入れる信号として使うので、開始するときは手動で燃料棒を一つ挿入する必要があります。
燃料棒製造のためにウランを優先的に使用する
燃料棒の継続的な供給は、原子炉を維持するうえで非常に重要なので、ウラン-235とウラン-238を他のことに使用する前に、燃料棒の製造に使用する分を確保するシステムを、回路ネットワークで構成することができます。
分配器を使って、2種類のウランを2本の並行するベルトに分けます。 それぞれのベルトからウランを集めるインサータを配置します。(遠い側のベルトには、ロングアームインサータが必要でしょう) 各インサータは、掴んだものをチェストに入れます。 チェストの内容を燃料棒を製造する組立機に届けます。 完成した燃料棒は、別のチェストに入れておき、そこから原子炉に燃料を投入します。
ベルトから取り出す2つのインサータを、それぞれの収納先のチェストと、インサータがアイテムを拾った直後のベルトに接続します。 各インサータの動作条件を、それぞれのインサータが拾うウランの種類 ≦ X に設定します。 X には、確保しておきたいウランの数(燃料棒の製造には、ウラン-235が1個と、ウラン-238が19個必要です。もっと多く備蓄したい場合は、量を増やしてください)を設定します。 ベルトの動作条件を、同様に「ベルト上のウランの種類 ≧ X」に設定します。
最後に、組立機にウランを供給するインサータを、組立機から燃料棒を格納するチェストに接続し、それぞれの有効条件を「燃料棒=0」に設定します(備蓄量を多くしたい場合は、有効条件を「燃料棒 < X」に設定してもよいです)。
この構成で、以下のようなことが起こります。
- 十分な量の燃料棒とウランが備蓄されると、インサータは停止し、ベルトが作動します。
- 燃料棒の備蓄がゼロになると(あるいは望ましい量より少なくなると)、組立機に供給するインサータが作動してウランを供給し、必要量に達するまで燃料棒の生産を再開します。
- 燃料棒を製造するのに十分な量のウランが備蓄されていない場合、ウランを集めているインサータが起動し、必要量に達するまでウランの収集を再開します。ウランを運ぶベルトはインサータの直後で停止し、それぞれのチェストの内容が必要量に達するまで、その種類のウランが他の施設に流れるのを止めます。
- 組立機には、燃料棒の備蓄がゼロになった(あるいは望ましい量より減少した)ときだけウランが供給され、燃料棒の過剰生産、ひいてはウランの過剰消費を防ぎます。
鉄道ネットワーク
列車の経路を設定する
回路ネットワークは、列車の細かな管理に使うことができます。 駅の列車数制限を調整したり、積み込む資源がないときに駅を無効にしたり、荷下ろし駅がすでに十分な資源を持っているときに同じことをしたりできます。 列車数の制限は、常に有効/無効な駅と比べて、多少問題が発生することもあるので注意してください。Friday Facts #361 - Train stop limit, Tips and tricks(英語)を参照。 列車数の制限について詳しくは駅のページに書かれています。
プレイヤーの安全確保
プレイヤーが線路を横断する際、列車にひかれないようにプレイヤーの安全を確保するために回路ネットワークを使うことができます。 踏切になる部分にゲートを設置し、隣接する防壁をゲート付近の列車用信号に接続します。 ゲートを「センサー読み取り」、信号を「信号を閉じる」に設定し、ゲートが発する信号が「1」であることを条件とします。つまり、ゲートが閉まっているときは信号は緑で列車は自由に通過できますが、プレイヤーがゲートに近づいてゲートが開くと列車用信号は赤になり、プレイヤーがそのエリアを立ち去るまで列車は停止します。
他にも、仕組みを逆にすることもできます。ゲートを「ゲートを開く」、列車用信号を「信号を読み取り」に設定し、通常はゲートが開いたままになっており、列車が接近したときに閉じて、列車が通過して安全になるまでプレイヤーが通過できないようにします。
ゲートの代わりに、プログラマブルスピーカーを列車用信号に接続し、列車が接近すると周囲に警報サイレンを鳴らすこともできます。
ラッチ
RSラッチ - 条件回路1個バージョン
Factorio フォーラムのこの議論(英語)は、一般的な条件回路2個のRSラッチから始まりましたが、条件回路1個バージョンのほうがより良いことを説明する流れ(英語)になりました。このスレッドでは、ラッチはSRラッチとして記述されています。しかし、両方の入力が真のとき、ラッチはリセットされるため、これはRSラッチです。
蒸気機関による予備電源のサンプル
この例では、蓄電池の充電率が20%を下回ったとき、蒸気機関が作動するようにし、蓄電池が90%充電されると、オフになるようにします。
ラッチングは、ヒステリシスを導入し、電源スイッチが急速にオン/オフを繰り返すのを避けるために使用されます(蓄電池が19%に低下し、20%に充電され、19%に低下するなど)。
最初の条件回路は、蓄電池が20%未満のときに、「セット」( = 1) を出力するように設定します。
2つ目の条件回路は、蓄電池が90%以上になると、「リセット」( = 1) を出力するように設定します。
RS ラッチの設定
中央の条件回路とフィードバックのグリーンケーブルが、実際のRSラッチの部分です。 セット信号によってラッチし、リセット信号 を受信するまでその状態になります(逆もまた同様です)
注意: ラッチは、バイナリ入力 ( & が 0 または 1 であること) を期待しています。これが、手前に2つの条件回路が必要な理由です。
両方の入力が真の場合、リセット信号が優先され、ラッチはリセットされます。これはSRラッチではなくRSラッチであることを意味します。
電源スイッチは、 = 1 になるまで工場の残りの部分から蒸気機関を隔離します。
RSラッチ
- これは電子工学の知識があれば誰でも知っているはずです。
- 左側の定数回路で A=1 の信号を設定することでセット/リセットが行えます。
- ラッチは最後に受信した信号を "記憶 "し、別の信号を受信するまで点灯し続けます。
RSラッチの使い道
- RSラッチがどのように使えるかを示す例です。
- セット/リセットの条件を設定する条件回路を2つ追加します。
- A=1 を出す条件を、石油ガス < 50 と 石油ガス > 100 に設定します。
ベルトのみのラッチ
- 動作するには、3つの木をベルトの内側のレーンに置く必要があります。
- 条件回路に比べて、遅延が大きくなりますが、多くの場合その違いに気づくことはないでしょう。
ディスプレイ
数字ディスプレイ
白黒グリッドディスプレイ
- 各列にはそれぞれレッドケーブルが接続されており、その列の中で各ランプには0~9の番号が振られています。
- 該当するシグナルをセットするかクリアするだけで、各ライトを点灯させることができます。