[Question] Ignition > Kepware: Tags value speed

Hello there,

i tried to set up a simple communication in my local network that involve an Allen-Bradley PLC, Ignition v8.0.6 STABLE and Kepware.
I’m trying to read Tags as fast as i can, ergo 100/150ms.

The PLC routine has 1 counter that increments my integer by 1 every 100ms, but in Ignition i’m unable to see those changes (it goes barely around 400/500ms).

My Project settings:

  1. The TAG (ignition side) has a Leased Tag-Group that is set to 0 poll rate when not requested and 100ms when requested.
  1. Project Properties > General > Client poll rate: 100ms
  1. Project Properties > Timing > Polling Base Rate: 200ms (because we can’t go lower?)
  1. The page has only 1 Numeric Label.

Here is a video: Link

Is it even possible to reach this speed? I feel like something is slow, or i’m handling it in the wrong way.
Thanks for your future help.


Hmm. You can’t really expect to see every change because you’re dealing with so many overlapping polling cycles here (kepware polling PLC, OPC subscription evaluation, ignition client/designer polling gateway), but that’s looking a little slower than I’d expect. Let me poke around a bit and see if I can get a better result.

In the meantime, you should verify (somehow? not sure) that Kepware is actually able to poll at 100ms. With only 1 tag and nothing else subscribed it shouldn’t be an issue, but if you’re using a PLC with a heavy comm load from other systems maybe not.

Hey, it looks like there’s a hardcoded 250ms debounce happening somewhere between the gateway and client/designer comms.

For the purposes of alarming, history, tag changes, etc… you should be getting your updates at the requested rate, but for display purposes in client/designer right now you won’t see updates faster than 250ms.

I’m going to look into either removing this or some other fix.

1 Like

Ok, thank you for the explanation Kevin.

Uhm, project setting for polling?

I made another test, and it looks like that TAGs defined in Ignition are very slow.

What i tried:

I’m reading 10 values from different OPC addresses (system.opc.readValues) every 100ms by using a “Timer component”. Whenever the timer value change, it runs a script that reads those paths and put them into the related numeric label.

Here is the video showing that it’s MUCH BETTER with the timer: Link


No, something new in 8.0 that’s actually hardcoded.