교육 내용 OMRON SYSMAC Gateway(SGW) 설치 INDEX 제어 프로그램 설치

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

제 1 회 도전 ! 한글 골든벨 2014 년 7 월 12 일 ( 토 ) 주최 : 센다이 한국교육원 후원 : 駐仙台大韓民国総領事館 在日韓国民団宮城県地方本部 韓日觀光交流センター.
1 Copyright© 2014 Korea Trade-Investment Promotion Agency. All Rights Reserved. GP USA 2016 in Chicago 사업신청 매뉴얼 ( 국내기업용 ) GP USA 2016 in Chicago 사업신청 매뉴얼.
장원인의 친절세상 만들기 밝고 따뜻한 장원인.
서울시 ‘찾아가는 동 주민센터’ 사업 시행 이후 지역사회의 변화
장애인을 위한 공공화장실 개선 광명북중학교 윤정환.
프로그래밍 개론 Ⅰ 제 3장. 클래스와 객체의 사용 ①.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
1. 개발 시스템 개요.
ThingPlug_SDK_Android
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Image & Video processing
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
Cross Compiler를이용한 커널 컴파일 및 포팅
Cross Compiler를이용한 커널 컴파일 및 포팅 1
MySQL 및 Workbench 설치 데이터 베이스.
■ GS건설 외국인 유학생 채용 공고 직 군 직 무 전 공 비 고 설계 플랜트·발전환경설계
11장 데이터 링크 제어 (DLC: Data Link Control)
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Outlook Addin 설치 방법 및 매뉴얼
자바 5.0 프로그래밍.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
14. 예외처리.
10장. 예외처리.
기업지원 제도 주요 내용 안산고용센터 기업지원팀.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Method & library.
자바응용.
인터넷응용프로그래밍 JavaScript(Intro).
SYSMAC GATEWAY 간이 매뉴얼.
가민GPS 세계측지계 TM 좌표계 설정 종이지도의 데이텀 확인 WGS84 좌표계 사용 시 1. 메인메뉴 – 설정 - 단위 엔터
홀인원2.0 설치 메뉴얼.
Go Lang 리뷰 이동은.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
인덱스 제어 표준화 Architecture
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
장원인의 친절세상 만들기 밝고 따뜻한 장원인.
VTalk Solution 소개자료
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
JA A V W. 06.
The Party-State (1) 영 어 학 부 강물결 영 어 학 부 박우인
DK-128 직렬통신 기초 아이티즌 기술연구소
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
24시간후 사이다속 닭뼈 & 돼지뼈 하루 지난 사이다속 돼지뼈
장애인단체 간담회 마스터 제목 스타일 편집 마스터 제목 스타일 편집 장애인 단체 간담회 마스터 부제목 스타일 편집
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
DK-128 직렬통신 실습 아이티즌 기술연구소
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
Lecture 04 객체지향 페러다임 Kwang-Man Ko
메뉴(Menu) 컴퓨터응용 및 실습 I.
정수기필터 CMS매뉴얼 (주) 소프트웨어메이크 가. 프로그램 시작하기 1. 효성CMS 이용 안내 및 용어 설명 1
ISO규격에의 대응과 도입 Know-how ㈜드림힐
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
3. 모듈 (5장. 모듈).
미세먼지 실험 성동초등학교 이도은.
9 브라우저 객체 모델.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
교육 내용 OMRON SYSMAC Gateway(SGW) 설치 INDEX 제어 프로그램 설치
房思琪的初恋乐园 ‘팡쓰치’로 보는 문학의 힘 정은비.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
7 생성자 함수.
엑셀 리포트를 웹 클라이언트에서 사용시 설정 방법
6 객체.
20 XMLHttpRequest.
Presentation transcript:

교육 내용 OMRON SYSMAC Gateway(SGW) 설치 INDEX 제어 프로그램 설치 GUI 소개 TM Module 확장 스케줄러 확장

인덱스 제어 표준화 Development Guide 2010년 12월 15일 인덱스 제어 표준화 Development Guide 오픈에스지닷넷

Table of Contents Scheduler Overview Workflow Class 로봇 5개 단위 동작

1. Scheduler Overview CTCTask ReadyList CTCTask Scheduler Class TM PM 생성 실행 참조 Scheduler Class 메서드1 메서드2 메서드3 … TM PM CM Workflow ReadyList Workflow Scheduler Class TM Class PM Class CM Class

Workflow 실행, ReadyList 작성 1. Scheduler Overview CTCTask Workflow 실행, ReadyList 작성 ReadyList 작업 목록 Workflow Scheduler 기능을 활용한 ReadyList 처리 로직 Scheduler Class 단위 Rule 메서드와 이벤트를 포함한 클래스 TM Class Arm의 상태, 로봇 제어 및 명령 송/수신 클래스 PM Class PM PIO 신호확인 CM Class PORT및 Slot 상태확인 모든 객체는 AppContext를 통해서 접근 가능함 현재의 AppContext 얻는 방법 AppContext.Current M_AppContext

