You are here

RTSI를 이용한 모션 통합

모션 제어를 사용하는 시스템이 단순히 모션 제어 기능만 갖추고 있는 경우는 많지 않습니다. 실제로 시스템에는 모션 제어와 함께 이미지 수집이나 데이터 수집 등의 다른 기능이 결합되어 있는 경우가 많습니다. 여러 프로세스를 통합할 때의 문제 중 하나는 이들을 동기화시켜 함께 작동하도록 하는 것입니다. RTSI는 모션 제어와 데이터 수집 및 이미지 수집이 통합된 방식으로 작동하도록 해주는 핵심 요소 중 하나입니다.


 
목차:

  • RTSI란?
  • RTSI를 통해 이용할 수 있는 기능과 그 구성 방식은?
  • 모션 제어에서 RTSI는 어떻게 사용되는가?
  • 어플리케이션 1
  • 어플리케이션 2
  • 어플리케이션 3

 

 

RTSI란?
RTSI는 Real-Time System Integration(실시간 시스템 통합) 버스의 약자로, NI 보드간에 실시간 고속 통신을 이루어 시스템이 원활히 통합되도록 설계된 전용 고속 디지털 버스입니다. RTSI를 사용하는 모션 보드는 호스트 버스에서 대역폭을 소모하거나 외부 배선 없이 데이터 수집, 이미지 수집 또는 디지털 I/O 보드와 고속 디지털 신호를 공유할 수 있습니다. RTSI 버스는 또한 스위치를 내장하기 때문에 소프트웨어를 통해 실시간으로 버스를 오가는 신호 경로를 지정할 수 있습니다.
PCI 보드의 경우, 물리적 버스 인터페이스는 34핀짜리 내부 커넥터이며 신호는 PC 내부의 리본 케이블을 통해 공유됩니다. RTSI 케이블로는 2, 3, 4 또는 5개의 보드를 함께 연결할 수 있습니다. PXI 모듈은 내장된 PXI 트리거 버스가 RTSI 기능을 처리하기 때문에 배선이 전혀 필요 없습니다.

참고 - RTSI 커넥터에 34개의 핀이 있지만 7개만 사용자 신호에 사용됩니다. 소프트웨어로 구성할 수 있는 RTSI 스위치를 사용하여 각 보드에 대해 7개 이상의 신호 옵션을 수용합니다. 이 스위치는 다대소(many-to-few) 디지털 선택 스위치로서 신호를 어떤 RTSI 핀으로도 경로 지정할 수 있습니다. 둘 이상의 신호를 단일 RTSI 핀으로 경로 지정하거나 두 개의 RTSI 핀을 동일한 신호에 연결할 수도 있습니다.

RTSI 기능은 보드 유형에 따라 다양합니다. 예를 들어, 7344 시리즈 모션 컨트롤러 보드에서는 RTSI 핀에 직접 읽고 쓰기를 할 수 있습니다. RTSI 핀을 고속 트리거 입력 또는 브레이크 포인트 출력으로 구성할 수도 있습니다. 고속 트리거 입력은 위치를 캡처해서 저장하거나 모션 이벤트를 시작하기 위한 트리거로 사용됩니다. 브레이크 포인트 출력은 사전 설정된 위치에서 어설션(assert)을 통해 다른 장치를 트리거할 때 사용됩니다. E 시리즈 DAQ 보드에서는 타임베이스, 수집 클럭 및 범용 카운터 신호를 포함하여 15개의 타이밍 신호를 RTSI에 이용할 수 있습니다. NI의 이미지 수집 장치에서는 다양한 트리거 및 비디오 동기화 신호를 이용할 수 있습니다.
RTSI는 어떤 자동화 측정 어플리케이션이나 머신 제어 어플리케이션에도 고속의 하드웨어 기반 동기화 기능을 제공하기 때문에 다음과 같은 작업을 쉽게 수행할 수 있습니다.

 

 

- 다중 축 모션 시스템 구축
- 위치에 따라 데이터 수집을 클럭킹
- 모션과 비전을 통합

 

