티스토리 뷰

안녕하세요. 구스입니다.


이 글에서는 VeriStand에 대한 엔진에 대해서 알아보도록 할텐데요. VeriStand는 HILs를 처리할 수 있게 도와주는 NI의 소프트웨어라고 보시면 됩니다. 


그럼 VeriStand 엔진에 대해서 알아보도록 합시다.

 

VeriStand 엔진은 타겟과 호스트 컴퓨터 사이의 전체 시스템 통신 및 타이밍 제어를 위해서 눈에 보이지 않은 실행 매커니즘을 보유하고 있습니다. VeriStand 엔진은 여러 개의 타임드루프로 구성이 되어 있으며, 이 루프 간의 데이터 전달을 위해서 RT(Real-Time) FIFO를 사용하고 있습니다.

 


각 루프는 특정 기능을 수행하는 태스크로 구성이 되어 있으며, 루프 타이밍 설정과 같이 사용자가 기존에 정의된 루프의 설정 값을 변경하여 사용할 수도 있습니다. 시스템 정의 파일(System Definition File) VeriStand 엔진에 대한 설정 값을 가지고 있습니다.

 

VeriStand 엔진은 하드웨어 IO, 모델, 프로시저, 알람, 테스트등을 실행하는데 사용이 됩니다. VeriStand 엔진은 모델과 하드웨어 IO의 결과를 기반으로 하는 채널 테이블의 값들을 계산합니다. 이 엔진은 PC상의 모델은 물론, RT 시스템에서도 실행이 가능합니다.

 

아래의 테이블은 VeriStand 엔진이 가지고 있는 루프의 우선순위와 실행 속도에 대한 기본 값들을 나타냅니다.

 



아래의 그림은 VeriStand 엔진이 처리되는 모습을 보여주고 있습니다




그럼 각 루프의 간략한 설명에 대해서 알아보도록 합시다. 


Primary Control Loop

 

The Primary Control Loop VeriStand 엔진의 타이밍을 제어하고, 채널의 값을 최신 값으로 업데이트 합니다. 각각의 반복에서는 PCL(Primary Control Loop)는 아래의 태스크를 수행합니다.

 

  • Reads and writes high-speed FPGA I/O, analog and counter DAQ I/O, and Asynchronous Custom Device Loop data.
  • Applies scaling to the data.
  • Executes one step of the stimulus profile, if a test is currently running.
  • Sends data to the Data Processing Loop in order to synchronize the table of channel values.
  • Sends data to the Model Execution Loops.
  • Prompts the Data Processing Loop, Model Execution Loop(s), and Asynchronous Custom Device Loop(s) to execute.
  • Performs software fault insertion.
  • Creates mapping connections.
  • Executes inline custom devices.
  • Reads status information from the Waveform Processing Loop and DAQmx Waveform Producer Loop(s).

 

Model Execution Loop(s)

 

Model Execution Loop는 컴파일 된 모델을 실행합니다. Model Execution Loop의 수는 시스템 정의 파일에 정의된 모델의 개수에 따라 결정이 됩니다. 각 반복 문에서는 아래와 같은 태스크를 수행합니다. 

 

  • Reads the data sent by the Primary Control Loop and maps this data to model inports.
  • Executes one step of the model.
  • Reads model outport values and sends this data to the Primary Control Loop.


 


Asynchronous Custom Device Loop(s)

 

사용자는 Asynchronous Custom Device Loop에 대한 수, 행위, 우선순위를 결정할 수 있습니다. VeriStand 엔진은 Asynchronous Custom Device Loop 초기화 작업과 PCL의 반복에 따라 Custom Device의 입력되는 데이터를 전달하기 위해서만 응답을 합니다.

 

Waveform Processing Loop

 

Waveform Processing Loop는 시스템을 통해서 웨이브폼 데이터를 전달하는데 사용이 되는데, 아래와 같은 태스크를 수행합니다.

 

  • Reads waveform data from DAQmx Waveform Producer Loops.
  • Sends waveform data to the VeriStand Gateway.
  • Reads waveform data from custom devices.
  • Sends waveform data to custom devices.

 

DAQmx Waveform Producer Loop(s)

 

DAQmx Waveform Producer LoopDAQ 장비로부터 웨이브폼을 수집하는데 사용이 됩니다. 시스템 정의에 포함된 각 웨이브폼 태스크는 아래의 동작을 수행하고 이에 상응하는 DAQmx Waveform Producer Loop를 가지고 있습니다.

 

  • Reads waveform data from analog input channels on DAQ devices using the timing and triggering settings you define in the task.
  • Sends waveform data to the Waveform Processing Loop.
  • Logs acquired data to .tdms files, if you enable logging.

 

 

Data Processing Loop


PCL과 같이 Data Processing Loop Channel Value에 대한 테이블을 복사하여 가지고 있습니다. Data Processing Loop는 프로시저, 알람, Calculated Channel을 실행할 뿐만 아니라 Communication Receive Loop로부터 받은 실행 명령어를 Loop사이에 분배합니다. 루프는 각 실행을 할 때 아래의 태스크를 수행합니다.

 

  • Receives the table of channel values from the Primary Control Loop.
  • Executes procedures, alarms, and calculated channels.
  • Transmits updated table of channel values to the Primary Control Loop.
  • Sends data values to the Communication Send Loop

 

Communication Loops

 

이 루프는 VeriStand 게이트웨이 간의 TCP/IP 통신을 처리합니다. Communication Loops는 아래와 같이 2개로 구성이 됩니다.

  •  Communication Send Loop— VeriStand Gatewaychannel value를 전송
  • Communication Receive Loop—VeriStand Gateway로부터 Command를 수신

 

XNET Loop

 

XNET data를 읽고 씁니다.

 

DIO Loop

 

Low Spped의 디지털 IO의 값들을 읽고 씁니다.

 


Model Interface Loop

 

모델 파라미터의 값을 업데이트 합니다. Model Execution Loop는 모델의 입력과 출력과 관련된 동적 데이터를 High Speed로 처리합니다. 하지만 Model Interface Loop는 모델 파라미터 값들을 업데이트 하는데 Low Speed로 처리를 합니다.


그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.


댓글