Top > 回路ネットワークの仕様
HTML convert time to 0.027 sec.


回路ネットワークの仕様

Last-modified: 2017-01-20 (金) 13:00:49

ここでは回路ネットワークにおける信号とその計算・判定の仕様を中心に解説する。

0.13アップデート(2016年8月実施済)について Edit

0.13アップデート情報

基本概念 Edit

 回路ネットワークとは、「ケーブル」で接続された複数の「回路ネットワークに対応する設置物」からなるネットワークである。バージョン0.13現在、回路ネットワークに対応する設置物は図1のようにさまざまなものがある。
all.jpg
図1

回路ネットワーク全体のイメージを図示すると、図2のようになる。
n1.png
図2

「赤回路ネットワーク」「緑回路ネットワーク」と書かれたクラウド状のマークは、実際はそれぞれ「レッドケーブル」「グリーンケーブル」で設置物から接続された場合に生じる、仮想的なネットワークの概念を、図で示したものである。これらのクラウドでは、後述する様々な「信号」が、クラウドに接続された機器から送信される。また逆に、各機器がクラウドから信号を受信し、活用する。
 このクラウドは直接的にケーブルが接続された機器同士でのみ、同一の信号を送受信することができるため、ケーブルの配線により、お互いに独立した無数の回路ネットワークを構築することができる。
 これらのイメージを「回路」ネットワークと呼ぶ理由は、後述する「定数回路」「算術回路」「組み合わせ回路」という3種類の特別な設置物により、信号の値を、「数値計算」によって自由自在に変化させ、また複雑な「条件」によって新たな信号を作り出し、それらの信号を各設置物で活用することができるからである。

信号 Edit

回路ネットワークは、「信号(シグナル)」の送受信が基本となる。ケーブルで接続された機械同士で信号を送受信することで、様々な動作を実現できる。
 送受信する信号で最も基本となるのは、回路ネットワークにケーブルで接続された設置物のうち、各種チェストに保管されている「アイテムの数」である。Factorioは各種アイテムの自動生産が醍醐味であり、生産にはアイテムの数とそれによる生産の調整などが特に重要になるからである。
 しかしながらFactorioでは、単にチェスト内のアイテムの数を信号とするだけでなく、非常に多くの設置物の持つ、固有の情報を、信号として取り扱うことができる。更に、「ロボットステーション」により、「物流ネットワーク」に属するアイテム数の情報までもが、信号として取り扱うことができる。これらのさまざまな種類の信号をもとに、目的に応じた様々な動作を実現することが回路ネットワークを利用する趣旨となる。
 定数回路、算術回路、組み合わせ回路を利用することで、信号の値を数値計算によって自由自在に変化させ、また複雑な条件によって新たな信号を作り出し、それらの信号を各設置物で活用することができる。また、図3で示すように、アイテム以外の各種の仮想的な信号も取り扱うことができ、プログラミングでいう「変数」として利用できる。
signal.jpg
図3

 ネットワークを流れる信号の値には正負の整数値が使用される。十分に大きい範囲で取り扱うことができるが、上限・下限値がある。また、値=0は無信号の取り扱いとなり、ネットワーク内を送受信されない。(例えばあるアイテムの数=0の際に条件を満たすような組み合わせ回路は設定することができない。)
 また、信号の値はゲーム内時間の1tickごとに再計算・更新される。

レッドケーブル、グリーンケーブル Edit

 定数回路、算術回路、スマートチェスト、スマートインサータなどの機器の間でネットワークをつなぎ、信号を流すための導線。設置物間を接続することでネットワークを構築できる。ケーブルには赤色と緑色がある。赤色と緑色で機能に差はない。
 多くのアイテムや設置物とは異なり、ケーブルは消耗品である。つまり接続された機械や途中の電柱を取り除くと、ケーブルは消滅し、アイテムが手元のベルトやインベントリに戻ることはない。
 同一の色のケーブルは、同一の回路ネットワークとして機能し、別の色のケーブルによるネットワーク同士の信号が混ざることはない。ただし、後述する算術回路、組み合わせ回路には、レッドケーブル、グリーンケーブルを同時につなぐこともできる。この場合の仕様については組み合わせ回路の項で説明する。
 1本のケーブルの長さには制限があるが、電柱を経由することで遠くの機器につなぐことができる。ケーブルがつながっている限り、途中で信号の値が減衰することはない。放射状、リング状など、ケーブルの接続状態も関係ない。また「大型電柱」と「大型電柱」の間に限り、その間をつなぐケーブルも、通常より長い距離をつなぐことができる。
 信号の値は毎tickで数値計算が行われているため、例えば算術回路による計算結果の前後を入出力間で接続すると、クラッシュするといった事もあるので、接続には十分注意する必要がある。

定数回路、算術回路、組み合わせ回路 Edit

この項では「定数回路」「算術回路」「組み合わせ回路」の仕様について説明する。これらの設置物は、図1に示すような外観であり、入力側と出力側の双方に、複数のケーブルを接続して利用する。
appearance.jpg
図1

これらの各設置物をクリックすると、図2に示すような設定ウィンドウが開き、計算方法や条件を設定できる。
n3.png
図2

定数回路 Edit

指定した出力信号を常に出力する機械。定数回路から赤色か緑色のケーブルで別の機械に接続して使用する。
 定数回路は、回路ネットワーク上の各機械で参照する定数値(プログラミングでいう「CONST」)として利用したり、簡単な動作テストに利用したりすることができる。
 例えば、鉄鉱石が10個チェストに入った時の動作をテストする際、わざわざ鉄鉱石10個入りのチェストを置かなくても、定数回路を置いて「鉄鉱石10個」の信号を出力すれば、動作テストを行う事が出来る。
 また、設定ウィンドウでは、初期値として「オン」にチェックが入っており、この状態では常に信号を出力するが、「オフ」に切り替えるだけで設定した出力信号を直ちに送信しなくすることができる。

出力信号 Edit

