누가 회로 알려달래서 써봄

다 만져볼 수 있게 블프로도 만들어놨어

https://factoriobin.com/post/sau085


대부분 무한상자나 무한파이프가 들어 있어서 에디터 모드에서 봐야 돼 


시연용으로 최대한 간단하게 구성한 거라 제대로 쓰려면 약간 변경이 필요함


1. 중유&경유 열분해



중유나 경유가 일정량(여기서는 20,000)을 초과하면 분해공장을 가동함.

같은 색 전선으로 연결하면 신호는 알아서 합쳐지니까 탱크 하나씩이랑 열분해용 화학공장들을 쭉 잇기만 하면 됨.

고급 원유 처리의 산물을 모두 가스로 바꿀 수 있는 정유공장/중유분해/경유분해 공장 비율은 20:5:17이니까 대충 맞춰줘야 정유공장이 놀지 않음.


공장이 연구를 못 따라가면 가스만 남아서 정유가 멈추는 경우도 있을 텐데, 개인적으론 고체연료 만들어서 태우는 것보단 고급회로 계속 찍어서 몇 박스 저장해 두는 걸 추천함. 나중에 쓸 데 많으니깐



2. 벨트 양면 골고루 쓰기


벨트가 한쪽만 비는 걸 막아줌. 

이게 별 문제는 아닌데 제일 자주 나오는 질문이고 해결도 쉬워서 넣었음







벨트 한 면에는 아이템이 4개가 들어가기 때문에, 2개 이하일 때만 넣게 하면 입력 벨트의 양면을 동시에 작동시킬 수 있음.

특정 신호가 아니라 빨간색 '모두'를 조건으로 써서 아이템 종류에 무관하게 적용 가능함


참고할 만한 글: https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=87963

응용심화: https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=81833




3. 핵전지 투입 제어


원자로 연료는 워낙 싸서 굳이 아낄 필요가 없었지만, DLC에서의 우주나 타 행성에서는 그렇지 않음.





원자로의 온도가 낮으면서, 아무것도 들어있지 않을 때만 연료를 투입시켜서 낭비를 막음.

시스템이 커질수록 기준점이 될 온도도 높여야 하니까 유의(사실 저것도 700도쯤으로 해야됨)


조합기 없이 해보기: https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=61764




4. 상하차 상자 밸런싱


이제부터는 조금 복잡해짐


화물차에 투입기 6개(혹은 12개)를 붙이기 위해 밸런서를 쓸 필요가 없음.



상자와 투입기가 몇 개든 산술조합기 하나로 상자를 고르게 채우는 게 가능함.



작동 로직:

1. 전체 내용물을 (-상자의 개수)로 나눈 음수 평균값이 각 투입기에 전달됨 

2. 투입기에는 자기 앞 상자의 내용물 신호도 전달됨.

3. 투입기에서는 1의 음수값과 2의 양수값이 합산됨.

4. 합산된 신호가 양수면 자기 앞 상자에 내용물이 평균보다 많은 상태임. 상차역이라면 투입기는 작동을 멈춰야 하고, 하차라면 작동해서 상자를 비워내야함.

5. 합산된 신호가 음수라면 자기 앞 상자가 평균보다 덜 찬 상태임. 상차라면 투입기가 작동해서 채워넣어야 하고, 하차일 시에는 작동하면 안 됨.

6. 작동 기준점이 +-0일 필요는 없음. 완벽한 밸런싱은 큰 의미가 없기 때문에 투입기 손 크기의 1~2배(여기에선 16) 정도 여유를 주어 스루풋을 높임. 



전선 연결. 상자와 투입기는 빨간 선으로만 이어져 있음.



5. SR래치


조건 만족 시에 특정 신호를 출력하고, 별도의 리셋 조건이 충족되기 전까지 출력을 계속 유지하는 회로임.




축전지 잔량이 20% 이하일 때 증기기관과 연결된 스위치가 켜지고, 80%까지 켜진 상태를 유지하는 설정

