서킷 네트워크에 대해서 막연히 공포를 가지는 사람들이 많은데,


이런저런 조합예를 들어주는것도 좋지만 가장 기본적인 것들부터 말을 해줘야 한다는걸 깨달음.




1. 전선의 종류는 두종류. 녹색선과 빨간선. 


두 종류의 전선은 같은 곳에 연결되어 있다고 해서 직접적으로 신호를 교환하지 않음.


이것을 이용해서 서로 다른 입력과 정보를 따로 관리할 수 있다.


단, 출력을 내는 곳에 같이 연결되어 있다면 같은 출력을 전달하겠지.




2. 녹색선과 빨간선이 짧다면 전신주에 연결해서 길이를 연장할 수 있음.


이 때 연결가능한 길이는 해당 전신주에 닿을 수 있는 거리와 똑같음. 대형 - 대형이면 30칸정도씩 된단거지.


같은 전신주에 연결되어 있는 같은 색의 선 끼리는 정보를 전부 공유하고 (그래야 전달을 하지)


같은 전신주에 연결되어 있다고 해도 색이 다르면 정보를 공유하지 않음.


그래서 나같은 경우는 철길을 깔면서 대형 전신주에 빨간선을 연결해서 철로를 통해 전기와 빨간신호를 전달할 수 있게 구성해둠.


녹색신호는 일부러 연결 안해서 로컬망에 쓰는거지. 상대적으로 빨간색은 글로벌망 되는거고.




3. 신호 조합.


기본적으로 신호는 신호의 종류와 그 크기로 전달한다.


그리고 한 지점에 들어오는 신호의 종류가 동일하다면 그 크기는 전부 합산된다.


예를 들어 펌프에 빨간선으로 신호 A가 크기 10으로 들어오고, 녹색선으로 신호 A가 크기 20으로 들어온다면


펌프에 입력되는건 신호 A의 크기 30가 됨. 




4. 논리회로


산술연산 조합기에 AND나 OR 같은게 있긴 하지만, 3번에서 설명한걸 가지고 간단한 논리회로는 사용할 수 있음.


예를 들어 수량비교 조합기를 이용하여 특정한 조건을 만족했을때 1이라는 크기를 가진 신호가 나오게 해보자.


그 다음 그 수량비교 조합기를 실제로 작동을 제어할 물건에 직접 연결한다. 단, 모든 신호의 종류는 동일해야 됨.


OR 회로의 경우 연결된 조합기 중 하나만이라도 신호가 들어오면 작동해야 하니 작동 조건을 1로 설정.


AND 회로의 경우 연결된 조합기 전체가 켜져야 하니 수량비교 조합기 전체의 갯수만큼 작동조건을 설정.


이를 응용하면 신호 3개중 2개만 들어와도 작동하게 한다던가 하는게 가능하지. 




5. 조합기의 이용


그러면 산술연산 조합기는 어떤때 쓰느냐. 직접 사칙연산을 해야 할 때 쓴다. 


덧셈, 뺄셈, 나눗셈, 곱셈, 나머지 그리고 다른 두 종류의 신호에 대해서 논리연산을 해야 할 때랑 신호의 크기를 유지하면서 신호의 종류를 바꿀때 사용한다.


그래도 직접적으로 사용하는 것은 수량비교 조합기가 압도적으로 많다. 


특정 신호의 크기를 측정할때 = 상자나 탱크에 저장된 아이템의 수량을 측정할때, 두 신호의 크기를 비교해서 작업할때 사용하는데,


저 두 신호의 크기를 비교한다는게 상당히 강력한 기능임. 그건 잠깐 뒤에 몇마디 더 하기로 하고,


일정신호 조합기는 특정한 신호를 특정한 크기로 지속적으로 내보낸다.




6. 팩토리오의 1초는 60틱.


뭔소리냐면, 산술연산 조합기나 수량비교 조합기 등이 초당 60번 연산한다는 말임.