機械のメニューで出力したいアイテムとその値を指定する。各タブでアイテムがカテゴリごとに整理されており、「信号」のタブでは0〜9やA〜Zなどの特別な信号を指定できる。
 出力信号は、機械1台につき15種類まで指定でき、それぞれに別々の値を設定できる。また同一の機械の中で同一の出力信号を複数指定することもできる。
 定数回路は同一の回路ネットワークの中に複数設置できる。こうして回路ネットワークに非常に様々な種類の信号が流れる状態を作り出せる。このとき、もし複数の定数回路で同じアイテム・変数の値が設定されている場合、その値はその回路ネットワーク中で合算され、後述する算術回路や組み合わせ回路で、合算した値が計算に用いられる。たとえば定数回路Aで鉄鉱石20、定数回路Bで鉄鉱石10が設定されているとすると、両機械からケーブルで接続された組み合わせ回路Pでは鉄鉱石は30の入力を受け取る(図3)。
n6.png
図3

算術回路 Edit

 入力側の信号の値を「+、−、×、÷」で計算し、その計算結果を指定した任意のアイテム、変数で出力する機械。機械には入力側と出力側があり、それぞれにケーブルを繋いで使用する。数値計算や計算結果は基本的には正の整数だが、負の数も取り扱える。
 定数回路同様、ネットワーク内に流れる信号のうち、値を計算したいアイテム・変数を入力信号として指定し、その計算結果を、あるアイテム・変数として出力する。

入力信号と計算 Edit

機械の入力側に繋いだ回路ネットワークを流れる複数の信号の中から、任意の信号を指定して計算に使用することができる。指定した信号に対して、「+」「−」「*(掛算)」「/(割算)」が行える。1種類のアイテム・変数に対する整数値計算のほか、2種類のアイテム・変数の和などの計算も可能である。
 更に、「黄色の*のアイコン」を使うことで、入力された全ての信号に関する計算を行うことができる。(後述)
入力信号の値が0の場合、信号は入力されていないものとして扱われる。この場合は計算自体を行わず、出力もしない。

出力信号 Edit

計算結果の整数値を、機械から出力する信号として、1種類指定する。
出力信号は基本的には1種類だが、「*」アイコンを指定することで、複数の信号を出力することもできる。「*」には3種類の色があり、それぞれ仕様が異なっている(後述)が、算術回路では仕様上、黄色の*のみを使用することができる。

入力信号と出力信号の関係と例 Edit

通常の電気回路においては、計算の効果は電圧の増減等であるが、Factorioでは、柔軟な入出力が実現できる。
入力信号と出力信号は別々に指定できるので、入出力が関係ある形にも、関係のない形にも設定できる。
最も単純な例は(例1)のように入出力間で信号を同一とするものであるが、出力に、入力信号とは異なる信号も指定できる(例2)。
 更に、入力信号は1つにかぎらず幾つでも受け付けることができ、計算に使用できる。(例3)では、入力の計算に黄色の*アイコンを指定しており、この例の場合では3つの信号値の総和を材木の信号として出力している。(例4)では、入力の計算に加えて出力信号にも黄色の*アイコンを指定している。この場合、出力信号は、入力信号それぞれの値をそのまま2倍し、そのまま送信できる。黄*アイコンは例3と例4の2つの状況で意味合いが異なっている。この点は、組み合わせ回路で後述する、緑色の*、赤色の*アイコンの仕様も含めて理解することをお勧めする。

(例1)入力された鉄鉱石の数を2倍した計算結果を出力する

入力:鉄鉱石 x 2
出力:鉄鉱石

(例2)入力されたエイリアンアーティファクトの数を10倍し、サイエンスパック4の数として出力する

入力:エイリアンアーティファクト x 10
出力:サイエンスパック4

(例3)信号A,B,Cを受け取り、(A+B+C)の計算結果を材木の数として出力する

入力に接続されている信号:A,B,C
入力:黄*  x  1
出力:材木

(例4)受け取った信号A,B,Cの値を各々2倍して各々出力する

入力に接続されている信号:A,B,C
計算:黄*  x  2
出力:黄*

n7.png
※図内例4の出力アイコンに間違いがあります。誤「サイエンスパック」アイコン→正「黄*」アイコン

組み合わせ回路 Edit

算術回路が入力信号に応じた計算結果を指定した信号で「常に」出力するのに対して、組み合わせ回路は、入力信号が「指定された条件を満たす場合のみ」、指定した信号で値を出力する。

入力信号と条件式 Edit

算術回路同様、入力側に繋がれた回路ネットワークを流れる複数の信号中から任意の信号を条件に指定できる。条件の式には、指定した信号に対して、「>」「<」「=」が使える。
条件式の設定は、1種類のアイテム・変数に対する整数値との大小に関する条件判定や、2種類のアイテム・変数の大小による判定が可能である。
ただし、数値が0である信号は信号が無いものとして扱われるため、「ある信号=0」という条件式は、設定はできるが満たせない(恒久的に真にならない)。

出力信号 Edit

出力信号は、条件を満たした際に出力する信号とその値を指定する。
ある1種類のアイテムや変数、もしくは赤、緑、黄色の*アイコンを指定でき、出力値は、「1」か、「入力数(=入力信号の値をそのまま出力側に通過)」から選択できる形となっている。

組み合わせ回路における「*」の指定と効果 Edit

(1)条件式での指定
入力信号の条件式に、赤色、緑色、黄色の*アイコンを指定することができる。それぞれの意味は次の通り。

  • 赤*:「全て(for all,AND)」を意味する。全ての入力信号が条件式を満たす場合に、信号を出力する(例1)。
  • 緑*:「何でも(for any, OR)」を意味する。全ての入力信号の中で1つの信号でも条件式を満たす場合に、信号を出力する(例2)。
  • 黄*:「各(for each)」を意味する。入力されている各信号に対して、条件を判定する。(後述)

(2)出力信号での指定
出力信号として、赤色、黄色の*アイコンを指定することができる(※仕様上、緑*は出力に指定できない)。
入力側に複数の信号が入力されている事も有り得るので、ある1つの信号のみを条件にしている場合でも、その条件を満たせば入力されている全ての信号を出力する(例3)。
入力側の条件式で各色*を指定し、出力側でも各色*を指定した場合、条件判定と出力の仕様は次のようになっている。

  • 条件式で赤*もしくは緑*を指定し、出力側で赤*を指定した場合:条件を満たすなら、全ての入力信号を各々そのまま出力する(例4)。
  • 条件式で黄*を指定し、出力側で黄*を指定した場合:この場合のみ、特殊な取り扱いとなり、この仕様が黄色の*の意味「各(for each)」を代弁している。この場合は入力信号について個別に条件を判定し、条件を満たす入力信号についてのみ、そのまま出力する(例5)。

