# Value changed doesn't work

**URL:** <https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240>\
**Category:** Ignition\
**Created:** [July 17, 2015, 12:37pm UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240 "2015-07-17T12:37:39Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrea.montresor](https://avatars.discourse-cdn.com/v4/letter/a/5f9b8f/32.png) [@andrea.montresor](https://forum.inductiveautomation.com/u/andrea.montresor)\
**Post date:** [July 17, 2015, 12:37pm UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240/1 "2015-07-17T12:37:39Z")

</div>

Hi,  
I added in value changed of a memory tag (Input) a script that allows you to write a value to another tag (output) with system.tag.write.  
When I go to manually change the value of the memory tag (input) does not write the value that I put in the value changed.

I enclose a photo of the script.

Thanks

 ![](https://us1.discourse-cdn.com/inductiveautomation/original/2X/1/16947abe173f48044e3f0c3512b09b2709992d98.png)

---

<div class="post-metadata">

**Author:** ![JGJohnson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jgjohnson/32/29582_2.png) [@JGJohnson](https://forum.inductiveautomation.com/u/JGJohnson)\
**Post date:** [July 17, 2015, 12:47pm UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240/2 "2015-07-17T12:47:08Z")

</div>

I haven’t used tag event scripting before so I might not understand how it works, but it looks to me like you are defining a function but never calling it.

Don’t you need a statement to call the function after you have defined it?

---

<div class="post-metadata">

**Author:** ![andrea.montresor](https://avatars.discourse-cdn.com/v4/letter/a/5f9b8f/32.png) [@andrea.montresor](https://forum.inductiveautomation.com/u/andrea.montresor)\
**Post date:** [July 17, 2015, 1:30pm UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240/3 "2015-07-17T13:30:07Z")

</div>

According to this video, I’m doing the right thing: [inductiveuniversity.com/video/t … /scripting](https://inductiveuniversity.com/video/tag-scripts?r=/course/scripting).

I think that the value changed is called when changing value in the Tag.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [July 17, 2015, 2:07pm UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240/4 "2015-07-17T14:07:55Z")

</div>

Is the designer in read/write mode?  
 ![](https://us1.discourse-cdn.com/inductiveautomation/original/2X/e/e5278e01153bfad2d4504e0bb0d3274dd5eabec1.png)

---

<div class="post-metadata">

**Author:** ![nmudge](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nmudge/32/3394_2.png) [@nmudge](https://forum.inductiveautomation.com/u/nmudge)\
**Post date:** [July 17, 2015, 5:26pm UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240/5 "2015-07-17T17:26:07Z")

</div>

Hi Andrea,

Are your tags in a folder?

If so you need to use a period instead of a tilda, like this:

```auto
system.tag.write("[.]output",67)
```

Best,

---

<div class="post-metadata">

**Author:** ![andrea.montresor](https://avatars.discourse-cdn.com/v4/letter/a/5f9b8f/32.png) [@andrea.montresor](https://forum.inductiveautomation.com/u/andrea.montresor)\
**Post date:** [July 20, 2015, 10:26am UTC](https://forum.inductiveautomation.com/t/value-changed-doesnt-work/10240/6 "2015-07-20T10:26:40Z")

</div>

I tried in another gateway and it works.

I think that the problem is in the configuration gateway. Infact when i create a new project in this gateway in output console there is this error:  
Exception in thread “AWT-EventQueue-2” java.lang.IllegalArgumentException: Comparison method violates its general contract!  
at java.util.TimSort.mergeHi(Unknown Source)  
at java.util.TimSort.mergeAt(Unknown Source)  
at java.util.TimSort.mergeForceCollapse(Unknown Source)  
at java.util.TimSort.sort(Unknown Source)  
at java.util.Arrays.sort(Unknown Source)  
at sun.awt.datatransfer.DataTransferer.setToSortedDataFlavorArray(Unknown Source)  
at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsArray(Unknown Source)  
at sun.awt.datatransfer.SunClipboard.getAvailableDataFlavors(Unknown Source)  
at com.inductiveautomation.ignition.designer.sqltags.dialog.TagBrowserPanel$TagBrowserActionHandler.canPaste(TagBrowserPanel.java:468)  
at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.updateEditActions(IgnitionDesigner.java:2832)  
at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$SetEditActionHandler.run(IgnitionDesigner.java:3072)  
at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$4.actionPerformed(IgnitionDesigner.java:2214)  
at javax.swing.Timer.fireActionPerformed(Unknown Source)  
at javax.swing.Timer$DoPostEvent.run(Unknown Source)  
at java.awt.event.InvocationEvent.dispatch(Unknown Source)  
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
at java.awt.EventQueue.access$500(Unknown Source)  
at java.awt.EventQueue$3.run(Unknown Source)  
at java.awt.EventQueue$3.run(Unknown Source)  
at java.security.AccessController.doPrivileged(Native Method)  
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
at java.awt.EventQueue.dispatchEvent(Unknown Source)  
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.run(Unknown Source)  
Exception in thread “AWT-EventQueue-2” java.lang.IllegalArgumentException: Comparison method violates its general contract!  
at java.util.TimSort.mergeHi(Unknown Source)  
at java.util.TimSort.mergeAt(Unknown Source)  
at java.util.TimSort.mergeForceCollapse(Unknown Source)  
at java.util.TimSort.sort(Unknown Source)  
at java.util.Arrays.sort(Unknown Source)  
at sun.awt.datatransfer.DataTransferer.setToSortedDataFlavorArray(Unknown Source)  
at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsArray(Unknown Source)  
at sun.awt.datatransfer.SunClipboard.getAvailableDataFlavors(Unknown Source)  
at com.inductiveautomation.ignition.designer.sqltags.dialog.TagBrowserPanel$TagBrowserActionHandler.canPaste(TagBrowserPanel.java:468)  
at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.updateEditActions(IgnitionDesigner.java:2832)  
at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.stateChanged(IgnitionDesigner.java:2838)  
at com.inductiveautomation.ignition.designer.model.AbstractEditActionHandler.fireChangeEvent(AbstractEditActionHandler.java:37)  
at com.inductiveautomation.ignition.designer.sqltags.dialog.TagBrowserPanel$TagBrowserActionHandler.valueChanged(TagBrowserPanel.java:453)  
at javax.swing.JTree.fireValueChanged(Unknown Source)  
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source)  
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)  
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)  
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)  
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)  
at javax.swing.JTree.setSelectionPath(Unknown Source)  
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)  
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source)  
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressedDND(Unknown Source)  
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source)  
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)  
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)  
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)  
at java.awt.Component.processMouseEvent(Unknown Source)  
at javax.swing.JComponent.processMouseEvent(Unknown Source)  
at java.awt.Component.processEvent(Unknown Source)  
at java.awt.Container.processEvent(Unknown Source)  
at java.awt.Component.dispatchEventImpl(Unknown Source)  
at java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.awt.Component.dispatchEvent(Unknown Source)  
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)  
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)  
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)  
at java.awt.Container.dispatchEventImpl(Unknown Source)  
at java.awt.Window.dispatchEventImpl(Unknown Source)  
at java.awt.Component.dispatchEvent(Unknown Source)  
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
at java.awt.EventQueue.access$500(Unknown Source)  
at java.awt.EventQueue$3.run(Unknown Source)  
at java.awt.EventQueue$3.run(Unknown Source)  
at java.security.AccessController.doPrivileged(Native Method)  
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
at java.awt.EventQueue$4.run(Unknown Source)  
at java.awt.EventQueue$4.run(Unknown Source)  
at java.security.AccessController.doPrivileged(Native Method)  
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
at java.awt.EventQueue.dispatchEvent(Unknown Source)  
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.run(Unknown Source)
