NI-VISA의 종료 문자

개요

다양한 메시지 기반 버스는 종료 문자를 사용하여 메시지 전송의 끝을 나타냅니다. 완전한 488.2 프로토콜에 해당하는 VISA 리소스 타입(GPIB Instr, VXI/GPIB-VXI Instr, USB Instr, TCPIP Instr)의 경우 프로토콜 구현에 메시지의 끝을 지정하는 기본 메커니즘도 있으므로 일반적으로 종료 문자를 사용할 필요가 없습니다. 다른 VISA 리소스 타입(Serial Instr, USB Raw, TCPIP Socket)을 사용할 때만 메시지 종료 방법을 VISA에 알리면 됩니다.

수신 및 발신 메시지에 모두 종료 문자를 사용할 수 있습니다. 보편적으로 사용되는 두 개의 종료 문자는 라인 피드(코드 디스플레이 '\n', ASCII 10진수 10 또는 16진수 0x0A) 및 캐리지 리턴(코드 디스플레이 '\r', ASCII 10진수 13 또는 16진수 0x0D)입니다.

주요 NI-VISA 프로퍼티 4개가 종료를 처리합니다. 두 개는 메시지 기반 셋팅에 해당하고, 나머지 두 개는 시리얼 셋팅에 해당합니다. 메시지 기반 프로퍼티는 Termination CharacterTermination Character Enabled이고, 시리얼 특정 프로퍼티는 Serial End Modes for ReadsSerial End Modes for Writes입니다. 각 프로퍼티에 대해 자세히 설명한 다음 특별히 고려해야 할 내용을 다루게 됩니다.

내용

종료 문자(TermChar)


이 프로퍼티는 부호 없는 8비트 정수를 입력으로 사용합니다. 따라서 종료 문자의 ASCII 값을 모르는 경우, 위와 같이 값을 타입캐스트하여 프로퍼티를 설정하는 것이 가장 좋습니다. 이 프로퍼티 값을 읽기 및 쓰기의 종료 문자로 사용합니다. 이 프로퍼티 값을 설정해도 사용 여부에는 영향을 주지 않습니다.

TermChar가 시리얼 통신으로 제한되지는 않지만, 개요에서 설명한 대로 완전한 488.2 프로토콜을 사용하여 버스에서 통신하는 경우 다른 종료 메커니즘을 사용하는 것이 좋습니다. 예를 들어 GPIB를 통해 통신하는 경우 표준은 하드웨어 라인(EOI)을 종료에 사용하는 것입니다.

참고: VISA Configure Serial Port.vi종료 문자 파라미터를 통해 이 프로퍼티를 설정하며, 기본적으로 라인 피드(0x0A = '\n' = LF)로 설정됩니다.

종료 문자 활성화(TermChar En)




True로 설정된 경우 이 프로퍼티는 종료 문자를 발견할 때 읽기를 정지하도록 VISA에 지시합니다. 시리얼로 제한되지 않으며, 이 프로퍼티를 사용하여 다른 버스의 읽기를 종료할 수 있습니다.

중요: 이 프로퍼티는 무시되며, 아래에 설명된 Serial End Modes for Reads가 Term Char로 설정된 경우 에러를 반환하지 않습니다.

이 프로퍼티는 쓰기의 종료 문자에 영향을 주지 않습니다.

참고: VISA Configure Serial Port.vi종료 문자 활성화 파라미터를 통해 이 프로퍼티를 설정하며, 기본적으로 True로 설정됩니다.

Serial End Modes for Reads (ASRL 종료 입력)


이 프로퍼티는 시리얼 통신에 대해서만 소프트웨어 버퍼의 읽기 작업을 종료하는 데 사용되는 방법을 지정합니다. 유효한 값은 다음과 같습니다.

설명
없음(0) 종료 문자를 발견해해도 읽기가 정지되지 않습니다.
마지막 비트(1) 마지막 비트가 설정된 상태로 문자가 도착하는 즉시 읽기가 정지됩니다.
TermChar (2)
(기본값)
종료 문자를 발견하면 읽기가 정지됩니다. 기본값입니다.


중요: 값이 TermChar (2)로 설정된 경우 Termination Character Enabled 프로퍼티 값은 무시됩니다.

VISA 읽기로 지정된 바이트 수 또는 타임아웃(VISA 프로퍼티)에 도달하면 이 프로퍼티가 설정된 값과 관계없이 읽기가 종료됩니다.

Suppress End Enabled (Suppress End En) 프로퍼티를 true로 설정하면 이 프로퍼티를 비활성화할 수 있습니다.

