文章目录
博客B站视频==>>
from opcua import Client
def browse ( root, level= 0 ) :
if root. get_node_class( ) . name == 'Object' :
print ( '--' * level+ root. get_browse_name( ) . Name)
level += 1
for child in list ( set ( root. get_children( ) ) ) :
if child. get_browse_name( ) . Name != '所有结构实例的列表' and child. get_browse_name( ) . Name != '所有变量的列表' :
browse( child, level)
else :
print ( '--' * level+ root. get_browse_name( ) . Name+ '==>>' + '[' + str ( root. nodeid) + ']' )
def get_value ( node_id) :
url = "opc.tcp://192.168.124.19:4862"
c = Client( url)
try :
c. connect( )
node_ = c. get_node( node_id)
val = node_. get_value( )
return val
finally :
c. disconnect( )
def set_value ( node_id, val) :
url = "opc.tcp://192.168.124.19:4862"
c = Client( url)
try :
c. connect( )
node_ = c. get_node( node_id)
node_. set_value( val)
finally :
c. disconnect( )
def main ( ) :
url = "opc.tcp://192.168.124.19:4862"
c = Client( url)
try :
c. connect( )
root = c. get_root_node( )
root = root. get_child( [ '0:Objects' , '1:WinCC' ] )
browse( root)
finally :
c. disconnect( )
if __name__ == '__main__' :
main( )