切换语言: Čeština Deutsch English Français Italiano 日本語 Polski Português, Brasil Русский Українська

信号网络

From Official Factorio Wiki
Jump to navigation Jump to search

信号网络是使用红线缆或者绿线缆构建的网络系统,能够根据其所连接的发送设备在网络中播送的信号来对接收信号的设备进行控制。大部分的发送设备都是存储设备,可以根据自己所储存的物品/流体,在特定频道中播送相关信号(包括物品种类、数量等)。每个信号网络都为每一种物品预留了单独的频道,并且还包含48个虚拟信号用于玩家自定义频道。"所有"、"任一"以及"每个"也是可用的通配符。

使用方法

发送信息

发送设备会将其所储存物品/流体的数量,或其它由玩家定义的信息播送到网络中。每种物品的数量都会在相应的“频道”上以数值的形式播送。例如,一座储存了1000单位原油的储液罐会在原油频道播送“1000”这个数值。

不同频道之间是相互分离的,因此每个网络都可以同时传输游戏中每种物品/流体的数量,以及每个由玩家自定义的额外频道(数字0-9,字母A-Z,以及9种不同的颜色)中包含的信号。所有未使用频道的值均为0。

同一种物品/流体的多个播送的数值是累加的:如果某个网络中连接有两座储液罐,每座都储存了1000单位的原油,那么网络中原油频道的值会是2000。

所有通过连接点相互连接的同色线缆会构成一个网络,即它们会相互传输信号。例如,如果两条红线缆都连接到同一个运算器的输入端,则每条线缆都会从另外一条线缆接收信号。如果接线不慎,这可能会导致信号反馈,详情可参见下文的讨论

信号数值是一个32位的带符号整数,其有效范围为 -2147483648 到 2147483647(含),并以二进制补码的形式进行编码。数值在溢出时会发生回绕,例如 2147483647+10 会变成 -2147483639。在运算器中输入数值时,在关闭界面之前可能会超出32位的限制,此时该数值会发生溢出/下溢。[1]

控制设备

接收设备可以使用网络中播送的信号,在大多数情况下这用于启用/禁用设备。它们可以比较不同频道中的信号,或者将信号值与某个特定值进行比较。

接收设备会将所有与其连接的线路中的信号值进行累加,包括不同颜色的线路。例如,如果一台机械臂同时连接了两条线路,一条是带有20个铜板信号的红线缆,另一条是带有10个铜板信号的绿线缆,则该机械臂收到的信号为30个铜板。

相同颜色的多条线缆会共享它们的信号值并进行叠加。例如,3个箱子A、B、C按顺序(A -> B -> C )用绿线缆连接,它们所储存的物品的总和可以通过连接到任意一个箱子的任意一条绿线缆输出。然而,如果使用一条红线缆将箱子A连接到一台机械臂,那么它接收到的信号仅包含箱子A中所储存的物品。

设备

每个可以接入信号网络的设备都会在其界面的右上角显示一个 图标。点击此图标将显示该设备可用的信号网络选项(注意:必须先连接红线缆或绿线缆,否则会提示“未连接”)。点击该图标旁边的 图标,在设备处于物流网络范围内时,可以将其接入物流网络,类似地,点击该图标可以进行物流网络设置。

信号网络(其中红绿线缆的信号值会进行叠加)和物流网络都可以进行条件设置,两者在逻辑条件中作为一个“逻辑和”共同发挥作用。

以下设备可以接入信号网络:

图标 名称 可输出的信号 可进行信号网络控制 可进行物流网络控制
传送带 传送带可将其所运载物品的内容发送到信号网络。
  • 脉冲信号模式:仅在物品进入传送带的1刻发送信号。
  • 持续信号模式:只要传送带上有物品,就持续发送信号。
  • 持续信号模式(所有传送带):读取整条连续传送带线路上的所有物品,并持续发送信号。包含地下传送带中的物品,但不包含分流器中或侧向汇入传送带的物品。
可根据信号条件启用传送带。 可根据物流条件启用传送带。
分流器 可根据信号条件设置输入和/或输出端的优先级。

