Hi peeps,
I am running into an intermittent issue where sometimes a script executing system.opc.writeValue can take up to 20 odd seconds to execute and this can disrupt the production when it happens. All the script does is the following:
def HSK_Write(writeValue):
WriteSuccess = -1
server = "Ignition OPC-UA Server"
path = "ns=1;s=[PLC]Global.Ignition_StatusUpdated"
for i in range(3):
try:
returnQuality = system.opc.writeValue(server, path, writeValue)
if returnQuality.isGood():
system.tag.write("[default]Retry_Tags/Value_Update_Handshake", -99) #-99 means write success
WriteSuccess = -99
break
except:
pass
if WriteSuccess != -99:
system.tag.write("[default]Retry_Tags/Value_Update_Handshake", writeValue) #This triggers timer script for retries
The tag “Retry_Tags/Value_Update_Handshake” is only a memory tag so I wouldn’t imagine it will take long to write to that tag. There’s no sign of the server hardware overloading when this occurs either.
So just wondering if anyone has any suggestions on what I should be looking for in the gateway for fault finding/diagnostics or if there’s any suggestions on common practice that would bring down the time required to do an OPC write? As I thought using the system.opc.writeValue is generally faster than writing through scan classes.
Could it be a network issue or something on the PLC end?
The gateway version is 8.0.1 and the tag count on this specific device is only 44 tags.
Many thanks.