내가 이번 게임하면서 만든 범용 기차물류임

원래는 각 물자간 전용열차를 운용했는데


인터럽트는 복붙이안되서 일일히 스케쥴 세팅하는게 귀찮았기 때문에 [딸각]을 위해 만들었음



이 세팅은 다음과 같은 사이클을 가짐


빈 열차 대기역에서 대기 -> 상차역에서 상차 -> 하차역에서 하차 -> 빈 열차 대기역에서 대기


나는 기차가 하차장에서 대기하는게 기차를 하나 점유하고있기때문에 물동량에 비해 기차가 많이 필요하고 노선에 부담을 준다고 생각해서

모든 상하차역은 1대의 기차만을 허용함


빨강 전선으로 쏠거냐 초록 전선 으로 쏠거냐는 매우 중요하기 때문에 철저히 구분해야함


상/하차역 이름은 [아이템아이콘]상/하차 역 처럼 아이템 아이콘을 쓴 일정한 이름으로 통일해야함

그리고 아이콘을 청사진에 매개변수로 넣으면 설치는 딸각 한번에 끈남


반박하고 싶거나 오류가 있다면

당장 알려줘 나도 수정하게

문자열 저장한거 업데이트 (25/02/02)
https://factoriobin.com/post/0kucs9




1. 대기역 세팅


img 1-1. 빨강 신호 는 상차신호 : 상차역에 물량이 충분하여 기차에 물자를 준비가 되어있다는 신호임


img 1-2. 초록 신호 는 하차신호 : 하차역에 물량 필요하여 물자를 받을 준비가 되어있다는 신호임


오른쪽의 출력신호 세팅은 이 대기역에서 취급할 물자를 필터링하는 세팅. 해당 대기역은 유체대기역이고 출력에 표시 된 유체만 취급함.

다른 유체는 신호를 받아도 기차로 보내지않음.

유체, 비유체 구분을 위해서 필요한 구조


img 1-3. 빨강 신호 초록 신호 가 둘 다 1개 이상의 신호가 있어 상차 - 하차가 가능한 물자신호를 초록선으로 발차신호로 내보내는 구성임.



img. 1-4 대기역 전체구조


img. 1-5

대기역에서 동시 발차를 막기위해 각 대기역마다 틱 신호를 공급해서 신호를 지연시켜 보내야댐

틱제네레이터 또는 래치신호를 만들어 역으로 쏴줌


img. 1-6

각 역은 래치 신호의 일정 값을 신호가 되면 초록전선으로 들어온 발차신호를 기차에 보내게 됨
지금 스샷은 녹은 철을 발차신호로 받고 있음


여기서 각 래치신호 값의 사이는 5~10틱정도 꽤 텀을 두는걸 추천함 원래는 1~3틱이었는데 이정도 틱은 동시발차해버림 (오버부킹)


2. 상/하차역 세팅



img 2-1. 상차역 셋팅


상자에 물자량(버퍼량)을 읽어 빨강신호로 수량비교조합기로 보냄

기차역에서 이 상차역으로 향하는 기차숫자를 C신호로 읽어 초록신호로 수량비교조합기로 보냄


물자량이 일정량이상 (보통 기차에 가득채울 수량)이고 이 기차역에 향하는 기차가 없을때 상차신호를 빨강신호 를 레이더로 보냄


img 2-2~3. 배당기차 신호


이 신호는 상차역이 2개 이상일 때 필요함


상차역이 2개 하차역이 3개 있다고 가정할때 1개의 하차역만 물자를 요청했다고 가정할 때 상차가능역이 2개이므로 2개가 발차하게됨

그런데 1개는 붕떠버리게 됨 이를 막는 신호임


C신호를 읽어 이를 산술 연산 조합기로 -1를 곱해 마이너스 신호를 만들어 초록신호로 레이더로 보냄

그러면 하차역에서 나오는 초록신호와 합쳐지면서 없어지게 됨 하차역에 이미 기차가 배정되었음을 의미함


만약 하차역이 2개라면 하차신호가 1개남아있으므로 기차 1대가 추가로 배정되게 됨




img 2-4. 하차역 구성


img 2-5. 하차신호


물자량이 일정수량 이하면 하차요청신호를 초록신호로 레이더로 보냄


보통 만땅으로 (또는 설정한 물량) 가지고 온 물자를 전부 내릴 수 있는 여유 공간이 있을때 부르는 것을 추천함

또한 하차상자간 물량을 서로 균등하게 하차하도록 방법을 강구해야 스무스하게 돌아감

그게 싫다면 공장가동시간을 약간 손해보더라도 하차역 물자량이 0일때 부르면 됌


img 2-6. 기차배당신호


상차역에서 했다시피 이 하차요청에는 기차가 배당되어 만족되었음을 알리기 위해

기차역에서 C신호를 받아와서 이를 마이너스 1 신호로 변환해서 하차신호를 상쇄시킴



3. 기차 스케쥴 세팅


기차 스케쥴은 쉬움


골뱅이신호 (와일드 카드)신호는 발차신호를 받으면 해당 발차신호로 전부 바뀜


인터럽트는 간섭하지 못하도록 해야함 이 스케쥴을 전부 실행하고 연료를 충당하던 뭘하던 하게끔 만들어야 중간에 꼬이지 않음.

대기역에서 연료를 충전한다면 연료 인터럽트는 필요없음.


기본 정차할 대기역 그리드만 배정해주면 이 기차는 알아서 움직일거임




10시간 이상 굴려봤는데 잘 굴러감


보면 다 다른 물자를 담당하고 있음을 알 수 있음


이렇게 하면 그리드늘릴때 역을 설치만 하면 추가로 스케쥴 조정없이 알아서 해당물자를 날라옴 존나 편함