OPC-UA Best Practices

I’m trying to determine best practices for setting up Ignition to work with various OPC-UA devices. Is there a series of steps one should go through to determine the best configuration for a device?

I have one case in particular dealing with older Modicon hardware. There are a dozen or so devices (Momentums, 984s, and a few others) on the modbus+ network that Ignition is accessing over a MEB-RT (ethernet bridge). The current OPC-UA device settings work fine, but I’m still developing projects that are driving the creation of more and more tags on this ethernet bridge. I’m using all of the default values for the device right now.

Again, I’m looking for best practices / general steps to use when configuring / using OPC-UA devices. While what I have is working, I want to make sure I’m using the bridge efficiently - and that’s something I want to learn how to do for all Ignition customers / projects. Should I tweak the maximum registers per request? What about using different scan classes? I’m assuming there is some thought to determining which tags should go in which class based upon how quickly the tags need to be read.

Any comments, best practices, or experiences would be most appreciated.

Most of the Modbus settings are for compatibility with weird/non-conforming devices.

The key thing you can do to make a difference is to control how many tags you poll and at what rate. This can be done simply by using different scan classes.

I assumed scan classes were the intended method of tweaking / increasing tag efficiency, but I wanted to start with the device connection itself and go from there.

On the aforementioned modbus network, I’m having intermittent issues with a barcode scanner that will take a much longer period of time to return an updated value - five seconds or more - whereas the normal duration is under a second. I haven’t seen this kind of delay in other Ignition projects, hence my unfamiliarity with best practices regarding scan classes and OPC-UA device setup. It’s simply worked in all the other cases! However, this project is certainly much larger is scale. In addition, the value is being copied from one device to another over the modbus+ network, so I can’t say for sure that anything within Ignition is the source of the delay. There are five of the scanners that operate independently of one another, so my initial suspicion was brief periods of increased activity were overwhelming the MEB, causing a delay when requesting / returning values.

So, what about best practices for scan classes? What’s the best way to determine how to set up the classes? Do I try to use the drive mode to dynamically throttle the request (e.g. increase the scan rate when I know I’m supposed to see a new barcode)?