본문으로 바로가기

랩뷰에서 파이썬 호출하기

category Programming/LabVIEW 2021. 8. 9. 17:16
반응형

이전 글을 통해, 파이썬으로 작성된 프로그램을 랩뷰에서 실행시키는 방법에 대해 알아보았다. 오늘은 파이썬 코드를 실행시키는 다른 방법에 대해 이야기 해보려고 한다.

랩뷰 프로그램은 2018 버전의 랩뷰 프로그램부터 파이썬 노드를 정식으로 지원하기 시작하였다.

지난 글에서의 방법이 랩뷰 안에서 파이썬 인터프리터를 직접 실행시키는 방법이었다면, 위 그림에서 볼 수 있듯이 파이썬 프로그램의 펑션을 랩뷰 프로그램 안에서 직접 호출하는 것이 차이점이라 할 수 있다.

파이썬 노드의 실제 동작을 확인하기 위해, 매개변수로 전달 받은 데이터의 총 합을 반환하는 파이썬 펑션을 위 그림과 같이 하나 정의하였다.

그리고, 작성한 파이썬 펑션을 호출할 수 있도록 위 그림과 같이 랩뷰 프로그램도 작성하였다. 그림에서 볼 수 있듯이, 파이썬 노드의 사용법은 아주 간단하다.

먼저, 파이썬 펑션을 호출하기 위해서는 Open Python Session 함수를 이용해서 파이썬 세션을 열어주어야 한다.

위 그림에서 볼 수 있듯이, Open Python Session 함수는 활성화시킬 파이썬 세션의 버전을 정의하는 역할을 한다. 다시 말해, Open Python Session 함수의 입력핀 중 Python version으로 파이썬 인터프리터의 버전을 문자열 타입으로 전달 받아, session out 출력핀으로 파이썬 세션을 전달하는 역할을 담당한다.
하지만, 파이썬의 모든 버전을 지원하지는 않는다는 점을 주의해야 한다. 오직, 파이썬 2.7과 3.6 버전만 지원하고, 같은 3.6 버전이라면 3.6.4나 3.6.8과 같은 세부 버전은 모두 지원한다. 그리고 추가로, 랩뷰와 동일한 비트의 파이썬만 지원한다. 다시 말해, 32비트 랩뷰 프로그램이 설치되었는데, 64비트의 파이썬 3.6 버전이 설치되어 있는 경우 파이썬 노드를 사용할 수 없다는 의미이다. 이 두 가지의 전제 조건이 맞지 않는 경우 랩뷰에서 파이썬 노드를 사용해도 에러 코드 1663만 반환될 뿐, 파이썬 펑션은 호출되지 않는다.

Open Python Session 함수의 세션 출력은 Python Node의 세션 입력으로 전달된다. 그리고, 호출할 펑션이 포함된 파이썬 모듈 파일의 경로와 펑션의 이름을 각각 입력 받아 사용한다.

펑션을 호출하는 과정에서 매개변수로 전달할 데이터와 반환 결과 등은 파이썬 노드의 아래쪽으로 확장되는 핀들을 통해 주고 받을 수 있다. 여기서 한 가지 중요한 점은 호출하는 펑션이 어떤 데이터를 반환하는지 타입을 지정해주어야 한다는 점인데,

위와 같은 타입의 데이터를 사용할 수 있다.

그리고, 이렇게 작성된 프로그램을 실행시키면, 위 그림과 같은 결과를 얻을 수 있다.

Open Python Session 함수를 통해 활성화된 파이썬 세션은 Close Python Session 함수를 만나기 전까지 상태를 유지한다. 그것은 한 번 열린 파이썬 세션을 닫기 전까지 여러 파이썬 펑션을 호출할 수 있다는 의미이다.

펑션의 반복 호출을 확인하기 위해 펑션의 실행 결과가 누적될 수 있도록 위 그림과 같이 전역 변수로 변경하였다.

그리고, 랩뷰의 프로그램도 펑션을 반복 호출하도록 작성한 다음,

프로그램을 실행시키면 위 그림과 같은 결과를 확인할 수 있다.

반응형

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

랩뷰에서 파이썬 실행하기  (0) 2021.08.09
SubVI  (0) 2021.08.09
SET과 MAP 데이터의 함수들  (0) 2021.08.07
MAP 데이터 타입  (0) 2021.08.06
SET 데이터 타입  (0) 2021.08.03