切换语言: Deutsch English Русский

教程:信号网络示例大全

From Official Factorio Wiki
Revision as of 17:38, 15 November 2021 by Ranger1012 (talk | contribs)
Jump to navigation Jump to search

前言

本教程提供了一些简单的信号网络范例,也囊括一些不那么简单的设计范例供玩家参考,组合和修改。这些设计都被尽可能地简化以便理解。"在细节模式下显示运算器设置"需要设为开启。

显示箱子内容物状态的信号灯

LightWiredToChest.png

这是一个最简单的信号网络使用范例。一个在箱子内容物(本例中为空桶)达到一定数量时亮起。

连接电路

  • 灯连接至箱子。
  • 灯设置为如果箱子里的空桶小于10个灯将会亮起。

设置灯的开启条件

  • 开启灯的界面(左键单击)
  • 设置输入左值为空桶
  • 设置运算符为<(小于)
  • 设置右值为常数:
    • 左键单击常数。
    • 拉动滑动条到10,或者直接在输入框输入。
    • 按下设置

根据您设置的条件,如果箱子是空的,或者所需数量的物品小于您设置的数值,灯可能会亮起。

这个设计的缺陷是,这个灯只有白色,在晚上时很难区分。

化工厂设计

LgtOilCracking.png

轻油裂解

  • 这个电路可以做到将多余的轻油裂解为石油气。
  • 一个管道泵被一条红线缆连接至储液罐
  • 管道泵的启用条件被设置为轻油 > 20000
HvyOilCracking.png

重油裂解

  • 这个电路拓展了之前的电路,可以做到只将多余的重油裂解为轻油,以保证剩余一部分重油用于生产润滑油。
  • 管道泵的启用条件被设置为重油 > 20000

灯光

ConditionalLights.png

有条件地启用灯光

  • 在这个电路中我们将一串储液罐连接。
  • 通过给每盏灯设置不同的条件,我们可以做出一个指示灯条。
  • 第一盏灯的启用条件设置为石油气>100
  • 其他的等可以依此类推设置为200,300,400,500。

这个示例中可以将储液罐直接与灯连接。

ColoredLights.png

有颜色区分的灯

  • 要让以其他颜色亮起,你需要一个可以发出颜色信号的中间装置如算术运算器

不同于前例中直接连接灯与储液罐,你需要:
1 添加一个算术运算器。
2 将储液罐作为算术运算器的输入。
3 将算术运算器的输出端与灯连接。
4 设置算术运算器:
4.1 输入项设置为石油气 + 0(常量0而不是信号0)。
4.2 设置输出为粉色信号(在信号栏的底部)。
5 设置灯为:
5.1 勾选“使用颜色标识”。
5.2 设置启用条件为粉色信号,和你需要的数值。

其他

MulitipleChestsAndPoles.png

多个储存容器

ConstantComb.png

常量运算器

  • 常量运算器可以生成任意你需要的信号。
  • 在这个例子中我们生成了50个激光炮塔和200个穿甲弹匣的信号
  • 常量运算器本身没有多大用处,但我们之后会使用到。
ThisASign.png

常量运算器标识 (单词)

  • 你可以使用常量运算器来做标记,只需要设置运算器产生字母信号就可以了,每个运算器可以显示两个字母,一边一个。
  • 注意,要看见这些字母需要打开细节模式,且交互设置中的“细节模式下显示运算器信号设置”也需要启用。
Constant combinator signs2.png

常量运算器标识 (传送带管理)

  • 和之前的例子类似,常量运算器可与传送带结合使用来指示什么物品该接哪条传送带。这在分享蓝图时很有用,因为蓝图本身没有标记传送带该接哪些物品的功能。
MemoryCell.png

储存单元 / 计数器

  • 基本的储存单元,可以计数有多少物品被机械臂抓取。
  • 高速机械臂被连接至算术运算器的两端
  • 就算在这个tick快速机械臂没有抓取任何物品,算术运算器的输入将仍和输出保持一致,如此一来数值就保存下来了。
  • 快速机械臂抓起什么东西时,抓到的东西的数值会加到上一个tick的输出上,由此增加该物品的计数。

机械臂

LimitItemsPlacedIntoAChest.png

限制放入储物箱的物品数量

  • 电力机械臂用红线缆连接至一个木箱。
  • 机械臂的启用条件设置为集成电路 < 10
  • 在实际运用中,这样的设置可能会导致机械臂放置多于10个集成电路在箱子里,因为机械臂的单次抓取数量可能由于抓取数量科技升级,最多达到每次3个。
  • 这个效果在集装机械臂上可能更明显,因为它们有更高的抓取上限。
  • 尽管如此,这个技巧对于物品的控制能力远胜于单纯地限制箱子容量。
BalancedChestInsert.png