(例1)A,B,Cの値すべてが0を超える場合、材木=1を出力する

入力に接続されている信号:A,B,C
条件式:赤*  >  0
出力:材木、1

(例2)A,B,Cの値のうち、1つでも0を超える場合、Aの値をそのまま出力する

入力に接続されている信号:A,B,C
条件式:緑*  >  0
出力:A、入力数

(例3)Aの値が0を超える場合、A,B,Cの値をそのまま出力する

入力に接続されている信号:A,B,C
条件式:A  >  0
出力:赤*、入力数

(例4)A,B,Cの値すべてが0を超える場合、A,B,Cの値をそのまま出力する

入力に接続されている信号:A,B,C
条件式:赤*  >  0
出力:赤*、入力数

(例5)A,B,Cの値のうち、0を超える信号について、値をそのまま出力する

入力に接続されている信号:A,B,C
条件式:黄*  >  0
出力:黄*、入力数

n9.png

算術回路・組み合わせ回路の入出力に2種類のケーブル両方を接続した場合の仕様 Edit

通常2色のケーブルは別々の回路ネットワークとして区別されるが、1つの算術回路・組み合わせ回路に同時に2色が入力された場合、両ケーブルに流れている信号を全て考慮して、計算や条件判定を行う。また出力側に2色のケーブルを接続した場合、両ネットワークに同じ信号を出力する(例1)。

(例1)組み合わせ回路の入力側に2種類のケーブルが接続されている場合

レッドケーブルから入力に接続されている信号:A=1
グリーンケーブルから入力に接続されている信号:A=1
条件式:A>1
出力:A、入力数
結果:A=2が出力される。

n10.png

ランプ Edit

電力消費により、夜時間になると自動的に点灯し、周囲を照明で照らすことができるようになる設置物。通常は、白色の照明が点灯する。
 ランプにケーブルを接続することで回路ネットワークに接続することができる。ランプが回路ネットワークに接続されると、ランプに「点灯の条件」が設定できるようになる(図1)。こうすることで、時間の流れに関係なく、ランプが回路ネットワークに流れる信号を監視し、ある特定の信号の条件を満たす場合のみ点灯するよう、動作させることができる。
 またランプは物流ネットワークに接続することもできる。この場合は物流ネットワークにあるアイテムの数を監視し、同様に、設定した条件を満たす場合のみ、点灯させることができる。
lamp01.png
図1

ランプの点灯色の変更 Edit

 回路ネットワークに接続されたランプについてのみ、点灯する色が変更できる。バージョン0.13.6の時点で、白色以外に6種類用意されている(図2)。RGBの数値などで光量や配色を調整することはできない。また、白、グレー、黒の信号も用意されているが、図2で示すように、ランプの点灯色は色指定をしないときと同じ白色になる。
lamp02.png
図2

 色をつけて点灯させたい場合、図1のランプのメニューの「色の使用」にチェックを入れる。ランプの色は、回路ネットワークに接続した定数回路で設定できる。まず定数回路側で「信号」タブ(図3)の一番下にある「色に関連する仮想の信号」、例えば「赤信号」を、回路ネットワーク上に出力する。次にランプ側で点灯の条件を設定する。この条件を満たすと、回路に流れる信号の色で、ランプが点灯する。
lamp03.png
図3

もし、同一の回路ネットワークに「複数の」色信号が流れていると、ランプは、設定条件を満たす場合、「最も大きい値を持つ色信号」の色を点灯するので、注意が必要である。また、最も大きい値を持つ色信号が複数あった場合は、信号タブの表示順(赤>緑>青>黄>ピンク>シアン)で優先して点灯する。
陥りやすい誤解の例を図4に挙げる。図の定数回路は赤信号=1、緑信号=1、青信号=1を出力している。またランプは上から順に赤信号>0、緑信号>0、青信号>0を条件と設定しているが、同一の回路ネットワーク上にあるため、全て優先順位の高い「赤色」に点灯している。
lamp04.png
図4

搬送ベルト Edit

 搬送ベルトはアイテムを運搬・移動する、Factorioの基本になる設置物である。搬送ベルトを回路ネットワーク、もしくは物流ネットワークに接続することにより、「信号の条件によるアイテム搬送停止・再開 」、「搬送中のアイテム情報の出力」が行える。

ネットワークへの接続方法 Edit

 搬送ベルトを回路・物流ネットワークに接続するには、1本のケーブルを別の設置物・電柱から搬送ベルトのマスにひく必要がある。図1で示すように、ケーブルを持ち、設置物や電柱から搬送ベルトの好きなマス目をクリックすると、回路ネットワークに接続できる。接続すると、四角の枠のような固有のグラフィックの設置物が表示される。
belt01.png
図1

 もし、そのマス目がロボットステーションの物流ネットワークの範囲に入っているなら、同時に、物流ネットワークにも接続できる。(※物流ネットワークに接続するかどうかは、プレイヤーが選べる。)
 接続を解除するには、該当するマスを撤去するか、ケーブルを撤去する。なお、物流ネットワークの範囲に入っている場合、ケーブルを撤去すると、マスはそのまま残る。

信号の条件によるアイテム搬送停止・再開 Edit

条件によって、搬送ベルト上のアイテムの搬送を停止したり、搬送を再開したりすることができる。図2に示すように、「動作モード」の「有効/無効」の欄にチェックを入れると、ウィンドウ下部に「作動条件」の欄が追加され、条件による動作の変更を行える。
belt02.png
図2

 動作モードを有効にすると、組み合わせ回路と同様に、ケーブルを通じて他の回路ネットワーク内の信号を入力として受け取り、条件に設定できる。 条件を満たさない場合、ベルト上のアイテムの流れをせき止める。条件を満たした場合のみ、通常通りアイテムを流す。
 なお、物流ネットワークに接続している場合も、同様に、物流ネットワーク内のアイテム状態を条件として、動作を変更することができる。図3で示すように、右上の「物流ネットワーク」のアイコンをクリックして表示される「物流網への接続」のウィンドウで、「接続」にチェックを入れると、物流ネットワークに接続する。チェックを外すと接続を切断する。
