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.



Real-Time FIFO에 관한 알려진 이슈의 해결방법은 무엇이죠?



주요한 소프트웨어: LabVIEW Modules>>Real-Time Module
주요한 소프트웨어 버전: 8.0
문제가 해결된 소프트웨어 버전:
부차적인 소프트웨어: N/A

문제점:
다음의 Real-Time FIFO에 관한 이슈의 해결방법은 무엇이죠?
  1. Real-Time FIFO 코드는 에러를 무시한다. 만약 하나의 에러가 프로그램 내부로 들어와도 해당 VI는 여전히 그 기능을 수행한다. 어떻게 하면 문제를 해결할 수 있을까요?
  2. 배열 인수에 데이터를 쓸경우 배열 크기변화가 일어납니다. 왜 이것이 일어나죠?
  3. RT FIFO는 묶여진 FIFO를 생성시키기 위해 메모리를 미리 배치시킨다. 왜 RT FIFO는 이것을 하나요?
  4. RT FIFO 와 Queues와 의 차이점이 있나요?
  5. RT의 동기화 팔레트(Synchronization Palette)안의 기능을 사용할 수 있나요?



솔루션:
알려진 이슈
  1. 에러가 입력을 검사하기 위한 케이스구조를 사용하도록 프로그램을 수정할 수 있습니다. 만약 에러가 발생하면, 하나의 케이스가 다른 코드를 실행하지 않고 단순히 에러를 통과시킵니다. 만약 에러가 발생하지 않으면 다른 케이스가 당신의 코드를 실행 할 수 있습니다.
  2. 만약 배열이 적당한 크기라면 배열 크기변화는 일어나지 않습니다. 만약 배열이 맞는 사이즈가 아니면 메모리 배치가 일어납니다. 메모리 운영을 피하기 위해서는 어레이가 항상 적당한 크기인지 확인하십시요.
  3. RT FIFO 묶여진 FIFO를 생성시키기 위해 메모리 선배치를 합니다. 이러한 행위는 RT 시스템을 안정적이고 정확하게 만들어줍니다. 데이터가 덮어써지지 않게 FIFO의 사이즈를 실행전에 설정할 수 있습니다. RT FIFO Create.vi는 FIFO 사이즈 인풋을 포함하고 있습니다. 만약 어떻게 메모리가 선배치되는지 알 수 없다면, 호스트 컨트롤러로 데이터를 보내고, 호스트 상의 FIFO를 사용하거나 Real Time Shared Memory VI를 사용하십시요.
  4. RT FIFO와 LabVIEW Queue는 기본적인 기능은 비슷합니다. 둘다 FIFO (First in First out)을 생성합니다, 그러나 RT FIFO는 묶여졌고, 에러를 체크하지 않습니다. RT FIFO는 정확한 시스템 구현을 위해 만들어졌고 이것은 Real time 시스템에서 추천할 만한 방법입니다.
  5. RT에서도 LabVIEW 동기화 기능을 사용할 수 있습니다. 그러나 RT FIFO는 RT 시스템을 위해 만들어졌습니다. 동기화 팔레트의 함수를 사용하면 RT 시스템의 정확한 구현에 손상을 줄 수 있는 필연적인 가능성을 가져올 수 있습니다.


관련 링크:
Developer Zone Example: Real-Time FIFO Example

첨부:





리포트 날짜: 10/22/2001
마지막 업데이트: 10/26/2007
문서 번호: 2ELD9UKN