Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
opcua-cloning
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yogesh.m
opcua-cloning
Commits
b5ab9e54
Commit
b5ab9e54
authored
Mar 08, 2023
by
yogesh.m
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
2b15e421
6bdc30e0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
9 deletions
+17
-9
asyncua_server.py
asyncua_server.py
+16
-5
opcua_receiver.py
opcua_receiver.py
+1
-4
No files found.
asyncua_server.py
View file @
b5ab9e54
...
@@ -16,6 +16,17 @@ class asyncua_server():
...
@@ -16,6 +16,17 @@ class asyncua_server():
self
.
server
=
None
self
.
server
=
None
self
.
idx
=
None
self
.
idx
=
None
async
def
delete_all_objects
(
self
):
root_nodes
=
await
self
.
server
.
get_root_node
()
.
get_children
()
obj_nodes
=
await
root_nodes
[
0
]
.
get_children
()
for
node
in
obj_nodes
:
if
(
"ns="
in
str
(
node
)
and
"ns=2;i=1"
not
in
str
(
node
)):
print
(
node
)
sub_obj
=
await
self
.
server
.
get_node
(
node
)
.
get_children
()
for
del_node
in
sub_obj
:
await
self
.
server
.
delete_nodes
([
del_node
])
await
self
.
server
.
delete_nodes
([
node
])
async
def
add_object
(
self
,
obj
,
hierarchy
):
async
def
add_object
(
self
,
obj
,
hierarchy
):
if
(
hierarchy
[
obj
][
"name"
]
==
"String"
):
if
(
hierarchy
[
obj
][
"name"
]
==
"String"
):
var_obj
=
await
self
.
server
.
nodes
.
objects
.
add_folder
(
self
.
idx
,
obj
)
var_obj
=
await
self
.
server
.
nodes
.
objects
.
add_folder
(
self
.
idx
,
obj
)
...
@@ -31,7 +42,7 @@ class asyncua_server():
...
@@ -31,7 +42,7 @@ class asyncua_server():
await
self
.
server
.
nodes
.
objects
.
add_folder
(
self
.
idx
,
obj
)
await
self
.
server
.
nodes
.
objects
.
add_folder
(
self
.
idx
,
obj
)
async
def
add_variable
(
self
,
obj
,
var
):
async
def
add_variable
(
self
,
obj
,
var
):
var
=
await
obj
.
add_variable
(
self
.
idx
,
var
,
11
)
var
=
await
obj
.
add_variable
(
self
.
idx
,
var
,
11
)
await
var
.
set_writable
()
await
var
.
set_writable
()
return
var
return
var
...
@@ -42,13 +53,12 @@ class asyncua_server():
...
@@ -42,13 +53,12 @@ class asyncua_server():
# set endpoint information
# set endpoint information
url
=
url
url
=
url
self
.
server
.
set_endpoint
(
url
)
self
.
server
.
set_endpoint
(
url
)
root_nodes
=
await
self
.
server
.
get_root_node
()
.
get_children
()
obj_nodes
=
await
root_nodes
[
0
]
.
get_children
()
# create a new address space
# create a new address space
uri
=
uri
uri
=
uri
self
.
idx
=
await
self
.
server
.
register_namespace
(
uri
)
self
.
idx
=
await
self
.
server
.
register_namespace
(
uri
)
await
self
.
server
.
start
()
await
self
.
server
.
start
()
obj
=
await
self
.
server
.
nodes
.
objects
.
add_folder
(
self
.
idx
,
"myobj"
)
var
=
await
obj
.
add_variable
(
self
.
idx
,
"myvar"
,
0
)
await
var
.
set_writable
()
try
:
try
:
# keep the server running until interrupted
# keep the server running until interrupted
while
True
:
while
True
:
...
@@ -67,7 +77,8 @@ def hash_receive():
...
@@ -67,7 +77,8 @@ def hash_receive():
bytesAddressPair
=
UDPServerSocket
.
recvfrom
(
bufferSize
)
bytesAddressPair
=
UDPServerSocket
.
recvfrom
(
bufferSize
)
message
=
bytesAddressPair
[
0
]
message
=
bytesAddressPair
[
0
]
hierarchy
=
pickle
.
loads
(
message
)
hierarchy
=
pickle
.
loads
(
message
)
if
(
prev_hash
!=
hierarchy
[
"hash"
]):
if
(
prev_hash
!=
hierarchy
[
"hash"
]
and
asr
.
idx
):
asyncio
.
run
(
asr
.
delete_all_objects
())
for
object
in
hierarchy
:
for
object
in
hierarchy
:
if
(
object
!=
"hash"
):
if
(
object
!=
"hash"
):
display_name
=
object
display_name
=
object
...
...
opcua_receiver.py
View file @
b5ab9e54
...
@@ -26,8 +26,7 @@ UDPServerSocket.bind((localIP, localPort))
...
@@ -26,8 +26,7 @@ UDPServerSocket.bind((localIP, localPort))
print
(
"UDP server up and listening"
)
print
(
"UDP server up and listening"
)
t1
=
threading
.
Thread
(
target
=
st
,
args
=
())
t1
=
threading
.
Thread
(
target
=
st
,
args
=
())
t1
.
start
()
t1
.
start
()
sleep
(
30
)
sleep
(
5
)
print
(
"here"
)
opua
=
opcua_pack
()
opua
=
opcua_pack
()
sock
=
opua
.
connect
(
"opc.tcp://2.2.2.5:53531/myopc/free"
)
sock
=
opua
.
connect
(
"opc.tcp://2.2.2.5:53531/myopc/free"
)
...
@@ -35,6 +34,4 @@ while (True):
...
@@ -35,6 +34,4 @@ while (True):
bytesAddressPair
=
UDPServerSocket
.
recvfrom
(
bufferSize
)
bytesAddressPair
=
UDPServerSocket
.
recvfrom
(
bufferSize
)
message
=
bytesAddressPair
[
0
]
message
=
bytesAddressPair
[
0
]
datatype
,
value
,
ns
,
nodeid
=
message
.
decode
()
.
split
(
"&"
)
datatype
,
value
,
ns
,
nodeid
=
message
.
decode
()
.
split
(
"&"
)
if
(
"int"
in
datatype
):
print
(
value
)
opua
.
write_opcua_value
(
sock
,
ns
,
nodeid
,
value
,
datatype
)
opua
.
write_opcua_value
(
sock
,
ns
,
nodeid
,
value
,
datatype
)
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment