일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ION Gauge
- 시리얼통신
- ATM
- MODBUS
- Helium
- gauge
- RS232
- Polling
- 가스
- pressure
- VACUUM
- REGULATOR
- rs-485
- MFC
- CDG
- 폴링
- Dry etcher
- melsec
- HI-Vacuum
- PMAC
- cluster
- 맛집
- 레귤레이터
- hivac
- rs-232
- esc
- MelsecNet-G
- Gas box
- 드라이에쳐
- 설비제어
- Today
- Total
목록전체보기 (85)
:: 진공에 대해 알려주마.
반도체 설비는 CTC, TMC, PMC로 논리적 분류를 할 수 있다. 물리적으로는 Transfer(반송), Process(공정)으로 분리할 수 있다. 물론 보편적인 설비의 경우이며 특별한 기능을 가진 설비는 다른 형태를 가질 것이다. 용어 관련하여서는 아래 문서를 참고하시라. http://www.techbase.co.kr/business/business_01.php CTC는 웨이퍼의 흐름(Route)을 관장하고 TMC가 웨이퍼를 실제로 반송을 담당하고 PMC는 웨이퍼의 공정을 담당한다. 이름은 설비 메이커마다 조금씩 다를 수는 있으나 거의 같은 기능을 가진다. 여기에 자동화(FA, SECS/GEM 등)가 연결되어 설비의 무인화를 완성한다. 한 설비에 TMC, PMC는 여러개 설치가 될 수 있으며 한 가지..
"A\0B\0C\0\0\0\0\0\0\0\0\0" 받아온 문자열이 이 모양 이다. 이걸 어떻게 처리하지... SharedMemeroy를 이용하여 통신을 시도하였다. string 문자열을 받아 Char*로 변환해야 한다. C#에서는 MMF에 write 한 그대로 read가 가능했다. 잘 사용하였다. 하지만 이번에 C++과 C#을 교차하여 값을 주고받으려 한다. MMF(Memoty Mapped File)을 이용하여 C#에서 문자열을 쓰고 C++에서 읽어오면 아래 그림과 같이 한 글자마다 사이에 \0가 붙어 이를 처리하면 한 글자만 인식하여 원하는 대로 처리가 되지 않는다. 찾아보니 VS2013 쯤 부터 적용된 멀티 바이트 현상이다. 다 아는 내용 이겠지만 아래 사이트를 참고 하시라. https://codin..
요즘 고객사에서 설비 셋업 중이다. S사 혹은 L사등 업계에서는 안전을 최우선으로 강조하고 있다. (참고로 왜 아직도 S사, L사라고 부르는지 모르겠다.) 그러다 보니 설비 내부 작업에 대한 안전을 매우 까다롭게 관리한다. 설비 내부에 진입하는 경우에는 화면을 사용할 수 없어야 하며 도어키를 항상 소지하여야 한다. 펜던트만 사용해야 한다. 안전 관리자가 있어야 한다. 등 까다롭기 그지없다. PC 관련하여 구현해야 하는 기능도 여러 가지 있다. Teach key관련, Maint 화면 표시와 암호 설정, 그리고 Maint 화면 표시중 각종 윈도키를 막아야 한다. 이번에 이것 때문에 생각보다 많은 시간을 투자했다. 특히 Window10에서는 보안이 강화되어 윈도우 관련 기능을 제어가 쉽지가 않다. 설비 내부에..
설비 제어용 PC를 컸다 켠 후 부팅이 완료되어 윈도우 암호를 입력하면 암호가 틀리다고 나온다. 대문자, 소문자, 한글, 영문으로 바꾸어 입력하여도 암호가 틀리다고 나온다. 주로 위와 같은 미니 키보드를 사용하는 환경에서 발생한다. 원인은 Num Lock키 문제로 PC가 전원이 재부팅되면 Num Lock이 On 되면서 영문자가 아닌 서브 기능의 키가 동작하기 때문이다. j를 누르면 1이 입력된다. 암호에 j, k, l 등이 포함되면 전혀 엉뚱한 문자가 입력되고 화면에는 암호로 표시되어 입력되는 문자를 알 수 없다. 이렇게 한참을 헤매이다. 아 그거지 하고 Num Lock 키를 누르고 암호를 입력하면 바로 로그인되어 PC를 사용할 수 있다. 이미 짜증은 2빠이라 커피 한잔 마시러 갔다 와야 다음 업무를 할..
이제 초등학교에서도 코딩을 배운다고 한다. 코딩이 목적이 아니라 수단이 된 것이다. 요즘은 누구나 쉽게 코딩에 접할 수 있고 목적을 구현하는데 별 어려움이 없어졌다. 학교 다니던 중에 Windows NT를 접하게 되었다. 애플2 호환 PC의 BASIC을 시작으로 콘솔 base의 UNIX 시스템만 사용했던 나에게 Windows NT는 신세계였다. NT를 PC에 설치해 보고자 내 PC의 HDD를 업그레이드하고 친구의 RAM을 빌려 윈도우 NT를 설치하고자 하였으나 결국 실패하였다. 한 번에 설치될 리 없었고 여러번 시도해 보았지만 성공하지 못했다. 오류가 발생하면 원인 찾지 못하고 헤매다 다시 설치해 보아도 결과는 비슷했다. 하드웨어의 성능도 딸리고 경험도 부족하고 특히 설치 중 발생하는 메시지의 정확한 의..
설비에 시리얼 장치를 여러 개 사용하였다. 주로 설비 하부에 사용하는 장치를 연결하여 사용하였다. 이후 상부에 장치가 추가되어 시리얼 장치가 몇 개 추가되었다. 이때부터 문제가 발생하였다. 상부의 장치에 연결된 시리얼 통신 케이블을 시리얼 허브에 연결하면 하부의 특정 장치의 통신이 끊기는 현상이 발생한다. 모든 케이블을 분리하고 상부 장치만 연결하여 테스트하였으나 모두 정상 동작한다. 반대로 상부 장치를 모두 분리하고 하부 장치만 연결하여 테스트하였다. 모두 정상이다. 여기에 상부의 장치를 연결하니 하부의 특정 장치 통신이 죽어 나간다. 특히 상부의 모션 드라이브 앰프 통신을 위한 케이블을 통신 허브에 연결하면 위와 같은 문제가 발생한다. 이 장치를 단독으로 테스트하면 문제가 없다. 하부 장치를 모두 연..
RS-485 통신 방식은 232 통신에 비해 장점이 많다. RS-232 통신은 1:1 통신 방식으로 단순하고 문제가 발생 시 문제점 파악이 쉽다. GND와 Tx, Rx로 구분된 3개의 신호로 주는 쪽과 받는 쪽의 문제를 명확히 알 수 있다. (Full duplex, Single ended type) 통신 거리는 10미터를 넘는 경우 노이즈에 취약하다. Tx와 Rx가 서로 반대로 연결되는 케이블 꼬임 문제 외에는 큰 이슈가 없다. 현장에서 통신이 안된다면 Tx와 Rx를 바꾸어 연결하면 보통은 문제가 해결된다. 아니면 Tx와 GND를 찍어보면 9 볼트가 측정된다. 각각의 장치에서 GND와 찍어봐서 9 볼트가 측정되면 거기가 Tx인 것이다. RS-485 2 wire는 두 개의 선으로 여러 대의 장치와 통신이 ..
비트 연산을 위한 함수 C++ #define GET_BIT(x, y)(((x)>>(y)) & (0x01)) #define SET_BIT(x, y)(x) |= ((0x01)
이전에 이런 글을 썼는데 뭔가 좀 아쉬워 다르게 다시 써본다. 시리얼 통신을 처음 접하는 사람도 쉽게 이해 할수 있도록 써본다. https://hivac.tistory.com/20 https://hivac.tistory.com/11 https://hivac.tistory.com/12 https://hivac.tistory.com/13 시리얼 통신, 패러럴 통신이 공존하던 시대가 있었다. 통신을 위해서는 저속의 시리얼 통신이 프린터와 같은 고속의 통신에는 패러럴 통신이 사용되었다. 그러나 이제는 USB, EtherNet이 주류가 되었다. 예전에 고속이라던 패러럴 통신은 이제 저쪽으로 사라져 갔다. 예전에 저속이라던 시리얼 통신은 장치간 문자를 전달하기 위하여 개발된 신호 체계이다. 문자마다 신호를 정의하여..
자료형 정의 번호 유형이름 크기 범위 다른정의 비고 1 char 1byte -128 ~ 127 2 unsigned char 1 byte 0 ~ 255 BYTE 3 short 2 byte -32,768 ~ 32,767 4 unsigned short 2 byte 0 ~ 65,535 WORD 5 int 4 byte –2,147,483,648 ~ 2,147,483,647 6 unsigned int 4 byte 0 ~ 4,294,967,295 UINT 7 long 4 byte –2,147,483,648 ~ 2,147,483,647 8 unsigned long 4 byte 0 ~ 4,294,967,295 DWORD 9 추가 참고 사항 (출처 : Microsoft Docs)