일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 공정용게이지
- MelsecNet-G
- CDG
- Gas box
- REGULATOR
- 드라이에쳐
- Pressure control
- ION Gauge
- 레귤레이터
- Electro-Static Chuck
- rs-485
- rs-232
- cluster
- VACUUM
- MODBUS
- melsec
- 정전척
- 가스
- RS232
- PMAC
- CRC16/CCITT-FALSE
- 디스플레이 ESC
- gauge
- Dry etcher
- MFC
- pressure
- esc
- Helium
- 반도체 ESC
- 시리얼통신
- Today
- Total
목록진공/노하우 (26)
:: 진공에 대해 알려주마.
AOI(자동광학검사기) 셋업을 진행하였다. 2세대 글라스, 8세대 글라스, 6세대 마스크, 300mm 웨이퍼 등 여러 종류의 검사기 셋업을 경험하였다. 내가 생각하는 AOI 설비는 모션 제어와 카메라 제어가 전부라 해도 과언이 아닌 것 같다. 다른 분야에서는 아니라고 할지도 모르겠지만... 카메라는 비전 엔지니어가 별도로 셋업과 셋팅 그리고 테스트를 진행하고 관리한다. 카메라에 능하고 이미지 처리에 특화되어 고급 인력으로 분류된다. 그리고 좋은 대접을 받는다. 그 외 모든 부분은 제어(Software) 엔지니어가 처리한다. 카메라당 한대의 비전 PC를 운영하며 이 모든 연결은 소켓 통신을 주로 사용하여 신호와 데이터를 주고받는다. 제어는 웨이퍼나 글라스 꼭 잡아 고속으로 이동하며 비전 카메라가 원하는 스..
MODBUS-TCP를 사용한다. C++인 경우에는 "libModBus"를 사용해 보시고 여기서는 C#으로 ... EtherNet을 사용하여 통신하는 IO Module을 사용하게 되었다. 통신 프로토콜은 Modbus TCP를 사용한다. 메뉴얼을 보고 통신 패킷을 구성하여 값을 읽고 쓰기 검토하였다. 소켓 구성하고 패킷 작성하고 리턴 밸류 파싱하고 귀찮다. 그냥 다운로드하여 쓰자. 간단한 것으로 검토하여 C#용 SharpModBus를 사용하기로 하였다. 보기에는 간단해 보였다. NuGet 패키지 관리로 다운받아 설치하고 아래와 같이 선언하고 포트를 열어 바로 사용하면 가능하다. Digital(Coil)은 bool로 처리하며 Analog(Register)는 unsigned short으로 읽고 쓰면 된다. 거의..
요즘은 윈도우를 기본으로 하여 설비 제어 프로그램을 구성하게 된다. 요즘 윈도우는 매우 안정적이라 OS가 Down 되는 경우가 거의 없지만 이전에는 일주일이 멀다 하고 죽어 나갔다. OS가 문제인 경우도 있었으며 제어 프로그램이 문제가 되는 경우도 있다. 이런 경우 가장 문제가 되는 것은 출력 제어이다. 출력이 나가는 상태에서 OS나 프로그램이 죽으면 출력은 그대로 유지된다. 특정시간 동안 진행되어야 할 공정이 시간을 초과하게 된다. 이때는 웨이퍼는 물론이고 설비의 하드웨어까지도 손상을 줄 수 있다. 제어 해야할 장치가 아래와 같다. 동작중 PC가 다운되면 즉시 적절한 조치가 취해져야 한다. 특히 식각(Etching)은 즉시 멈추도록 해야 한다. 프로그램을 사용 중에 OS 혹은 제어 프로그램이 원인이 되..
누군가 말했지. 프로그램 개발보다 형변환 하다가 개발 시간을 다보낸다고... 그래서 여기 모아보았다. 프로그램 개발시 필요한 형변환을 중심으로 각종 필요한 항목을 업데이트 할 예정이다. 물론 모두 테스트 완료 되었거나 실제 사용하는 Code들 이다. C++ CString to Char* (출처 https://sggilsroom.tistory.com/126 ) char Buffer[255] = ""; CString szString; size_t CharactersConverted = 0; wcstombs_s(&CharactersConverted, Buffer, szString.GetLength()+1, szString, _TRUNCATE); 문자열을 구분자로 분리 함수와 호출 예제 (출처 ?) // 스트링..
"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..
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는 두 개의 선으로 여러 대의 장치와 통신이 ..
이전에 이런 글을 썼는데 뭔가 좀 아쉬워 다르게 다시 써본다. 시리얼 통신을 처음 접하는 사람도 쉽게 이해 할수 있도록 써본다. https://hivac.tistory.com/20 https://hivac.tistory.com/11 https://hivac.tistory.com/12 https://hivac.tistory.com/13 시리얼 통신, 패러럴 통신이 공존하던 시대가 있었다. 통신을 위해서는 저속의 시리얼 통신이 프린터와 같은 고속의 통신에는 패러럴 통신이 사용되었다. 그러나 이제는 USB, EtherNet이 주류가 되었다. 예전에 고속이라던 패러럴 통신은 이제 저쪽으로 사라져 갔다. 예전에 저속이라던 시리얼 통신은 장치간 문자를 전달하기 위하여 개발된 신호 체계이다. 문자마다 신호를 정의하여..
CC-LINK를 사용하는 설비를 서비스하게 되었다. 설비가 셋업 중이라 Main control program이 제대로 동작하지 않는다. 그래서 임시로 사용할 I/O Check 프로그램을 작성하였다. 이전에 작성한 것을 조금 수정하여 만들어 보았다. 앞서 미쓰비시 제품 중 PC에 설치되는 scanner 보드에 접근하기 위한 방법은 모두 동일하다. 제공된 라이브러리를 이용하여 , 국번, 디바이스, 어드레스를 세팅하여 함수를 호출하면 된다. MelsecNet-H, MelsecNet-G, CC-LICK 보드 모두 동일하며 읽고 쓰는 기본 단위가 8 비트, byte 사이즈로 되어 있다. PLC에 접근하다 보면 기본 단위가 WORD라는 것을 알게 된다. 초기에 byte라고 쓰여 있는데도 word로 착각하고... 아..
WINDOWS XP를 설치하다. [https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_XP] 윈도 XP를 설치하여 사용하려 한다. 서비스해야 하는 설비가 XP를 사용한다. 요즘 PC에는 아예 설치가 되지 않아 서비스를 위한 작업은 윈도 10에 VM으로 XP를 사용하였다. XP가 설치 가능한 PC가 있고 메모리가 얼마까지 인식하고 등등은 잘 모르겠고 아주 오래된 10년 넘은 노트북 컴퓨터를 하나 찾았다. 윈 10 홈이 설치하여 사용하였으나 너무 느리고 하여 버리기 직전이었다. 여기 XP를 깔아 사용해 볼까 하고 이것저것 뒤져 보니 설치 가능하겠다 싶어 시도를 해 본다. 여기에서는 바로 그 노트북에 윈도 XP를 설치하는 과정이 되겠다. 윈도 7이 설치되어 ..
오실로스코프(Oscilloscope)는 전기 신호를 화면에 표시해 주는 장치이다. 어떤 장치의 전기 신호를 화면에 그래프로 보여준다. 얼마나 빠른 신호까지를 보여주는지가 오실로스코프의 성능을 말해준다. 제어에서는 주로 통신의 잇슈를 해결하기 위하여 주로 사용한다. 통신이 안 되는 경우 어디서부터 안되는지 신호는 제대로 나오는지 파악하기 위하여 사용한다. 이전에 시리얼 장치와 통신을 시도하던 중 문제가 생겨 이를 해결하기 위하여 이것저것 보다가 오실로스코프까지 물려 보았다. 0과 1이 생각한 것 같이 표시되지 않는다. 무언가 빠트린 부분이 있다. 오실로스코프를 하나 장만했다. 핫한 알리에서 FNIRSI DSO152을 구매하여 얼마 전 물건을 배송받았다. 사용후기부터 말하겠다. 9600bps는 보기가 어려웠..