20250404_111532_
This commit is contained in:
parent
a0bf1c739b
commit
bacb84b736
15
EXEC_PRESS_RESET.bat
Normal file
15
EXEC_PRESS_RESET.bat
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
|
||||||
|
:: ---------- USER DEFINE --------------
|
||||||
|
set "venvName=opcua_com"
|
||||||
|
set "scriptPath=RUN_BTN.py"
|
||||||
|
set "arg=-n BTN_RESET"
|
||||||
|
:: -------------------------------------
|
||||||
|
|
||||||
|
:: Activate the Conda environment and execute the Python script
|
||||||
|
call conda activate %venvName%
|
||||||
|
python "%scriptPath%" %arg%
|
||||||
|
|
||||||
|
:: Pause at the end of the script
|
||||||
|
#pause
|
||||||
@ -12,4 +12,4 @@ call conda activate %venvName%
|
|||||||
python "%scriptPath%" %arg%
|
python "%scriptPath%" %arg%
|
||||||
|
|
||||||
:: Pause at the end of the script
|
:: Pause at the end of the script
|
||||||
pause
|
#pause
|
||||||
|
|||||||
@ -12,4 +12,4 @@ call conda activate %venvName%
|
|||||||
python "%scriptPath%" %arg%
|
python "%scriptPath%" %arg%
|
||||||
|
|
||||||
:: Pause at the end of the script
|
:: Pause at the end of the script
|
||||||
pause
|
#pause
|
||||||
|
|||||||
19
RUN_BTN.py
19
RUN_BTN.py
@ -14,6 +14,7 @@ def check_opcua_server(OPCcon):
|
|||||||
return 1 # Move to state 1
|
return 1 # Move to state 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error connecting to OPC UA server: {e}")
|
print(f"Error connecting to OPC UA server: {e}")
|
||||||
|
return 99
|
||||||
|
|
||||||
def establish_connection(OPCcon):
|
def establish_connection(OPCcon):
|
||||||
"""State 1: Establish connection to OPC UA server."""
|
"""State 1: Establish connection to OPC UA server."""
|
||||||
@ -21,29 +22,33 @@ def establish_connection(OPCcon):
|
|||||||
try:
|
try:
|
||||||
if OPCcon.opcuaclient.uaclient:
|
if OPCcon.opcuaclient.uaclient:
|
||||||
print("OPC UA connection established.")
|
print("OPC UA connection established.")
|
||||||
return 2 # Move to state 2
|
return 2
|
||||||
else:
|
else:
|
||||||
print(f"Error establishing connection")
|
print(f"Error establishing connection")
|
||||||
|
return 99
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error establishing connection: {e}")
|
print(f"Error establishing connection: {e}")
|
||||||
|
return 99
|
||||||
|
|
||||||
def push_btn(OPCcon, btn_name):
|
def push_btn(OPCcon, btn_name):
|
||||||
"""State 2:"""
|
"""State 2:"""
|
||||||
print("---- State 2 ----")
|
print("---- State 2 ----")
|
||||||
try:
|
try:
|
||||||
OPCcon.press_btn(btn_name)
|
OPCcon.press_btn(btn_name)
|
||||||
print("Data collection complete.")
|
print("Press button done.")
|
||||||
return 99 # Return to state 2
|
return 99
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error in data collection: {e}.")
|
print(f"Error in Press button: {e}.")
|
||||||
|
return 99
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# Argument parsing
|
# Argument parsing
|
||||||
parser = argparse.ArgumentParser(description='Run OPC UA button press script.')
|
parser = argparse.ArgumentParser(description='Run OPC UA button press script.')
|
||||||
parser.add_argument('-n', '--name', type=str, choices=['BTN_START', 'BTN_STOP'], required=True, help='Button name to press (BTN_START or BTN_STOP)')
|
parser.add_argument('-n', '--name', type=str, required=True, help='Button name to press (BTN_START or BTN_STOP)')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
btn_name = args.name # Get button name from arguments
|
btn_name = args.name # Get button name from arguments
|
||||||
|
# btn_name = 'BTN_STOP' # Get button name from arguments
|
||||||
|
|
||||||
# INIT
|
# INIT
|
||||||
config = yaml.safe_load(open('./cfg.yaml'))
|
config = yaml.safe_load(open('./cfg.yaml'))
|
||||||
@ -51,12 +56,16 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
# State machine loop
|
# State machine loop
|
||||||
state = 0
|
state = 0
|
||||||
|
active = True
|
||||||
|
while active:
|
||||||
if state == 0:
|
if state == 0:
|
||||||
state = check_opcua_server(OPCcon)
|
state = check_opcua_server(OPCcon)
|
||||||
elif state == 1:
|
elif state == 1:
|
||||||
state = establish_connection(OPCcon)
|
state = establish_connection(OPCcon)
|
||||||
elif state == 2:
|
elif state == 2:
|
||||||
state = push_btn(OPCcon, btn_name)
|
state = push_btn(OPCcon, btn_name)
|
||||||
|
else:
|
||||||
|
active = False
|
||||||
|
|
||||||
# Close the InfluxDB connection when done
|
# Close the InfluxDB connection when done
|
||||||
OPCcon.influxclient.close()
|
OPCcon.influxclient.close()
|
||||||
|
|||||||
@ -1,2 +1,3 @@
|
|||||||
BTN_START ns=2;s=LBP_Chan1.A_NCStart
|
BTN_START ns=2;s=LBP_Chan1.A_NCStart
|
||||||
BTN_STOP ns=2;s=LBP_Chan1.A_NCStop
|
BTN_STOP ns=2;s=LBP_Chan1.A_NCStop
|
||||||
|
BTN_RESET ns=2;s=LBP_Chan1.A_Reset
|
||||||
|
@ -6,8 +6,10 @@ dependencies:
|
|||||||
- python=3.10
|
- python=3.10
|
||||||
- opcua
|
- opcua
|
||||||
- numpy
|
- numpy
|
||||||
- pyyaml
|
|
||||||
- cryptography
|
- cryptography
|
||||||
- matplotlib
|
- matplotlib
|
||||||
- pandas
|
- pandas
|
||||||
- influxdb-client
|
- influxdb-client
|
||||||
|
- pip
|
||||||
|
- pip:
|
||||||
|
- pyyaml
|
||||||
157
doc/UaExpert_cfg.uap
Normal file
157
doc/UaExpert_cfg.uap
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
[Servers]
|
||||||
|
0\Name=SinOneA
|
||||||
|
0\Connected=true
|
||||||
|
0\ProjectServerId=0
|
||||||
|
0\ServerUrl=opc.tcp://192.168.214.1:4840
|
||||||
|
0\Server.ApplicationUri=
|
||||||
|
0\Server.ProductUri=
|
||||||
|
0\Server.ApplicationNameLocale=
|
||||||
|
0\Server.ApplicationNameText=
|
||||||
|
0\Server.ApplicationType=0
|
||||||
|
0\Server.GatewayServerUri=
|
||||||
|
0\Server.DiscoveryProfileUri=
|
||||||
|
0\Server.NoOfDiscoveryUrls=0
|
||||||
|
0\ServerCertificate=@ByteArray()
|
||||||
|
0\MessageSecurityMode=3
|
||||||
|
0\SecurityPolicy=http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256
|
||||||
|
0\NoOfUserIdentityTokens=0
|
||||||
|
0\TransportProfileUri=
|
||||||
|
0\SecurityLevel=0
|
||||||
|
0\DisplayName=SinOneA
|
||||||
|
0\ReverseConnect=false
|
||||||
|
0\ClientEndpointUrl=
|
||||||
|
0\UserTokenType=1
|
||||||
|
0\SessionName=SinOneA
|
||||||
|
0\DiscoveryHost=
|
||||||
|
0\UserName=OpcUaClient
|
||||||
|
0\StorePassword=true
|
||||||
|
0\CertificateFile=
|
||||||
|
0\PrivateKeyFile=
|
||||||
|
0\PkiStoreIndex=0
|
||||||
|
0\Namespaces\0=http://opcfoundation.org/UA/
|
||||||
|
0\Namespaces\1=urn:ncu1.local:SiemensAG:SinumerikServer
|
||||||
|
0\Namespaces\2=SinumerikVarProvider
|
||||||
|
|
||||||
|
[Documents]
|
||||||
|
Data%20Access%20View\DocumentType=Data Access View
|
||||||
|
Data%20Access%20View\DocumentSettings\headerState="@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x5r\0\0\0\t\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x84\0\0\0\0\0\0\0\t\0\0\0,\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x1=\0\0\0\x1\0\0\0\0\0\0\0\xa8\0\0\0\x1\0\0\0\0\0\0\x1m\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff)"
|
||||||
|
Data%20Access%20View\DocumentSettings\SubscriptionSettings\publishingInterval=500
|
||||||
|
Data%20Access%20View\DocumentSettings\SubscriptionSettings\lifetimeCount=2400
|
||||||
|
Data%20Access%20View\DocumentSettings\SubscriptionSettings\maxKeepAliveCount=10
|
||||||
|
Data%20Access%20View\DocumentSettings\SubscriptionSettings\maxNotificationsPerPublish=0
|
||||||
|
Data%20Access%20View\DocumentSettings\SubscriptionSettings\priority=0
|
||||||
|
Data%20Access%20View\DocumentSettings\SubscriptionSettings\publishingEnabled=true
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\DisplayName=vaIb
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\003\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\DisplayName="vaIm[u1, 1]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\NodeId="ns=2;s=/Channel/MachineAxis/vaIm[u1, 1]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\004\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\DisplayName="vaIm[u1, 2]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\NodeId="ns=2;s=/Channel/MachineAxis/vaIm[u1, 2]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\005\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\DisplayName="vaIb[u2,1]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb[u2,1]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\006\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\DisplayName="vaIb[u2,2]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb[u2,2]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\007\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\DisplayName="vaIb[u2,3]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb[u2,3]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\008\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\DisplayName="vaIb[u2,4]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb[u2,4]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\009\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\DisplayName="vaIb[u2,5]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb[u2,5]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\010\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\DisplayName="vaIb[u2,6]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb[u2,6]"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\011\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\DisplayName=vaIb
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\NodeId="ns=2;s=/Channel/GeometricAxis/vaIb"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\012\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\DisplayName=actToolBasePos
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\NodeId="ns=2;s=/Channel/GeometricAxis/actToolBasePos"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\013\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\DisplayName=actProgPos
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\NodeId="ns=2;s=/Channel/GeometricAxis/actProgPos"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\014\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\DisplayName=A_NCStart
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\NodeId="ns=2;s=LBP_Chan1.A_NCStart"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\017\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\DisplayName=A_NCStop
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\NodeId="ns=2;s=LBP_Chan1.A_NCStop"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\019\MonitoringParameters\SamplingInterval=250
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\DisplayName=A_Reset
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\NodeId="ns=2;s=LBP_Chan1.A_Reset"
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\Status=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\MonitoringMode=2
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\MonitoringParameters\DiscardOldest=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\MonitoringParameters\QueueSize=1
|
||||||
|
Data%20Access%20View\DocumentSettings\Items\000\021\MonitoringParameters\SamplingInterval=250
|
||||||
|
|
||||||
|
[Attribute%20Plugin]
|
||||||
|
Act_OnOff_Checked=true
|
||||||
|
|
||||||
|
[Reference%20Plugin]
|
||||||
|
Act_OnOff_Checked=true
|
||||||
|
Act_ShowHierarchical_Checked=true
|
||||||
|
Act_ShowNonHierarchical_Checked=true
|
||||||
|
Cmb_BrowseDirection_State=0
|
||||||
20
doc/opcua_con.txt
Normal file
20
doc/opcua_con.txt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
CRED
|
||||||
|
--> OpcUaClient
|
||||||
|
--> OPCUACLIENT
|
||||||
|
|
||||||
|
|
||||||
|
ACTIVATE SERVER @OPERATE
|
||||||
|
ACTIVATE (256bit,None)
|
||||||
|
LICENCE
|
||||||
|
==> COLD RESTART
|
||||||
|
|
||||||
|
|
||||||
|
GIVE ALL RIGHTS
|
||||||
|
Methods/GiveUserAccess
|
||||||
|
--> OpcUaClient
|
||||||
|
--> PlcWriteAll
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CHECKALL RIGHTS
|
||||||
|
Methods/GetUserAccessRights
|
||||||
@ -25,46 +25,13 @@ class opcua_connector:
|
|||||||
def press_btn(self, btn_name):
|
def press_btn(self, btn_name):
|
||||||
var = self.varlist_dict[btn_name]
|
var = self.varlist_dict[btn_name]
|
||||||
print(var)
|
print(var)
|
||||||
# _sent_opcua_data_impuls(self, var)
|
_sent_opcua_data_impuls(self, var)
|
||||||
|
|
||||||
def read_varlist(self, filename, DELIMITER='\t'):
|
def read_varlist(self, filename, DELIMITER='\t'):
|
||||||
df = pd.read_csv(filename, delimiter=DELIMITER, header=None)
|
df = pd.read_csv(filename, delimiter=DELIMITER, header=None)
|
||||||
return dict(zip(df.iloc[:, 0], df.iloc[:, 1]))
|
return dict(zip(df.iloc[:, 0], df.iloc[:, 1]))
|
||||||
|
|
||||||
|
|
||||||
# def track_robot_position(self, SAMPLE_DELAY=0.07, TOTMANN_SEC=3, stop_trigger_node=None, stop_trigger_value=None):
|
|
||||||
# """Track robot position and check stop trigger from OPC UA client."""
|
|
||||||
# try:
|
|
||||||
# start_time = time()
|
|
||||||
# write_api = self.influxclient.write_api(write_options=SYNCHRONOUS)
|
|
||||||
# living_point2 = 0
|
|
||||||
# treshold_living = 1
|
|
||||||
#
|
|
||||||
# def RECORDING():
|
|
||||||
# fieldnames = self.var_list.values[:, 0].tolist()
|
|
||||||
# nodes = self.var_list.values[:, 1].tolist()
|
|
||||||
# val = self.__get_opcua_data(nodes)
|
|
||||||
# points = [Point("mvalues").field(field, value).time(datetime.datetime.utcnow(), WritePrecision.NS)
|
|
||||||
# for field, value in zip(fieldnames, val)]
|
|
||||||
# write_api.write(bucket=self.influx_bucket, org=self.config['cred']["influxdb"]["org"], record=points)
|
|
||||||
# return val[0]
|
|
||||||
#
|
|
||||||
# while TOTMANN_SEC == 0 or time() - start_time < TOTMANN_SEC:
|
|
||||||
# # Check stop trigger
|
|
||||||
# stop_trigger_value_current = self.opcuaclient.get_node(stop_trigger_node).get_value()
|
|
||||||
# if stop_trigger_value_current == stop_trigger_value:
|
|
||||||
# print("Stop trigger detected.")
|
|
||||||
# break # Exit the loop when stop trigger is detected
|
|
||||||
# living_point1 = living_point2
|
|
||||||
# living_point2 = RECORDING()
|
|
||||||
# if abs(living_point1 - living_point2) >= treshold_living:
|
|
||||||
# start_time = time() # Reset start time to prolong session
|
|
||||||
# sleep(SAMPLE_DELAY)
|
|
||||||
#
|
|
||||||
# except Exception as e:
|
|
||||||
# print(f"Error during tracking: {e}")
|
|
||||||
|
|
||||||
|
|
||||||
def _get_opcua_data(self, var_list):
|
def _get_opcua_data(self, var_list):
|
||||||
""" Retrieve OPC UA node values based on the list of variable nodes. """
|
""" Retrieve OPC UA node values based on the list of variable nodes. """
|
||||||
return [self.opcuaclient.get_node(var).get_value() for var in var_list]
|
return [self.opcuaclient.get_node(var).get_value() for var in var_list]
|
||||||
@ -73,5 +40,5 @@ def _get_opcua_data(self, var_list):
|
|||||||
def _sent_opcua_data_impuls(self, var):
|
def _sent_opcua_data_impuls(self, var):
|
||||||
node = self.opcuaclient.get_node(var)
|
node = self.opcuaclient.get_node(var)
|
||||||
node.set_value(1) # Set node to 1
|
node.set_value(1) # Set node to 1
|
||||||
time.sleep(1) # Wait for 1 second
|
# time.sleep(1) # Wait for 1 second
|
||||||
node.set_value(0) # Set node back to 0
|
# node.set_value(0) # Set node back to 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user