平衡的物品抓取

目标:让 n 个箱子装载大致相同数量的物品。

  • 放置 n 个箱子与 n 个机械臂。
  • 放置 1 个算术运算器
  • 设置运算器的条件为每个通配符(黄色星号)并除以箱子数量的负值。如 −n。
  • 用红色线缆连接每个箱子,并作为输入连接至运算器。
  • 用红色线缆连接每个机械臂,并连接至运算器的输出端。
  • 用绿色线缆连接每个机械臂至其对应的箱子。
  • 设置机械臂的启用条件为所有通配符(红色星号)< 0。

运算器会算出每个箱子内容物数量的平均值,并让其为负值。每个机械臂会得到其对应箱子的内容物数量并加上负的平均值,也就是说它会算出箱子内容物比平均值多多少。由此,如果值是负的,那个箱子里的内容就就比平均值少,机械臂就会启动。 由于机械臂抓取量加成会导致一点偏差。如果需要绝对的精确,可以将抓取数量设置为1。

SmartOutpostUnloader.png

保持前哨战某物品供应充足

SolarAccumalatorBalancer.png

平衡的太阳能板 / 蓄电器

  • 这个电路平衡了太阳能板蓄电器的生产为一个特定的比例,本例中为24:20。
  • 第一个算术运算器将箱子里的蓄电器乘以24
  • 第二个算术运算器将第一个运算器的输出除以20
  • 这能给我们提供能够直接用于在两个机械臂中比较的蓄电器数量。
  • 如果蓄电器多了就启用太阳能板的机械臂,如果太阳能板多了就启用蓄电器的机械臂。
  • 但是,要是两个相等,两台机器就会停止生产。所以我们用另一个颜色的线缆连接一个发送1个蓄电器信号的常量运算器至太阳能板的机械臂,解除了死锁。

回转寿司带

SushiScience1.png

读取用传送带设计

  • 横着排列的六个传送带用红线缆连接并设置为读取传送带运载物持续信号
  • 这组红线缆之后连接至向传送带上放置的机械臂。
  • 所有机械臂的启用模式设置为启用设施
  • 第一个机械臂被设置为在机自研究包 = 0时启动。
  • 其他的机械臂为条件为其他研究包的类似设置。
SushiScience2.png

储存单元设计

  • 通过统计被机械臂放上和拿走的物品数量,这个电路将统计循环传送带上的物品
  • 每个从传送带上拿走物品的机械臂用红线缆连接,且每个机械臂设置为无操作,读取抓取物读取抓取物模式:脉冲
  • 这些机械臂连接至左侧的算术运算器的输入端。
  • 左侧的算术运算器每个通配符输入以-1且输出设置为每个通配符。
  • 右侧的算术运算器为之前提到的储存单元
  • 储存单元的输入连接至往传送带上放置物品的机械臂,和左侧算术运算器的输出。
  • 向传送带上放置物品的机械臂的启用条件取决于传送带上物品的数量。

能源

SteamBackup.png

备用蒸汽能源

优化核电站核燃料棒的消耗

不同于一般的蒸汽能源会基于电力小号调节燃料消耗,核反应堆的燃料使用时间是固定的。具体来说,1个核燃料棒只能使用200秒。 生产一个核燃料棒费时费力,我们需要根据电力消耗优化燃料使用。

NuclearCircuits.jpg

第一个范例

上图展示了一个4反应堆核电站,每个只在蒸汽储量低时消耗一个燃料棒。 注意:图中的GUI经过调整,以让重要信息能够适应图像尺寸。 这个机组中的一些设备:

  • 供反应堆使用的铀燃料棒储存箱。
  • 用于取出乏燃料棒的机械臂。它连接至储液罐,接收蒸汽信号,和储存核燃料棒的箱子,接收燃料棒信号。如果蒸汽储量低且有可用的核燃料棒,它将从反应堆中取出用完的燃料棒并送出一个用完的燃料棒信号(如果“读取机械臂抓取物”选项勾上了)。

由于这个设计使用空燃料棒作为信号,你需要手动添加一个核燃料棒至反应堆来启动。

第二个范例

一个简单的机组,机械臂将在蒸汽储量低时向反应堆中放入一个燃料棒。 两个向反应堆供料的机械臂连接至蒸汽储液罐,并设置启用条件为蒸汽达到2k。 唯一的缺点是会往反应堆放两个核燃料棒(一个是蒸汽降低至2k,一个是回升到2k),但这并不那么重要,因为两个燃料棒不足以让反应堆温度升至1000°,所以没有能量被浪费。

Nuclear Fuel Circuit Network.png

将铀的使用优先用于核燃料棒生产

