# OPC browse - IA Labs Scripting

**URL:** <https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078>\
**Category:** Ignition\
**Created:** [February 27, 2014, 9:52pm UTC](https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078 "2014-02-27T21:52:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![bzink](https://avatars.discourse-cdn.com/v4/letter/b/3e96dc/32.png) [@bzink](https://forum.inductiveautomation.com/u/bzink)\
**Post date:** [February 27, 2014, 9:52pm UTC](https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078/1 "2014-02-27T21:52:32Z")

</div>

Calling system.opc.browse is timing out. This is on Windows Server 2008, java 1.7.0\_45, ignition 7.6.4, IA Labs Scripting 1.6.4 (b14). My computer is running Windows 7, java 1.7.0\_51.

Here’s the example code:

```auto
tags = system.opc.browse(device="device_name")
i=0
for row in tags:
    print row.getOpcServer(), row.getOpcItemPath(), row.getType(), row.getDisplayName(), row.getDisplayPath(), row.getDataType()
    i=i+1
    if i >5:
    	break
```

Here’s the error:

```auto
Message: Script threw uncaught exception.
Time: Thu Feb 27 4:01:28PM
Severity: ERROR
Logger: com.inductiveautomation.ignition.designer.gui.tools.ScriptPlayground
Stack Trace: Traceback (most recent call last):
  File &quot;<script playground>&quot;, line 1, in <module>
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:313)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:472)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:249)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:244)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.moduleInvokeSafe(GatewayInterface.java:749)
    at com.ialabs.scripting.functions.OPCFunctionsImpl.browse(OPCFunctionsImpl.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)

com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Read timed out

    at org.python.core.Py.JavaError(Py.java:495)
    at org.python.core.Py.JavaError(Py.java:488)
    at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:188)
    at com.inductiveautomation.ignition.common.script.ScriptManager\$ReflectedInstanceFunction. __call__ (ScriptManager.java:460)
    at org.python.core.PyObject. __call__ (PyObject.java:320)
    at org.python.pycode._pyx0.f\$0(<script playground>:3)
    at org.python.pycode._pyx0.call_function(<script playground>)
    at org.python.core.PyTableCode.call(PyTableCode.java:165)
    at org.python.core.PyCode.call(PyCode.java:18)
    at org.python.core.Py.runCode(Py.java:1275)
    at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:554)
    at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:547)
    at com.inductiveautomation.ignition.designer.gui.tools.ScriptPlayground.runScript(ScriptPlayground.java:209)
    at com.inductiveautomation.ignition.designer.gui.tools.ScriptPlayground\$2.actionPerformed(ScriptPlayground.java:225)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton\$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(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\$200(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)
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Read timed out
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:313)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:472)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:249)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:244)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.moduleInvokeSafe(GatewayInterface.java:749)
    at com.ialabs.scripting.functions.OPCFunctionsImpl.browse(OPCFunctionsImpl.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:186)
    ... 48 more
Caused by: java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:392)
    ... 57 more

Stack Trace: org.python.core.Py.JavaError(Py.java:495)
org.python.core.Py.JavaError(Py.java:488)
org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:188)
com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:460)
org.python.core.PyObject. __call__ (PyObject.java:320)
org.python.pycode._pyx0.f$0(<script playground>:3)
org.python.pycode._pyx0.call_function(<script playground>)
org.python.core.PyTableCode.call(PyTableCode.java:165)
org.python.core.PyCode.call(PyCode.java:18)
org.python.core.Py.runCode(Py.java:1275)
com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:554)
com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:547)
com.inductiveautomation.ignition.designer.gui.tools.ScriptPlayground.runScript(ScriptPlayground.java:209)
com.inductiveautomation.ignition.designer.gui.tools.ScriptPlayground$2.actionPerformed(ScriptPlayground.java:225)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$200(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.awt.EventQueue$4.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
```

---

<div class="post-metadata">

**Author:** ![greg.simpson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/greg.simpson/32/3135_2.png) [@greg.simpson](https://forum.inductiveautomation.com/u/greg.simpson)\
**Post date:** [March 3, 2014, 3:26pm UTC](https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078/2 "2014-03-03T15:26:24Z")

</div>

What kind of device are you trying to browse?

---

<div class="post-metadata">

**Author:** ![bzink](https://avatars.discourse-cdn.com/v4/letter/b/3e96dc/32.png) [@bzink](https://forum.inductiveautomation.com/u/bzink)\
**Post date:** [March 3, 2014, 4:42pm UTC](https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078/3 "2014-03-03T16:42:37Z")

</div>

AB CompactLogix 1769-L32E

---

<div class="post-metadata">

**Author:** ![bzink](https://avatars.discourse-cdn.com/v4/letter/b/3e96dc/32.png) [@bzink](https://forum.inductiveautomation.com/u/bzink)\
**Post date:** [March 11, 2014, 6:20pm UTC](https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078/4 "2014-03-11T18:20:20Z")

</div>

Do you have an update on a solution to this?

---

<div class="post-metadata">

**Author:** ![dave.fogle](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@dave.fogle](https://forum.inductiveautomation.com/u/dave.fogle)\
**Post date:** [April 16, 2014, 3:16pm UTC](https://forum.inductiveautomation.com/t/opc-browse-ia-labs-scripting/8078/5 "2014-04-16T15:16:36Z")

</div>

Basically what's happening here likely has to do with the fact that the browse opc function parses through the entire tree of devices and tags on the system before being able to filter the list down to just the device you want. If you disabled your other devices in your gateway and then tried to browse your device again the script would likely finish without error. Unfortunately right now there is no workaround for this, but there are some changes being made for 7.7 which should make this browse functionality better in cases of browsing systems with multiple devices connected.
