【Factorio】Nguyên nhân tắc nghẽn tàu hỏa và thiết kế tránh tắc
Khi tàu hỏa dừng liên tục ở giao lộ hay trước nhà ga trong Factorio, nguyên nhân thường rơi vào 3 loại: \"cách đặt tín hiệu\", \"sức chứa giao lộ\" và \"thiếu vùng chờ trước nhà ga\". Với Factorio phiên bản 2.0 và Space Age, nguyên tắc cơ bản của đường sắt đều giống nhau, nên chỉ cần sắp xếp lại những điểm này là có thể tránh được phần lớn các tình huống tắc nghẽn.
【Factorio】Nguyên nhân tắc nghẽn tàu hỏa và thiết kế tránh tắc
Khi tàu hỏa dừng liên tục ở giao lộ hay trước nhà ga, nguyên nhân thường rơi vào 3 loại: "cách đặt tín hiệu", "sức chứa giao lộ" và "thiếu vùng chờ trước nhà ga". Với Factorio phiên bản 2.0 và Space Age, nguyên tắc cơ bản của đường sắt đều giống nhau, nên chỉ cần sắp xếp lại những điểm này là có thể tránh được phần lớn các tình huống tắc nghẽn.
Lần đầu tiên nối kết nhiều mỏ khoáng, tôi đã để dàn tàu chờ ở trước nhà ga tràn ra khỏi nhánh rẽ, làm dừng toàn bộ tuyến. Sau khi lấy đủ vùng chờ theo chiều dài tàu, rồi thay đổi giao lộ phía trước thành tín hiệu liên động, dòng chảy lập tức quay trở lại.
Bài viết này sẽ sắp xếp rõ ràng cách sử dụng tín hiệu thông thường và tín hiệu liên động, rồi xem xét khi nào nên chọn đơn tuyến, lưỡng tuyến, vòng tròn hay bãi chứa. Mục đích không phải sửa tắc nghẽn sau khi xảy ra, mà là thiết kế từ đầu để tránh tắc nghẽn ngay từ khâu thiết kế.
Phiên bản và kiến thức cần biết trước
Phạm vi bài viết
Bài viết này dành cho Factorio phiên bản 2.0 và Space Age. Space Age là bộ mở rộng trả phí, được phát hành vào ngày 21 tháng 10 năm 2024 theo Factorio Wiki về Space Age|https://wiki.factorio.com/Space_Age/vi.
Điều quan trọng nhất là: nguyên tắc cơ bản để tránh tắc nghẽn tàu hỏa gần như giống nhau giữa phiên bản 2.0 và Space Age. Cách đặt tín hiệu liên động trước giao lộ, rồi để tàu chờ ở vị trí an toàn, là nguyên tắc vẫn áp dụng được ở cả hai phiên bản. Khi tôi nâng cấp thế giới từ v2.0 lên Space Age, các nguyên tắc này vẫn có tác dụng mạnh mẽ.
Mặt khác, Space Age làm cho quy mô vận chuyển toàn bộ nhà máy lớn hơn, nên dòng tàu hỏa qua mạng lưới cũng tăng. Cách nói đúng hơn là: nếu bạn làm thiếu cẩn thận, tắc nghẽn sẽ trở nên rõ ràng hơn, chứ không phải tín hiệu thay đổi.

