From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 

테이블 사용시 PC 의 부하가 높아져 제어에 문제가 생깁니다.

설비 제어용 입니다.

작업 지시를 테이블로 불러오는데

탭으로 작업 지시 테이블, 센서 데이터 표시 화면 등 여러 화면을 구성했습니다.

그런데 화면을 작업 지시 테이블을 보이면 WHILE LOOP 의 루프 타임이 느려 집니다.

그래서 PLC 와의 통신 속도까지 느려져서 설비 제어에 문제가 생기기도 합니다.

 

테이블 화면은 왜 부하가 높으며,

이 문제를 해결할 수 있는 방법은 없나요?

0 포인트
1/8 메시지
1,955 조회수

그동안 올리신 글들을 보면서 대충 어떤 프로그램인지 상상은 되지만,

 

대체로 프로그램이 느려질 때 보면, 특히나 이벤트 케이스를 사용하는 경우엔

 

1. 진짜로 느려져서 느린 경우 보다는 이벤트가 많이 누적되어서 그런 경우가 있습니다.  이벤트 케이스 안에서는  통신,DAQ수집 등과 같이 시간이 걸리는 코드는 넣으면 안되는데, 그런걸 넣어서 사용하는 경우에 많이 그렇습니다. 

마스터/슬레이브 구조를 이용해서 이벤트 케이스에 커맨드만 날리고, 아래쪽에 슬레이브 루프에서 해당 동작을 수행하도록 하는 것이 좋습니다.

 

예를 들어,   시간이 걸리는 A, B,C 와  시간 소모가 거의 없는 D,E 이벤트가 있다고 할 때, 

이벤트가 A,D,B,E,C 와 같은 순서로 한번에 들어오면,  D,E는 A,B,C 때문에 즉시 반응 못합니다.

이때, A,B,C를 슬레이브 구조로 빼면 이벤트 처리시간이 짧아집니다.

 

2. 진짜로 CPU가 100% (혹은 코어 중 1개가 100%) 라면 그건 코드 구조를 봐야 합니다..

2/8 메시지
1,930 조회수

아무래도... PLC 통신 제어 코드와 테이블 관련 코드가 하나의 Loop 에 같이 있는 것 같은데요?

 

구조 문제가 예상되는데요;;;

0 포인트
3/8 메시지
1,926 조회수

아뇨.  테이블 루프와 plc 통신 루프는 별개로 되어 있습니다.

0 포인트
4/8 메시지
1,918 조회수

이벤트 케이스는 몇개 사용하고 있습니다.

하지만 이벤트 케이스에는 간단한 코딩 뿐입니다.

프로그램 자체 용량이 좀 크긴합니다.

실행 파일을 만들고 나면 10M 정도 됩니다.

 

0 포인트
5/8 메시지
1,917 조회수

괜찮으시다면 코드 좀 올려봐 주시겠어요?

 

의심되는 부분만이라도 좋습니다.

 

일단 봐야 겠네요 ㅋ

0 포인트
6/8 메시지
1,911 조회수

테이블로 인해 그런 현상이 아닐 것으로 예상합니다.

일단 프로그램 용량이 10M가 넘어간다면 프로그램 내 어레이에 데이타가 디폴트로 저장되어 있다는 뜻이겠죠.

 

큰 용량의 어레이를 처리 할 때 컴퓨터가 느려지는 경우가 생깁니다.

어레이 크기를 점검해 보세요.

 

또는 글로벌 VI에 과도한 어레이를 넣어놓고 처리할 떄도 그렇습니다.

글로벌 변수 하나 하나 사용 할 때마다 메모리에 왔다리 갔다리 해서 무지 느립니다.

 

큰 어레이의 데이타는 주로 기능적 글로벌 변수에서 처리하는 것을 추천합니다.

 

또한 Loop 내에서 Device의 Open / Close를 반복하다 보면 느려지게 됩니다.

 

멀티 Loop를 사용할 때 시간 Interval을 안 주면 CPU가 100% 사용되어 집니다.

 

윈도우의 테스크 작업 관리자를 띄어 놓은 후 프로그램 실행 시 성능에서 CPU의 사용률이 100%가 되는지 확인하면 됩니다.

 

 

 

 

 

0 포인트
7/8 메시지
1,890 조회수

프로퍼티노드를 계속 사용하면 부하를 많이 먹습니다

테이블에 내용을 수정할때 필요할때만 호출하거나해서 최대한 프로퍼티 노드 사용을 안하도록 하시면 괜찮으실거에요

cld 50.png

0 포인트
8/8 메시지
1,347 조회수