독불장군 님 / -1073807331 에러

    반응형

    계측기와 통신 중 2번 프로퍼티 노드를 통과하면서 에러가 발생하는 것으로 이해했습니다.

    일단 해당 에러의 NI 지식 문서를 참고하시기 바랍니다. 
    https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019L7PSAU&l=ko-KR 

    대충 보면 사용하는 시리얼 버스에서 바이트 읽기를 지원하지 않거나, 특정 포인트에서 사용할 수 없는 부분에 사용했거나 인 것 같습니다. 아마 첫 번째 문제라고 생각합니다.

    첫 번째 확인할 것 : NI-MAX에서 정상적인 통신이 되는지 확인합니다. 랩뷰 GPIB로 컨트롤 실전예제 글의 2) NI-MAX를 사용하여 커맨드 확인하기 를 참고하셔서 MEAS:VOLT? 커맨드를 날렸을 때 전압 값이 정상적으로 올라오는 지 확인하시기 바랍니다. 여기서 정상적으로 값이 읽어져야 랩뷰 코드에서 읽을 수 있습니다. 

    여기서 값이 정상적으로 읽혀지지 않는다면, 저도 고생을 해 봐야 찾을 수 있는 문제라고 생각합니다. 여튼, 여기서 정상적으로 읽어진다면 랩뷰 코드를 좀 만져보도록 합니다.

     

     

    프로퍼티 노드(2번)를 지우고, VISA 읽기(3번)에 연결되는 숫자를 약 100 정도로 임의로 입력해 주겠습니다. 이 방법은 통신 버퍼에 있는 바이트 숫자가 몇 개인지는 모르겠는데 나는 여튼 100개 바이트를 읽어올 것이라는 것입니다. 

    예를 들어 통신 버퍼에 5개가 있으면 5개만 불러오고, 105개가 있으면 100개만 불러옵니다. 후자는 5개의 바이트가 남아있기 때문에 다음 통신에서 문제가 될 가능성이 있습니다. 

    100개를 읽어오는 이유는 66319D에서 디스플레이되는 전압이나 전류의 소수점을 봤을 때 많아봐야 5~6개의 숫자로 표현될 것이라고 생각하기 때문입니다. 10개만 불러와도 되는 정도라면 10개 바이트만 읽어와도 괜찮습니다.

    이렇게 해도 안 되면, VISA 쓰기와 VISA 읽기 중간에 time delay를 약 100 ms 정도 넣어 줘 보세요.
    VISA 쓰기 -> 100 ms만큼 기다림 -> VISA 읽기

     

     

     

    댓글

    Designed by JB FACTORY