使用线程计时器时,Python COM与OpenOPC有关

时间:2016-02-15 06:54:05

标签: python multithreading com opc pythoncom

尝试在单独的线程中读取OPC标记时遇到问题。 目前使用Windows并使用DCOM模式连接到Matrikon OPC Simuator。 下面的代码工作正常

opc = OpenOPC.client()
opc.connect('Matrikon.OPC.Simulation','localhost')
print(opc.read(['Random.Int1','Random.Int2','Random.Int4']))

但是,当我尝试使用threading.Timer

在循环中读取标签时
def start():

    def readTags():
        # Start new threaded timer
        start()          

        # Read OPC tags. 
        print(opc.read(['Random.Int1','Random.Int2','Random.Int4']))

    # Create new threaded timer with the function to call after 1 second
    r = threading.Timer(1, readTags)
    r.start()

opc = OpenOPC.client()
opc.connect('Matrikon.OPC.Simulation','localhost')
start()

我收到以下错误

  

OPCError:AddGroup:尚未调用CoInitialize。

我觉得这与在不同线程(Using win32com with multithreading)之间共享COM对象有关 但无法让它正常工作。 非常感谢任何帮助,谢谢

0 个答案:

没有答案