由于不间断的核能燃料}生产是维持核反应堆的关键,这个信号网络可用于建立一个系统,在该系统中,铀235和铀238被保存起来,用于生产核燃料,然后再用于其他用途。 使用一个基础分流器,将两种铀分离为两条传送带,用机械臂从两条传送带上抓取铀(需要一个加长机械臂从远端传送带上抓取)。两个机械臂都需要先存入储物箱中,再由其他机械臂放入用于生产燃料棒的组装机。生产出来的燃料棒由一个机械臂放入第三个储存箱,再由机械臂将燃料送到核反应堆中。将两个从传送带上抓取的机械臂用线缆连接到它们各自要运送的储存箱上,并连接到机械臂收集的那块传送带之后的那块上。将每个机械臂的启用条件设置为 "小于或等于X量的铀",铀的类型为所需类型中的一种,X是所需的储备铀的数量(最好是一个铀235和19个铀238,正好是生产核燃料所需的数量;如果需要更多的储备,数量可以增加)。以同样的方式将每个传送带的启用条件设置为 "大于或等于X量的铀"。最后,将向组装机输送铀的机械臂连接到储存核燃料的储存箱上,并将启用条件设置为 "核燃料=0(如果希望有更大的储存量,启用条件可以设置为 "小于或等于X量的核燃料")。 这种配置可以做到如下:

  • 当有足够的核燃料和铀库存时,机械臂将停用,而传送带将激活,允许铀继续沿着传送带到其他设施。
  • 当核燃料库存达到零(或减少到所需数量以下)时,输送到组装机的机械臂将激活并抓入铀以恢复核燃料的生产,直到再次达到配额。
  • 当储存的铀不足以生产一批核燃料时,收集铀的机械臂将激活并继续收集铀,直到达到其配额。运送铀的传送带将在经过机械臂时停止,切断传送带之后设施的该类型铀的供应,直到本产线的需求满足。
  • 只有当核燃料库存达到零(或减少到所需数量以下)时,才会向组装机提供铀,防止核燃料的过度生产,从而防止铀的过度消耗。

铁路网

设置火车路由

信号网络可以通过禁用/启用火车站来对机车进行更深入的微观管理。通过将停靠站连接到从火车上卸货的储存箱,并将火车停靠站设置为当其中的所需资源超过一定数量时被禁用,任何在其路线上有此停靠站的火车将忽略它并继续到下一站。例如,当集装箱中的铁矿石总量超过1000时,运送铁矿石的列车站被禁用;当库存的矿石降到1000以下时,该站将被启用,列车将被允许停在这里。反之,可以用同样的方式将拾取资源的火车停靠点设置为禁用,这样火车就会忽略该停靠点,直到该停靠点有足够的指定资源可以运送。 这些都可以用来引导多辆火车到相同的站点,并更好地优化它们的输送;它们只会在有一定数量的货物准备好的时候去一个站点取货,并且只会在库存量低于一定数量的站点卸货。对输送的进一步控制可以通过将从火车和/或储存箱中装卸的机械臂整合到电路网络中,根据容器中的内容启用或禁用它们,从而使特定数量的资源被取走或卸下。 这个系统还意味着,如果列车路线上没有任何一站需要指定的资源,列车将等待,直到有需要为止。这对于向有炮塔的防御前哨运送弹药等物资来说是很有用的;如果炮塔有足够的弹药储备,他们的站点将被禁用,运送弹药的火车将不会前往那里,直到需要更多的弹药,以防止铁路线被堵塞和多余的燃料消耗。

玩家安全

电路网络可以用来确保玩家在穿越火车轨道时的安全,避免被创死。在指定的穿越区域放置闸门,并在闸门旁边的墙上连接铁路信号。将大门设置为 "读取传感器",铁路信号设置为 "切换信号灯",条件是大门发出的信号为 "1"。这意味着,当大门关闭时,信号将是绿色的,火车可以自由通过,但当玩家接近大门,大门为他们打开时,火车信号将变成红色,火车将停止,直到玩家离开该区域。 另外,这个系统也可以颠倒过来--通过将大门设置为 "打开闸门",将铁路信号设置为 "读取信号灯",大门将保持正常开放,并在火车接近时关闭,防止玩家在安全之前穿越。 为了代替大门,玩家可以将一个可编程的扬声器连接到火车信号上,在火车接近该区段时播放警告警报。

锁存器

RS 锁存器 - 单判断运算器版

这个帖子在Factorio论坛上从常见的2个判断运算器的RS锁存器版本开始,但这个帖子继续解释了为什么这个单判断运算器版本更好。在该帖中,锁存器被设置为一个SR锁存器。然而,当两个输入都为真时,锁存器会复位,所以这是一个RS锁存器。

备用蒸汽能源范例

这个范例会在蓄电器电量小于20%时启动蒸汽发电机,且会“锁存”(记录)启动状态直到蓄电器电量大于90%。