可根据信号条件设置筛选器。

  • 筛选器设置仅在“设置输出端”选项启用且满足左侧/右侧的信号条件时才生效。如果两侧条件同时满足,则分流器将默认将物品筛选到左侧。
  • 如果以多个输入信号作为筛选条件,则分流器将按工厂百科中的物品排列顺序进行筛选。
机械臂 机械臂可将其持有的物品信号发送到信号网络。
  • 脉冲信号模式:仅在拾取到物品的1刻发送信号。
  • 持续信号模式:只要机械臂持有物品,就持续发送信号。
所有机械臂均可根据信号条件启用。机械臂的搬运数量也可以通过信号进行控制(数值可更改;小于1的值会被视为1)。可以根据信号条件设置筛选器。 可根据物流条件启用机械臂。
组装机炼油厂化工厂离心机破碎机铸造厂电磁工厂生物室低温工厂 所有类型的制造机器均可输出:
  • 所有物品栏中储存的物品/流体
    • 可选项:可以包含当前正在制造的物品
    • 如果设备中有燃料,可以包含当前设备中储存的燃料,包括正在燃烧的燃料单位
  • 生产配方的原料
  • 1个持续1刻的控制信号,在制造完成时发送
    • 此信号的值为上一刻中完成制造的物品数量
    • 包含因产能加成额外产出的物品
  • 1个控制信号,在设备运行时发送
所有类型的制造机器均可根据信号条件启用,并根据信号为其设置生产配方。如果设备没有接收到配方信号,它将使用该物品/流体的主要配方(如工厂百科所示)
冶炼炉回收机 冶炼炉类设施可以输出:
  • 所有物品栏中储存的物品/流体(但不包含燃料)
    • 可选项:可以包含当前正在制造的物品
    • 如果设备需要燃料,可以包含当前设备中储存的燃料,包括正在燃烧的燃料单位
  • 生产配方的原料(根据输入原料自动确定)
  • 1个持续1刻的控制信号,在制造完成时发送
    • 此信号的值为上一刻中完成制造的物品数量
    • 包含因产能加成额外产出的物品
  • 1个控制信号,在设备运行时发送
所有冶炼炉类设施均可根据信号条件启用
箱子 可向信号网络发送其库存内容。
物流接驳站 可向信号网络发送其库存内容。 可通过信号网络设置其请求。
火箭发射井 火箭发射井可通过太空平台输出其库存内容或请求
太空平台枢纽 可输出其库存内容、出发和目的星球、 当前速度和承受的伤害
  • 默认值:速度 =
  • 默认值:承受伤害 =
太空平台枢纽可发送信号网络内容,用于设置发车条件。
星岩抓取臂 可向信号网络输出其库存内容 可以根据信号条件启用和设置筛选器
优先集货箱(蓝箱)主动存货箱(绿箱)被动存货箱(黄箱)被动供货箱(红箱)主动供货箱(紫箱) 可向信号网络输出其库存内容 可使用信号网络设置主动存货箱(绿箱)和优先集货箱(蓝箱)的物品请求。

可根据信号条件启用/禁用。当禁用时,箱子不再向物流网络供应物品,也不再向物流网络请求物品。

储液罐 可向信号网络发送其库存流体内容
闸门 闸门可向信号网络发送信号
  • 默认:检测到玩家 =
可根据信号设置开门条件。
核反应堆供热塔 可向信号网络输出其当前燃料(包含当前正在燃烧的燃料单位)和当前温度的值
  • 默认:温度 =
农业塔 可输出其库存的任意种子和作物内容 可根据信号条件启用 可根据物流条件启用
机枪炮塔激光炮塔火焰炮塔火箭炮塔特斯拉炮塔磁轨炮塔 可向信号网络发送其弹药库存
  • 激光炮塔和特斯拉炮塔不会发送任何信号,因为它们并不使用弹药
