Siemens Enhanced driver, slow browsing and slow update rate

A technique I find helpful when comms performance varies is to use a fast-changing tag in the PLC (I tend to use a GSV to retrieve WallClock currentValue, a microsecond clock) and subscribe to it in Ignition. The ladder that updates the tag should run faster than the fastest poll rate you are attempting to achieve. This yields a valueChange for every poll cycle.

Adjacent to the Ignition tag, add a memory tag of type Int8 and use a valueChange script on the OPC tag that looks something like this:

    if not initialChange:
        delta = currentValue.timestamp.time - previousValue.timestamp.time
        system.tag.writeBlocking(['[.]DeltaMillis'], [delta])

Turn on history for the memory tag with zero min time between samples.

Trend the memory tag. Discrepancies between the OPC tag's group rate and the actual delivery intervals will jump right out at you.

{ .writeBlocking is only safe in this usage because the target is a memory tag. }

4 Likes