大家好,
我用Python 設計一個opc ua client ,
如下程式代碼1所示,
但,運行的程序中,如果OPC UA 服務器沒啟動,程式會發生如下的“報錯資訊1”
如果OPC UA服務器中途停止,程式會發生如下的“報錯資訊2”超時報錯。
我想達到的效果是: 這個代碼在運行的時候,當OPC UA服務器沒啟動是,在等待鏈接。當OPC UA停止時,也是在等待鏈接。不要報錯。
#程式代碼1
import time
from opcua import Client
from opcua import ua
client = Client("opc.tcp://WIN-G9KK36SKPQC:37800")
client.connect()
while True:
#讀取變數節點
ret = client.get_node("ns=1;s=T1")
ret2 = client.get_node("ns=1;s=D2")
print(ret.get_value())
print(ret2.get_value())
time.sleep(1)
client.disconnect()
報錯資訊1:
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新建檔案夾\OPC測驗\結合\NewTryTest 變數節點.py", line 11, in <module>
client.connect()
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\client\client.py", line 255, in connect
self.connect_socket()
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\client\client.py", line 280, in connect_socket
self.uaclient.connect_socket(self.server_url.hostname, self.server_url.port)
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\client\ua_client.py", line 245, in connect_socket
return self._uasocket.connect_socket(host, port)
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\client\ua_client.py", line 142, in connect_socket
sock = socket.create_connection((host, port), timeout=self.timeout)
File "D:\Program Files\Python3.6.3\lib\socket.py", line 724, in create_connection
raise err
File "D:\Program Files\Python3.6.3\lib\socket.py", line 713, in create_connection
sock.connect(sa)
ConnectionRefusedError: [WinError 10061] 由于目標計算機積極拒絕,無法連接。
報錯資訊2:
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新建檔案夾\OPC測驗\結合\NewTryTest 變數節點.py", line 18, in <module>
print(ret.get_value())
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\common\node.py", line 153, in get_value
result = self.get_data_value()
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\common\node.py", line 162, in get_data_value
return self.get_attribute(ua.AttributeIds.Value)
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\common\node.py", line 273, in get_attribute
result = self.server.read(params)
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\client\ua_client.py", line 326, in read
data = self._uasocket.send_request(request)
File "D:\Program Files\Python3.6.3\lib\site-packages\opcua\client\ua_client.py", line 78, in send_request
data = future.result(self.timeout)
File "D:\Program Files\Python3.6.3\lib\concurrent\futures\_base.py", line 434, in result
raise TimeoutError()
concurrent.futures._base.TimeoutError
uj5u.com熱心網友回復:
樓主,我也有這個疑問,請問您把這個問題解決了嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/127568.html
下一篇:雙色球——隨機概率會是多少