RTSI를 통해 이용할 수 있는 기능과 그 구성 방식은?

RTSI에 이용할 수 있는 기능은 장치 유형마다 다릅니다. 아래 표는 가장 많이 이용되는 NI 장치와 각 장치에서 이용할 수 있는 기능 목록입니다. "방향" 열에서 출력은 장치->RTSI 버스를 나타내고 입력은 RTSI 버스->장치를 의미합니다.

 

기능

방향

설명

LabVIEW VI

High-Speed Capture

입력

어설션될 때 위치 캡처 또는 이벤트 트리거

Select Signal.flx

Breakpoint

출력

사전 설정 위치에서 어설션

Select Signal.flx

RTSI Software Port

입력 또는 출력

RTSI 버스에서 직접 읽거나 쓰기

Select Signal.flx

 

표 1. PCI/PXI-7344 제어 보드에서 RTSI 기능

LabVIEW의 모션 라이브러리에는 신호의 경로 지정에 사용되는 Select Signal VI가 포함되어 있습니다. 이 VI의 LabVIEW Motion 온라인 도움말에 신호 경로 지정에 대한 구체적 정보가 들어 있습니다. 기능 방향 설명 LabVIEW VI
TRIG1 입력 또는 출력 아날로그 입력을 위한 트리거 Route Signal.vi
TRIG2 입력 또는 출력 아날로그 입력을 위한 트리거 
CONVERT 입력 또는 출력 아날로그 입력을 위한 신호 변환 
UPDATE 입력 또는 출력 아날로그 출력을 위한 클럭 업데이트 
WFTRIG 입력 또는 출력 아날로그 출력을 위한 트리거 
GPCTR0_SRC 입력 또는 출력 카운터 0의 소스 
GPCTR0_GATE 입력 또는 출력 카운터 0의 게이트 
GPCTR0_OUTPUT 출력 카운터 0의 출력 
STARTSCAN 입력(PXI에 모두) 아날로그 입력을 위한 클럭 스캔 
AIGATE 출력 아날로그 입력을 위한 게이트 
SISOURCE 출력 아날로그 입력을 위한 클럭 샘플링 
UISOURCE 출력 아날로그 출력을 위한 클럭 샘플링 
GPCTR1_SRC 출력 카운터 1의 소스 
GPCTR1_GATE 출력 카운터 1의 게이트 
RTSI_OSC (20 MHZ) 입력 또는 출력 모든 보드 클럭의 타임베이스 

표 2. E 시리즈 데이터 수집 보드에서 RTSI 기능

기능 방향 설명 LabVIEW VI
Disabled 없음 트리거 라인이 비활성됨 IMAQ Trigger Drive VI
Acquisition in Progress 출력 수집이 진행 중일 때 High IMAQ Trigger Drive VI
Acquisition done 출력 전체 수집이 완료되면 어설션 IMAQ Trigger Drive VI
Pixel Clock  출력 픽셀 클럭은 픽셀의 샘플링에 타이밍을 제공 IMAQ Trigger Drive VI
Unasserted  출력 어설션되지 않은 상태로 라인 쓰기 IMAQ Trigger Drive VI
Asserted 출력 어설션 상태로 라인 쓰기 IMAQ Trigger Drive VI
Horizontal Synchronization Signal  출력 각 라인의 첫 부분에서 카메라에 의해 수평 동기화 신호 생성 IMAQ Trigger Drive VI
Vertical Synchronization Signal  출력 각 필드의 첫 부분에서 카메라에 의해 수직 동기화 신호 생성 IMAQ Trigger Drive VI
Frame start 출력 프레임이 캡처될 때 High IMAQ Trigger Drive VI
Frame done  출력 캡처된 각 프레임의 끝에서 어설션 IMAQ Trigger Drive VI
Disabled 없음 트리거링이 비활성화됨 IMAQ Trigger Configure VI
Trigger start of acquisition 입력 트리거의 어설션 에지를 받으면 수집이 시작됨 IMAQ Trigger Configure VI
Trigger start of each buffer list  입력 트리거의 어설션 에지를 받으면 버퍼 목록이 수집됨. 수집이 지속적이면 버퍼 인덱스 0이 수집 전에 항상 트리거를 대기함 IMAQ Trigger Configure VI
Trigger each buffer 입력 각 버퍼는 이미지를 버퍼로 수집하기 전에 트리거를 대기함 IMAQ Trigger Configure VI
Trigger each line 입력 각 라인이 트리거됨. 인코더를 사용하여 라인 스캔 이미지를 수집할 때 유용 IMAQ Trigger Configure VI

