Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Search Results (Searched for: operationtimeout)

19 Jan 2018 15:41
The default OperationTimeout is 2 minutes. If the method does not return after that, it is likely an issue of QuickOPC itself. We have recently fixed such an issue; however the fix will be only available i the upcoming version (2018.1), scheduled for release most likely in February.

If you are interested I can send you a private link to test the Beta version of it.
(Note: with Delphi, you will have to re-import the type libraries, as they have changed).

Best regards
19 Jan 2018 08:26
Thank you for your answer. It's very complete.

You're right, the problem is on the first read, if PLC is not conncted when I start the application.

I will try to move (carefully) parameter on the OPC server side.

Thank you
19 Jan 2018 08:06 - 19 Jan 2018 08:08
Here is why I strongly recommends against changing the OPC UA-level timeout for achieving what you have described.

The two timeouts - the one for the communication between the OPC UA client and the server, and the other for communication between the OPC server and the PLC - have very different purpose, and one cannot safely stand for the other.

If you shorten the OPC UA-level timeout in order to get "faster response" in case of communication problems, here is what will likely happen: The UA client side will abandon the pending request sooner, but it will not be cancelled on the UA server. The server will continue waiting for the value from the PLC. Further requests to the server, if they come "too soon", will have to wait until the outstanding requests are finished, make them to take even longer(!). And the number of uncompleted requests may start rising inside the server, causing further problems such as memory increase, queue overflows etc.

Suggestions to handle your issue properly depend on the application, but in general they are:
- Whenever possible, use OPC subscriptions instead of repeated Reads.
- Set the timeout for communication between the OPC server and the PLC to the right value.
- If you have to use the Reads, set the MaximumAge in the UAReadParameters (that you can pass to the Read) to a value that would allow the server to provide you the value from its cache in usual case (and, if needed and supported, configure the server to poll the value periodically for you). In fact, default value for MaximumAge already asks the server to give data form the cache anyway, so I am a bit surprised that your calls need to wait for the PLC, but it is possible that either you have changed the MaximumValue, or that the issues arise on the first Read when obviously there is nothing in the cache, or that the server does not interpret the MaximumAge correctly.

Best regards
19 Jan 2018 07:50 - 19 Jan 2018 08:07
I will respond in two posts. In this first post, I will try to explain how to do what you have asked for. In the second post, I will explain why you should not really do it.

The timeout value you are looking is most likely the OperationTimeout on the OPC UA service level. There is no configurable property for it in QuickOPC. It is possible to change it but you must go quite deep. To do that, read opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...plication%20Configuration.html . In short, you need to create two XML config file AND change the value of the ConfigurationSources property.

For convenience, I am attaching the configuration file for OPC UA SDK that we are currently using inside QuickOPC. Look for <OperationTimeout> under <TransportQuotas>. Currently it is 120000 milliseconds (2 minutes).


File Attachment:

File Name: UAClientEn...1-19.xml
File Size:11 KB


Note that by shortening this timeout too much you can cause some otherwise correctly performing operations to appear failed.

Best regards
16 May 2017 14:39
OK, thank you.

I was looking into the size limitations in the meantime. I know the issue is now resolved, but for record, here are the current default transport quotas as used by QuickOPC 2016.2
Code:
<TransportQuotas> <!-- The default timeout in milliseconds for operations (used by clients) --> <OperationTimeout>120000</OperationTimeout> <!-- The maximum length for a string value in any message --> <MaxStringLength>1048576</MaxStringLength> <!-- The maximum length for a byte string value in any message --> <MaxByteStringLength>4194304 </MaxByteStringLength> <!-- The maximum length for any array in a message. Note that some protocols do not distinguish between bytes and arrays. In these cases the binding will choose the larger of MaxByteStringLength or MaxArrayLength--> <MaxArrayLength>65535</MaxArrayLength> <!-- The maximum size of any message --> <MaxMessageSize>4194304</MaxMessageSize> <!-- The maximum buffer size This value controls how big a block of memory the transport layer allocates. Setting this value to a large value will reduce performance and use a lot of RAM --> <MaxBufferSize>65535</MaxBufferSize> <!-- The lifetime of a SecureChannel in milliseconds. This specifies how long the server will keep a broken channel around while waiting for a client to reconnect. Not used by HTTP or .NET TCP bindings --> <ChannelLifetime>300000</ChannelLifetime> <!-- The lifetime of a SecurityToken in milliseconds. This specifies how long a security token can be used without renewal. --> <SecurityTokenLifetime>3600000</SecurityTokenLifetime> </TransportQuotas>

I was about to write that they are unlikely to be a problem, because they are relatively big.
Best regards
05 Nov 2016 17:17
In OPC UA the timeout parameters are different (in fact, the original question was about UA, but the answer somehow diverted form that).

The main issue here is, whether the function is truly blocked "for ever" (which would be an incorrect behavior on QuickOPC side), or whether it is just waiting very long on a long timeout (which would be working as designed). The longest timeout it is there is actually 10 minutes, and is called OperationTimeout.

Please have a look here: www.opclabs.com/forum/search?query=operationtimeout&childforums=1

Changing the OperationTimeout is a bit involved, but the necessary steps are described in the Concepts.
23 Mar 2016 08:48
Hello.

Tables in the following documents list the various timeouts, and where to configure them:

File Attachment:

File Name: QuickOPC-U...0322.pdf
File Size:319 KB

File Attachment:

File Name: EasyUAClie...0322.pdf
File Size:323 KB


Most parameters can be set directly from the code. The OperationTimeout - which you may not need to change - depends on which one(s) you are getting - is a lower-level parameter that needs a more complicated approach. Please read the Concepts document, section Advanced Topics, chapter Application Configuration. For convenience, below is the "built-in" configuration used; you can use that one and just modify the item(s) that you want change.

File Attachment:

File Name: UAClientEn...nfig.xml
File Size:4 KB


Best regards
Displaying 16 - 22 out of 22 results.
Time to create page: 0.509 seconds