来自NI-站点:
labview = win32com.client.Dispatch("Labview.Application")
VI = labview.getvireference(r'c:\TEMP\ctrl\ctrl.vi')
print(f'Name: {VI.Name}')
print(VI.getcontrolvalue('main'))只要我的虚拟仪器不在一个项目中,这是非常好的工作。但是,我在一个项目中有一个正在运行的VI,并且希望从python中读取/写入控件值。没有错误,但是python读取/写到项目之外的VI的单独实例。我是否可以修改VI的路径,以便python访问项目中的实例?
如何复制:
发布于 2021-12-29 20:35:26
您可能会考虑构建一个vi,您可以通过工具调用它(目前只有窗口),然后通过python的命令行进行接口。
发布于 2022-03-01 17:48:05
这应该能让你对如何做这件事有一些想法。我在这件事上很成功。您必须使用OpenProject active x方法获得对项目的引用,然后使用project.Application在项目上下文中获得对应用程序的引用。从那时起,它的工作方式类似于与非项目VI的通信,即用proj.Application替换proj.Application引用
class LabView():
    def __init__(self,project_path=''): #vi path 
        self.LabVIEW_Top    = win32com.client.Dispatch("Labview.Application")
        self.LabVIEW=self.LabVIEW_Top #init as if there is no project
        if project_path !='' :# project path was provided
            self.LabVIEW_Top._FlagAsMethod('OpenProject')
            proj=self.LabVIEW_Top.OpenProject(project_path)
            self.LabVIEW=proj.Application #over ride to project applicationhttps://stackoverflow.com/questions/70114011
复制相似问题