서킷 네트워크에 대해서 막연히 공포를 가지는 사람들이 많은데,
이런저런 조합예를 들어주는것도 좋지만 가장 기본적인 것들부터 말을 해줘야 한다는걸 깨달음.
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는 동시에 들어오면 안됨.
이게 가장 간단한 형태로 SR래치를 팩토리오에서 구현한거다.
수량비교 조합기를 이용하고, S는 녹색, R은 빨간색 신호를 사용하지.
S신호랑 R신호를 직접적으로 사용하지 않는건, 색 신호는 조명에 물리면 직접 그 색을 내뱉으니 신호 검사가 쉽다는 장점이 있어.
가장 중요한건 입력과 출력을 이어서 루프를 하나 만들어주는것.
두번째로, 출력에 사용하는 전선과 루프에 사용하는 전선은 같은 색이면 안됨.
입력에 사용하는 전선과 루프에 사용하는 전선은 색이 같아도 되지만, 입력신호가 복잡하게 꼬여대고,
그걸 또 다른데에서 끌어다가 쓴다면 작동을 보장하기 힘드니 웬만하면 입력과 루프를 다른색을 사용하는게 좋음.
단 이번 예시에서는 입력이 정말 단순한 구조라서 저렇게 한거고, 일반적으로는 색을 다르게 한다.
출력 : 빨간선, 루프 : 녹색선, 입력 : 빨간선 or 녹색선
혹은
출력 : 녹색선, 루프 : 빨간선, 입력 : 녹색선 or 빨간선
식으로. 물론 입력에 관해서 저쪽도 래치에 물리느라 두가지 색을 다 연결해야 한다면 어쩔 수 없지.
루프랑 출력만 색을 달리하면 됨.
이 SR래치는 정말 다양한 곳에 사용 가능하다.
예를 들어 래치에다가 전원 스위치와 축전지를 연결해서 축전지 잔량이 20%일때 추가 발전소를 가동해서 80%에 도달하면 발전소를 꺼버린다던가,
펌프 하나에 래치 두개를 연결하고 AND회로를 구성해서 중유가 일정 이상, 경유가 일정 이하일때 펌프를 가동해서 크래킹을 시작하고,
중유가 일정 이하가 되거나 경유가 일정 이상이 될때까지 크래킹을 지속시킬 수 있다.
사실 모자랄때 한번 가동하면 한두번 돌리고 끝내는게 아니라 충분히 쌓일때까지 넉넉하게 돌리고 끄는 구조를 선호할텐데
그럴때야말로 래치가 활약하게 된다.
팬인은 1개인데 팬아웃이 2개가 되는쪽이 훨씬 쓸모있는데, 저건 팬인:팬아웃이 1:1이라서 유연성이 떨어짐니다. 신호기 많이 바르면 괜히 손해보는건 아님. 어차피 상상력의 게임인데 이경우에는 정답은 없고, 각 설계의 장단점을 토론하는것도 하나의 테마가 될수도 있음. 공돌이들 좀더 덤벼보세요. 범용으로 써먹을만한 게이트 2개 컨버터 2개짜리 래치말고 그거보다 더 쓸만한데 신호기 작게 먹거나, 아니면 좀더 에러없이 안정적으로 미세하게 정의가능한 시스템이 있는지 한번 논의해봅시다.
덧붙임. 이 경우에 경계값을 잡아 줄때 상한과 하한의 경계 범위를 뒤집어서 넣어야된다는 귀찮음이 있는데, 이건 입문자 수준으로 써먹기 더럽게 힘듬. 객관적으로 생각했을때 조건이 맞으면 1이어야 되는데, 이건 거기서 논리적으로 조건을 한번 더 뒤집어 줘야 되니까 '값x이하면1'이라는 걸 만들려고 부등식을 만든것에서 반대로 입력하려면 '값x보다 클때 1'이라는 식으로 해야되잖. 문돌이 한테는 넘나 복잡한것.
20에 S걸고 80에 R걸고 SR래치 하나 달아주면 되잖아. 20보다 작거나 같으면 - 켠다. 80보다 크거나 같으면 - 끈다. 그리고 그 중간인 경우에는 기존 입력을 유지한다.
작동신호도 S신호 크기 1이고 정지신호도 R신호 크기 1인데 낫게이트가 왜나와....
그리고 가장 기본적인 형태의 SR래치를 구현한거라 그 래치의 특징인 S1R1일때 작동을 정의하지 않는다는 특징까지 고스란히 따라옴. JK래치나 플립플롭같은건 당연히 구성이 더 복잡해지겠지
ㅗㅜㅑ 이과들 불탄다 - dc App
공돌 조무사에게는 무리였습니다
공돌이 였고 계산도 잘했는데 이해력이 못따라가지 왜 .. 망할..
공대놈들이 예제도 안풀어보고 책만 읽고나서 다 이해하는 소리 하지 말고 빨리 켜서 직접 한번 해봐. 공대놈들이면 그래야 이해함
맞음 해봐야 뭔소린지 알겠드라 - dc App
오늘 휴강 기념으로 학교에서 하라는 예습은 안하고 그 래치 구조가 뭔지 검토하고 나서 저거 어케 쓰는지 이해함. 실제로 신호기 두개 교차 되먹임 하는구조보다 한개 이득이라서 확실히 저렴하고 경제적인듯. 꿀팁 얻어가는건 덤이고 앞으로 요긴하게 쓸게
덤으로, 틱 단위로 연산하는 시간을 이용해서 타이밍도 그린다음에 논리 흐름도 그려서 대규모 서킷 짜는데 참고해도 되는 부분. 이거 계산 안하면 나중에 메모리 설계나 대규모 서킷에서 연산 속도 때문에 애먹는 경우 생기니까 그쯤되면 신경써야됨. 아마 루프 뺑뺑이도는 와중에 신호가 가변으로 바뀌는걸 계속적으로 타이밍맞게 체크해서 순시적으로 값을 갱신하고 조건에 맞는거는 저장하고 이난리 치거나, 감소 변화 값 또는 증가 변화 값 자체를 읽어내는 회로 짤때는 무의미한 버퍼를 왜 둬야 되는지도 고려하게 되니 결국 아예 필요없는 잡소리는 아닌셈.
이 래치의 구조는 정말로 최소한의 기능만을 구현한 구조라서 출력도 Q하나뿐임. -Q가 필요하면 NOT게이트를 하나 추가해야 하고, 이로 인해 1틱 딜레이 되는게 영향이 있을 정도로 섬세한 회로라면 Q에도 1틱 딜레이 회로를 하나 붙이는 수밖에 없음.
잘 정리했네 회로 처음만져보는 팩린이들에게 도움이 많이될듯
이런거 잘하면 자동제어로 가야지 ㅋㅋ 개념자체를 이해못하는 사람도 수두룩함
개념 자체는 디지털 논리회로 과목이라 이해하겠다만... 이제서 유전 파이프 깔고 우라늄 캘 황산 황산때문에 골머리 썩히는 나에게는 멀구만.. 나중에 석유가스 같은 부분에 일일히 파이프 하나 뽑지 밀고 그냥 입력 하나 파이프에 펌프 숫자대로 설치할때 응용하면 좋겠다.
대학때 배운걸 여기서 써먹네
이게 먼소리야 씨발 정독했는데 하나도모르겠네
ㄹㅇ ㅋㅋ 이런말하긴 웃기지만 대학교도 좋은데 나왔고 생명공학과니까 나도 공대인데;; 읽다가 산술연산 쪽부터 뭔소린지 이해 못함 ㅋㅋ
나름 전공자인데 전공공부를 게을리하여 대충만 이해함 .....ㅋㅋ
저거 이해하려면 내 빡대가리로는 ㅜㅜ
포스텍 화공과출신 현 정유회사 대리 이해실패
아 완전히 이해했어