
本指南介绍如何使用LTN Combinator Modernized(现代化LTN组合器)来设置LTN车站、请求站和供应站。创建于2023年8月 简介 概述 本指南旨在说明如何使用LTN Combinator Modernized模组及其他一些工具来搭建一个初级的物流火车网络(Logistic Train Network,LTN)。我原本只是想为朋友写一份关于学习LTN的简短说明,但最终扩展成了一份完整的指南,希望能帮助更多人。 一些预先说明 这是我的第一份指南。我会随着学习不断补充信息、优化格式,并提供有用的内容。 我在电路方面是新手。我使用电路的方式可能存在不当之处。如果发现任何问题或有可以改进的地方(例如效率问题),请告诉我。 我在LTN方面也是新手。由于我正在学习这个模组,而且它的内容相当多,所以我完全有可能出错。我差不多一周前才开始接触它,一直在深入研究相关资源,创建演示世界进行测试,但可能还是遗漏了一些东西。 本指南适合谁? - 正在寻找正确使用LTN Modernized Combinator的人。 - 希望更好地理解请求者阈值/输出信号以及阈值背后计算方法的人。 - 正在努力搭建第一个LTN的人。 使用的模组 LTN - Logistic Train Network - 必备 LTN Combinator Modernized - 大多数指南已经过时,没有使用这个现代化的组合器。本指南会说明需要安装此模组。 LTN Manager - 查看网络统计数据的非常棒的模组。此模组非必需。LTN物品 通用 LTN上有几个新物品,对于运行LTN网络至关重要。
物流火车停车站 - 这是随LTN Mod推出的新型火车停车站。该停车站外观类似,但包含以下部分: 输入 - 这是向LTN发送信号的输入点,外观类似指示灯。 输出 - 这是接收LTN信号的输出点,外观类似黄色 combinator。 火车站台 - 外观和使用体验与之前保持一致。 输入和输出对象均不可操作,仅作为与LTN进行信号传输的连接点。LTN的核心功能通过现代化的 combinator 内部机制和信号传输在后台实现。
LTN组合器 - 这是用于向LTN发送信号的现代化界面。最初,信号并未通过友好的图形用户界面提供。但在这里,我们拥有简洁的格式来连接LTN站点。我们将在下方的多个设置中点击并使用此界面。

这是我典型的站点布局:

输入配色方案 蓝色 - 等待调度的列车 绿色 - 停止正常运行 黄色 - 列车在途 红色/其他颜色 - 请参阅官方模组手册 通用设置 常规 以下设置适用于所有LTN站点

最小列车长度 - 允许进入车站的列车(机车+车厢)的最小长度。在网络包含多种列车长度时非常有用。
最大列车长度 - 车站允许的列车(机车+车厢)最大长度。当铁路网络中存在多种列车长度时,此设置非常实用。
限制列车数量 - 限制同时分配到车站的最大列车数量。除非你有堆叠轨道让列车排队,否则这个数量应该设为1。否则可能会出现交通堵塞。
网络ID:在LTN内部,你可以让多个服务列车网络共享同一条轨道。例如,如果你拥有一个大型基地,并且不希望来自非常遥远地方的服务,这可能会很有用。注意:网络ID是二进制编码的,但只需使用友好的图形界面来选择所需的网络ID即可。

模组设置 我唯一从默认值更改的设置是站点停留超时。我特别不希望火车在完全卸载前离开,所以如果出现不平衡的情况,我个人希望让火车停下并去解决问题,或者让它停在那里直到物资被消耗完。 此设置位于菜单选项->设置->模组设置->地图:
车辆段 概述 车辆段的基本功能是为特定的列车网络提供服务。它们不分配给任何特定列车,因此该车辆段网络中的任何列车都可以停靠在此并等待调度。 设置
通用 - 确保填写站点的通用设置。
车辆段复选框 - 必须勾选才能将车站标记为车辆段。
仓库优先级 - 优先级越高的仓库会被优先调度。如果你有一个位置更靠近工作区域的仓库,这可能会很有用。如果该仓库可用,它将强制物流火车网络(LTN)优先调用该火车。 用火车装载仓库 要装载仓库,需建造火车并将仓库添加到火车的停靠站。将火车设为自动模式,发送至仓库,之后物流火车网络(LTN)将接管控制权。 蓝色指示器表示火车正在等待请求。

现在火车将具有类似这样的状态:

更多提示

请求燃料 - 应为火车请求燃料。这可以避免在请求/供应站存放燃料(如果符合你的设置)。
被动/主动供应箱 - 如果火车以某种方式带着物资返回 depot,我们希望将其清空。让物资进入物流网络。
释放防止电路 - 一个小型电路可防止在列车内有任何物品时释放列车。若要进行设置,请按以下方式配置列车:

我们将把火车的货物内容发送到红色电路线上的判定器输入端。将火车停车站的红线连接到判定器的输入端。在判定器组合器中,以下逻辑会检查这些火车货物内容。如果火车内没有货物,我们将输出一个值为1的通用红色信号。

绿色线路从判定器输出并连接回火车站。这会向我们之前设置的列车发送启用信号,该信号仅在列车为空时才会启用。


供应站 概述 供应站将为网络供应材料。内置功能加上小型逻辑电路使供应站成为强大的站点: - 能够通过筛选供应多种材料。 - 可以根据请求者的精确需求量进行供应,不会使列车超载。 - 具备良好的防护机制,可避免出现手持材料卡住、装载错误材料等问题。 设置
通用 - 确保填写站点的通用设置。
启用供应者复选框 - 必须勾选才能将站点标记为供应者。
提供阈值 - 这是空间站开放前所需的物品/流体储备量。
提供堆叠阈值 - 这是向网络提供自身所需的堆叠储备量。注意:这会覆盖已设置的提供阈值。
设置优先级 - 优先级较高的物品将优先提供给LTN。这可能有助于根据供应情况/位置等因素强制优先选择某些供应站。
每节车厢的锁定槽位 - 详见下方“每节车厢的锁定槽位”部分。 每节车厢的锁定槽位 - 此功能用于锁定货运车厢的槽位,使其无法被填充。锁定后,这些槽位在机械臂看来会显示为红色叉号,与其他货运容器中的显示方式类似。

这样做的目的是防止堆叠 inserter(堆叠机械臂)在最后一次堆叠插入时手中残留材料。随着科技提升,堆叠机械臂的堆叠数量会增加,可能出现机械臂抓取的材料数量超过货车容量的情况。此时火车离开后,堆叠机械臂仍会握着材料。如果火车停靠站是共享的,下一列火车可能需要不同的材料,却会被提供错误的材料。这个红色X模拟了箱子已满且没有可用空间的状态,但仍允许机械臂向箱子内放置材料。建议初始设置为1,不过可能需要增加到2。举个实际例子,我曾在每节车厢配置12个堆叠 inserter(堆叠机械臂),结果发现车厢会装过头,有一次甚至装到了112个,导致堆叠机械臂手里卡着物料动弹不得。现在某些情况下我默认只放2个。 即使站点只有单个物品,不让堆叠机械臂手里留着物料似乎也更稳妥。 进一步提示

精确装载 当请求物资时,会请求精确数量并发送至LTN。当列车到达供应站时,该数量会显示在火车站的输出端。 然而,假设供应站有足够物资,其 inserter( inserter)会继续装载货车直至装满,无论列车输出显示什么。这可能导致向请求站过度供应物资。 为防止这种情况,必须构建逻辑电路。以下是具体步骤。 当列车到达车站时,LTN会在车站输出端提供列车请求的物资数量。在此图中,车站输出显示列车需要4.3k铁板。此数值不会随着货车装载而更新。

首先,在车站附近建造一个算术 combinator,并按以下方式进行编程:

现在将上述讨论的4.3k铁板输出值(来自LTN站点的输出)接入这个算术 combinator(算术组合器)的输入端。 接下来,我们要将该输入乘以(-1)并输出结果。 例如,如果我们输入4.3k铁板,输出端将得到-4.3k铁板的信号。 注意:组合器中已选择“Each”(每个),因此输入端的每个信号都会乘以(-1)。不过,我们只关心火车请求的物品信号。 然后将实际的火车站点连接到组合器的输入端。完成后,点击火车站点并将信号设置为“读取火车内容”。这会将火车所载货物的实时数值传输在信号网络中。

接下来,将算术 combinator(算术组合器)的输出连接到LTN的输出端。这是LTN站点的输出,显示为4.3k铁板。 以下是当前完整的工作流程: 1. 读取火车上的货物内容。在本例中,即铁板的数量。 2. 将该货物数量乘以(-1) 3. 将结果与LTN提供给站点的数量相加。 4. 等待总和等于零。这意味着请求的数量等于火车上的货物数量。 在我们上面的示例中,我们请求用4.3k铁板装满一列火车: - 火车到达时,货物为空,并请求全部数量。 -->火车货物内容=0 -->火车请求数量=43k --> 输入到运算器:0 --> 运算器逻辑:0 * -1 = 0 --> 运算器输出:0 --> 网络上铁板总和:运算器输出(0)+ 火车请求量(4.3k)= 4.3k - 当火车装到一半时,进行同样的计算: --> 火车货物内容 = 2k --> 火车请求量 = 4.3k --> 输入到运算器:2k --> 运算器逻辑:2k * -1 = -2k --> 运算器输出:-2k --> 网络上铁板总和:运算器输出(-2k)+ 火车请求量(4.3k)= 2.3k 如你所见,输出信号从最大请求量逐渐减少,最终铁板输出信号将变为零。 要让 inserter(机械臂)正常工作,最后一步是将算术运算器的输出连接到所有(堆叠)过滤机械臂,然后在所有机械臂上设置【设置过滤器】。