belt03.png
図3

チェックを入れた時点で、動作モードは自動的に「有効」になり、直ちに、下部に表示された条件判定にしたがって動作を変更する。
 回路ネットワークと物流ネットワークに同時に接続することもできる。この場合、各ネットワークに設定された2つの条件を「両方満たす」場合のみ、アイテムを流す。

搬送中のアイテム情報の出力 Edit

 搬送ベルト上のアイテムを監視し、回路ネットワークに、現在の状態を信号として出力することもできる。図4に示すように、「動作モード」の「ベルト上のアイテムを取得する」にチェックを入れると、ウィンドウ下部に、「読み取りモード」の欄が追加される。
belt04.png
図4

「読み取りモード」の欄では「パルス」「ホールド」の2種類から1種類が選択できる。

「パルス」モード Edit

パルスモードは、アイテムが乗ったことを確認すると、1tickだけパルス信号を回路ネットワークに送信する。
パルスモードでは、1tickと非常に短時間しか出力が行われないため、例えば、「アイテムが流れていることをランプの点灯で確認したい」といった応用はできない。ただし、確実に1つのアイテムが流れたら1つのパルスが送信されるため、後述する使用例(1)のように応用すれば、ベルト上を流れるアイテムの数をカウントすることができるなど、様々な利用が可能となる。

「ホールド」モード Edit

ホールドモードは、アイテムが乗っているあいだ、連続的に信号を送信する。信号の値は1以上、最大3〜4の整数である。パルスモードと違い、ホールドモードでは、アイテムが流れている間、ずっと信号を出力しているため、前述の「アイテムが流れていることをランプの点灯で確認したい」とか、後述する使用例(2)のような応用に向いている。

応用例 Edit

仕様の理解のために、搬送ベルトの回路ネットワーク接続の応用例を挙げる。

ベルト上を流れるアイテムの数をカウントする Edit

図5のように回路を組むと、ベルト上を流れるアイテムの数をカウントすることができる。

搬送ベルト:「ベルト上のアイテムを取得する」にチェック→「読み取りモード」=「パルス」
算術回路:算術回路の出力と入力をケーブルで接続する。
「入力」=「電子基板*1」、「出力」=「電子基板」
結果:アイテムが1つ通過するたびに、算術回路の出力側の電子基板の信号のカウントが1ずつ増える。

なお、数値をリセットする場合、算術回路の出力を一度右クリックで消去して再度設定する。
belt05.png
図5

ベルトライン上のアイテムの状態に応じて、動作を変更する Edit

図6のように、ベルトの2点間をケーブルで接続することで、別のベルトのラインにおけるアイテムの状態に応じて、アイテムを流すか流さないか、判断することができる。

左の搬送ベルト:「ベルト上のアイテムを取得する」にチェック→「読み取りモード」=「ホールド」
右の搬送ベルト:「動作モード」の「有効/無効」にチェック→「作動条件」=「電子基板>0」
結果:電子基板が左のラインを流れている時だけ、右のラインの発展基板が流れる。

belt06.png
図6

ベルトを利用した擬似タイマー Edit

図7のように、環状に配置したベルトとインサータをケーブルで接続することにより、任意の間隔でインサータを動かすといった擬似タイマーが可能になる。
図7の例では環状ベルト上のケーブル接続部をアイテム(エイリアンアーティファクト)が通過したときのみインサータが動く。
環状ベルトの長さや、流すアイテムの個数を変更することにより任意の間隔(3秒間に1回など)でインサータを動かすことができ
より細かな流入量調整が可能となる。

環状ベルト:「ベルト上のアイテムを取得する」にチェック→「読み取りモード」=「ホールド」
インサータ:「動作モード」の「有効/無効」にチェック→「作動条件」=「エイリアンアーティファクト=1」

belt07.png
図7

インサータ Edit

 バージョン0.13現在、インサータの種類は「燃料式インサータ」「インサータ」「ロングアームインサータ」「高速インサータ」「フィルターインサータ」「スタックインサータ」「スタックフィルターインサータ」がある。全てのインサータが回路ネットワーク、もしくは物流ネットワークに接続できる(図1)。
 これにより、「信号の条件による掴み動作の停止・再開 」が全ての種類のインサータで可能になったことに加えて、「掴んでいるアイテム情報の出力」が行える。なお、これにより0.12以前に存在した「スマートインサータ」は廃止された。
 更に、フィルターインサータ、スタックフィルターインサータについては、ラインやチェストから掴むアイテムを設定する事に加えて、「回路ネットワークに存在する信号のアイテムを掴む」動作が行える。
ins01.png
図1

ネットワークへの接続方法 Edit

 回路・物流ネットワークへの接続は、他の設置物と同様、ケーブルを接続することで行える。また、物流ネットワークの範囲に入っている場合、ケーブルを接続しなくても、インサータをクリックして表示されるウィンドウ右上の「物流ネットワーク」アイコンをクリックすることで物流ネットワークに接続できる。(※物流ネットワークに接続するかどうかは、プレイヤーが選べる。)
 接続してインサータをクリックすると、図2のようなウィンドウが表示され、ケーブルを繋いでいれば「動作モード」の「有効/無効」にチェックが入り、「作動条件」の欄が表示されている。
 回路ネットワークとの接続を解除するには、インサータもしくはケーブルを撤去するか、「動作モード」で「無し」を選択する。
ins02.png
図2

信号の条件による掴み動作の停止・再開 Edit

 動作モードを有効にすると、組み合わせ回路と同様に、ケーブルを通じて他の回路ネットワーク内の信号を入力として受け取り、そのインサータが掴み動作を行うかどうかの条件を設定できる。物流ネットワークに接続している場合も、同様に、物流ネットワーク内のアイテム状態を条件として、動作を変更することができる。回路ネットワークと物流ネットワークに同時に接続することもできる。この場合、各ネットワークに設定された2つの条件を「両方満たす」場合のみ、アイテムを掴む。