Space Age
Factorio
wiki.factorio.comPhạm vi và điều kiện tiên quyết của bài viết
Phần tiếp theo tập trung vào các biện pháp tránh tắc nghẽn trong hệ thống đường sắt. Cụ thể, bài viết đề cập đến: giao lộ, nhánh rẽ, đoạn thay đổi chiều đơn tuyến, lưỡng tuyến, vùng chờ trước nhà ga, vòng tròn, và sử dụng train limit để kiểm soát dòng vào.
Bài viết không đi sâu vào chi tiết vận chuyển liên hành tinh hay mạng lưới ngoài không gian trong Space Age. Vấn đề cốt lõi của tắc nghẽn là: tàu nên dừng ở đâu và không được dừng ở đâu, và cách sắp xếp lại đó trên đường ray.
Tắc nghẽn (deadlock) ở đây là tình trạng mà các tàu hỏa chờ lẫn nhau mà không thể chuyển động, và chỉ có thể giải quyết bằng cách dịch chuyển thủ công. Chỉ với 2 đoàn tàu cũng có thể xảy ra. Có khi trông chỉ như "hơi tắc", nhưng thực tế là xung đột trong đặt phòng (route reservation) đã dẫn đến dừng vĩnh viễn.
💡 Tip
Bài viết này phân biệt giữa "dừng do lỗi tín hiệu" và "tắc mãn tính do thiếu dung lượng". Ngay cả khi tín hiệu đúng, giao lộ quá nhỏ hay vùng chờ quá ngắn cũng gây tắc. Khi phân biệt được hai loại này, bạn sẽ xác định nguyên nhân nhanh hơn nhiều.
Từ điển thuật ngữ mini
Tín hiệu thông thường cho phép tàu tiến vào khối tiếp theo nếu nó trống. Chúng thích hợp cho đoạn thẳng hay những nơi đường đi đã rõ ràng. Tuy nhiên, nếu đặt chúng ngay trước giao lộ hay nhánh rẽ, tàu dễ lao vào giữa giao lộ rồi dừng lại.
Tín hiệu liên động không chỉ nhìn khối tiếp theo, mà nhìn toàn bộ đường đi cho đến tín hiệu thông thường tiếp theo hay nhà ga. Chúng tuân theo "không vào nếu không chắc chắn có thể thoát ra". Do đó, tín hiệu liên động thường được đặt ở lối vào của giao lộ hay nhánh rẽ.
Khối (block) là đoạn đường được tách bởi tín hiệu. Mỗi khối chỉ có thể chứa 1 đoàn tàu. Tàu di chuyển bằng cách liên tục chiếm dụng và giải phóng khối, nên khi xem xét tắc nghẽn, cách bạn chia khối là rất quan trọng. Thẳng thắn mà nói, tàu tắc thường là do cách chia khối chứ không phải do chính tàu.
Chỉ hiểu 3 khái niệm này, bạn đã thấy luật cơ bản "tín hiệu liên động trước giao lộ, tín hiệu thông thường sau giao lộ" trở nên tự nhiên.
Bài viết này chuyên sâu về tránh tắc nghẽn, nhưng hiểu rõ toàn bộ hệ thống đường sắt sẽ giúp học tập tốt hơn. Đặc biệt là cơ bản lưỡng tuyến, cách đặt nhà ga, cách thiết kế vùng chờ, và vai trò của tín hiệu - mọi điều này cần xem trong bối cảnh toàn bộ thiết kế mạng, chứ không chỉ riêng phần tránh tắc nghẽn.
Trong thực tế, tắc nghẽn thường đến từ sự kết hợp của "giao lộ", "trước nhà ga" và "dung lượng tuyến chính", không phải từ một nguyên nhân đơn lẻ. Vì vậy, các mục tiếp theo sẽ không chỉ sửa một chỗ, mà là xem toàn bộ dòng chảy của mạng lưới để xác định nơi nên dừng và nơi cần duy trì chuyển động.
Tắc nghẽn là gì? Những điều quan trọng cần biết
Định nghĩa tắc nghẽn và khác biệt với tắc đơn thuần
Tắc nghẽn trong Factorio là tình trạng mà các tàu hỏa chờ lẫn nhau, chỉ có thể giải quyết bằng cách dịch chuyển thủ công, và không tự giải quyết theo thời gian. Tutorial về tín hiệu đường sắt|https://wiki.factorio.com/Tutorial:Train_signals/vi chỉ ra rằng cơn tắc nghẽn có thể xảy ra với chỉ 2 đoàn tàu.
Tắc đơn thuần (congestion) là khi dòng chảy chậm nhưng vẫn tiến, chỉ có độ trễ. Nó khó chịu nhưng về lý thuyết sẽ tự giải quyết theo thời gian. Khác biệt: tắc đơn thuần là "chậm nhưng tiến", tắc nghẽn là "đường dẫn bị xung đột nên không thể tiến".
Tôi đã mắc lỗi này từ đầu: tại sao với chỉ 2 đoàn tàu lại tắc? Nguyên nhân rất đơn giản: tín hiệu được đặt sao cho tàu có thể dừng bên trong giao lộ. Vấn đề là về nơi có thể dừng, không phải về số lượng tàu.

