태스크

컨트롤러에서는 다양한 태스크를 이용해 기준에 따라 프로그램 실행을 스케줄링하고 우선순위를 정할 수 있습니다. 이러한 멀티태스킹은 애플리케이션의 작업 사이에 컨트롤러의 처리 시간을 할당합니다.
  • 컨트롤러는 한 번에 하나의 태스크만 실행합니다.
  • 하나의 태스크는 다른 태스크의 실행을 방해할 수 있으며 우선 순위에 따라 제어권을 가집니다.
  • 어떤 태스크에서든 여러 프로그램을 사용할 수 있습니다. 하지만 프로그램은 한 번에 하나만 실행됩니다.
  • 필요에 따라 태스크를 Controller 또는 Logical Organizer 보기에 표시할 수 있습니다.
팁:
태스크가 많으면 시스템을 최적으로 튜닝하기 어려울 수 있습니다.
제어 어플리케이션 내의 태스크
이 이미지는 제어 애플리케이션 내의 태스크를 보여줍니다.
컨트롤러 관리자와 로직 관리자의 태스크
이 이미지는 컨컨트롤러 관리자와 로직 관리자의 태스크를 보여줍니다.
태스크는 하나 이상의 프로그램에 대한 스케쥴링 및 우선순위 정보를 제공합니다. Task Properties 대화상자를 이용해 태스크를 Continuous(연속), Periodic(주기) 또는 Event(이벤트)로 설정하십시오.
태스크 유형 설정
이 이미지는 Task Properties 대화상자에서 태스크를 설정하는 방법을 보여줍니다.
다음 표는 구성할 수 있는 태스크 유형입니다.
태스크 유형 및 실행 주기
태스크 유형
태스크 실행
설명
연속
Constant
연속 태스크는 백그라운드에서 실행됩니다. 다른 태스크(예: 모션 및 기타 태스크)에 할당되지 않은 CPU 시간은 연속 태스크에서 프로그램을 실행하는 데 사용됩니다.
  • 연속 태스크는 지속적으로 실행됩니다. 연속 태스크의 전체 스캔이 완료되면 바로 다시 시작합니다.
  • 프로젝트에서는 연속 태스크를 사용하지 않아도 됩니다. 만약 사용하는 경우에는 연속 태스크를 하나만 사용할 수 있습니다.
주기
일정한 간격으로(예: 100ms마다)
주기 태스크는 주기에 따라 기능을 수행합니다.
  • 주기 태스크는 시간이 만료될 때마다 우선순위가 더 낮은 태스크를 중단시키고 한 번 실행된 후 이전 태스크가 끝났던 지점으로 권한을 되돌립니다.
  • 간격은 0.1…2,000,000.00ms의 범위에서 설정할 수 있습니다. 기본값은 10ms입니다. 이 값은 컨트롤러와 구성에 따라 달라집니다.
이벤트
이벤트가 발생하면 즉시
이벤트 태스크는 이벤트(트리거)가 발생할 때만 기능을 수행합니다. 이벤트 태스크를 실행시키는 요인(트리거)은 다음과 같습니다.
  • 모듈 입력 데이터 상태 변화
  • Consumed 태그 트리거
  • 이벤트 명령어
  • 축 트리거
  • 모션 이벤트 트리거
누락된 이벤트 트리거에 대한 선택적 타임아웃 간격을 설정할 수 있습니다. 이 경우, 트리거가 없는 경우에도 이벤트 작업이 실행됩니다. 태스크의 [Check the Execute Task If No Event Occurs Within <timeout period>] 확인란을 설정하십시오.
컨트롤러는 최대 32개의 태스크를 지원합니다. 단 하나의 태스크만 연속 태스크가 될 수 있습니다.
태스크 하나에는 최대 1000개의 각기 다른 프로그램이 있을 수 있는데, 각 프로그램에는 실행 가능한 자체 루틴과 프로그램 범위의 태그가 들어갑니다. 일단 태스크가 트리거(활성화)되면 해당 태스크에 할당된 모든 프로그램이 분류된 순서로 실행됩니다. 프로그램은 Controller Organizer에 한 번만 나타날 수 있으며, 복수의 태스크와 공유할 수 없습니다.

Compact 5000 I/O 모듈의 이벤트 태스크

팁:
Compact 5000® I/O
안전 입력 모듈은 이벤트를 트리거할 수 없습니다.
일부
Compact 5000® I/O
디지털 입력 모듈은 이벤트를 트리거할 수 있습니다. 예를 들어, 이벤트를 트리거하는 5069-IB16F 모듈 입력 상태 변화와 함께 이벤트 태스크를 설정하는 방법은 다음과 같습니다.
  1. 이벤트 태스크를 트리거하도록 5069-IB16F 입력 모듈을 설정하십시오. 다음 태스크가 필요합니다.
    1. 5069-IB16F 모듈 정의에서 Data with Events 연경 유형을 사용합니다.
    2. 이벤트 활성화
    3. 모듈에서 최소 1개의 포인트를 선택해서 이벤트에 참여합니다.
    4. 이벤트를 구성하는 사항을 정의합니다(예를 들어, Off에서 On으로 상태 변화).
    5. 이벤트의 어떤 엣지가 이벤트를 트리거할 것인지 선택합니다. 즉, 상승 엣지, 하강 엣지 또는 두 가지 모두 이벤트를 트리거할 수 있습니다. 
    또한, 이벤트를 래치하고 독립적인 포인트 트리거를 활성화할 수 있습니다.
    5069-IB16F 모듈 정의에서 Data with Events 연경 유형을 사용합니다. 이벤트 활성화 모듈에서 최소 1개의 포인트를 선택해서 이벤트에 참여합니다. 이벤트를 구성하는 사항을 정의합니다(예를 들어, Off에서 On으로 상태 변화). 이벤트의 어떤 엣지가 이벤트를 트리거할 것인지 선택합니다. 즉, 상승 엣지, 하강 엣지 또는 두 가지 모두 이벤트를 트리거할 수 있습니다. 또한, 이벤트를 래치하고 독립적인 포인트 트리거를 활성화할 수 있습니다.
  2. 프로젝트에서 이벤트 태스크를 작성합니다.
  3. 이벤트 태스크를 설정합니다. 이벤트 트리거를 선택해야 합니다. 예를 들어, Module Input Data State Change를 트리거로 선택할 수 있습니다. 태스크를 모듈의 해당 Event Input 태그에 연결합니다.

태스크 우선순위

컨트롤러의 각 태스크에는 우선순위가 있습니다. 운영체제는 우선순위를 이용해 복수의 태스크가 실행될 때 어떤 태스크를 실행할지를 정합니다. 가장 높은 우선순위 태스크는 그 보다 낮은 우선순위 태스크를 인터럽트합니다. 연속 태스크는 우선 순위가 가장 낮고 주기 또는 이벤트 태스크에 의해 인터럽트됩니다.
실행할 주기 및 이벤트 태스크를 가장 낮은 우선순위 15에서 가장 높은 우선순위 1까지 설정할 수 있습니다. Task Properties 대화상자를 사용해 태스크 우선순위를 설정하십시오.
태스크 우선순위 구성
이 이미지는 Task Properties 대화상자에서 태스크 우선순위를 설정하는 방법을 보여줍니다.
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal