尝试在单独的线程中读取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对象有关 但无法让它正常工作。 非常感谢任何帮助,谢谢