Professional OPC
Development Tools

logos

UA Alarms&Conditions in FreePascal (Lazarus)

More
12 Dec 2016 16:10 #4632 by support
Hello,

have you tried to reimport the type libraries, using the procedure described on kb.opclabs.com/First_experiences_using_QuickOPC_with_Free_Pascal_(Lazarus) (basically similar to what you have done earlier yourself)?

The readme.txt file that goes with the examples says "We do not regularly update examples in this folder with new versions. You may have to modify the code to use newer versions.". Basically every change to our APIs may require a reimport of the TLBs, and in absence of an automated tool do that, it is not worth to do that manually for a rarely used set of examples.

If re-importing does not fix the issue, let me know.

Regards

Please Log in or Create an account to join the conversation.

More
12 Dec 2016 12:55 #4631 by Joachim@FreePascal
Hello,
now I tried the version 2016.2.
The examples are fine for me. They compiles without error, but they won't run.
When I try to read from server it crashes

J

Please Log in or Create an account to join the conversation.

More
23 Sep 2016 09:52 #4373 by support
I have downloaded and installed the FreePascal software.
Can you please send me your project (zipped), so that I can start easily?

Thank you

Please Log in or Create an account to join the conversation.

More
23 Sep 2016 09:15 #4369 by support
Hello.

I have downloaded and installed IndraWorkds Ds. But I have no idea how to make it work - can you give me step-by-step instructions?

Also, there is no uaconfig.cfg, neither have I found the \plc\ folder on the whole system.

In the meantime, I will be downloading and experimenting with Lazarus Pascal.

Best regards

Please Log in or Create an account to join the conversation.

More
21 Sep 2016 08:54 #4350 by support
Thank you. I will give it a try. Please understand that due to other work here, it will take several days before I have some results or news.

Regards

Please Log in or Create an account to join the conversation.

More
20 Sep 2016 07:01 - 20 Sep 2016 07:18 #4348 by Joachim@FreePascal
Hello,
a trial version of the Rexroth Indraworks Engineering is free for download :
www.boschrexroth.com/dcc/xMediaApplications/Download.cfc?met...14%5FP1%2Ezip&Variant=internet
It includes an emulation for the control including the OPC-UA server. May I can show you how to make it run.
There is a very good help included, but maybe takes more than one try to make it run. :)
The Server is configured in the file uaconfig.cfg, in the folder \plc\.
You have to adjust the TcpPort and the discoveryURL.
Last edit: 20 Sep 2016 07:18 by Joachim@FreePascal.

Please Log in or Create an account to join the conversation.

More
20 Sep 2016 06:27 #4346 by support
OK, there are multiple things to explain, and multiple approaches we can take.

A. I do not think the problem is that much in the use of Lazarus Pascal itself. You certainly know how to develop with it, and the issue you are seeing doesn't seem to be related to the language.

This said, I am willing to give it a try here.

B. On my side, it would be easiest if I had access to the server you are working with - either a) obtain a trial version of it for us to install here, or b) a remote access (open endpoint) to its test installation somewhere on Internet. Is a) or b) feasible?

C. Unfortunately, we do not currently have examples of how to use UA event filtering in any of the COM-based tools (only in C#/VB, but it's done a bit differently there, because the methods can have many overloads and thus we could provide functions that make it easier).

I will prepare some example for UA event filtering.

The example will be for our standard "demo" server only, unless we obtain access to the server of yours.

D. The above (C) explains why SubscribeEvent does not have a parameter for filtering. It is meant for the simplest case only. What is actually needed, if you want event filtering, is to use SubscribeMonitoredItem (or SubscribeMultipleMonitoredItems), and construct an event filter for that. This will be covered by the example I want to do.

Best regards

Please Log in or Create an account to join the conversation.

More
20 Sep 2016 06:16 #4345 by support
From: J.
Sent: Tuesday, September 20, 2016 8:14 AM
...
Subject: AW: OPC Labs Download Follow-up Form

Hello,
I would like to experiment with filters, but I don't know how.
There are a lot of options in the OpcLabs.EasyOpcUA.dll, but I have not found the right way to set filters for the events. Sorry.
The declaration for Subscription is:
function SubscribeEvent(endpointDescriptorString:WideString;nodeDescriptorString:WideString;SamplingInterval:Integer):Integer;safecall;
There is no parameter for event filter options.

Best regards

J.

Please Log in or Create an account to join the conversation.

More
19 Sep 2016 07:04 #4338 by Joachim@FreePascal
I have examples from Bosch, but they are all written in c#. They always set some filters. For my point of view I don't need any filter, I can pick the information I need by my own. But the server requires filters. :(
Can you show me how to set a filter, I can send you my sources. Lazarus is free and easy to install. I don't even know how to set additional parameters for "SubscribeEvent". It accepts only three parameters and I found no overload function with more parameters for setting a "UAEventFilter" as a you shown in #4254

Maybe the pascal version from the "OpcLabs_EasyOpcUA_5_40_TLB" is not complete.
I use the 64 bit version.
Best Regards
J

Please Log in or Create an account to join the conversation.

More
18 Sep 2016 14:37 #4337 by support
Thank you for the reply ( www.opclabs.com/forum/ua-alarms-and-conditions/1951-ua-alarm...ons-in-freepascal-lazarus/4332 ).

The server reports an error, BadMonitoredItemFilterInvalid . Currently I do not know what is causing it. It could be something on the client side (a truly invalid filter), or on the server side (a valid filter that is incorrectly being rejected by the server).

Here are some things that can be done:

1. Ask the server vendor to provide information about when the server reports this error, or how to obtain the precise reason for it (i.e. what is invalid about the filter).

2. Experiment with actually adding some non-empty event filter (because right now, a "minimal" filter is being used, which is kind of unusual).

3. Analyze the communication between the server and the client using Wireshark - and then try to see either something invalid being issued by the client, or - if nothing like that is found - send that analysis to the server vendor for them to explain/resolve.

Best regards

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.207 seconds

      

 Recommend this on Google