def conn_opc(): # OPCサーバに接続 cl = Client("opc.tcp://192.168.10.5:51110/CogentDataHub/DataAccess") # クライアント証明書のapplication_uri cl.application_uri = "urn:desktop-i50i89m:Cogent DataHub" # policy設定 print("secPolicy: " + str(secPolicy)) if secPolicy != policies[0]: # None以外の場合SecurityPolicyを設定 mode = ua.MessageSecurityMode.SignAndEncrypt pc = getattr(security_policies, 'SecurityPolicy' + secPolicy) # 第二引数:クライアント証明書 cl.set_security( pc, "/Users/watarium/PycharmProjects/opcua/OPCUA_CL.der", "/Users/watarium/PycharmProjects/opcua/OPCUAClient.pem", "/Users/watarium/PycharmProjects/opcua/OPCUAServer.der", mode) # 認証設定 if setCert == certs[1]: # user/pass cl.set_user("admin") cl.set_password("1234") elif setCert == certs[2]: # certificate cl.load_private_key( "/Users/watarium/PycharmProjects/opcua/OPCUAClient.pem") cl.load_client_certificate( "/Users/watarium/PycharmProjects/opcua/OPCUA_CL.der") try: # 接続 print("Policy: {0}, Certificate: {1}".format(secPolicy, setCert)) print("---------------------Connection start-----------------------") cl.connect() sleep(5) # 情報取得 ep = cl.get_endpoints() print(ep[0].Server.ApplicationUri) root = cl.get_root_node() print("Objects node is: ", root) print(cl.get_namespace_array()) print(cl.get_namespace_index('urn:win-9hi38ajrojd:Cogent DataHub')) #これがうまくいかなかった(2019/06/27) #node = cl.get_node('ns=1;s=xxxxx') #print(node.get_value()) #node.set_attribute(ua.AttributeIds.Value, 1) # 切断 cl.disconnect() print("-------------------Connection Success!!!--------------------") except Exception as e: print("---------------------Connection Faild!!---------------------") print(e) cl.disconnect()
def test_get_endpointr(self): client = Client("opc.tcp://" + os.environ['TEST_IP'] + ":" + os.environ['TEST_PORT']) client.connect() endpoints = client.get_endpoints() print(endpoints) client.disconnect()
import time import os ip_port = input('enter "ip:port">') try: protocol = "opc.tcp://" url = str(protocol + ip_port) # server address client = Client(url) # customer creation client.connect_socket() client.send_hello() client.open_secure_channel() client.create_session() parameters = [ client.get_endpoints()[0].Server.ProductUri, client.get_endpoints()[0].Server.ApplicationUri, client.get_endpoints()[0].Server.ApplicationName, client.get_endpoints()[0].Server.ApplicationType, client.get_endpoints()[0].Server.GatewayServerUri, client.get_endpoints()[0].Server.DiscoveryProfileUri, client.get_endpoints()[0].Server.DiscoveryUrls ] keys = [ "ProductUri", "ApplicationUri", "ApplicationName", "ApplicationType", "GatewayServerUri", "DiscoveryProfileUri",
def test_get_endpointr(self): client = Client("opc.tcp://" + os.environ['TEST_IP'] + ":" + os.environ['TEST_PORT']) client.connect() endpoints = client.get_endpoints() self.assertEqual(len(endpoints), 4) client.disconnect()