1. Workflow 기본작업

1. Workflow 작업 가능여부 확인

1. Workflow PM 신호처리

2. Scheduler Class Scheduler Config 구성 <Scheduler SchedulerLStopBackMode="true" SchedulerWaitPosition="PM1" SchedulerWaitWithPanel="true" SchedulerCount2Enable="false" SchedulerHSInitialSkipEnable="true" assemblyName="CTCFx.Scheduler.SFA.dll" typeName="CTCFx.Scheduler.SFA.SFAScheduler" > </Scheduler> - SchedulerLStopBackMode : Loading Stop시 Back Mode 여부 설정(true : Back 함, false : Back 안 함) - SchedulerWaitPosition : Robot의 Default Position 설정 (Ex :"PM1", "none") - SchedulerWaitWithPanel : Wait Position 이동 시 Glass 유무를 설정(true : Glass 유 대기, fale : Glass 무 대기) - SchedulerCount2Enable : Count2 설정에 의한 연속 반송 여부 체크(true : 사용 함, false : 사용 안 함) - SchedulerHSInitialSkipEnable : H/S Initial 시 EQ와 연동 여부 설정(true : 단독 진행, false : 연동 진행) - assemblyName :Main Scheduler에 자식 Class로 사용될 DLL 이름 - typeName : Main Scheduler에 자식 Class의 Name Space

2. Scheduler Class 클래스 주요 구성

2. Scheduler Class ⑴ CM에서 Get 할 수 있는 조건 CM ① CM Glass Get 조건 PM 작업용 CM Ready List 존재 CM Port Pause 상태 아님 L/U Arm Glass 없음 PM Receive/Send Able On PM Receive/Send PreAction On PM Loading Stop Off 사양에 의해 UArm Get도 가능 ① TM L U PM1 PM2

2. Scheduler Class ⑵ CM → Arm Sequence Method 설명 ◈ CalcCMGetState SchedulerBase.cs Scheduler_PathChecker.cs Method 설명 ◈ CalcCMGetState - PIO에 의한 CM Get - L/U Arm Glass 유무 체크 - PM H/S 가능 신호 체크(bCMGet4PMPut, bCMGet4PMExchange) - PM Loading Stop 신호 체크(bLStop) ◈ CalcDefaultCMGetState - 미리 대기에 의한 Get - PM Loading Stop 신호 체크(bPMAvailable) ◈ FindSlotToProcess - 전체 ReadyList 조회 - CM Get 가능 여부 체크 - ReadyList의 Step 체크 ◈ GenerateCMGetCmd - CM Get Command 생성 CheckCMGet() CheckCMGet(CurrentPM) CheckCMGet(PMModuleBase PM) CalcCMGetState(PM) CalcDefaultCMGetState(PM) FindSlotToProcess(PM) GenerateCMGetCmd(_item)

2. Scheduler Class ⑶ PM에 Put 할 수 있는 조건 CM ③ PM1 Glass Put 조건 LArm Glass 유 UArm Glass 유무 관계 없음 PM1 Receive Able On PM1 Loading Stop Off LArm Glass 진행 모듈이 PM1 TM L ⑧ PM2 Glass Put 조건 LArm Glass 유 UArm Glass 유무 관계 없음 PM2 Receive Able On PM2 Loading Stop Off LArm Glass 진행 모듈이 PM2 ③ ⑧ PM1 PM2

2. Scheduler Class ⑷ Arm → PM Sequence Method 설명 ◈ CalcPMPutState SchedulerBase.cs Scheduler_PathChecker.cs Method 설명 ◈ CalcPMPutState - PIO에 의한 PM Put - L/U Arm Glass 유무 체크 - PM Receive PIO 체크(bSignal) - PM Loading Stop 신호 체크(bLStop) - Arm Glass Step 체크(bPanelStep) ◈ GeneratePMPutCmd - PM Put Command 생성 CheckPMPut() CheckPMPut(CurrentPM) CheckPMPut(PMModuleBase PM) CalcPMPutState(PM) GeneratePMPutCmd()

2. Scheduler Class ⑸ PM에서 Get 할 수 있는 조건 CM ② PM1 Glass Get 조건 UArm Glass 무 PM1 Send Able On LArm Glass 유무에 따른 조건 a. Glass가 없다면 PM1 Get 진행 b. Glass가 있다면 - PM1로 갈 Glass라면 PM1 Get 진행 - PM2로 갈 Glass라면 Get 안함 - CM으로 갈 Glass라면 Get 안함 TM U ⑦ PM2 Glass Get 조건(병렬) UArm Glass 무 PM2 Send Able On LArm Glass 유무에 따른 조건 a. Glass가 없다면 PM2 Get 진행 b. Glass가 있다면 - PM2로 갈 Glass라면 PM2 Get 진행 - PM1로 갈 Glass라면 Get 안함 - CM으로 갈 Glass라면 Get 안함 ⑦ ② PM1 PM2

