Hi all,

As I’m currently fine tuning with my new drivers, I wanted to take this 
discussion here as I think it has value to the project.
Unfortunately many reported issues are related to connection losses, plc 
updates and connectivity issues.

In my current case I was making my ADS driver more stable. Like ours this 
generally supports online and offline version changes.
During an online change the PLC remains online and we can instantly start 
re-loading the datatype and symbol tables.
With an offline change, the PLC usually reboots and is firstly just flat 
offline, then it comes online again, but is not yet able to handle connections.

While with the online changes it’s not an issue to transparently reload the 
tables and continue running, with offline changes this becomes more complex.
Initial Claude wanted to update the read logic, to do automatic reconnects with 
exponential backoff.

I however intervened.

As all of my use-cases generally use the connection cache and follow a pattern 
of „get a connection -> do stuff  -> put the connection back“, I think it would 
be better to fail the operation in case of an offline change and to have the 
tool then move the re-connect to the normal connection establishing code.

This should greatly simplify the driver logic … what do you think? Should we 
make our operations more complex to handle connection losses or should we fail 
fast and keep the logic simpler?

Chris

Reply via email to