MoonNote

반응형

If SubVI Process.vi generates an error, your VI should clear the error and retry the SubVI two more times to give it a chance to succeed.  Which of the following VIs best meets these requirements?

 

1.

2.

3.

4.


정답 보기는 아래 더보기 클릭

 

 

더보기

정답 : 3. (문제 이미지 참조)

Process.vi 이름의  SubVI에서 에러가 발생하였을 경우 2번 더 SubVI를 실행하여 에러없이 실행되도록 하는 코드를 찾는 문제이다. 일단 조건을 정리해보면 에러가 발생하였을 경우이므로 반대로 에러가 없다면 SubVI는 1회만 실행되어야한다. 이를 가능토록 해주는 것이 For문에서 조건 터미널 설정을 활용하는 것이다. 조건 터미널에 에러 데이터를 와이어링해줄 경우, 에러 클러스터 안의 Boolean 값을 기준으로 조건 터미널이 실행된다. 조건 터미널의 옵션은 두 가지인데 ¹참인 경우 계속과 ²참인 경우 정지이다.

에러 발생시 2번을 추가로 실행해야 하므로 For문의 루프 카운트를 3으로 설정한 후 조건 터미널을 "참인 경우 계속" 옵션으로 설정한다. "참인 경우 계속" 옵션을 사용한 보기는 1번과 3번뿐인데 두 코드의 차이는 에러 와이어에 대한 시프트 레지스터 사용 유무이다. 시프트 레지스터를 사용하게 되면 이전 사이클에서 에러 발생시 해당 에러 정보가 다음 사이클에도 계속해서 전달되므로 에러없이 성공적으로 실행 가능한 사이클이 없다. 그럼 결국 루프 카운트를 지정한 3회가 모두 실행된다. 이는 For문이 있으나마나한 코드로 각 For문의 사이클은 이전 실행에서의 에러 유무에 영향을 받지 않아야한다.(현재 실행에서의 에러 유무만 가지고 추가 실행을 할지 결정해야 함)
따라서,
정답은 시프트레지스터를 사용하지 않은 3번이다.

 

 

 

※ 이 글이 도움이 되었다면 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band