표 3. PCI/PXI-1408, PCI/PXI-1422, PCI-1424 이미지 수집 보드에서 RTSI 기능

기능 방향 설명 LabVIEW VI
REQ1 입력 또는 출력 핸드쉐이킹 요청 1 Route Signal.vi
REQ2 입력 또는 출력 핸드쉐이킹 요청 2 Route Signal.vi
ACK1 입력 또는 출력 핸드쉐이킹 승인 1 또는 시작 트리거 Route Signal.vi
ACK2 입력 또는 출력 핸드쉐이킹 승인 2 또는 시작 트리거 Route Signal.vi
STOPTRIG1 입력 중단 트리거 Route Signal.vi
STOPTRIG2 입력 중단 트리거 Route Signal.vi
PCLK1 입력 또는 출력 데이터 클럭 Route Signal.vi
PCLK2 입력 또는 출력 데이터 클럭 Route Signal.vi

표 4. PXI-6533, PCI-DIO-32HS 고속 디지털 I/O 보드에서 RTSI 기능

  모션 제어에서 RTSI는 어떻게 사용되는가?
RTSI 신호를 사용하여 다중 축 모션 어플리케이션을 동기화하거나 데이터 또는 이미지 수집을 동기화할 수 있습니다. 이러한 어플리케이션에 대한 자세한 내용을 아래에 설명합니다.

  어플리케이션 1
둘 이상의 7344 시리즈 모션 컨트롤러를 사용하여 단일한 다중 축 통합 실시간 컨트롤러를 구성할 수 있습니다. 7344 시리즈 보드의 Vector Space 기능을 사용하여 동일 보드에 위치한 축들을 협력적으로 조정할 수 있지만 축이 개별 장치에 있고 이를 협력적으로 조정해야 한다면 RTSI 버스를 사용해야 합니다. RTSI 버스로부터 직접 읽기와 쓰기를 사용하여 여러 장치의 축 간에 모션을 동기화시킬 수 있습니다. 여러 장치가 관련되지만 모션 제어 시스템은 실시간 운영 체제를 사용하지 않고도 RTSI와 온보드 프로그래밍을 사용하여 실시간 성능을 유지합니다.
다음 코드는 7344 시리즈 컨트롤러에서 RTSI 버스를 통해 직접 읽기와 쓰기하는 방법을 자세하게 보여줍니다. 이 코드는 RTSI 0 High를 쓰고 이동을 수행하며 완료 시에 RSTI 0 Low를 씁니다. 필요한 VI를 그림 1a에 나타내었으며 와이어한 다이어그램을 그림 1b에 나타내었습니다.
코드 각 끝에 있는 스토리지 VI가 이것을 온보드 프로그램으로 만들어줍니다. 먼저 읽기와 쓰기를 위해 RTSI 0를 준비한 다음 대상 위치를 로드합니다. 이동하기 바로 전에 Set I/O Port MOMO.flx의 Must On 기능을 사용하여 비트1을 High로 설정합니다(이 vi가 RTSI 포트를 나타내기 위해 Port 5가 지정됩니다). 그런 다음 이동을 시작하고 완료되기를 기다립니다. Select_MOMO.flx를 사용하여 축 번호를 Wait on Condition.flx로의 입력을 위한 비트 맵으로 바꾸어야 합니다. 마지막으로 이동이 끝나면 Set I/O Port MOMO.flx의 Must Off 기능을 사용하여 RTSI 0을 초기화하고 프로그램을 종료합니다.

 
그림 1a. 온보드 프로그램에서 RTST 버스에 직접 쓰는 데 필요한 VI

 

