So i am trying to create a counter that increments by one each time a boolean OPC tag equals true. I found several examples, but for some reason cannot get mine to work. Here is what i have…
OPC Tag name: Timer_1_on
Memory Tag name: Counter 1 (set to integer) and value = 0
Gateway Change script:
if newValue.getValue() == 1:
counter = system.tag.readBlocking(["[default]Lab Testers/Counter 1"])[0].value
counter += 1
Any help would be appreciated.
Your incremented value is in a python variable at the end of your script, which is then thrown away. You’ll have to write it back to the tag.
2 Likes
Personally, if you want to set up a counter like this, I could do it in a tag event value change script. But one thing you don’t show is where you write the tag back into your counter. I would also do a check to make sure it isn’t an initial change. I would assume it should look like:
if not initialChange:
if newValue.getValue():
counter = system.tag.readBlocking(["[default]Lab Testers/Counter 1"])[0].value
counter += 1
system.tag.writeBlocking(["[default]Lab Testers/Counter 1"],[counter])
@pturmel beat me to the reply with essentially the same thing.
2 Likes
Thank you both for this. I can’t believe i did not add the write back to the tag. Frustrating but simple. Thank you again.