<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic logging data only when data changes in Kepware</title>
    <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1040700#M3100</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;Just can't&lt;SPAN&gt;&amp;nbsp;get my head around one thing!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I am using Kepware to log a group of tags -more than 1000 tags-&amp;nbsp; apparently,&amp;nbsp;Kepware’s DataLogger logs the &lt;STRONG&gt;entire group&lt;/STRONG&gt; when &lt;STRONG&gt;any tag&lt;/STRONG&gt; in that group changes. However, what I need is logging &lt;STRONG&gt;only&lt;/STRONG&gt; those tags that have been changed &lt;STRONG&gt;not&lt;/STRONG&gt; the entire group!&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've done some research and ended up with enabling OPC UA in my project and using a Python code to log only the tags are changed!&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was wondering if there is any other way except changing configuration of the project which I prefer to put it in bottom of my list!&lt;/P&gt;&lt;P&gt;Any help much appreciated!&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 29 Oct 2025 08:57:50 GMT</pubDate>
    <dc:creator>FV_13259496</dc:creator>
    <dc:date>2025-10-29T08:57:50Z</dc:date>
    <item>
      <title>logging data only when data changes</title>
      <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1040700#M3100</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;Just can't&lt;SPAN&gt;&amp;nbsp;get my head around one thing!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I am using Kepware to log a group of tags -more than 1000 tags-&amp;nbsp; apparently,&amp;nbsp;Kepware’s DataLogger logs the &lt;STRONG&gt;entire group&lt;/STRONG&gt; when &lt;STRONG&gt;any tag&lt;/STRONG&gt; in that group changes. However, what I need is logging &lt;STRONG&gt;only&lt;/STRONG&gt; those tags that have been changed &lt;STRONG&gt;not&lt;/STRONG&gt; the entire group!&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've done some research and ended up with enabling OPC UA in my project and using a Python code to log only the tags are changed!&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was wondering if there is any other way except changing configuration of the project which I prefer to put it in bottom of my list!&lt;/P&gt;&lt;P&gt;Any help much appreciated!&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 29 Oct 2025 08:57:50 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1040700#M3100</guid>
      <dc:creator>FV_13259496</dc:creator>
      <dc:date>2025-10-29T08:57:50Z</dc:date>
    </item>
    <item>
      <title>Re: logging data only when data changes</title>
      <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1040947#M3106</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/954058"&gt;@FV_13259496&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="83" data-end="352"&gt;You’re right — the &lt;STRONG data-start="102" data-end="127"&gt;DataLogger in Kepware&lt;/STRONG&gt; logs the entire group when &lt;EM data-start="155" data-end="160"&gt;any&lt;/EM&gt; tag in that group updates. It doesn’t have a built-in “log only changed tags” mode. However, there are a few practical ways to achieve what you’re after without major project restructuring:&lt;/P&gt;