그림 1b. RSTI 0에 대한 직접 쓰기를 보여주는 블록다이어그램

 

  어플리케이션 2
RTSI를 사용하여 모션 컨트롤러로부터의 위치를 기준으로 데이터 수집을 클럭킹할 수도 있습니다. 이동 중에 특정 위치에서 디지털 출력을 어설션하기 위해 FlexMotion 장치의 Breakpoint Output 기능을 사용합니다. 이 디지털 출력은 RTSI를 통해 NI의 E 시리즈 DAQ 장치 스캔 클럭 입력으로 보내집니다. 이 DAQ 장치는 각 중단점에서 하나의 스캔(각 활성 채널에서 하나의 샘플)을 얻습니다. 이러한 구성은 토크 및 힘 측정 시스템, 안테나 방향성 특성 분석 및 위치에 따른 데이터가 관심의 대상인 모든 측정 시스템에 적용할 수 있습니다.

다음 코드는 RTSI에서 Breakpoint Output을 구현하는 방법을 보여줍니다. 이 온보드 프로그램은 RTSI 라인을 구성한 다음 이동 중간에 RSTI 0을 활성화합니다. 와이어하지 않은 VI를 그림 2a에 나타내고 와이어한 다이어그램을 그림 2b에 나타내었습니다.

그림 2a. 온보드 프로그램에서 RTSI 버스를 통해 중단점을 활성화하는 데 필요한 VI

그림 2b. RTSI 0을 통해 Axis 1에 대한 중단점을 활성화하는 방법을 보여주는 블록다이어그램

 

어플리케이션 3
또 다른 일반적 어플리케이션은 RTSI 버스를 사용하여 비디오 프레임의 위치를 캡처하고 기록하는 것입니다. FlexMotion 보드의 High-Speed Capture Input 기능을 사용하여 Frame Start 펄스에 따라 위치를 캡처하고 로깅할 수 있습니다. Frame Start 펄스는 NI IMAQ 1408 이미지 수집 장치로부터 RTSI를 통해 전달됩니다. 비디오 프레임/위치 로깅의 일반적 어플리케이션은 오토포커싱입니다. 여기에 나타낸 원리는 다른 많은 위치 로깅 및 이벤트 동기화 시나리오에서 사용될 수 있는 강력한 기술을 보여주는 것입니다.

다음 코드는 RTSI를 통해 High-Speed Capture 및 위치 로깅을 구현하는 방법을 보여줍니다. 와이어하지 않은 VI를 그림 3a에 나타내고 와이어한 다이어그램을 그림 3b에 나타내었습니다.

이 코드는 Axis 1의 캡처 라인을 RTSI 0으로 경로 지정하고 대상 위치를 로드한 다음 이동을 시작합니다. RTSI 0이 활성화될 때마다 호스트에서 검색할 수 있도록 캡처된 위치가 가변 위치 1에 저장됩니다. 루프를 통과할 때마다 캡처가 다시 활성화된다는 점에 주목하십시오. 또한 Select.flx는 Enable High-Speed Position Capture.flx에 대한 비트맵을 생성합니다. 이 VI와 Select_MOMO.flx 간의 유일한 차이점은 출력 클러스터에 있는 요소의 수입니다.

이 코드는 데이터 조작의 실제적 예를 보여주기 보다는 High-Speed Capture의 개념을 설명하기 위한 것입니다. 이 경우에는 온보드 버퍼링이나 호스트로부터 직접 캡처 읽기가 더욱 실용적일 것입니다. 또한 이 코드에는 루프를 빠져 나오기 위한 수단이 없습니다.

 

 

그림 3a. 온보드 프로그램에서 RTSI 버스를 통해 High-Speed Capture Input을 받아들이는 데 필요한 VI

그림 3b. RTSI 0을 통해 Axis 1에 대한 High-Speed Capture를 받아들이는 방법을 보여주는 블록다이어그램

 

* 본 내용은 ‘LabVIEW Express 컴퓨터 기반 제어와 계측’의 저자인 곽두영님의 승인 하에 발췌된 내용입니다. 무단 사용을 금합니다.