티스토리 뷰

안녕하세요. 구스입니다.


이 글에서는 파이썬에서 랩뷰 코드인 vi를 실행시키는 방법에 대해서 알아볼까 합니다.

물론 파이썬 뿐만 아니고, ActiveX에 대한 부분을 실행할 수 있는 모든 코드에서 실행이 가능합니다. (다음기회에 다른 언어인 c#에서 해보도록 할께요.)


그럼 ActiveX가 무엇일까요?


  • 액티브X(ActiveX)는 마이크로소프트사가 개발한 재사용 가능한 객체지향적인 소프트웨어 구성 요소 개발에 사용
  • 액티브X는 컴포넌트 오브젝트 모델과 객체 연결 삽입 (OLE)을 적용해서 컨텐츠를 이용


ActiveX에 대해서 알아보았습니다.

그럼 이 ActiveX를 이용해서 파이썬에서 다른 프로그램을 제어하기 위해 필요한 내용을 알아보도록 합시다.




파이썬은 pywin32를 이용해서 ActiveX 기반 혹은 COM 기반의 서비스를 제어할 수 있습니다.

따라서 pywin32를 사용하면 LabVIEW 뿐만 아니라, Excel, Power Point등도 제어를 할 수 있겠지요. 


파이썬에서 pywin32를 이용하여 다른 서비스에 대한 클라이언트를 이용하기 위해서는 win32com.client 개체를 사용해야 하며, 서비스에 대한 획득은 Dispatch 함수를 사용해야 합니다. 


파이썬과 PyCharm에서 pywin32 패키지를 설치하는 방법은 아래의 링크를 참고하세요.



그리고 Dispatch한 객체에 대한 함수와 프로퍼티를 사용할 수 있습니다. 


import win32com.client

comObj = win32com.client.Dispatch("Object.Name")

comObj.Method() 

comObj.property = "New Value"


그럼 LabVIEW에 대한 제어권을 가져와보도록 하죠. 아래의 Dispatch 함수를 통해서 LabVIEW 객체를 가져옵니다. 


import win32com.client


path = "C:\\test\\while.vi"

LabVIEW = win32com.client.Dispatch("Labview.Application")

VI = LabVIEW.GetVIReference(path)

VI.FPWinOpen = True

VI.Run (True)




그리고 LabVIEW에 대한 메소드와 프로퍼티를 사용하면 되는데요.

LabVIEW가 지원하는 ActiveX에 대한 메소드 리스트는 아래에서 확인할 수 있습니다.



Abort, Call등 다양한 함수가 있는데요.

여기서 주목해야 하는 부분은 GetVIReference Method를 통해서 Object를 가져와야 한다는 점입니다. GetVIReference는 사용하고자는 해당 VI의 레퍼런스를 얻는데 사용됩니다.


이 함수를 통해서 얻은 결과값을 통해서 실행등의 함수(Run)를 이용할 수 있습니다. 


자 그럼 코드를 실행해 봅시다.

while.vi라는 while문만 실행이 되는 vi를 하나 만들고 아래와 같이 구성을 합니다. 




LabVIEW는 따로 실행시키지 않고, 파이썬 코드를 실행시켜봅니다.

신기하게도 LabVIEW의 while.vi가 자동으로 실행이 됩니다. 




이 글에서는 파이썬에서 ActiveX를 이용하여 랩뷰 코드 실행시키는 방법에 대해서 알아보았습니다. 

그럼 이만 줄이겠습니다.


또 다른 랩뷰 강좌는 아래의 글을 통해 확인할 수 있습니다.



이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.


댓글