可根据信号条件启用、设置目标优先级或忽略优先级 可根据物流条件启用
重炮炮塔 可向信号网络发送其弹药库存 可根据信号条件启用 可根据物流条件启用
常规铁路信号 常规铁路信号可向信号网络发送其当前状态。
  • 默认

注意:如果因信号设置亮红灯,则不会输出红色信号

可根据信号条件设置为亮红灯
联锁铁路信号 联锁铁路信号可向信号网络发送其当前状态。
  • 默认
车站

车站可以输出:

  • 停靠列车的库存内容,不包含燃料
    • 任何流体的量都会四舍五入到最接近的整数,除非流体的量小于1,此时它会被取整到1。
  • 停靠列车的唯一列车编码,默认为
  • 前往当前车站的列车数量,包括当前停靠车站的列车,默认为
  • 向列车发送信号,用于设置发车条件
  • 根据信号条件停用车站
    • 禁用车站相当于将其列车限制值设置为0。尝试驶往该车站的列车会进入“目的地已满”状态。
  • 根据信号设置车站的列车限制值,默认为
  • 根据信号设置车站的优先级,默认为
车站可根据物流条件启用。
蓄电器 可向信号网络发送其蓄电水平(按百分比)。
  • 默认:电量 % =
机器人指令平台 可向信号网络发送其物流网络库存内容,以及/或机器人统计数据。用于机器人统计数据的信号是可配置的。
  • 默认:可用物流机器人数 =
  • 默认:物流机器人总数 =
  • 默认:可用建设机器人数 =
  • 默认:建设机器人总数 =
  • 默认:物流网络内的机器人指令平台数 =
雷达 雷达会将传入的所有信号传输到同一星球上的所有其它雷达。

与其它机器的输出模式不同,红/绿线缆的信号会分别传输。

显示器 可根据信号条件显示标签和/或自定义信息。
采矿机 所有类型的采矿机均可发送其预期资源开采量,这可以是单个采矿机的资源量,也可以是采矿机所在的整个矿区的资源量。 可根据信号条件启用 可根据物流条件启用
抽油机 可输出抽油机当前的原油开采速率。 可根据信号条件启用 可根据物流条件启用
电闸 可根据信号条件接通电网 可根据物流条件启用
程控扬声器 可根据信号显示警报并播放声音,这可用于制作简单的曲调。
照明灯 照明灯可根据信号条件启用。
  • 颜色映射:根据信号提供的颜色值设置照明灯的颜色
  • 颜色构成:根据输入信号的红、绿、蓝颜色值设置照明灯的颜色,各色值的范围为 0 到 255
  • 封装RGB:根据白色信号提供的16进制RGB颜色码设置照明灯的颜色,色值的范围为 0 到 16777215
可根据物流条件启用
抽取泵 可根据信号条件启用 可根据物流条件启用
管道泵 可以根据信号条件启用和设置筛选器 可根据物流条件启用

物理结构

两个信号网络共用一根小型电线杆

一个信号网络是由以相同颜色的信号线缆连接在一起的设备组成的。线缆可以直接连接多个设备,也可以借助电线杆进行更远距离的连接。

每组相互连接的线缆都会形成一个独立的网络。例如,四个红线缆网络以及三个绿线缆网络可以同时存在。即使红线缆和绿线缆恰巧连接在同一电线杆/设备上,不同颜色的网络也会保持独立,不会相互连接。然而,当两条相同颜色的线缆连接时,两个网络就会连通成为一个网络。因此在小范围区域内构建多个信号网络时,需要使用不同颜色的线缆交叉布设以进行区隔。

  • 要将线缆连接到电线杆,只需在激活线缆工具后点击一个实体,然后再点击电线杆的底部。
  • 要移除线缆连接,先激活相同颜色的线缆工具,然后重复以上的操作。
  • 要移除一根电线杆上的所有线缆,需要按住 Shift 键点击电线杆底部。第一次点击会移除所有电线,第二次点击会移除所有信号线。
  • 当连接算术运算器判断运算器时,注意要将线缆连接到正确的输入/输出端,通过按 Alt 键开启“细节模式”以查看运算器的信号传递方向。
  • 将鼠标悬停在某个物品上,可以高亮显示所有与其连接的线缆。
  • 将鼠标悬停在电线杆上,可以显示其所连接的网络中的信号值。部分物品如运算器在鼠标悬停时会显示其输入和输出的信号。
  • 剪切粘贴实体时,游戏会尝试保留该实体与外部实体间所有的线缆连接,新生成的所有虚影会按之前的布线重新连接,即使多次复粘贴也是如此。这使得在不切断线缆连接的前提下重新放置实体变得更加容易。
  • 拆除电线杆时,游戏会尝试恢复受到影响的线缆连接,根据需要在之前相互连接的实体之间生成新的线缆。这可能导致在剪切粘贴或撤销拆除时额外生成多余的线缆连接。注意:当电线杆被摧毁时不会发生上述情况,尽管电线杆留下的虚影仍然会保持线缆连接。