그리고 그 연산을 진행하는 횟수만큼 신호가 1/60초씩 지연된다는 이야기.


이 초당 60틱이라는걸 이용해서 시계를 만들 수도 있다. 말 그대로 틱을 잘 세서 60틱이 될때마다 1초를 세면 되는 이야기.


그런데 방금 말했듯이 연산을 진행할때마다 1/60초씩 딜레이 되니까, 


시계 용도로 구성을 할 때에는 동일한 결과물을 내되 그 딜레아기 최소화되게 잘 구성해야 됨. 




7. 공장의 작동을 제어할 거라면 원료 공급을 막아라.


전원 스위치라는 물건이 있고, 이것 또한 공장의 제어를 하는데 사용할 수 있지만, 공장의 제어에 사용하기에는 알맞지 않음.


일단 전기선의 특성상, 근처에 전봇대 하나 잘못 세우는것 만으로 굳이굳이 끊어놓은 전기 그리드가 다시 하나로 합쳐지는게 비일비재하고,


차단되는 그리드에 연결되어 거미줄처럼 연결되어 있던 다른 공장이 얻어걸리는 식으로 전기가 차단되는 경우도 있지.


그런 의미에서 특정 조건을 만족할 경우에만 공장을 가동시키거나 공장의 가동을 정지시키고 싶다면 원료를 차단하는게 속편함.


투입기, 펌프, 벨트에다가 직접 녹색선이나 빨간선을 연결해서 조건을 충족할때만 가동/정지를 시키면 되니까.


그리고 원료가 여러종류가 들어간다면 그 중 한종류를 막아버리는 것 만으로 가동 정지에는 충분하니까 정지시켜버리기도 좋지.


특히 공장이 커지면서 여러 조립기가 원료 공급 한 라인에 물려있다면 그 공급라인 하나 끊어서 조립기 전체를 정지시킬 수 있으니까.


단, 이 방식은 제어의 즉응성이 떨어짐. 작동을 정지시켜도 벨트나 파이프에 남아있는 물건이 소진될때까지 계속 돌아가고,


꺼져있던 공급을 다시 켠다면 벨트랑 파이프에 먼저 공급해야 하고, 여러단계를 거친 가공이라면 그 단계를 다 거칠때까지 시간이 들어가니까.




8. 그럼 전원스위치는 언제 쓰느냐.


전원스위치의 장점은 반응이 칼같이 빠르다는 점임.


공장을 제어할때는 이 장점이 그렇게 티가 나진 않지만, 전원스위치라는 이름대로 전기를 공급할때는 이 장점이 아주 빛을 발함.


예를 들어 원자력 발전으로 기저부하를 담당하고, 평시에는 원전만 돌리다가, 


순간적으로 큰 부하가 걸리면 증기발전을 투입한다고 해보자.


이때 제어를 석탄 공급으로 발전기를 제어하려고 들면 전기는 바닥을 치고있는데 이제서야 느긋하게 석탄 투입해서


벨트 한참 가로질러가서, 증기발전기에 석탄을 집어넣고, 다시 물을 끓인다음에 그 온도가 올라간 증기가 나와야 발전을 시작한다.


그리고 부하가 해결된 후에도 벨트에 가득 찬 석탄을 다 태울때까지 낭비를 하게 되는거지.


이럴때는 석탄투입을 제어하는게 아니라 전원 스위치로 아예 전력망을 연결시키거나 차단하는 방법을 써야 한다.


증기발전의 특징이 부하에 맞추어 발전량을 순식간에 조절한다는 점이고, 부하가 없으면 증기등을 전혀 소모하지 않는다는게 특징이지.


그러니 세심하게 메인 전력망이랑 발전소 전력망을 구분하고 그 사이를 전원스위치로 연결하면 되는 구조임.