再次设想上述场景。在空载列车中, combinator(组合器)的输出端显示4.3k铁板信号。这会将过滤 inserter( inserter)的过滤条件设为铁板。 随着装载的进行,该数值会下降。最终,当列车装载量达到请求量时,输出信号中不再有铁板信号。因此, inserter( inserter)停止装载。 这一机制可调整为卸载两种材料、实现特定材料的专门请求(例如按需运输建筑材料或护甲)等多种用途。 多供应站 - 2023年8月新增 以下展示单个供应站如何提供多种材料。由于我们已设置好装载过滤,只需在列车另一侧添加第二组 inserter( inserter)和红色电路板即可:
记住,当火车到达供应站时,它会告知供应站自己需要多少何种资源。因此我们可以利用这一点:

请求站 通用 请求站会从网络中请求材料。 - 能够从物流网络(LTN)发出非常具体的请求。 - 利用同一站点卸载多种材料。 设置

通用 - 确保填写站点的通用设置。
启用请求者复选框 - 必须勾选此框才能将站点标记为请求者。
请求阈值 - 这是触发请求前所需的物品/流体短缺量。
请求堆叠阈值 - 这是向网络发出请求前所需的物品堆叠短缺量。注意:此设置会覆盖已设定的请求阈值。
请求优先级 - 优先级越高的请求将被LTN优先处理。这可能有助于将物资优先输送到更关键的区域。
禁用警告消息 - 按工作站抑制简单警告,否则可能会刷屏。
输出信号设置 - 用于与阈值结合并确定何时请求材料的输出信号。我会举例说明如何设置此值。请注意,输出和阈值的配置具有高度可定制性。可能有多种指南采用不同的设置方法,但我会解释我的做法。 布局 空间站的布局应确保所有存储设施都与LTN组合器相连并为之供料。

输出信号与阈值计算 - 铁板示例 - 假设车站配置为1辆火车头、4节车厢的列车。该列车将运输铁板。 - 列车将为一个配备24个 inserter(机械臂)的站点服务,具体如图所示。 首先,计算总存储量: -> 每个箱子有48个槽位。 -> 铁板堆叠上限为100个。 -> 总共有24个箱子。 因此,可容纳的铁板总量为:最大物品数 = 48 * 100 * 24 = 115,200 接下来,计算最大堆叠数(液体可忽略此步骤): -> 每个箱子有48个槽位。 -> 我们有24个箱子。 因此,总堆叠数为:最大堆叠数 = 48 * 24 = 1152 现在,我将把这些值设置为请求箱的输出信号,具体如图所示。

现在我们有两个选项: 1) 我们可以设置请求阈值。当总可用存储空间能够容纳请求阈值中设定的值时,就会发出请求。 -> 回到我们的例子,假设请求阈值设为5000。 -> 当箱子中的铁板总量降至(115200 - 5000 =)110200以下时,将发出5000的请求。 -> 如果没有火车立即响应,材料会继续消耗,因此请求的材料数量会持续增加。 2) 我们可以设置请求堆叠阈值。当箱子中的总空位/堆叠数达到此阈值时,就会发出请求。 -> 回到我们的例子,假设堆叠阈值设为8。现在,请求阈值内的任何内容都将被堆叠请求阈值忽略或覆盖。 假设当提供箱可提供铁板时,每个箱子已消耗1堆叠。这意味着1堆叠×24个箱子×每堆叠100块铁板=2400块。 这远高于请求提供箱所需的8堆叠阈值。 物流网络(LTN)将启动一列火车,收集2400块铁板以提供给请求站。 液体方面如何处理? 液体的设置与此类似: 假设请求站有20个用于储存水的储罐。 每个储罐可储存25000单位。 25000单位×20=500000单位。 液体可忽略堆叠。 不过,这里有一个区别。我同样不信任液体控制以及堆叠 inserter(堆叠机械臂),而且我们无法使用“每节车厢锁定槽位”功能来防止液体过量装填。不过,我们可以让存储容量看起来比实际小一些。 之前我们计算的存储容量是500k。但为了防止部分装载时出现过量装填的情况,我们可以减少几千的容量。我们会将输出设置为类似-490k的值:

