일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- melsec
- pressure
- esc
- MelsecNet-G
- Gas box
- REGULATOR
- gauge
- VACUUM
- MFC
- 시리얼통신
- rs-232
- 폴링
- Helium
- hivac
- Dry etcher
- CDG
- rs-485
- MODBUS
- 설비제어
- 드라이에쳐
- Polling
- ION Gauge
- PMAC
- HI-Vacuum
- RS232
- 가스
- 맛집
- 레귤레이터
- ATM
- cluster
- Today
- Total
목록진공/노하우 (28)
:: 진공에 대해 알려주마.
산업용 설비 PC 제어 프로그램 관리하기이글은 사이트를 개설하고 처음으로 쓴 글이다. 티스토리의 에디터가 변경이 되면서 폼이 마음에 들지 않아 수정/편집하여 다시 게시한다. 반도체 제조 설비를 제작하는 회사에서 십여 년 근무하면서 국내에서 최초로 양산 라인에 설비를 제작 납품하는 귀한 경험을 하고 이후 디스플레이 화면 패널을 생산하는 제조 설비 분야에서 십수 년간 PC 제어 분야의 설계, 테스트, 셋업을 진행하면서 배운 노하우를 기록한다.제어 프로그램은 자동으로 움직이는 장치 즉 사람의 개입없이 자동화되어 움직이는 설비등을 제어하는 프로그램으로 장치의 Controller 역할로 24시간 구동되며 문제 발생 시 빠른 문제 해결을 최우선으로 둔다. 이런 종류의 프로그램을 개발 혹은 패치하는 경우 도움이..
dataGridView 컨트롤을 사용하여 프로그램을 만드는 경우 excel등에서 한 번에 많은 데이터를 붙여넣기 할 때 필요한 코드를 구현하였다. 그리고 클립보드의 저장되는 구조를 함께 설명하였으니 참고하시기 바란다.여기에서는 텍스트 기반의 데이터를 복붙하고자 하였다. 일반 텍스트는 보이는 그대로 클립보드에 저장된다. 오피스의 엑셀의 경우는 아래에 보이는 것처럼 저장되며 이를 이용하여 dataGridView control에 붙여 넣는 방법도 구현하였다. 위와 같이 엑셀에서 복사하기를 하면 클립보드에 아래와 같은 포멧으로 저장된다. 행간은 "\r\n"으로 구분되고 셀간의 구분은 "\t"로 정의되어 있다. 이를 텍스트 파일 처리 하듯이 처리하면 된다. 데이터를 행간 구분자인 "\r\n"을 이용하여 sp..
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로 착각하고... 아..