掴んでいるアイテム情報の出力 Edit

 インサータが今現在掴んでいるアイテムの情報を信号として回路ネットワークに出力することもできる。図3に示すように、「動作モード」の「掴んでいるアイテムを取得する」にチェックを入れると、ウィンドウ下部に、「読み取りモード」の欄が追加される。
ins03.png
図3

「読み取りモード」の欄では「パルス」「ホールド」の2種類から1種類が選択できる。パルスモード、ホールドモードは、「搬送ベルト」の項の説明と同様であり、応用例も同様に実現可能であるため、ここでは省略する。

回路ネットワークに存在する信号のアイテムを掴む Edit

フィルターインサータ、スタックフィルターインサータを選択すると開くウィンドウでは、そのインサータが掴むアイテム=「フィルタ」を設定することができる。フィルタを設定することで、インサータはそのアイテムのみを掴む。
 更に、これらのインサータが接続されている回路ネットワークに「アイテムの信号」が存在した場合、そのインサータが、その信号のアイテムのみを選んで掴むように設定することができる。バージョン0.12以前は設置したインサータ個別にフィルタを設定する必要がある上、設定は手動で変更させる必要があったが、掴むアイテムを回路ネットワーク上の信号状態に応じて柔軟に変更することができる。
 図4に例を示す。
ins04.png
図4

 画面下部にある定数回路で、銅板、鉄板、電子基板、発展基板がそれぞれ=1で出力されている。この定数回路に接続されたフィルターインサータのウィンドウで、「動作モード」で「フィルターを設定」にチェックを入れている。こうすることで、左側の「フィルター」の欄に、定数回路で設定したアイテムの信号がコピーされ、これらのアイテムのみを掴むように動作させられる。(反対に、このモードではフィルターをプレイヤーが手動で変更させることはできなくなる。)
 ちなみに、この定数回路の動作を「オフ」に変えることで、フィルターインサータの動作を停止できる。また、例のような定数回路の他にも、別の設置物から別のアイテムの信号状態が出力されることにより、このフィルターインサータの選ぶアイテムが柔軟に変化する。
 なお、1台の(スタック)フィルターインサータに設定できるフィルタの数は現在5種類までである。もし、回路ネットワーク上に6種類以上のアイテム信号が存在した場合、「インベントリのアイテム作成欄に表示されている順で、前にある方」から5種類が優先して設定される。

ロボットステーション Edit

ロボットステーションは建設・物流ロボットの拠点であると同時に、物流ネットワークを構成するために必須の設置物である。ロボットステーション同士をオレンジの点線の範囲内に置くことで、更に広い物流ネットワークを構成することができる。
 ロボットステーションを回路ネットワークに接続することにより、「物流ネットワークの状態を回路ネットワークに送信する」ことが可能である。

ネットワークへの接続方法 Edit

ロボットステーションを回路ネットワークに接続するには、他の設置物と同様に、設置物とロボットステーションをケーブルで接続すればよい。接続すれば自動的に「動作モード」の「物流ネットワークの内容を取得」にチェックが入り、直ちに、物流ネットワーク内のアイテムの数量を、アイテム信号として回路ネットワークに送信開始する。送信したくない場合は、ケーブルを切るか、もしくは「動作モード」の「ロボットの統計を読み込む」にチェックを入れる。

robst01.png

物流ネットワークの状態を回路ネットワークに送信する Edit

アイテムの状態の送信 Edit

 ケーブルを接続し、「動作モード」の「物流ネットワークの内容を取得」にチェックを入れることで、アイテムの状態の送信が開始される。そのロボットステーションに接続されているロボットステーションが複数であった場合、範囲内のアイテム数を合計した数値が回路ネットワークに送信される。回路ネットワークでは、遠隔地間をケーブルでつなぐ際には手間がかかるが、これにより、物流ネットワークの広さを活かして信号を活用できる。

物流、建設ロボットの状態の送信 Edit

 物流ロボット、建設ロボットの待機状態などの情報を回路ネットワークに送信できる。「動作モード」で「ロボットの統計を読み込む」にチェックを入れると、「待機中物流ロボット数」を仮想信号「X」、「すべての物流ロボット数」を仮想信号「Y」、「利用可能建設ロボット数」を仮想信号「Z」、すべての建設ロボットを仮想信号「T」として送信する。なお、これらの仮想信号は初期値で、任意の信号に変えられる。これにより、ロボットの待機状態などに応じて、設置物の各種動作を制御することができる。
 なお、1つのロボットステーションから、「アイテムの状態」と、「物流、建設ロボットの状態」の両信号を同時に送信することはできない。必要な場合は別のロボットステーションで取得する必要がある。

駅/列車 Edit

0.13より、列車(鉄道)ネットワークにも様々な便利機能が追加された。その中の大きな1つとして、列車ネットワークを回路ネットワークに接続し、様々に変動する回路ネットワークの信号の状態をもとに、各駅における各列車の「発車条件」の制御を行えるようになった。例えば、クロック回路と連携することで、時刻による自動運行を行い、ある程度詳細なダイヤを組むなど、様々な応用の可能性が広がった。

ネットワークへの接続方法 Edit

列車ネットワークへ回路ネットワークの状態を送信するには、線路に設置した「駅」に回路ネットワークを接続し、信号を駅が受け取れる状態にする。
 任意の回路ネットワーク関連の設置物からケーブルを駅につなぐと、直ちに回路ネットワークに接続される。駅をクリックすると開くウィンドウでは、図1で示すように「回路網への接続」の部分が追加され、ケーブルをつないだ時点で「動作モード」の「列車に送る」にチェックが入っている。なお、回路ネットワーク状態の送信を一時的に切断するには、「列車に送る」のチェックをとればよい。
train01.png
図1

回路ネットワークの状態をもとに、列車の待機条件を設定する Edit

回路ネットワークの状態が送信されるようにすると、「自動運行している各列車」の「発車条件」を、回路ネットワークの状態により変更することができるようになる。
 各列車のクリックや駅の運行表から各列車の情報ウィンドウが開けるが、図2で示すように、 「時刻表」タブの「発車条件」で、新たな条件が追加できる。「+」ボタンを押すと、これまでに選択できる条件の中に「回路による」という条件が新たに追加されている。これをクリックすると、発車条件が新規追加される。次に追加された条件をクリックで選ぶと、ウィンドウ最下部に、条件判定のインタフェースが表示され、図2で示すように、列車を発車させるための任意の条件を、回路ネットワークの信号で設定できる。