조합기 출력을 입력으로 되먹여 번개신호를 유지함



움짤 용량 줄이려고 20-80%가 아니라 40-70%에서 돌게 했음. (2배속)



6. 타이머/카운터


신호 유지의 대표적인 응용.




일정 주기로 조명을 켜고 끄는 중



조합기는 자신의 출력을 입력으로 받고 거기에 추가로 1의 신호를 더해 출력함.

이 과정이 매 틱 반복되기 때문에 출력 신호는 틱당 1씩 증가하다가, 조건을 위배하면 0으로 돌아가는 과정을 반복함.



조합기 UI (0.25배속)

작동 주기는 설정한 숫자+1틱이 됨. 

펌프에 달아서 우주선 추진기 연료 투입을 조절하는 게 가장 대표적인 용례고, 그 외에도 무궁무진한 활용이 가능함


여기에서 증가/감소가 외부 신호로 이루어지게 하면 무언가를 기억하는 메모리셀로 쓸 수도 있음




7. 부족한거 집어오기


우주팩 위성을 통으로 올림




작동 로직:

1. 좌하단 일정신호조합기는 각 소행성에 대해 -(원하는 소행성 개수)-2^31을 출력함. 

2. 팩토리오의 신호는 32비트 정수라서 실제 출력은 오버플로우된 2^31-(원하는 소행성 개수)가 나옴. 

3. 여기다 허브에 저장된 소행성 개수를 더한 결과를 수집기 필터로 지정.

4. 저장된 소행성이 원하는 양보다 많아지면 다시 오버플로우가 일어나 신호가 음수로 변함

5. 수집기는 입력된 신호가 양수일 때만 필터를 지정할 수 있음. 따라서 충분히 저장된 소행성 타입은 수집기 필터에서 사라짐.


우하단 일정신호조합기도 같은 방식이고, 분쇄기에 레시피를 할당하는 역할임. 소행성 분쇄 결과물 신호를 분쇄기에 입력하면 해당 분쇄 레시피를 활성화할 수 있음. 결과물이 아니라 소행성 신호만으로도 분쇄 레시피가 켜지기 때문에, 허브에서 나오는 소행성 신호를 막기 위한 음수 신호도 출력하도록 함.


오버플로우 너무 어려워요: https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=80537

이상적인 예시는 아니지만, 아무튼 오버플로우 안 쓰려면 비교조합기가 추가로 필요함




8. 수집기 내부 용량 활용하기


수집기는 일반 품질에서도 39(+5)칸이나 되는 저장공간을 가짐. 2개만 있어도 허브보다 훨씬 큰 용량이라 소행성 저장 공간이 부족하다면 꼭 활용해야 하는 요소임.



<사진>

우주팩 위성에는 필요없는 기능이지만 넣어봄

하얀색 박스는 새로운 구성 요소들. 각 수집기별로 조합기 하나씩이 필요함.



이전 수집기 필터 설정용 일정신호조합기는 이제 수집기와 연결된 투입기 필터를 제어함. 수집기는 허브가 아니라 각자의 저장공간에 부족한 소행성을 집어오게 됨. 

5 미만인 것만 필터로 등록되고, 일정신호조합기에는 각 소행성 신호가 -1/-1/-11로 출력되니까 수집기는 각각 최대 6/6/16개의 소행성을 저장함. 숫자만 바꾸면 저장량을 늘리거나 비율을 자유롭게 변경할 수 있음



수집기 회로전선 구성

수집기의 필터 설정과 내용물 읽기 기능을 동시에 활용하려면 2개의 전선이 연결되어야 함. 수집기가 자기 내용물을 그대로 필터에 적용하는 것에 대한 방지책이 걸려 있어서, 일정신호조합기 하나만으론 해당 기능을 구현할 수가 없음



9. 묶투 항상 꽉채우기/안막히기

이건 좀 간단함