참고: 종료 문자 활성화 입력이 F로 설정된 경우 VISA Configure Serial Port.vi는 이 프로퍼티를 없음으로 설정하십시오. 종료 문자 활성화 입력이 T로 설정된 경우에는 TermChar로 설정하십시오.

Serial End Modes for Write (ASRL End Out)



이 프로퍼티는 쓰기 작업을 종료하는 데 사용되는 방법을 지정합니다. 유효한 값은 다음과 같습니다.

설명
없음(0)
(기본값)
쓰기에 종료 문자가 추가되지 않습니다.
마지막 비트(1) 쓰기가 최상위 비트를 지운 상태로 마지막 문자를 제외한 모든 문자를 보낸 후, 최상위 비트를 설정하여 마지막 문자를 전송합니다.
TermChar (2) 종료 문자의 값이 모든 쓰기의 끝에 추가됩니다.
중단(3) 각 쓰기 후에 시리얼 중단이 전송됩니다. 시리얼 중단은 진행 중인 작업을 정지하거나 출력 버퍼의 데이터를 모두 삭제하도록 인스트루먼트에 지시하는 데 자주 사용되는 일련의 연속 공백 값입니다. 이 방법을 사용할 때는 주의하십시오.


이전 인스트루먼트 드라이버가 VISA 쓰기 앞에 종료 문자를 추가하는 것을 발견할 수도 있습니다. 이전 버전의 VISA가 이 프로퍼티를 지원하지 않아서 사용자가 종료 문자를 명시적으로 추가해야 했기 때문입니다. 이 프로퍼티를 설정하면 종료 문자가 자동으로 추가되므로 이 작업은 더 이상 필요하지 않습니다.

Send End Enabled (Send End En) 프로퍼티를 false로 설정하면 이 프로퍼티를 비활성화할 수 있습니다.

참고: VISA Configure Serial Port.vi는 이 프로퍼티를 설정하지 않습니다. 위의 그림과 같이 프로퍼티 노드를 통해 설정해야 합니다.

ASCII 통신


ASCII 통신을 수행할 때 어플리케이션 또는 드라이버 초기화 루틴의 시작 부분에서 종료 프로퍼티 및 기타 버스 통신 셋팅을 설정하십시오. 종료 문자 셋팅은 인스트루먼트 설정과 일치해야 합니다. 일부 인스트루먼트에는 설정 가능 셋팅이 있습니다. 특정 인스트루먼트의 사용자 매뉴얼을 참조하십시오.

권장 사항: 여러 버스를 처리할 수 있는 보다 강력한 어플리케이션의 경우 Termination Character Enabled 및 Serial End Modes for Reads를 항상 동기화된 상태로 유지해야 합니다. 즉, 한 프로퍼티를 활성화/비활성화하는 경우 다른 프로퍼티도 동일하게 설정하십시오.

2진 통신


2진 통신을 수행할 때 이진 데이터 값에 종료 문자와 동일한 2진 표현이 있는 경우 읽기가 조기에 종료될 수 있습니다. 따라서 아래와 같이 Termination Character Enabled를 false로 설정하고 Serial End Modes for Reads를 없음(0)으로 설정하여 종료 문자를 비활성화합니다. 읽기를 종료하는 다른 방법(예: 하드웨어 라인, 바이트 수)을 사용해야 합니다.


참고: 완전한 488.2 프로토콜(GPIB Instr, VXI / GPIB-VXI Instr, USB Instr, TCPIP Instr)에 해당하는 VISA 리소스 타입을 사용하는 경우 일반적으로 종료 문자를 활성화할 필요가 없어서 종료 문자 셋팅을 먼저 비활성화하지 않아도 되기 때문에 보다 손쉽게 2진 통신을 구현할 수 있습니다.

여러 종료 문자를 사용하는 인스트루먼트


일부 인스트루먼트는 캐리지 리턴 라인 피드(코드 디스플레이 '\r\n' 또는 ASCII 16진수 0x0D0A)와 같은 여러 종료 문자를 보냅니다. VISA는 하나의 종료 문자만 허용하므로 다른 해결책을 찾아야 합니다. 먼저 인스트루먼트 종료 시퀀스가 설정 가능한지 확인하십시오. 설정할 수 없는 경우 마지막 문자에서 종료되도록 VISA를 설정하고, 문자열로부터 스캔을 사용하여 실제 메시지에서 다른 문자를 구문 분석할 수 있습니다. 다음 그림은 '\r\n' 또는 '\n' 종료에서 작동하는 코드를 보여줍니다.


참고: 이 설정을 사용하려면 Display Style 프로퍼티를 백슬래시('\') 코드로 설정해야 합니다. 백슬래시('\') 코드 디스플레이에 대한 자세한 내용은 백슬래시('\') 코드 디스플레이 - LabVIEW 도움말을 참조하십시오.