train02.png
図2
 なお、これらの「回路による発車条件」は、この他の発車条件と同様に、 幾つでも設定でき、個々の発車条件と「かつ(and)」「または(or)」のいずれかの条件で実行するかを設定できる。(「かつ」/「または」は、各発車条件を選んで「and/or」ボタンをクリックすることで切り替え)

蓄電設備(蓄電池) Edit

蓄電設備(蓄電池)は、余った電力をあらかじめ蓄えておき、電力を消費する際に、他のリソースが無くなった場合に放電する、いわば補助電力の供給装置である。これまでも回路ネットワークの活用による応用例はあったが(回路ネットワークの項参照)、 基本的には、最終手段的な電力の二重化/バックアップ用途に利用するのみであった。
 バージョン0.13より、直接、回路ネットワークに信号を送信し、活用することができるようになった。これにより、後述する「電源スイッチによる電力使用優先度の変更 」の応用例などに活用できる。

ネットワークへの接続方法 Edit

蓄電設備を設置し、ケーブルをつなぐと、直ちに回路ネットワークへ信号の送信を開始する。蓄電設備をクリックすると開くウィンドウでは、図1で示すように「動作モード」の「充電量を取得する」にチェックが入っている。「出力信号」の欄には初期値で「A」が入っており(プレイヤーが変更可能)、この信号により、蓄電設備が現在蓄えている電力量を、0〜100(%)で回路ネットワークに送信する。
batt01.png
図1

電源スイッチ Edit

Factorioにおける電源スイッチは、2点間の電力ネットワークを「接続する」か、「切断する」かをプレイヤーが選択することができる設置物である。手動での接続/切断のほか、回路ネットワークの状態による接続/切断が可能である。

設置方法とネットワークへの接続方法 Edit

電源スイッチは、やや設置の仕方が特殊なので注意が必要である。通常、電柱の範囲に入った設置物は電力ネットワークに入るが、電源スイッチは、中間生産物の「銅線」を、左右に分かれているユニットそれぞれにプレイヤー自身でつなぐ必要がある。つなぎ方は回路ネットワークによるレッド・グリーンケーブルと同様である。
その後、回路ネットワークに接続するには、信号を送受信したい他の設置物とケーブルでつなげばよい。ケーブルをつなぐと、直ちに回路ネットワークに接続され、クリックすると図1のようなウィンドウが開く。通常は電源スイッチの状態はプレイヤーが自分でオフ/オンを選択できるが、回路ネットワークに接続すると、プレイヤーは選択できなくなり、信号の条件を満たす場合のみ、オンを選択するようになる。
ps01.png
図1

応用例:電源スイッチによる電力使用優先度の変更 Edit

回路ネットワークに接続した電源スイッチの応用例を図2に示す。これにより、「回路ネットワーク」に示されている応用例を、非常に簡単な手順で置き換えることができる。
ソーラー発電と蒸気機関発電と蓄電池がある場合、夜にソーラーが切れると電力が蓄えられていても蒸気機関が優先して動いてしまうが、回路ネットワークに接続した蓄電設備と電源スイッチを使って、「充電が無くなったら蒸気機関を動かす」ことができる。
ps02.jpg
図2
 まず、電源スイッチを、電力ネットワークの間に設置する。図2のように、 [メイン電力側(ソーラーパネル+蓄電設備)− 電柱−電源スイッチ−電柱− 補助電力側(蒸気機関) ]という形で銅線で繋ぐ。
 次に、メイン電力側の蓄電設備と電源スイッチを、赤か緑のケーブルで繋ぐ。
 最後に、電源スイッチ側で、作動条件を「蓄電設備から発信される信号が来ない場合のみ」とする。つまり、例えば図2で示すように「A=0」とする。
 もし、メイン電力側の蓄電設備の蓄電量が0%になると、条件が満たされ、電源スイッチがONになる。つまり非常事態のみ、補助電力側である蒸気機関の電力ネットワークと接続され、蒸気機関が作動し、電力がメイン電力側に供給される。

ゲート、列車用信号 Edit

ゲート Edit

 石の防壁に設置する「ゲート」は、通常、普段は閉じて(上がって)おり、プレイヤーが近づいた時のみ開く(下がる)よう動作している。このゲートを回路ネットワークに接続することで、「信号の条件を満たす際にゲートを開く」、「ゲートの開状態時に信号を送信する」ことが可能になる。

ネットワークへの接続方法 Edit

 ゲートは石の防壁の間の2点間をゲートで繋げば設置できるが、ゲートの左右端にあたる石の防壁には、赤色(閉状態)、緑色(開状態)のランプが点灯している。この防壁をクリックすると「ゲート コントローラ付きの壁」という特別な名称が付いている。ゲートを回路ネットワークに接続するには、この壁と、任意の設置物とをケーブルでつなげばよい。
 「ゲート コントローラ付きの壁」をクリックすると表示されるウィンドウには、回路ネットワークに関連する専用部分が追加して表示される。以下に示す2つの動作モードが選択でき、両モードを同時に使用することもできる。

信号の条件を満たす際にゲートを開く Edit

 通常、ゲートはプレイヤーが近づいた事を察知して自動で開くが、図1で示すように、「動作モード」の「ゲートを開く」にチェックを入れると、「通行条件」の欄が追加表示される。このモードをONにすると、通行条件で設定された信号の条件を満たす場合のみ、ゲートが開くようになる。
gate01.jpg
図1

ゲートの開状態時に信号を送信する Edit

 図2で示すように、「動作モード」の「センサー読み取り」にチェックを入れると、「出力信号」の欄が追加表示される。このモードでは、上記とは逆に、ゲートが開状態になった際に、信号「G=1」を常に回路ネットワークに送信する(Gは初期値。変更可能)。ゲートが閉じたら、信号の送信は終了する。
gate02.jpg
図2
 

