OpenOPC超时错误

时间:2015-03-06 11:35:12

标签: python

我正在使用python和OpenOPC连接到SCADA服务器。我的标签读好了 除了随机读取数量(30到50之间)后,我得到了 超时错误。

File"test7.py", line 12 in <module>
value=opc.read(group='mygroup')
File "C:\OpenOPC\src\OpenOPC.py" line 619, in read
    return list(results)
File "C:\OpenOPC\src\OpenOPC.py" line 537, in iread
raise TimeoutError, 'Callback:Timeout waiting for data'
OpenOPC.TimeoutError:Callback: Timeout waiting for data

是否有任何有OpenOPC经验的人可能知道如何恢复 在错误上,或忽略错误并继续。我不介意失踪 只要程序没有崩溃,奇数值。

#!C:\Python27\python.exe
import OpenOPC

opc = OpenOPC.client()
import datetime, threading, time
opc.connect('Citect.OPC.1')
tags = ['Loop_3_SP']
opc.read(tags, group='mygroup', update=1)
while True:
  value = opc.read(group='mygroup')
  print value
  time.sleep(10)

1 个答案:

答案 0 :(得分:1)

你可以通过这样的try catch块包围你的代码:

#!C:\Python27\python.exe
import OpenOPC

opc = OpenOPC.client()
import datetime, threading, time
opc.connect('Citect.OPC.1')
tags = ['Loop_3_SP']
opc.read(tags, group='mygroup', update=1)
while True:
  try:
     value = opc.read(group='mygroup')
     print value
  except OpenOPC.TimeoutError:
     print "TimeoutError occured"

  time.sleep(10)

这应该捕获错误并且只打印它发生的错误。如果你不想在TimeoutError的情况下发生任何事情,只需用户pass而不是print语句。