高级 请求阈值的计算公式如下: 【请求阈值】<= 【-输出信号】 - 【网络输入数量】 或者 -【请求阈值】>= 【网络输入数量】 + 【输出信号】 示例中: 输出信号 = -115200 请求阈值 = 5000 网络输入数量 = 110200 当存储中的数量降至110200时,条件成立,导致LTN发送列车。 5000 <= 115200 - 110200 或者 -5000 >= 110200 - 115200 我认为你可以调整数值,使阈值作为最小值激活,以始终拥有“阈值”材料,而非像我这样处理短缺情况。这只是为了演示公式以及我认为合理的用法。 进一步提示

筛选卸载 如果火车确实载着物资到达站点,我们需要防止其意外卸载。 首先,添加一个算术 combinator(算术组合器)并将其连接到我们的 LTN Combinator(LTN 组合器)。我们要获取此处请求的物资(当前位于组合器的输出信号中),并将其转换为正值:

然后我们要将其连接到所有的堆叠 inserter,并设置与供应站类似的过滤器。这样就能强制这些堆叠 inserter 只卸载车站请求的物品。

注意:如果同一个车站需要两种材料,堆叠过滤 inserter 只能过滤单一材料。你必须使用常规过滤 inserter,它最多可以过滤5种材料。注意:这仅适用于向单侧卸载的情况。 多请求器 - 分离侧面 - 2023年8月新增 以下展示单个请求车站如何接收多种材料。由于我们用于过滤 inserter 的信号是来自 LTN 组合器的静态信号,它会同时显示两种材料,因此不再有用。此时,我选择在 inserter 上为所需材料设置固定的白名单过滤器,如下所示:

另一个要求是将新存储连接到LTN组合器,并输入该存储量。在此示例中,我有一侧接收塑料,存储容量为115200,然后是铁,要求相同。

此时,请求阈值将适用于两种材料。遗憾的是,你无法设置单独的请求阈值,但你可以再次使用上述公式来调整数值,使列车按照你的预期运行! 路径示例 - 8月23日新增 概述 以下将从列车视角展示取水和卸水的路径示例。 然后,为了演示,我会删除列车路线的部分内容,看看LTN会如何反应。 路径示例 注意:以下是我通过观察列车得出的假设,可能存在错误。
当通过LTN路径规划分配任务后,列车从 depot(车辆段)出发。 列车会获取目标车站的坐标并前往该车站。 到达车站后,列车会切换为该车站的名称。 列车装满货物后,前往卸货车站的坐标。 列车卸载货物。 回到步骤(10),前往车辆段。 清除之前的路径规划,经过5秒无活动状态后,列车会被分配(如果需要)新的路径。 删除部分行程 - 即将添加 提示与注意事项 一般说明 本节将介绍一些需要注意的事项。如果不够小心,一些小错误可能会导致严重问题。 红/绿线连接错误——这一点非常直观,但连接错误可能会干扰输入/输出信号,导致异常行为。尝试在你添加的至少一个地点观察至少一列火车。 新仓库/供应站/需求站的部分建造——我在演示世界中遇到过这种情况:我部分建造了一个新站点,结果火车开始通过该站点进出。理想情况下,最好一次性建造完整的车站,以确保不会出现异常行为。 输入字段的即时更改反映——现代化组合器中的输入字段无需等待按下回车键即可更新/传递新值。例如,将请求从500000更改为5000时,如果你删除原有数字并开始输入“5”,此时会直接传递5这个值。调试时需要注意这一点。 让车站离线的最佳方法是取消勾选“启用供应站/需求站”或“仓库”复选框。这已经完成了车站当前的移动,然后使下一个移动停滞。我不确定在物流网络(LTN)中中途删除路线中的车站是否会导致问题。 8月23日更新:在列车行驶途中更改车站名称——根据列车前往站点的方式,这似乎不会成为问题。但出于谨慎,我会尝试在更改名称前禁用该站点或阻止列车前往那里。这可能过于谨慎,不确定。 8月23日更新:验证蓝图上的电路连接——这更像是一个通用提示,但要确保你的蓝图中正确设置了条件。值得仔细检查。你不会想粘贴6个新的卸货点,然后不得不手动去修复它们…… 总结:以上总结了我到目前为止对物流网络(LTN)和LTN组合器的使用情况。我会添加新学到的知识或配置。以下是我想了解/设置的内容: - 为巨型基地区域运输建筑材料的本地化请求。 - 蓝图 - 同时将车站设置为供应站和请求站。 - 验证流体细节是否以相同方式工作。 - 在列车管理器模组上显示截图。 - 更多待定内容。 鸣谢/支持
2026-02-18 16:00:07 发布在
Factorio
说点好听的...
收藏
0
0