列車用信号 Edit

 鉄道に併設し、列車の往来を信号で管理する「列車用信号」も、回路ネットワークに接続できる。つまり、信号の状態に応じて列車の運行を制御することができるようになる。またその反対に、列車用信号の状態を回路ネットワークに信号として送信できるようになる。

ネットワークへの接続方法 Edit

 列車用信号と任意の設置物とをケーブルでつなぐことで回路ネットワークに接続される。回路ネットワークに接続した列車用信号には、関連する専用部分が追加して表示され、以下に示す2つの動作モードが選択できる。両モードを同時に使用することもできる。
 

信号の条件を満たす際に列車用信号を赤にする Edit

 通常、列車用信号は、前方の閉塞区間の列車の有無のみを監視し、赤信号・青信号を切り替えて、列車の往来を制御するが、回路ネットワークに接続すると、ネットワーク内の信号の条件を満たす場合には強制的に赤信号に変えることができる。
 図3に示すように、「動作モード」の「信号を閉じる」にチェックを入れると、「停止条件」の欄が表示され、ここで設定された信号の条件を満たす際に、列車用信号を「赤」に切り替える。
sig01.jpg
図3

列車用信号の状態を信号として送信する Edit

 図4に示すように、「動作モード」の「信号を取得する」にチェックを入れると、「出力信号」の欄が表示され、現在の列車用信号の状態が回路ネットワークに送信される。つまり「赤信号=赤」「黄色信号=オレンジ」「青信号=緑」の信号が、その信号であった場合に、それぞれ=1の値で送信される。(赤、オレンジ、緑は初期値。変更可能)
sig02.jpg
図4

応用例:踏切 Edit

参考として、踏切の応用例について説明する。例はFFF#140の例を参考に簡易版を構成した。FFF#140における挙動や回路設定とは異なる。
cross.jpg
図5
ゲートを利用した線路の踏切である。列車は左から右へ通り抜けることのみを想定する。以下で、設置物と回路ネットワークにおける設定値、踏切の挙動に関する条件と動作を説明する。

設置物と設定値 Edit

使用する設置物と設定値は次の通り。以下の全ての設置物をケーブルで接続する。組み合わせ回路も入力側、出力側の両側とも接続する。
線路側のゲート(×2組)

  • 動作モード:「ゲートを開く」にチェック。通行条件:G < 1

プレイヤー側のゲート(× 2組)

  • 動作モード:「ゲートを開く」にチェック。通行条件:G > 0
  • 動作モード:「センサー読み取り」にチェック。出力信号:A

組み合わせ回路A(図右上の2つのうち、左側)

  • パラメーター:赤信号 < 1
  • 出力:A=1

組み合わせ回路B(図右上の2つのうち、右側)

  • パラメーター:A > 1
  • 出力:G=1

列車用信号A(踏切付近、図の左下)

  • 動作モード:「信号を閉じる」にチェック。停止条件:G > 0
  • 動作モード:「センサー読み取り」にチェック。出力信号:初期設定

列車用信号B(踏切の十分手前)
 列車用信号Aと同じ設定値

備考

  • 列車用信号Bは、図では見えていないが、列車が停止するのに必要な制動距離を踏まえ、 踏切の十分手前の適切な位置に設置している。
  • 列車が通過したらすぐゲートが開くようにするために、図に示すように、踏切のすぐ後にも1つ列車用信号を設置している。この列車用信号は回路ネットワークに接続しなくてよい。

条件と動作 Edit

条件A:列車が居ない=列車用信号A、Bが共に青、かつ、プレイヤーが踏切を渡ろうと近づいているとき。

  • プレイヤー側のゲートが開き、線路側のゲートが閉まる。
  • 列車用信号A,Bを赤信号にして、列車の進入を止める。
  • プレイヤーが踏切の中に居るあいだ、列車用信号A,Bは赤信号のまま。
  • プレイヤーが踏切から遠ざかると、ゲートは戻り、列車用信号A,Bは青信号になる。

条件B:列車が通過中=列車用信号A、Bのいずれかが赤のとき。

  • プレイヤーが踏切に近づいても、プレイヤー側のゲートは開かない。

解説 Edit

条件Aで示す通り、プレイヤーが安全に踏切を渡れるときのみ、信号「G=1」を送信することとする。そして、G=1の時のみ、各ゲートと列車用信号を「踏切を渡れるように」操作する。
 まず、列車用信号A,Bの両方が青信号の場合、列車は近くに居ない。このとき回路ネットワーク内の「赤信号」の信号の値が=0になる。これを組み合わせ回路Aで判定する。条件を満たせば、「A=1」が送信される。このとき、プレイヤーがゲートに近づくと、更にゲートから「A=1」がネットワークに送信される。そしてネットワーク内の合計で「A=2」以上になった場合、ゲートを開けて良いことになる。これを組み合わせ回路Bで判定する。条件を満たせば、ゲートを開け、列車用信号を赤にするための信号「G=1」を送信する。
 次に、条件Bの列車が通過中のとき、列車用信号AかBが「赤信号=1」を送信する。このときは組み合わせ回路AからA=1が送信されない。つまりプレイヤー側のゲートは開かない。
 列車用信号A,BはG>0で赤信号になる設定である。 つまり、プレイヤーが踏切を渡っている時は強制的に赤信号に変えて、列車の進入を阻止する。
 ただし、今回の例では、プレイヤーが渡っている際に、列車の入ってくるタイミングによっては、プレイヤーが踏切の間に挟まってしまう場合がある。細かな調整は利用者にてお願いしたい。

より簡易的な踏み切り構成 Edit

上記方式を組み合わせ回路を使わずに単純化したもの

その他の設置物 Edit

 その他、0.13アップデートにより回路ネットワークに接続し、活用できるようになった設置物について。

各種チェスト Edit

 基本の項でも述べた通り、各種チェストは、ケーブルをつないだ時点で、チェストの中身のアイテムをすべて、回路ネットワークに信号として送信する。 物流4種「パッシブ供給チェスト」「アクティブ供給チェスト」「要求チェスト」「貯蔵チェスト」に加えてバージョン0.13からは「木製チェスト」「鉄製チェスト」「鋼鉄製チェスト」も同様に利用できる。
 なお、バージョン0.12まで「スマートチェスト」が存在したが、バージョン0.13より廃止されている。