보통 저 전력소모가 감당이 되냐 마냐 하는 기준을 축전지를 이용해서 하니까, 축전지의 전기 저장량을 측정해서 일정 이하로 내려가면 전기가 부족하다고 판단하게 됨




9. 오래걸렸다. 대망의 SR 래치.


배터리 저장량 조건으로 단순하게 전원스위치를 작동시켜보면 깨닫게 되는게 있을거야.


조건을 만족해서 발전소를 켜자마자 다음틱에 조건이 해제되고, 그 다음틱에 다시 조건을 만족하고 하는게 반복되어서


엄청난 속도로 켜짐과 꺼짐을 반복하게 된다. 이를 해결하기 위해 필요한게 SR래치임.


SR래치가 뭐냐 하면 가장 마지막에 들어온 신호의 상태를 기억하고 유지하는 형태의 신호기임.


녹색 신호를 가동신호 S(Set)라고 하고, 빨간 신호를 정지신호 R(Reset)이라고 한다. 


S신호가 들어오면 가동이 설정되어서 S신호를 지속적으로 출력하고, 그 상태에서 입력의 S신호가 끊어져도 출력은 계속 S신호를 내보냄 


이제 이 상태에서 R신호가 들어오면 S신호를 끊어버리고, 그 상태에서 R신호도 끊어지면 S신호를 끊은 상태를 유지하는거지.


이 경우에 R과 S는 동시에 들어오면 안됨. 




viewimage.php?id=2bbcd332eac031a9&no=29bcc427bd8677a16fb3dab004c86b6fad513288d8b12350345820b43efe4a7cad9d76dd5ef4fa2559055c11aa32e64b30cb488763600c1ec2cf



이게 가장 간단한 형태로 SR래치를 팩토리오에서 구현한거다.


수량비교 조합기를 이용하고, S는 녹색, R은 빨간색 신호를 사용하지.


S신호랑 R신호를 직접적으로 사용하지 않는건, 색 신호는 조명에 물리면 직접 그 색을 내뱉으니 신호 검사가 쉽다는 장점이 있어.


가장 중요한건 입력과 출력을 이어서 루프를 하나 만들어주는것.


두번째로, 출력에 사용하는 전선과 루프에 사용하는 전선은 같은 색이면 안됨.


입력에 사용하는 전선과 루프에 사용하는 전선은 색이 같아도 되지만, 입력신호가 복잡하게 꼬여대고,


그걸 또 다른데에서 끌어다가 쓴다면 작동을 보장하기 힘드니 웬만하면 입력과 루프를 다른색을 사용하는게 좋음.


단 이번 예시에서는 입력이 정말 단순한 구조라서 저렇게 한거고, 일반적으로는 색을 다르게 한다.


출력 : 빨간선, 루프 : 녹색선, 입력 : 빨간선 or 녹색선


혹은


출력 : 녹색선, 루프 : 빨간선, 입력 : 녹색선 or 빨간선


식으로. 물론 입력에 관해서 저쪽도 래치에 물리느라 두가지 색을 다 연결해야 한다면 어쩔 수 없지. 


루프랑 출력만 색을 달리하면 됨.



이 SR래치는 정말 다양한 곳에 사용 가능하다.


예를 들어 래치에다가 전원 스위치와 축전지를 연결해서 축전지 잔량이 20%일때 추가 발전소를 가동해서 80%에 도달하면 발전소를 꺼버린다던가,


펌프 하나에 래치 두개를 연결하고 AND회로를 구성해서 중유가 일정 이상, 경유가 일정 이하일때 펌프를 가동해서 크래킹을 시작하고,


중유가 일정 이하가 되거나 경유가 일정 이상이 될때까지 크래킹을 지속시킬 수 있다.




사실 모자랄때 한번 가동하면 한두번 돌리고 끝내는게 아니라 충분히 쌓일때까지 넉넉하게 돌리고 끄는 구조를 선호할텐데


그럴때야말로 래치가 활약하게 된다.