2. Scheduler Class ⑹ PM → Arm Sequence Method 설명 ◈ CalcPMExState SchedulerBase.cs Scheduler_PathChecker.cs Method 설명 ◈ CalcPMExState - PIO에 의한 PM Exchange - L/U Arm Glass 유무 체크 - PM Send PIO 체크(bSignal) - PM은 Exchange 가능(bSignal) - Arm Glass Step 체크(bPanelStep) ◈ CalcPMGetState - PIO에 의한 PM Get - PM Send PIO 체크 (bSignal) - L/U Arm 모두 Empty인 경우 PM Get 가능 여부 체크(bArmStateGet) ◈ GeneratePMGetCmd - PM Get Command 생성 CheckPMGet() CheckPMGet(CurrentPM) CheckPortGet(PMModuleBase PM) CalcPMExState(PM) CalcPMGetState(PM) GeneratePMGetCmd()

2. Scheduler Class ⑺ CM에 Put 할 수 있는 조건 CM ⑨ CM Glass Put 조건(병렬) UArm Glass 있음 UArm의 Glass 다음 Step이 없음 LArm Glass 유무에 따른 조건 a. Glass가 없다면 CM Put진행 b. Glass가 있다면 - PM1로 갈 Glass라면 PM1 Put 대기 - PM2로 갈 Glass라면 PM2 Put 대기 - CM으로 갈 Glass 일 경우에 조건 ⓐ L_Stop인 경우 U/LArm 모두 Put ⓑ BackMode인 경우 UArm만 Put ⑨ TM TM U U PM1 PM2

2. Scheduler Class ⑻ Arm → CM Sequence Method 설명 ◈ CalcCMPutState SchedulerBase.cs Scheduler_PathChecker.cs Method 설명 ◈ CalcCMPutState - Done Glass CM Put - L/U Arm Glass 유무 체크 - Arm Glass의 Done 체크(bPanelStep) ◈ CheckCMPutInterlock - CM Put 가능 여부 체크(bCheckCMPutInterlock) ◈ GenerateCMPutCmd - CM Get Command 생성 CheckCMPut() CheckCMPut(CurrentPM) CheckCMPut(PMModuleBase PM) CalcCMPutState(PM) CheckCMPutInterlock() GenerateCMPutCmd()

2. Scheduler Class ⑴ Get Step Method Get Normal Step Get Abnormal Step GetStep00_Start() GetRecovery_Wait_TMAlarmClear() GetStep10_ReadData() GetRecovery00_Start() GetStep20_Wait_SendStart_On() GetRecovery10_ActiveResume() GetStep30_DoRobotAction() GetRecovery20_ActiveInitial() GetStep40_Wait_RobotAction_Done() GetRecovery20_HSSkipInitial() GetStep50_Wait_SendComplete_On() GetRecovery30_PassiveResume() GetStep60_Wait_SendComplete_Off() GetRecovery40_PassiveInitial() GetWait_ImmPauseReq_Off() GetDataRefuse_Wait_RefuseOrSendStart_Off() Get Normal Step Get Abnormal Step

① Get Normal Step Method 2. Scheduler Class ① Get Normal Step Method GetStep00_Start() Get H/S 작업 시작 GetStep10_ReadData() EQ Send Data Read GetStep20_Wait_SendStart_On() 설비 Send Start 대기 GetStep30_DoRobotAction() Contact Point Check 및 Get 또는 Exchange 명령 Robot 전송 GetStep40_Wait_RobotAction_Done() Robot Request 명령에 대한 완료 Reply 대기 GetStep50_Wait_SendComplete_On() EQ Send Complete On 대기 GetStep60_Wait_SendComplete_Off() EQ Send PIO All Off 대기 GetWait_ImmPauseReq_Off() EQ Get 작업중 발생한 Imm'pause Request에 대한 Off 대기 GetDataRefuse_Wait_RefuseOrSendStart_Off() EQ 배출 Glass의 이상 Data에 대한 처리를 대기

② Get Abnormal Step Method 2. Scheduler Class ② Get Abnormal Step Method GetRecovery_Wait_TMAlarmClear() Robot Alarm 발생에 대한 조치를 대기 GetRecovery00_Start() Get 작업에 대한 Recovery 대기 GetRecovery10_ActiveResume() Active Resume에 대한 Reply 대기(INDEX Request ⇒ EQ Reply) GetRecovery20_ActiveInitial() Active Initial에 대한 Reply대기(INDEX Initial) GetRecovery20_HSSkipInitial() Initial을 INDEX, EQ간에 진행하지 않고 INDEX 단독으로 진행(CF Only) GetRecovery30_PassiveResume() Passive Resume에 대한 Reply 대기(EQ Request ⇒ INDEX Reply) GetRecovery40_PassiveInitial() Passive Initial 대기