汲み上げポンプ、小型ポンプ Edit

 汲み上げポンプは海岸に設置して水を汲み上げる施設であり、小型ポンプはパイプライン内に設置し、流体を送る設置物である。この両者はケーブルをつなぐことで、設定ウィンドウの「動作モード:有効/無効」にチェックが入り、直ちに回路ネットワークに接続される。「作動条件」の欄に設定された信号の条件に応じて、条件を満たせば動作する(水を汲み上げる・流体を送る)よう制御できる。
 なお、これとは逆に汲み上げている・流体を送っているという作動状態を、信号として回路ネットワークに送信する事はできない。

回路ネットワークの応用例 Edit

ラッチ回路 Edit

参考サイト

以下の様な動作を実現させたい。

  1. SET:ある条件1(一般にトリガーという)を満たすと、「ON状態」にする。
  2. STAY:SETされると、条件1を満たす・満たさないに関わらず、「ON状態」を保持する。
  3. RESET:STAYのとき、条件2(一般にリセット値という)を満たすと、「OFF状態」にする。

これは広義には「ラッチ回路」として知られる動作である。 この動作を実現するということは、回路が現在「ON状態かOFF状態か」という1bitの情報を保持しているとみなせるためである。

タンクの水を600〜1000の間になるよう制御する Edit

画像左の汲み上げポンプから画像中央のタンクA、タンクAから画像右のタンクBにパイプがつながっている。タンクAの水が1000を超えた際のみ、水をAからBに400だけ送信する。(※ただし逆流を防ぐため、タンクAとBの間にポンプを設置している)
トリガーとリセット値を、組み合わせ回路と算術回路で構成する。

[汲上げポンプから繋がったタンク]---赤---→ [組み合わせ回路]→---赤---→[汲上げポンプ:a=0で作動]
                                            b→ [水>999, a=1 ]→a
a→---緑---→[算術回路:a*400,水]→---緑---→b

kai01.jpg

動作の解説

  1. 汲み上げポンプにより水が汲み上げられ、タンクAの水量が1000を超えると、組み合わせ回路で、入力条件「水>999」を満たすため、a=1を算術回路に出力する。
  2. 同時に、ON状態を汲上げポンプに出力し、汲み上げポンプはa=0を満たさなくなるので汲上げを停止する。
  3. 算術回路では、a=1を受け取っている限り、水=400を組み合わせ回路の入力に対して常に出力する。
  4. 組み合わせ回路にはタンクの水量+400が入力されることになる。結果、タンクの水量が599を下回るまで条件を満たし続ける。
  5. タンクの水量が599を下回ると、a=1が出力されなくなる。結果、汲み上げポンプが再起動し、水を汲み上げ始める。

蓄電池の残量が50%を切ったら蒸気機関を稼働、その後90%に回復するまで動かし続ける Edit

応用例:電源スイッチによる電力使用優先度の変更 の応用。
---- と -- を繋ぎ、とい鯡妓促襦璽廚砲覆襪茲Δ坊劼亜
このとき無限ループになるケーブルと -- / -- を繋ぐケーブルは別々の色のケーブルを使用して混ざらないようにする。
後は以下のように回路の条件を設定する。
: A > 90 のとき B=1 を出力
: A < 50 のとき B=1 を出力
: B = 0 のとき B=1 を出力
: B = 0 のとき B=1 を出力
: 作動条件 B > 0

rs-latch.jpg

この回路は信号の状態をとい量妓促襦璽廚琶飮している。

  • ,B=1を出力する(=残量が90%以上)と信号の状態がRESETされ、が信号を出力しなくなる。
  • △B=1を出力する(=残量が50%以下)と信号の状態がSETされ、がB=1の信号を出力する。
  • ,鉢△両方出力しない(=残量が50%以上90%以下)と信号の状態がSTAYされ、前回と同じ信号を出力する(しない)。
  • が信号を出力している間は電源スイッチがONになり蒸気機関が稼働する。
※上記システムのラッチ回路を組まない方式例

*(旧情報)火力発電系を休ませる Edit

旧a12における火力発電のON/OFF応用法

クロック回路 Edit

クロック回路は、時計の秒針が規則正しく時を刻むように、ある特定の時間周期ごとに規則的に値を上昇させることによって、複数の回路のタイミングをとることを目的とした回路である。
回路ネットワークの計算の処理単位である1tickは現実の1/60秒と設定されているため、これと計算処理を用いることで簡単に実装することができる。これらの計算回路設備以外でも、ベルトコンベアとアイテムなどの様々な物理的な設備による実装も可能である。
クロック回路は極めて汎用性が高い。例えば時刻を測ったり、動作のタイミングを合わせたり、信号の遅延処理を行ったりすることにより、単なる生産管理にとどまらない様々な応用ができる。

定数/組み合わせ/算術回路による汎用カウントアップ回路 Edit

この画像は定数回路、組み合わせ回路、算術回路を用いて、任意の時間間隔ごとに「A」の値を1ずつ増やす出力を(右に置かれた算術回路の出力側で)行う回路である。
clk01.jpg

  • 左(定数回路):定数値を作成し常に出力する。
    出力にA、値1を設定する。
  • 中央(組み合わせ回路):出力側と入力側をケーブルでつないでいる。これにより、動作条件に当てはまる限り、1tickごとにAの値が1ずつ増え続ける。そしてこの条件から外れるとA=0になり、再び増え続ける。
    つまりこの条件は、一定の時間が経過した際にtickのカウントアップをリセットする役割を持っている。
    通常は右辺に十分に大きな値を設定すればよい。例えば24時間(=tick換算で5184000)経過後にリセットしたい場合、次のように設定する。
    入力:A < 5184000
    出力:A、値に入力数
  • 右(算術回路):カウントアップするための回路。
    tickの値を定数値で割ることによって、出力する時間間隔を調整する。小さい数で割れば速くカウントアップし、大きい数で割れば遅くカウントアップする。各自で調整できる。
    例えば1秒(=60tick)ごとにAの値を1ずつ増やしたい場合、次のように入力値を60で割ればよい。
    入力:A / 60
    出力:A