运算器

运算器既可以是接收设备也可以是发送设备,它们在信号网络中还可以执行更高级的功能。

  • 常量运算器可在其连接的任何网络的任意频道上播送最多20个信号值。(目前无法指定信号应该对应哪个颜色的网络,因此如果需要对不同网络输出不同信号,需要使用两个常量运算器分别连接不同颜色的网络。)所有物品频道或虚拟信号频道都可以使用。
    • 注意:使用20个信号位中的2个在同一频道上播送信号值,等效于使用1个信号位播送这2个信号值的和。
  • 算术运算器会对输入的信号值进行算术运算,并将结果通过指定的输出频道播送。输入和输出频道可以是任意物品/虚拟信号频道。
    • 连接:算术运算器通过输入端接入红/绿网络(连接端子设置在设备主体内,看起来像是火花塞),并对接收到的值进行算术计算,然后再通过输出端将计算结果向指定频道播送(输出端线缆似乎会略微向设备主体外延伸)。
    • 反馈:需要注意,输入信号的网络和输出信号的网络不是同一个网络。若将输出网络接回输入网络,就会构成一个反馈环路。例如,当输出端接回输入端时,设置算术运算器给接收到的铜板信号值加1,并将其作为铜板的信号发送会是一个无限循环的过程。此时铜板的信号值会迅速(但不是立即)大幅上升。(上升速度取决于游戏当前的时钟速率,默认为每秒60)。这种技巧可以与判断运算器的逻辑设置配合使用,用于制作电子钟,逻辑门和其他实用系统。更多相关技巧请参阅教程:运算器
    • 每个:算术运算器可以使用“每个”逻辑信号进行输入和输出,在这种情况下,所有非零值输入的频道中的信号值都会在算术运算器中进行指定的运算并播送给网络。通过“每个”逻辑信号和一个不改变结果的运算(比如加零)的配合使用,可以实现信号的单向传输效果:输入端网络的所有信号都会被原封不动地复制到输出端网络,但反过来则不行。
    • 多网络:算术运算器的输入口可以同时与红色和绿色网络连接,并将它们输入的信号值相加。
  • 判断运算器与算术运算器的功能类似,但它用于比较不同的信号值,本质上是一个条件判断器。其连接、反馈功能和“每个”逻辑信号的用法都与算术运算器相同。此外,它还可以处理“所有”和“任一”逻辑信号,在与多个网络连接时可以执行比累加更为复杂的运算。更多相关信息请参阅判断运算器页面。
  • 选择运算器具有多种功能,它用于筛选和分析输入网络中的特定信号。它可以输出一系列输入信号中的最大或最小者,输出物品的堆叠数量,计算输入信号的数量,每隔一定时间后随机选择一个输入信号并输出。如果启用了太空时代扩展包,它还会额外增加三个功能:检测物品的火箭载荷,以及品质等级的筛选/转换。

虚拟信号

在基础游戏中用于信号网络的部分虚拟信号。

虚拟信号是一类不对应游戏物品或流体的特殊信号。除了三种逻辑信号之外,虚拟信号和物品信号的表现并无不同。

