본문으로 바로가기

랩뷰에서 파이썬 호출하기

category Programming/LabVIEW 2024. 5. 27. 16:59
반응형

파이썬으로 작성된 프로그램을 랩뷰에서 실행하는 방법을 이전 글에서 알아보았습니다. 요약하자면, 랩뷰를 통해 파이썬 인터프리터 자체를 실행시킴으로써 파이썬으로 작성된 코드를 실행시킨 것이니, 랩뷰와 파이썬을 연동했다고 표현하기에는 살짝 무리가 따르는 방법이었는데요. 이번 글에서는 말 그대로 랩뷰와 파이썬이 연동되는 그런 방법을 이야기 해보려고 합니다.

랩뷰에서 파이썬 노드를 정식으로 지원한 것이 2018 버전부터인 것으로 기억합니다. 그 당시에는 특정 버전의 파이썬만 지원했다는 한계가 있었는데, 최근 들어와서는 3.6부터 3.9버전까지 지원하는 것으로 확장되었습니다. 즉, 사용하시는 랩뷰의 버전에 따라 지원하는 파이썬 버전에 제한이 있으니, 설치되어 있는 파이썬의 버전과 호환이 되는지를 먼저 확인하시기 바랍니다.

랩뷰의 온라인 헬프 문서에서는 파이썬 노드에 대한 설명으로 파이썬 함수를 직접 호출한다고 명시되어 있습니다. 다시 말해서, 파이썬 프로그램에서 정의한 함수를 단독으로 불러서 사용할 수 있다는 의미인데요.

그래서, 파이썬 노드에 대한 기능을 확인하기 위해 위 그림과 같이 fcAdd라는 이름의 함수를 하나 정의하였습니다.

랩뷰 안에서 파이썬 함수를 호출하는 과정은 크게 3가지로 나눠집니다. 우선 파이썬 세션 열기 함수를 통해 파이썬 세션을 열어주는데요. 쉽게 말해서 파이썬 인터프리터를 랩뷰 프로그램 안에 로딩하는 것이라 이해하시면 됩니다. 여기서 중요한 부분은 파이썬 인터프리터의 버전을 전달하는 부분인데, 위 그림에서 보시는 것과 같이 문자열 타입으로 정의하면 되구요. 저는 3.6 버전의 파이썬이 설치되어 있으므로, 3.6이라고 입력하였습니다.

다음은 파이썬 노드를 통해 파이썬 함수를 호출합니다. 파이썬 세션 열기 함수의 출력 터미널로 전달되는 세션 정보의 연결이 필요하구요. 호출할 함수가 작성되어 있는 파이썬 프로그램의 경로를 지정하고, 호출할 함수의 이름을 문자열 타입으로 연결해 주시면 됩니다. 여기서 주목하실 부분은 호출 과정에서 전달할 파라메터와 반환되는 데이터가 파이썬 노드 아래쪽에 달린다는 점인데요. 파이썬 자체가 데이터 타입에 대해 상당히 자유로운 언어이기 때문에 반환되는 어떤 타입의 데이터를 파라메터로 전달하고 반환되는 데이터를 어떤 타입으로 받을 것인지를 랩뷰에서 정의해 주어야 합니다. 파이썬 노드 아래의 첫 번째 터미널이 반환되는 데이터와 관련된 터미널인데요. 프로그램의 실행 방향을 고려했을 때 데이터가 반환되는 오른쪽 터미널이 아닌 왼쪽 터미널 부분에 데이터 타입에 해당하는 상수 오브젝트를 연결해 주시면 됩니다. 그리고 이어서 파라메터로 전달할 데이터를 연결해 주시면 되구요.

마지막으로 파이썬 세션 닫기 함수를 통해 열어놓았던 파이썬 인터프리터를 닫아주시면 됩니다.

파이썬 세션 열기 함수를 통해 로딩된 인터프리터는 파이썬 세션 닫기 함수를 통해 종료하기 전까지 계속 열려있는 상태를 유지합니다. 다시 말해, 파이썬 인터프리터가 열려있는 동안에는 파이썬의 함수들을 여러 번 호출할 수 있다는 의미인데요.

위 그림과 같이 또 다른 함수를 파이썬 코드에 추가하구요.

위 그림과 같이 파이썬 노드를 파이썬 세션 닫기 함수 앞에 하나 더 추가하고, fcSub이라는 함수를 호출하도록 프로그램을 수정하였습니다. 그리고 임의의 데이터와 함께 프로그램을 실행시켜 보면, 두 함수의 호출에 의해 파이썬 프로그램의 글로벌 변수 데이터가 변경되는 것을 확인할 수 있습니다.

 

반응형

'Programming > LabVIEW' 카테고리의 다른 글

랩뷰로 Modbus 통신하기 (Program)  (0) 2024.05.30
랩뷰로 Modbus 통신하기 (with I/O Server)  (0) 2024.05.29
랩뷰에서 파이썬 실행하기  (0) 2024.05.27
MAP 데이터 타입  (0) 2024.05.27
SET 데이터 타입  (0) 2024.05.26