재활용기를 벨트에 바로 붙이면 제대로 쌓아주지 않아 묶투가 필요할 수 있는데, 얘가 하염없이 짝을 기다리는 걸 막아줌.

15 이하인 아이템 신호는 모두 상쇄되기 떄문에 16개 이상인 아이템만 투입기 필터에 올라감



반대도 가능함. 인풋이 지저분해도 묶투가 멈추지 않게 할 수 있음.



들고 있던 게 썩어서 고장나는 걸 막거나, 소행성 분쇄 결과물을 묶투 하나로 빼내면서 쌓기 효과도 적당히 챙기고 싶은 경우에 쓸 수 있음.




묶투를 아무거나(회로로 제어할 생각이 없는 물건)랑 회로선으로 이으면 됨. 자기가 집는 걸 제외 필터에 올리기 때문에 잡는 즉시 내려놓음.




10. 레시피 스위칭


10-1. 조립기 하나로 물류상자 5종 만들기




부족한 것만 골라 담는 회로랑 같은 원리임. 빠른 시연을 위해 10개씩만 만들게 했어

레시피 전환 때 출력물 상자에 끼어들어간 재료가 조립기에 레시피 신호로 들어가는 것도 막아 줘야 해


(4배속)



10-2. 벨트 다이소


SR래치 얹어보기




왼쪽은 철판과 톱니바퀴를 만드는 주조소고, 오른쪽은 벨트 3종을 담당함.

상자에 철판이 100개 미만으로 떨어지면 500개가 될 때까지 만들고(톱니도 동일함), 각 색의 벨트가 10개 미만이 되면 100개가 될 때까지 만들게 했음. 한 번에 많이 만들면 주조소 생산 보너스도 덜 놓치고 레시피 전환 시의 다운타임도 줄어드니까 실전에선 저것보다 숫자를 크게 하는 걸 추천함.


레시피가 바뀌면 출력물 상자에 재료가 혼입되는데, 이걸 처리하는 동안엔 메인 재료 투입기가 돌지 않게 하는 기능도 넣음. 여기선 벨트 3종에 재료 2종이라 투입기 필터 개수 5개를 초과하지 않지만, 불카누스에서 초록벨트까지 만든다면 쓸데없는 신호 억제용 일정신호조합기가 필요해



벨트 여러 종류를 상자 하나에 넣기 때문에 저장공간이 부족하다고 느낄 수 있음. 완충상자나 부족한 거 집기 회로를 응용해서 따로 빼두면 됨




10-3. 품질작


각 품질별로 조립기를 할당하면 고품질용 공장은 대부분의 시간 동안 놀게 되는데, 이건 품질모듈이 모자란 초반엔 꽤 큰 기회비용임. 최고 품질의 모듈을 한 기계에 몰아주고 여러 레시피를 처리할 수 있게 하면 고품질 아이템을 더 빨리 띄울 수 있음.



전자기공장의 생산성 보너스를 받기 위해 2회분 재료를 모으고, 2회 제작 직후에 나오는 제작 완료 신호 2(생산 보너스 때문)를 받으면 그 제작법을 꺼 버리는 형태임.

일반 품질 돌리다 고품질 레시피 조건이 만족되면 그 레시피로 넘어가는 거라 일반에선 생산보너스를 놓친다는 문제가 있음. 


조립기계로 품질작할때는 1회분 재료만 모아서 제작완료 1만 받고 끄게 하면 됨


(16배속)


발전형: https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=85145

각 품질 레시피를 필요한 타이밍에만 넣어 주는 방식. 일반 품질도 생산성 보너스를 항상 받을 수 있음.

물류봇 호출이 쓸데없이 많다는 단점이 있긴 한데 품질작할 때면 큰 문제도 아니고, 약간만 구조를 바꿔도 해결되는 거라 이쪽이 훨씬 나음.



이제 회로 어려워서 못하겠다는 나쁜말 ㄴㄴ