Tutorial về tín hiệu
Factorio
wiki.factorio.com3 mẫu tắc nghẽn phổ biến
Tắc nghẽn trong thực tế rơi vào 3 loại, và tất cả đều bắt nguồn từ cho phép tàu dừng ở nơi không nên dừng.
Loại 1: Dừng trong giao lộ. Nếu đặt tín hiệu thông thường trước giao lộ, tàu sẽ "vào nếu khối tiếp theo trống", rồi dừng bên trong khi hướng khác tắc. Đây là mẫu phổ biến nhất.
Loại 2: Dừng đối diện trên đơn tuyến. Khi đơn tuyến thiếu vùng thay đổi chiều, hai tàu từ hai hướng gặp nhau và dừng vĩnh viễn. Đơn tuyến rẻ nhưng cần tín hiệu rõ ràng.
Loại 3: Dàn tàu chờ ở nhà ga tràn sang tuyến chính. Khi vùng chờ quá ngắn, tàu chờ sẽ chiếm dụng nhánh rẽ hay giao lộ, làm toàn bộ hệ thống dừng.
Ba loại này có gốc chung: không xác định được nơi tàu được dừng. Giải pháp là làm rõ: tàu chỉ được dừng ở những nơi được quy định.
💡 Tip
Để tránh tắc nghẽn, hãy hạn chế nơi tàu có thể dừng, chứ không phải giảm số lượng tàu. Tắc nghẽn xảy ra với 2 tàu cũng như 20 tàu nếu tín hiệu sai.
Cách nhận biết ở ngoài trực tiếp
Khi tắc, nhìn vào nơi đầu tàu dừng lại, chứ không phải toàn bộ dàn.
Nhìn vào nơi tàu dừng giữa hai tín hiệu. Nếu dừng trong giao lộ/nhánh rẽ/sau hợp nhất, có khả năng tín hiệu vào quá sai. Nếu dừng từ trước giao lộ một cách trật tự, tín hiệu có lẽ đúng nhưng dung lượng không đủ.
Dừng trước hay trong giao lộ là khác biệt lớn. Dừng trước = chính xác đủ. Dừng trong = sẽ chiếm dụng các hướng khác.
Cũng xem dãi chờ có tràn sang nhánh hay tuyến chính không. Nếu tàu chờ ở nhà ga mà dàn kéo dài đến nhánh rẽ, vấn đề là vùng chờ không đủ dài.
Trong các trường hợp tôi gặp, tắc nghẽn thường do "tàu dừng sai nơi" hay "dàn chờ chiếm dụng nhánh rẽ", chứ ít khi là do mạng lưới quá nhỏ. Quan sát nơi dừng chính xác giúp xác định nguyên nhân nhanh hơn.
Nguyên nhân 1: Lỗi tín hiệu
Khác biệt giữa tín hiệu thông thường và liên động
Tín hiệu thông thường chỉ nhìn khối tiếp theo. Nếu nó trống, tàu được phép tiến, dù khối sau đó tắc hay không.
Tín hiệu liên động nhìn toàn bộ đường đi đến tín hiệu thông thường hoặc nhà ga tiếp theo. Nó chỉ cho phép tiến nếu chắc chắn có thể thoát ra.
Khác biệt này lớn lao ở giao lộ. Tín hiệu thông thường chỉ kích hoạt nếu "khối tiếp theo trống", nên tàu dễ lao vào giao lộ rồi dừng lại trong đó. Tín hiệu liên động hỏi "có thể thoát ra không?" nên ít khi để tàu mắc kẹt.
Tôi cũng lúc ban đầu bối rối: "Có tín hiệu mà tại sao vẫn tắc?" Vấn đề là có tín hiệu ≠ dừng ở đúng nơi.
Luật cơ bản giao lộ/nhánh rẽ
Luật rất đơn giản: Vào giao lộ bằng tín hiệu liên động, ra bằng tín hiệu thông thường.
Lý do: lối vào cần kiểm tra "có thể thoát ra không", lối ra chỉ cần chia khối thông thường để quay lại vận hành bình thường.
Cách tiếp cận này khiến tàu chờ trước giao lộ, không trong giao lộ. Trong giao lộ là không gian thông qua, không phải nơi chờ.
Theo Tutorial tín hiệu|https://wiki.factorio.com/Tutorial:Train_signals/vi, cơ bản là "chain in, rail out" - đó là cách xây dựng an toàn. Tôi cũng từng áp dụng điều này cho tất cả giao lộ, và lập tức dòng chảy tốt hơn.
💡 Tip
Khi giao lộ tắc, hãy hỏi: "Tàu này có quyền vào không?" Nếu tín hiệu vào là liên động, câu trả lời sẽ chính xác hơn.
Khi nào cũng cần tín hiệu liên động ở lối ra?
Cơ bản là lối ra là tín hiệu thông thường, nhưng có một trường hợp ngoại lệ.
Nếu lối ra quá ngắn - tức là ngay sau lối ra có giao lộ/hợp nhất/nhà ga khác mà không đủ chỗ chứa tàu - thì lối ra cũng nên liên động.
Lý do: tàu vừa rời giao lộ nhưng chưa thoát hoàn toàn. Nếu tín hiệu ra là thông thường, tàu sẽ được phép ra (đầu rời) trong khi đuôi còn trong giao lộ. Mà nó chẳng giúp được gì.
Giải pháp: làm tín hiệu ra cũng liên động, để tàu chỉ được phép ra khi hoàn toàn ra khỏi giao lộ.
Tôi gặp trường hợp này ở nhà ga: lối ra quá sát lối vào của giao lộ tiếp theo. Đổi tín hiệu ra từ thường sang liên động, dòng chảy ngay lập tức bình thường.
💡 Tip
"Chain out" (tín hiệu liên động ở lối ra) không phải lúc nào cũng cần, nhưng nếu lối ra quá sát giao lộ tiếp theo, nó cực kỳ hữu ích.
Sai sót phổ biến và cách sửa
Sai sót phổ biến nhất: toàn bộ lối vào giao lộ là tín hiệu thông thường.
Cách xây dựng: từng bước sao chép lối gào từ đơn tuyến, nên tâm lý "nhiều tín hiệu = an toàn" chi phối. Nhưng ở giao lộ lại ngược lại.
Cách sửa nhanh:
- Xem tín hiệu trước giao lộ - nó là loại gì?
- Nếu là thông thường, đổi thành liên động
- Sau giao lộ, đặt tín hiệu thông thường
- Nếu lối ra quá ngắn, làm nó cũng liên động
- Tàu bây giờ chờ trước giao lộ, không trong
Điều quan trọng: không phải tăng số tín hiệu, mà dịch chuyển nơi dừng từ trong ra ngoài.
Tôi cũng thử rồi: chỉ cần đổi tín hiệu vào thành liên động, dòng chảy lập tức ổn định mà không cần chỉnh gì khác.
Hình ảnh minh họa
Hình nên cho thấy sự khác biệt rõ ràng: thông thường dẫn tàu vào giữa giao lộ, liên động để tàu chờ ngoài.
Giải thích đơn giản: "Tín hiệu thông thường: 'khối tiếp theo trống? Vào!' → tàu vô giữa rồi tắc. Tín hiệu liên động: 'Thoát ra được? Vào' → tàu chờ ngoài."
Tín hiệu liên động không phải "thông minh hơn", mà tiêu chuẩn để giao lộ hoạt động đúng cách.
Nguyên nhân 2: Dung lượng giao lộ/vòng tròn
Kích thước vòng tròn và số lượng tàu
Vòng tròn (roundabout) trông gọn gàng nên dễ lôi cuốn. Nhưng tín hiệu đúng không đảm bảo không tắc nếu vòng quá nhỏ.
Vấn đề: nhiều hướng cộng nên tàu dễ mắc kẹt trong vòng. Một khi tàu nằm trong vòng chờ lối ra, tàu tiếp theo không thể vào, rồi cách trước lỗi vào bắt đầu xếp hàng.
Thường cảnh báo: vòng tròn nhỏ + tàu 1-4-0 = tàu sẽ "tự cản lối của chính nó" bên trong vòng.
Cộng đồng hay nói: "vòng quá nhỏ với tàu dài = dễ tắc". Tôi cũng từng xây vòng nhỏ xứ sử dụng các tàu dài hơn, rồi toàn bộ dừng.
Nguy hiểm của vòng nhỏ:
- Tàu vào vòng
- Nhưng bên trong không có chỗ, nên tàu phía sau không thể vào
- Tàu đầu tiên từ từ tìm lối ra
- Dòng chảy mất đi vì vòng quá chật
Vòng tròn là công cụ hay, nhưng quy mô không thể cắt xén.
Chiến lược "chỉ 1 tàu vào cùng lúc"
Để an toàn, có thể chỉ cho phép 1 tàu vào vòng cùng lúc.
Cách: dùng tín hiệu liên động ở lối vào, chỉ cho tàu vào khi có chỗ thoát ra.
Ưu điểm: vòng trở nên "dùng để thông qua", chứ không "chờ ở trong".
Nhược điểm: tàu sẽ chờ ở trước vòng chứ không trong. Điều này có thể làm xếp hàng dài trước vòng, rồi lại tắc ở chỗ khác.
Tôi đã dùng cách này, nhưng rồi nhận ra: vòng an toàn nhưng chỗ chờ chuyển sang tuyến chính hay nhà ga trước nó. Vấn đề không được giải quyết, chỉ dịch chuyển.
Nếu tăng xếp hàng, tăng bãi chứa trước nhà ga
Khi kiểm soát lối vào vòng chặt hơn, tàu chờ trước nó. Để không tắc tuyến chính, cần vùng chờ trước nhà ga (stacker/staging area).
Ý tưởng: nếu tàu không thể vào, hãy để nó chờ ở vùng chờ, không chờ ở tuyến chính.
Vùng chờ tốt có nghĩa là tuyến chính sạch. Vòng có thể kiểm soát chặt, nhưng người dùng phải chuẩn bị nơi chờ ở ngoài.
Tôi thường chọn: tăng vòng 1 chút, kiểm soát lối vào rõ ràng, và chuẩn bị vùng chờ trước. Kết quả: vòng không quá khác biệt nhưng mạng lưới ổn định hơn.
Hình ảnh minh họa
"Vòng quá nhỏ" nên cho thấy: tàu mắc kẹt, lối vào bắt đầu xếp hàng, tín hiệu vào chuyển thành đỏ.
"Vòng cân đối" nên cho thấy: các lối vào được kiểm soát, tàu di chuyển mịn.
Điểm chính: giao lộ không phải cứ lớn là tốt, mà cần cân bằng giữa kích thước, số lượng tàu và tín hiệu lối vào.
Nếu vòng tròn liên tục tắc, hãy xem: vòng có đủ lớn không, lối vào có liên động không, vùng chờ trước có đủ không. Thường là vùng chờ trước là vấn đề.
Nguyên nhân 3: Thiếu vùng chờ trước nhà ga
Vai trò của bãi chứa (stacker)
Bãi chứa là vùng chờ trước nhà ga, giúp tàu không phải chờ ở tuyến chính.
Vai trò: tàu chờ ở bãi chứa, không chờ ở tuyến chính.
Tại sao quan trọng: nếu tàu đầu tiên chờ ở tuyến chính vì nhà ga tắc, tàu thứ hai sẽ chờ ở nhánh rẽ, tàu thứ ba ở giao lộ... và toàn bộ mạng lưới dừng.
Mục đích: bảo vệ tuyến chính.
RinSeo
Factorio 2,000時間超。100駅以上の列車ネットワーク運用実績と Death World マラソンクリアの経験から、物流・防衛の実践ノウハウをお届けします。
Bài viết liên quan
Factorio Lịch trình tàu và tự động hóa【Tương thích 2.0】
Factorio Lịch trình tàu và tự động hóa【Tương thích 2.0】
Factorio Tín hiệu đường sắt và Xây dựng Mạng lưới
Factorio Tín hiệu đường sắt và Xây dựng Mạng lưới
Factorio tín hiệu tàu cơ bản|thường/liên động và khúc
Factorio tín hiệu tàu cơ bản|thường/liên động và khúc
【Factorio】Hướng dẫn bắt đầu với Logistics Robot|Cấu hình tối thiểu và thiết kế bố trí