2. Scheduler Class ⑵ Put Step Method Put Normal Step Put Abnormal Step PutStep00_Start() PutRecovery_Wait_TMAlarmClear() PutStep10_WriteData() PutRecovery00_Start() PutStep20_Wait_RcvStart_On() PutRecovery10_ActiveResume() PutStep30_DoRobotAction() PutRecovery20_ActiveInitial() PutStep40_Wait_RobotAction_Done() PutRecovery20_HSSkipInitial() PutStep50_Wait_RcvComplete_On() PutRecovery30_PassiveResume() PutStep60_Wait_RcvComplete_Off() PutRecovery40_PassiveInitial() PutWait_ImmPauseReq_Off() PutDataRefuse_CheckDataUpdateFlag() PutDataRefuse_Wait_Refuse_Off() Put Normal Step Put Abnormal Step

① Put Normal Step Method 2. Scheduler Class ① Put Normal Step Method PutStep00_Start() Put H/S 시작 PutStep10_WriteData() INDEX Put Glass Data Write PutStep20_Wait_RcvStart_On() 설비의 Receive Start On 대기 PutStep30_DoRobotAction() Contact Point Check 및 Put 명령 Robot 전송 PutStep40_Wait_RobotAction_Done() Robot Request 명령에 대한 완료 Reply 대기 PutStep50_Wait_RcvComplete_On() EQ Receive Complete On 대기 PutStep60_Wait_RcvComplete_Off() EQ Receive PIO All Off 대기 PutWait_ImmPauseReq_Off() EQ Put 작업중 발생한 Imm'pause Request에 대한 Off 대기 PutDataRefuse_CheckDataUpdateFlag() INDEX 투입 Glass의 이상 Data에 대한 처리를 대기 PutDataRefuse_Wait_Refuse_Off() EQ의 Receive Refuse Bit Off 대기

② Put Abnormal Step Method 2. Scheduler Class ② Put Abnormal Step Method PutRecovery_Wait_TMAlarmClear() Robot Alarm 발생에 대한 조치를 대기 PutRecovery00_Start() Put 작업에 대한 Recovery 대기 PutRecovery10_ActiveResume() Active Resume에 대한 Reply 대기(INDEX Request ⇒ EQ Reply) PutRecovery20_ActiveInitial() Active Initial에 대한 Reply대기(INDEX Initial) PutRecovery20_HSSkipInitial() Initial을 INDEX, EQ간에 진행하지 않고 INDEX 단독으로 진행(CF Only) PutRecovery30_PassiveResume() Passive Resume에 대한 Reply 대기(EQ Request ⇒ INDEX Reply) PutRecovery40_PassiveInitial() Passive Initial 대기

2. Scheduler Class Scheduler 확장(상속 관계) OpenSG WorkFrame 업체별 확장 class SchedulerBase class StandardScheduler : SchedulerBase 업체별 확장 class SFAScheduler : StandardScheduler class ToptecScheduler : StandardScheduler class RorzeScheduler : StandardScheduler class EverScheduler : StandardScheduler

class StandardScheduler class StandardScheduler Scheduler 확장(Method Override) Override 설명 ◈ 최상의 class SchedulerBase의 FindSlotToPorcess ()는 가상함수로 선언됨. ◈ 업체에서 확장시킨 class가 없는 경우 INDEX 프로그램이 진행 중 해당 함수를 호출 할 경우 최상위 class인 SchedulerBase를 상속받은 중간 class StandardScheduler의 FindSlotToPorcess()이 호출 됨. ◈ 업체에서 확장한 최하위 class SFAScheduler가 추가 될 경우 중간 class인 StandardScheduler의 FindSlotToProcess()는 가려지게 되고 업체에서 확장된 최하의 class인 SFAScheduler의 FindSlotToProcess()가 호출됨. class SchedulerBase public virtual JobItem FindSlotToProcess(PMModuleBase PM) class StandardScheduler public override JobItem FindSlotToProcess(PMModuleBase PM) class SchedulerBase public virtual JobItem FindSlotToProcess(PMModuleBase PM) class StandardScheduler public override JobItem FindSlotToProcess(PMModuleBase PM) class SFAScheduler public override JobItem FindSlotToProcess(PMModuleBase PM)

2. 로봇 5개 단위 동작 A: Port -> Arm , Get B: Arm -> Stage , Put C: State -> Arm , Get D: Arm -> Port , Put *Prep *Loading Stop *로봇 단위 동작별 실시간 경로 계산 CM1 CM2 CM3 CM4 A D TM B C PM1 PM2

감사합니다.