# Missing signals or delay in reading them

**URL:** <https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278>\
**Category:** Ignition\
**Created:** [February 24, 2023, 12:51pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278 "2023-02-24T12:51:39Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [February 24, 2023, 12:51pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/1 "2023-02-24T12:51:39Z")

</div>

Hi,

we have a connection PLC \<-\> OPC \<-\> Ignition. We exchange about 700 tags. Some of them are requests signals, to send data further to MES. We encounter a problem, that sometimes Ignition doesn't receive the request signal (we know it, because when Ignition doesn't respond to PLC with 'done writing' signal in 5 seconds, the PLC set an alarm). The poll rate is 200 ms. Do you think, that this may cause the problem?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 24, 2023, 1:29pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/2 "2023-02-24T13:29:53Z")

</div>

That is a relatively fast rate, but not necessarily impossible. More importantly:

- Are you actually achieving the 200ms poll rate? (IA's drivers will show this in their diagnostics. Other OPC servers would have to show it in their UIs.)

- Are your "trigger" signals maintained in the PLC until Ignition responds? If they aren't, and the OPC driver hiccups, you certainly can miss short signals.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [February 27, 2023, 7:45am UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/3 "2023-02-27T07:45:12Z")

</div>

- We have to check it out. We are using Kepware.

- Yes, it is maintained for 5 seconds.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 27, 2023, 12:54pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/4 "2023-02-27T12:54:47Z")

</div>

> [@grzegorz.kaczmarczyk](#):
>
> Yes, it is maintained for 5 seconds.

That would be a "no", then. If you are using just time, then you **aren't** holding the trigger until Ignition responds. How do you know the "writing" part of your action doesn't occassionally take more than five seconds?

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [February 27, 2023, 1:34pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/5 "2023-02-27T13:34:07Z")

</div>

We don't check, if the "writing" part was performed correctly. We immediately respond to PLC with "done" signal.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 27, 2023, 1:35pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/6 "2023-02-27T13:35:31Z")

</div>

Does the trigger stay on until that done signal is received? And the done signal should be turned off (by Ignition) when the trigger is reset.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [February 27, 2023, 2:27pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/7 "2023-02-27T14:27:51Z")

</div>

Yes, the trigger stays ON until Ignition sets "Done" signal to 1. After that, PLC sets "Write" request and "Done" to zeros.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [February 27, 2023, 2:38pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/8 "2023-02-27T14:38:12Z")

</div>

How many channels are you using in Kepware? I use Kepware for the Fanuc Focas protocol on some CNC machines. I originally had all of my devices under one channel, and I experienced heavy latency on several of the tags. I reconfigured it to use one device per channel and the lag disappeared. I haven't had any trouble since.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [February 27, 2023, 2:55pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/9 "2023-02-27T14:55:11Z")

</div>

We are using two channels. I would say that about 30% of tags are on the first channel and the rest on the second. How many tags you were using?

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [February 27, 2023, 3:10pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/10 "2023-02-27T15:10:43Z")

</div>

I have 6 devices with 23 tags per device at 100ms scan rate, considerably less than you have.  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/d/ddf49245236662909f22a1e1c3be1b076977e417.png)

---

<div class="post-metadata">

**Author:** ![Felipe\_CRM](https://avatars.discourse-cdn.com/v4/letter/f/dfb087/32.png) [@Felipe\_CRM](https://forum.inductiveautomation.com/u/Felipe_CRM)\
**Post date:** [February 27, 2023, 3:15pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/11 "2023-02-27T15:15:52Z")

</div>

> [@grzegorz.kaczmarczyk](#):
>
> PLC sets "Write" request and "Done" to zeros.

Might want to move the "Done" clearing to Ignition like pturmel said, it'll make it easier to avoid possible race conditions where the PLC keeps wanting to clear it and Ignition thinks it should still be on.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [February 27, 2023, 3:56pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/12 "2023-02-27T15:56:39Z")

</div>

I don't understand the race condition here. Ignition sets "done" to 1, so then PLC sets "write" and "done" to 0.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 27, 2023, 3:59pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/13 "2023-02-27T15:59:31Z")

</div>

Writing from different directions can confuse polling drivers. Don't do it, except perhaps in some startup/initialization operation.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [March 8, 2023, 9:33am UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/14 "2023-03-08T09:33:05Z")

</div>

Hi,

first for all, thx for all responses. I've checked the "done" signal and it turned out that only Ignition writes to this variable though, so sorry for the confusion. I've changed the poll rate to 1000 ms and it significantly improved the connection. So far we have not had any cases of communication suspension.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [April 7, 2023, 7:38am UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/15 "2023-04-07T07:38:34Z")

</div>

Hi,

I'm coming back to a similar topic as the one above.

We have 2 variables: WriteRequest and xOK.

Our task is to send the state of the xOK variable (0 or 1) to the database, when a WriteRequest signal appears.

Sometimes we send xOK = 0 to the database, even though xOK was '1', because WriteRequest was earlier.

The automation engineer, who programs the PLC sent me such screen, to show that it's not problem with the PLC:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/3/c3d3352feb852bcb0ca9ee53b486602e59439013.png)

As you can see, xOK is set by PLC 90 ms earlier than WriteRequest. As I have no experience in programming PLC, I have some questions for you:

1. Is this 90 ms time constant? Or is it possible that, for example, the PLC processor will be overloaded and will send xOK later by several hundred milliseconds, so it will be later than WriteRequest?

2. Are the variables that go to the SCADA system through OPC Kepware queued in any way? We have set the cycle time in Ignition to 1000 ms and even though these variables are close to each other, in 99.9% of cases, xOK comes earlier than WriteRequest. But once in a while, it's the other way around, and isn't this related to my question number 1?

Thanks for your response.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 7, 2023, 12:41pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/16 "2023-04-07T12:41:08Z")

</div>

See Nick's topic this morning that I just replied to:

> [@Are tagBlocking reads affected by TagGroup updates?](https://forum.inductiveautomation.com/t/are-tagblocking-reads-affected-by-taggroup-updates/72175):
>
> I'm having some issues with synchronising tag reads. The PLC has a number of arrays that store parts information, most importantly the part id. There are 4 arrays, each for different queues the parts are in. These queues have lengths of 50, 20, 20, and 2 parts. Parts move in and out of arrays all the time. I need to read all part ids from these array tags in one hit and combine them together to produce a complete list of parts. I add a column to show each part's location, based on the array. I…

Your simplest solution is to monitor the trigger tag with a tag change event then use `system.opc.read*()` to get the actual data. Subscribed tags cannot and do not guarantee order of delivery.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [April 7, 2023, 1:14pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/17 "2023-04-07T13:14:03Z")

</div>

Thanks for response!

Does it mean I should also use system.opc.read() on xOK tag?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 7, 2023, 1:14pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/18 "2023-04-07T13:14:22Z")

</div>

Yes.

---

<div class="post-metadata">

**Author:** ![grzegorz.kaczmarczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/grzegorz.kaczmarczyk/32/24167_2.png) [@grzegorz.kaczmarczyk](https://forum.inductiveautomation.com/u/grzegorz.kaczmarczyk)\
**Post date:** [April 7, 2023, 3:06pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/19 "2023-04-07T15:06:51Z")

</div>

And what about the Siemens Ignition driver? Would there be the same problem as well?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 7, 2023, 3:37pm UTC](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278/20 "2023-04-07T15:37:16Z")

</div>

All drivers. All OPC client connections.

[Next page](https://forum.inductiveautomation.com/t/missing-signals-or-delay-in-reading-them/70278.md?page=2)
