상품

I/O를 제어하는 태스크 이외에서 장치 변수에 액세스하면 어떻게 됩니까?

등록일
2025. 12. 17.

I/O를 제어하는 태스크 이외에서 장치 변수에 액세스하면 어떻게 됩니까?



NJ/NX 시리즈에서는 CJ 버스나 NX 버스상의 유닛 및 EtherCAT상의 슬레이브의 「I/O 포트」에 대해 읽기/쓰기를 수행할 경우, 「디바이스 변수」라는 할당 대상이 고정된 변수를 통해 접근합니다.
디바이스 변수는 일반적으로 글로벌 변수로 등록되므로 모든 태스크에서 접근 가능한 것처럼 보이지만, I/O 포트와의 데이터 업데이트 처리는 「I/O를 제어하는 태스크 설정」에서 설정된 태스크에서만 실행됩니다. 따라서 이 설정이 되어 있지 않은 태스크에서의 접근 시, Sysmac Studio에서 프로젝트를 빌드할 때 다음과 같은 오류 메시지가 발생합니다.
"프로그램이 속하지 않는 태스크를 할당하는 유닛의 쓰기 전용 또는 읽기/쓰기 가능한 디바이스 변수는 사용할 수 없습니다."

이러한 메시지가 표시되면, "I/O 제어 태스크 설정"에서 설정하지 않은 태스크에서 장치 변수에 접근하는 부분이 없는지 프로그램을 확인하십시오.
위와 같이 I/O 제어 대상이 아닌 태스크에서의 접근 부분을 발견했다면, 아래 두 가지 방법 중 하나로 오류를 해제합니다.

① 프로그램이 속한 태스크를 대상 I/O를 제어하는 태스크로 설정
아래와 같이 「태스크 설정」-「I/O 제어 태스크 설정」에서 대상 I/O 유닛을 제어(I/O 리프레시)하는 태스크(오른쪽 태스크명 란)를 해당 장치 변수에 접근하는 프로그램이 속한 태스크로 변경합니다.
단, I/O 제어 대상(I/O 리프레시를 수행할 수 있는) 태스크로 할당될 수 있는 것은 「기본 정주기 태스크」와 「정주기 태스크(우선순위 5): NX701에서만 사용 가능」 및 「정주기 태스크(우선순위 16): NX102 및 NX1P2에서는 사용 불가」뿐입니다.
그 외의 태스크에 할당해야 하는 경우에는 ②의 방법으로 프로그램을 I/O 제어 대상 태스크에 속하도록 변경하십시오.
マルチビューエクスプローラ_プログラムの属するタスクを対象となるI/Oを制御するタスクに設定する


② I/O 제어 대상이 아닌 태스크에서 접근하는 프로그램을 I/O 제어 대상 태스크에 속하도록 변경하기
아래와 같이 「태스크 설정」-「프로그램 할당 설정」에서 대상 I/O에 연결된 디바이스 변수를 접근하는 프로그램을 위 ①의 「I/O를 제어하는 태스크 설정」에서 설정한 I/O 제어 대상 태스크에 속하도록 변경합니다.
이 방법으로도 적용할 수 없는 경우, 일단 I/O 제어 대상 태스크에서 디바이스 변수를 접근하여 I/O 제어 대상이 아닌 태스크에 속하는 프로그램으로 데이터를 중개하여 일반 변수로 전달하는 등의 방법이 필요합니다.
マルチビューエクスプローラ_I/O制御対象外タスクからアクセスしているプログラムをI/O制御対象タスクに属するように変更する

또한, 태스크 설계 방법 및 태스크 설정의 상세 내용은 아래 매뉴얼을 참조하십시오.
「머신 오토메이션 컨트롤러 NJ/NX 시리즈 CPU 유닛 사용자 매뉴얼 소프트웨어 편(SBCA-467)」

매뉴얼은 아래 상품 정보 페이지에서 다운로드하실 수 있습니다. (단, 무료 회원 가입이 필요합니다.)