반응형

제어시스템 8

[C# 실습,통신 제어] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션

이전 게시글[C# 실습,공장 UI 구현] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션 이번에는 이전 게시글에 통신을 통해 제어할 수 있는 기능을 추가할 거예요. 1. 통신 제어 부분(DPM_SocketLib)은 클래스 라이브러리(.NET Framework)로 제작합니다. DMP_SocketLib에서는 앞에서 작성한 증착설비 라이브러리(DPMachineLib)를 참조합니다. MsgType.cs namespace DPM_SocketLib { /// /// 메시지 종류 /// public enum MsgType { /// /// 설비 추가 /// MSG_ADD_MAC=1, /// /// 페이지 추가 /// MSG_ADD_PAG, /// /// 설비 가동 /// MSG_STA_MAC, /// ///..

[C# 실습,공장 UI 구현] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션

앞에서 반도체 증착공정 설비를 제작하고 이를 시각화하는 설비 컨트롤 예광탄 코드를 소개했어요. 설비 컨트롤 예광탄의 코드를 이용하여 설비 컨트롤 라이브러리를 만드세요. 이번 코드는 설비와 설비 커트롤 라이브러리를 참조하여 공장 UI에 관한 글입니다. 1. Form1의 이름을 MainForm으로 변경하세요.(파일이름을 바꾸세요.) 2. MainForm에 자식 컨트롤을 배치합니다. 설비를 추가할 수 있고 추가할 설비를 관리할 수 있는 컨트롤을 배치합니다. MainForm.Designer.cs namespace 증착_및_BurnInTest_공장_시뮬레이션 { partial class MainForm { /// /// 필수 디자이너 변수입니다. /// private System.ComponentModel.ICo..

[C# 실습, 시나리오] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션

* 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션 * - 생산 라인 추가 - 증착 방법 설정(PVD, CVD, ALD) - PVD(물리기상증착법) 속도:100, 품질:88~98 - CVD(화학기상증착법) 속도:98, 품질:90~100 - ALD(원자층증착법) 속도:60, 품질:95~100 - 재료 추가 증착 이전 공정까지 진행한 반제품 개수 입력 - 가동 - 생산 라인을 선택 - 가동 멈춤 - 생산 라인을 멈춤 *생산한 제품은 테스트 공정을 수행한다. *설비에서 수행할 수 있는 기능을 원격(설비에서 떨어진 곳, 예:중앙 제어실)에서 제어할 수 있다.

[C# 실습] 레코드 코팅 - 기계(서버)와 제어기(클라이언트)

이전 게시글은 RCMachineControl을 제어하는 UI 프로그램에 관한 것입니다. 이번에는 이전 게시글의 UI 프로그램을 다른 프로그램에서 제어할 수 있게 변형할 거예요. 여기에서는 이전에 작성한 UI 프로그램에 서버 기능을 추가하여 레코드 코팅 기계라 말할게요. 그리고 클라이언트 기능과 함께 제어기도 함께 작성합니다. 통신으로 주고 받을 메시지 종류 Basic설정(1, 레코드 면적, 코팅 액 투입 구 반경, 스핀 스피드) 소스 레코드 추가(2, 개수,0,0) 코팅액 추가(3, 병수,0,0) 기계 가동(4,0,0,0) 기계 멈춤(5,0,0,0) 기계(서버 코드 수정) 패킷을 수신하였을 때 이를 폼에게 전달하기 위한 이벤트 인자 클래스와 대리자를 정의합니다. RecvPacketEventArgs.cs ..

[C# 실습] 레코드 코팅 - 기계 구현(Windows Forms)

이전 게시글에는 레코드 코팅 기계 컨트롤(RCMachineControl)을 만드는 코드를 소개했어요. 해당 글에서는 레코드 코팅 기계(RCMachine)개체를 Form1 Load시점에 하드코딩으로 만들어 컨트롤에 설정하고 가동하게 작성하였습니다. 이번에는 UI 컨트롤을 통해 레코드 코팅 기계 컨트롤을 제어하는 코드를 소개할게요. 1. Form1에 제어하기 위한 컨트롤을 추가 배치합니다. nud로 시작하는 컨트롤은 NumericUpdawn컨트롤입니다. 2. Form의 Load이벤트 핸들러와 각 버튼의 클릭 이벤트 핸들러를 추가한 후에 다음처럼 구현합니다. using Microsoft.Win32; using RCMachineControlLib; using System; using System.Windows...

[C# 실습, 사용자 정의 컨트롤 제작 예광탄] 레코드 코팅

1. 앞에서 작성하였던 RCMachine.cs와 CotingEventArgs.cs 파일로 구성한 클래스 라이브러리를 만듭니다. 2. Windows Forms 앱(.NET Framework) 프로젝트("RCManchine_공장_예광탄")를 생성합니다. 3. 생성한 프로젝트에 사용자 정의 컨트롤(Windows Forms)을 추가합니다. 파일명: RCMachineControl.cs 4. DPanel 클래스를 추가합니다. 더블 버퍼링이 가능한 패널을 정의한 클래스입니다. DPanel.cs namespace RCManchine_공장_예광탄 { public class DPanel:System.Windows.Forms.Panel { public DPanel() { SetStyle(System.Windows.Forms..

[C# 실습, 예광탄 소스] 레코드 코팅

시나리오 바로가기 예광탄 프로그램 유형: 콘솔 응용 프로그램 RCMachine.cs using System; using System.Threading; namespace 콘솔_예광탄 { public class RCMachine { public event CotingEventHandler OnCoting; int rarea; /// /// 레코드 단위 면적 /// public int RArea { get { return rarea; } set { Random rand = new Random(); rarea = value; cmaxavailcnt = rand.Next(200) + 900; } } /// /// 투입구 반경 /// public int CRadius { get; set; } /// /// 회전 ..

[C# 실습 시나리오] 레코드 코팅 - 반도체 장비 및 제어시스템 개발자 양성 과정

실습 시나리오 - 레코드 면적 입력, 투입구 반경 및 회전 속도 설정 투입구 반경 r(마이크로 미터)이고 회전 속도 s(RPS)일 때 1/s*r*r초에 단위 면적을 코팅함 - 레코드 투입(개수) - 코팅액 투입(병-1병은 단위 면적 900~1100을 코팅할 수 있다고 가정) - 코팅 가동 * 레코드가 없을 때 가동을 멈춤 * 코팅액이 하나의 레코드를 코팅할 수 없을 때 가동을 멈춤

반응형