锁存是为了引入迟滞现象,避免开关在开启和关闭之间快速切换(如蓄电器19%时打开,20%时又关闭,之后降至19%再打开)。

SR-01-Layout.png
Blueprint.png  复制蓝图代码

0eNrFVk1vozAQ/SuVz1ABCaRBq5WqXntKjqsKOTBJR8IGGTtpFPHfd+w0HyU0G6pVewkxnnmemfdmzI4tSgO1QqlZumOYV7Jh6Z8da3AleWnf6W0NLGVrVNrQG49JLuyLvYU/Z63HUBbwxtKw9QZ4zs48o15P1CBObgXkWIDy80osUHJdqTOAUfviMZAaNcI+A7fYZtKIBSiK7YgjoEAjfCgh1wpzv65KoFPqqiHnStrzCdAPA49t6Rm1NrYOWjQY7QrY6FQZwcvyX1jJFajxEYrnuRGmdGW6DCe+jx1KcB9TDYl1raoyW8ArXyM5kFVldG10djObj6zdI0kKHp2Mdiy0PysFIM8pwYKldHyOKjeo3TI8y8Wup93tl7Yv3fiaOC6zjt6z9uk4VqDaR+rY7CvBO2ZGewUec1qiaobVxaE3mtseiwK7EjVXLsaU/SKPobWe7zHrLYVmpM6WqhIZSsJg6ZKXDQyiYkzF9Vhk9xUU3d3kNiaSQUwEB/l9Hw+uZg1YjGzYiPpA1+/vpKuHjk7fRNf7JrJTsZf05MLwoIFbzLvtOvlEFZNjKepqQ5poNqjz10s9jA6N+fk8Ohx/FMFXNXDqxeCC20F901vCJxN07UjVG9K4+x9YQp5M2LUZfbTpq+XDKRsNnG4cuULZcz089HZWD+D0a8Pz52bnNPgPzTj76dlJAnDfNenZp5fHSr4ACp/NZ3fPnHrkDt64qN31vwbVuFIn43GUjCdxHIVt+xcL2lBp

SR-02-Accumulator.png

蓄电器将当前电量的百分比输出为信号 Signal-A.png

SR-03-RangeDeciders.png

如果蓄电器电量小于20%,第一个判断运算器 "设置" (Signal-S.png = 1)。

第二个判断运算器当蓄电器电量大于90%,"重置" (Signal-R.png = 1)。

SR-04-SRLatch.png

RS 锁存器设置

中间的判断运算器加上绿色的回授线缆才是真正的锁存器。 他会储存Set信号 Signal-S.png 直到收到Reset信号 Signal-R.png
注意: 锁存器期望输入为二进制信号 (Signal-S.png & Signal-R.png 必须时0 或 1) - 这也是需要之前两个判断运算器的原因。
当两个输入都为真,锁存器优先存Reset信号。意味着这是一个RS锁存器而不是SR锁存器。

SR-05-PowerSwitch.png

开关将发电机与工厂其他部分电网隔离直到 Signal-S.png = 1



RS锁存器

SRLatch.png
  • 有电子学知识背景的人应该对这个很熟悉。
  • Set和Reset信号由左侧的常量运算器输出A=1信号决定。
  • 锁存器"储存"最后收到的信号并保持住,直到收到另一个信号。

RS锁存器的使用

SRlatchinaction.png
  • 这是一个简单RS锁存器使用范例。
  • 两个额外的判断运算器提供Set和Reset条件。
  • 液化石油气 < 50 和 液化石油气 > 100.

传送带锁存器

BeltLatch.png
  • 为了让这个起作用, 3 块原木必须被放在传送带的内侧。
  • 这个比起运算器版本的锁存器有着更高的延迟,但大多数情况下你注意不到有什么区别。

显示

5digitDisplay.png

数字显示

  • 每一个数字由连接它的绿线缆驱动,线缆上承载着15个信号,分别用于组成数字的灯。
  • 常量运算器用于决定哪个数字改亮哪几盏灯。
BWDisplay.png

黑白阵列显示

  • 每一行由红线缆连接,每盏灯对应0-9的数字信号。
  • 设置常量运算器中的信号就可以点亮对应的灯。
MultiColoredDisplay.png

彩色显示 by DaveMcW

  • 为了理解这玩意怎么工作的,你首先得理解彩色灯在收到多个颜色信号时是怎么选择颜色的。
  • 会亮对应的颜色列表中第一个大于零的颜色。颜色列表:红,绿,蓝,黄,粉,青,白。
  • 每列有红线缆连接,线缆承载有着不同值的颜色信号,和对应每一行的数字信号。
  • 每个单元下方有一个算术运算器从颜色信号中减去对应"行"的值。
  • 这能实现决定每个单元的颜色。
  • 轻轻松松!

参考