游戏中目前共有177种虚拟信号可用(在太空时代中为241种),它们在游戏中被归类在信号、敌人、环境和未分类标签下。这些信号包括但不限于数字、字母、各种线条和箭头、信息图标、所有敌人变体、环境特征和新地星信号。

此外,如果在【设置 > 界面 > 游戏互动】菜单中启用了“在选择列表中显示参数”选项,会在未分类标签下增加10个特殊的紫色“参数”图标,可用于蓝图的参数化

逻辑信号

三种逻辑信号的图标

以下三种虚拟信号无法在网络中发送,但它们可以对多种信号应用特殊的逻辑。

所有

所有 信号可以在条件语句的左侧使用。当每个输入信号都满足判定条件时,结果即为真。如果没有信号输入,结果也为真。这意味着所有信号相当于逻辑学中的全称量化,因此“所有 ≠ 0”总是为真。

如果将信号(而非一个常量)置于与 所有 进行比较的条件语句的右侧,它会被隐性排除在 所有 检查的信号集之外,因此该信号不会与自身进行比较。也就是说,类似 所有 > X 的测试是有意义的,这可以避免出现 X > X 而导致结果总是为假的情况。

判断运算器的输出端也可以使用 所有 信号,除非输入端使用 每个 信号。使用此设置后,只要条件结果为真,它会在每个非零值输入的频道上输出信号;输出值可能是输入信号的值或1,这具体取决于相应的设置。

任一

任一 信号可以在条件语句的左侧使用。如果没有信号输入,则结果为假。如果有至少一个信号满足判定条件,则结果为真。这意味着 任一 信号相当于逻辑学中的存在量化。由于一个值不为零的信号始终存在,因此“任一 = 0”总是为假。

如果将信号(而非一个常量)置于与 任一 进行比较的条件语句的右侧,它会被隐性排除在 任一 检查的信号集之外,因此该信号不会与自身进行比较。也就是说,类似 任一 >= X 的测试是有意义的,这可以避免出现 X >= X 而导致结果总是为真的情况。

当在判断运算器的输入和输出端同时使用时,任一 信号将按照工厂百科中的排列顺序优先返回第一个匹配条件的信号,其中木箱排在第一个。

每个

每个 信号只能在判断运算器以及算术运算器的输入端条件语句的的左侧,以及它们输出端的条件语句中使用。当同时用做输入和输出信号时,它可以使运算器对每个输入信号都独立执行预设的运算。如果 每个 信号仅用作输入信号,则所有运算结果会被累加后再输出。

使用 每个 信号的运算器类似于一组将所有输入端连接在一起,而所有输出端并行连接的运算器。例如,如果网络中同时存在“铜板”和“铁板”信号,一个运算器会负责运算铜板的条件,而另一个运算器会负责运算铁板的条件。不同的输出信号随后会在公用线缆上进行累加。

所有任一 不同,如果将信号置于与 每个 进行比较的条件语句的右侧,它不会被隐性排除在 每个 检查的信号集之外。例如:每个 * X 的结果是输出“X”自乘的值。

作为输入信号时,每个 信号仅会在非零值的信号上生效。如果为运算器设置了判断条件,使其输入和输出各自独立,但需要为满足条件的输入信号匹配一个输出值,则它永远不会为信号值为零的输入信号匹配1的输出值,即便这个零值信号满足判断条件的要求也是如此。

相关教程

物流网络

物流机器人使用的物流网络本质上是除红线缆以及绿线缆网络之外的第三个网络(一个无线网络),物流网络是基于机器人指令平台的覆盖范围设立的。

部分设施可以连接到物流网络,并根据条件启用。如果某个设施同时设置了信号网络和物流网络条件,则仅当同时满足两个条件时,设施才会启用。以下列出了一些可被物流网络控制的设施:

  • 农业塔
  • 制造类机器
  • 机械臂
  • 照明灯
  • 采矿机
  • 抽取泵
  • 电闸
  • 管道泵
  • 抽油机
  • 车站
  • 传送带
  • 炮塔

更多相关信息,请参阅物流网络机器人指令平台条目。