&lt;P data-start="83" data-end="352"&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL data-start="354" data-end="1315"&gt;
&lt;LI data-start="354" data-end="724"&gt;
&lt;P data-start="357" data-end="418"&gt;&lt;STRONG data-start="357" data-end="416"&gt;Use the Advanced Tags Plug-In (Change Detection Method)&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-start="422" data-end="724"&gt;
&lt;LI data-start="422" data-end="555"&gt;
&lt;P data-start="424" data-end="555"&gt;Create an &lt;EM data-start="434" data-end="448"&gt;Advanced Tag&lt;/EM&gt; for each source tag that calculates whether the value has changed (using a compare or delta expression).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="559" data-end="640"&gt;
&lt;P data-start="561" data-end="640"&gt;Use that Advanced Tag as the &lt;EM data-start="590" data-end="599"&gt;trigger&lt;/EM&gt; for logging, rather than the entire group.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="644" data-end="724"&gt;
&lt;P data-start="646" data-end="724"&gt;This way, the DataLogger only records when the specific tag’s value changes.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI data-start="726" data-end="1113"&gt;
&lt;P data-start="729" data-end="772"&gt;&lt;STRONG data-start="729" data-end="770"&gt;Leverage OPC UA Subscription Behaviour&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-start="776" data-end="1113"&gt;
&lt;LI data-start="776" data-end="891"&gt;
&lt;P data-start="778" data-end="891"&gt;If you’re already using OPC UA (as you mentioned with Python), you can subscribe with the &lt;STRONG data-start="868" data-end="883"&gt;“Reporting”&lt;/STRONG&gt; mode.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="895" data-end="1031"&gt;
&lt;P data-start="897" data-end="1031"&gt;OPC UA clients, such as Python’s opcua library,&amp;nbsp;can automatically filter and receive updates only when a tag’s value or status changes.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1035" data-end="1113"&gt;
&lt;P data-start="1037" data-end="1113"&gt;This keeps your log volume low and prevents the need for reconfiguring groups in Kepware.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI data-start="1115" data-end="1315"&gt;
&lt;P data-start="1118" data-end="1150"&gt;&lt;STRONG data-start="1118" data-end="1148"&gt;If Using ThingWorx or MQTT&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-start="1154" data-end="1315"&gt;
&lt;LI data-start="1154" data-end="1315"&gt;
&lt;P data-start="1156" data-end="1315"&gt;Both support change-based event handling. You can push only updated tags from Kepware’s IoT Gateway using &lt;EM data-start="1262" data-end="1281"&gt;store-and-forward&lt;/EM&gt; logic or scripting at the edge.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-start="1317" data-end="1471"&gt;If you prefer to stay entirely within Kepware, the &lt;STRONG data-start="1365" data-end="1406"&gt;Advanced Tags with DataLogger trigger&lt;/STRONG&gt; is the cleanest option — no external logic is required.&lt;/P&gt;
&lt;P data-start="1317" data-end="1471"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="1317" data-end="1471"&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Thu, 30 Oct 2025 19:08:04 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1040947#M3106</guid>
      <dc:creator>pshashipreetham</dc:creator>
      <dc:date>2025-10-30T19:08:04Z</dc:date>
    </item>
    <item>
      <title>Re: logging data only when data changes</title>
      <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1041146#M3109</link>
      <description>&lt;P&gt;Many thanks Shashi for your reply!&lt;/P&gt;&lt;P&gt;Just a quick one on your first option, I am dealing with more than 1000 tags that I want to log only changes from the whole the group. Am I going to need defining Advanced tag for every single tag that I need to log?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Fri, 31 Oct 2025 15:29:56 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1041146#M3109</guid>
      <dc:creator>FV_13259496</dc:creator>
      <dc:date>2025-10-31T15:29:56Z</dc:date>
    </item>
    <item>
      <title>Re: logging data only when data changes</title>
      <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1041741#M3119</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/954058"&gt;@FV_13259496&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="114" data-end="330"&gt;Good question — yes, if you use the &lt;STRONG data-start="150" data-end="167"&gt;Advanced Tags&lt;/STRONG&gt; method, each tag that needs independent change detection would require its own Advanced Tag. However, you don’t necessarily have to configure all 1000 manually.&lt;/P&gt;
&lt;P data-start="114" data-end="330"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="332" data-end="599"&gt;You can bulk-generate Advanced Tags by exporting your tag list to CSV, creating the compare expressions (for example, "&lt;CODE data-start="454" data-end="506"&gt;IF(Tag1 &amp;lt;&amp;gt; LastValue(Tag1), Tag1, LastValue(Tag1))&lt;/CODE&gt;)", and re-importing them into Kepware. This approach scales much better for large tag sets.&lt;/P&gt;
&lt;P data-start="332" data-end="599"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="601" data-end="780"&gt;If performance or setup effort becomes a concern, then using &lt;STRONG data-start="662" data-end="691"&gt;OPC UA’s “Reporting” mode&lt;/STRONG&gt; or external filtering (like your Python setup) is more efficient for high tag volumes.&lt;/P&gt;
&lt;P data-start="601" data-end="780"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="601" data-end="780"&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Tue, 04 Nov 2025 18:45:41 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1041741#M3119</guid>
      <dc:creator>pshashipreetham</dc:creator>
      <dc:date>2025-11-04T18:45:41Z</dc:date>
    </item>
    <item>
      <title>Re: logging data only when data changes</title>
      <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1042616#M3123</link>
      <description>&lt;P&gt;Hi Shashi!&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for you clarification. - Much appreciated!&lt;/P&gt;&lt;P&gt;very silly question! From my understanding in advanced tags I read tags from Kepware then I use these advanced tags to update my logging, now the question is do I have to use database to write those tags or I can write it directly to a CSV file?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Mon, 10 Nov 2025 12:59:55 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1042616#M3123</guid>
      <dc:creator>FV_13259496</dc:creator>
      <dc:date>2025-11-10T12:59:55Z</dc:date>
    </item>
    <item>
      <title>Re: logging data only when data changes</title>
      <link>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1050775#M3222</link>
      <description>&lt;P&gt;Hi every one, Just wanted to share this that I managed to solve the problem by using the OPC UA . Basically I wrote a script in Python to read my tags from the Kepware via OPC UA then It compares the tag values and only logs them if the current value has been changed!&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Jan 2026 06:52:32 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Kepware/logging-data-only-when-data-changes/m-p/1050775#M3222</guid>
      <dc:creator>FV_13259496</dc:creator>
      <dc:date>2026-01-14T06:52:32Z</dc:date>
    </item>
  </channel>
</rss>

