# System.tag.read and direct read

**URL:** <https://forum.inductiveautomation.com/t/system-tag-read-and-direct-read/11253>\
**Category:** Ignition\
**Created:** [February 23, 2016, 10:34am UTC](https://forum.inductiveautomation.com/t/system-tag-read-and-direct-read/11253 "2016-02-23T10:34:54Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pgmo](https://avatars.discourse-cdn.com/v4/letter/p/d07c76/32.png) [@pgmo](https://forum.inductiveautomation.com/u/pgmo)\
**Post date:** [February 23, 2016, 10:34am UTC](https://forum.inductiveautomation.com/t/system-tag-read-and-direct-read/11253/1 "2016-02-23T10:34:54Z")

</div>

Hi,  
if I program something like this:

`val=system.tag.read(tagPath).value
if val==10:
  #do something`

am I sure that the if clause gets a fresh value for tagPath, i.e. that the system.tag.read reads directly from the PLC and not from an Ignition internal cache?  
My communication setup is  
Ignition\<-\>KepWare\<-\>S7-1500

Thanks in advance

---

<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 23, 2016, 12:02pm UTC](https://forum.inductiveautomation.com/t/system-tag-read-and-direct-read/11253/2 "2016-02-23T12:02:50Z")

</div>

It does not. The SQLtags are read according to the scan class timing that’s been set up. system.tag.read() will retrieve the most recently read value. You need to use system.opc.readValue() to bypass the SQLtag system to read precisely when you ask.
