2.11.2. 멀티 태스킹 모션 교시 예
2.11.2. 멀티 태스킹 모션 교시 예
아래의 그림과 같이 로봇, 로봇건, 정치건, 지그축으로 구성되어 총 로봇축 1개과 부가축이 3개로 구성된 시스템으로 멀티 태스킹 작업을 수행하는 예를 설명하겠습니다.
메인태스크는 로봇축을 제어하고 서브태스크 3개는 각각 1개의 부가축을 제어합니다. 메인태스크에서는 로봇에 대한 작업과 서브태스크 생성을 수행하고 각 서브태스크는 생성이 되면 해당 유닛에 대한 작업을 수행합니다.
① 메인 프로그램은 프로그램 100번입니다. 메인 프로그램은 유닛0을 선택하여 모든 축이 구동되도록 프로그램 할 수 있습니다. 메인 프로그램을 실행하면 순차적으로 MOVE와 SPOT을 실행하며 Step 10까지 명령을 수행합니다.
② 그 후에 메인 프로그램에서 AXISCTRL OFF T1, T2, T3명령을 수행하면 지정된 축 번호는 서브태스크에서 제어되도록 설정됩니다. 이렇게 되면 T1, T1, T3 부가축은 메인태스크에서 Step11-15를 수행할 때 Step11~15에 기록된 T1, T2, T3의 위치로 이동하지 않습니다.
③ TaskStart명령을 이용하여 서브태스크 1,2,3에서 수행할 프로그램을 지정합니다. 서브 태스크에 할당된 프로그램은 반드시 독립된 유닛으로 설정되어야 하며 서브태스크 간에 유닛으로 지정된 축이 중복되어서는 안됩니다. 예를 들어 유닛1은 매커니즘M1=T1축으로 지정하고, 유닛2는 매커니즘M2=T2, 그리고 매커니즘M3=T3으로 각각 서로 배타적으로 지정합니다.
④ TaskStart명령에 의해서 서브태스크에 할당된 프로그램 0063, 0064, 00165가 독립적으로 실행되고 메인프로그램은 Step11~15를 실행합니다.
⑤ 메인 프로그램에서 TaskWait명령을 만나면 지정된 서브태스크가 완료되어 END를 실행할때까지 대기합니다. 따라서 서브 태스크 1,2,3이 모두 종료될 때까지 메인프로그램이 대기합니다.
⑥ 다시 메인 프로그램이 부가축의 제어권을 가지고 오기 위해서 AXISCTRL ON명령을 실행합니다.