2017-11-17 16 views
0

PyVISA가있는 GPIB에서 장비 (아주 오래된 홀 측정 장비)를 제어하려고합니다. 나는 labview와 함께 작동한다는 것을 알고 있습니다. 어디에서 어떤 주소가 무엇을하는지, 몇 가지 기본 명령은 추적기가 있지만 아무런 기쁨도 찾지 못했습니다. 내가 어떤 "파도"로 쿼리 할 때 그러나GPIB의 장비에서 PyVISA를 사용하여 응답이 없습니다.

import visa 
rm = visa.ResourceManager() 
print(rm.list_resources()) 
>>>('ASRL1::INSTR', 'GPIB0::3::0::INSTR', 'GPIB0::3::1::INSTR', 'GPIB0::3::3::INSTR', 'GPIB0::3::4::INSTR', 'GPIB0::3::5::INSTR', 'GPIB0::3::6::INSTR', 'GPIB0::3::7::INSTR', 'GPIB0::3::8::INSTR', 'GPIB0::3::9::INSTR', 'GPIB0::3::10::INSTR') 

: 나는 3.

지금까지 내가 주소를 식별 할 수있었습니다 파이썬에서 DAQ 및 분석 코드를 작성하도록 요청했습니다 또는 실제로 측정 명령 문자열 (추적 labview I/O 발견) 나는 항상 타임 아웃 오류로 만났습니다.

instr3_8 = rm.open_resource('GPIB0::3::8::INSTR') 
instr3_8.query("*IDN?") 
>>>VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed. 

이것은 악기에서 읽으려고하는 모든 것에 대한 결과입니다.

(PyVISA 및 GPIB는 키 슬리 소스 미터 IDN 쿼리와 함께 작동하므로 백엔드가 작동 중임을 알고 있습니다.이 장비는 누구에게나 사용의 기회가되는 바이오 라디에이터 HL 5200입니다. 그리고 온라인으로 참조 할 수 없습니다.)

여기 자석 위치를 읽는 labview block diagram의 이미지가 있습니다. 이후 pyvisa로 글쓰기로 위치를 바꿀 수 있었지만 읽기는 여전히 타임 아웃을 제공합니다. github의 비슷한 문제는 종료 문자가 잘못되었다고 생각하게하지만 아직 해결되지 않았습니다.

+0

우리는 차이점을 볼 수있는 것보다 작동하는 곳에 labview 코드를 게시 할 수 있습니까? –

+0

LabView의 블록 다이어그램 외부에는 액세스 할 수있는 "코드"가 없지만 추적 프로그램에는 모든 정보가 포함되어 있습니다. –

+0

"코드"란 labview의 블록 다이어그램을 의미합니다. labview 사용자는 실제 코드이므로 이미지로 게시 할 수 있습니다. –

답변

0

장비에서 읽을 때 PyVISA와 NI MAX에서 종료 문자를 인식하지 못하는 문제가 발생했습니다. .read_termination을 사용하여 가능한 모든 종료 문자를 시도한 후 작업 한 결과 내 홀 프로브에서 최종적으로 읽을 수 있습니다.

0

아주 오래된 GPIB 계측기는 종종 불완전하거나 비표준 GPIB 구현을 가지고 있습니다. 예를 들어 * IDN?에 대한 지원이 부족하거나 하드 코딩 된 명령 종료 문자가 하나만있을 수 있습니다.

이러한 오래된 계기 중 일부는 주소 +1을 '프린터'주소로 사용합니다. 따라서 기기는 설정 한 주소뿐만 아니라 다음 주소도 예약합니다. 동일한 네트워크에 더 많은 (오래된) 악기가있는 경우 특히 혼란을 야기 할 수 있으므로 결과적으로 주소를 사용하지 말고 1, 3, 5, 7을 사용하는 것이 좋습니다.

또한 상태 바이트를 너무 자주 폴링하는 경우에도 응답 버퍼를 읽지 않고 실제 오래된 장비의 처리 기능에 과부하가 걸릴 수 있습니다.