New in the Community? Get started here

Schneider Electric Exchange Community

Discuss and solve problems in energy management and automation. Join conversations and share insights on products and solutions. Co-innovate and collaborate with a global network of peers.

Register Now
Geo SCADA Expert Forum
Make the most of your remote operations with end-to-end solutions with Process Automation’s SCADA and Telemetry Solutions. With the challenges that remote sites present, reliable communications for remote operation, monitoring & management are vital in enhancing productivity and ensuring profitability.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

DDK Versions and processor types

Hi,

where can I find information on DDK versions and processor type.

 

 

Thanks,

10 REPLIES 10
Highlighted
Lieutenant JG

Re: DDK Versions and processor types

DDK Versions

https://tprojects.schneider-electric.com/telemetry/display/public/CS/Driver+Development+Kit+%28DDK%2...

 

And processor type (Platform) is based on where you obtained the ControlMicrosystems.ClearSCADA.DDK.dll from.

If you got it from the x86 location(s) then it will be x86, if you got it from the x64 location (C:\Program Files\Schneider Electrical\ClearSCADA) on a x64 installation, then it will be x64.

 

I guess this is an area that the DDK documentation falls down a bit, it tells you to add a reference to the DLL, but doesn't mention anything about where the different platform DLLs are located, or how this needs to match with the class library platform.  In fact it has no mentions of either x86 / x64 at all.  I'll raise a ticket for this with Tech Support.

 

The DDK isn't the friendliest way to interface to ClearSCADA / Geo SCADA Expert.  I would personally recommend that you consider if you really need to use the DDK, or whether the .NET API would be enough for your porpoises.

If you start with the .NET API it will be a lot quicker to get real things happening.. if you then discover that there's a limitation on functionality (like you really need your own custom objects within the ClearSCADA database or something) then you can always migrate to the DDK later on.

 

 

In conclusion: avoid the DDK unless you really need the features the DDK provides above the .NET API.

If you don't know.  Then start with the .NET API.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Highlighted

Re: DDK Versions and processor types

Hi,

I am able to find ControlMicrosystems.ClearSCADA.DDK in C:\Program Files\Schneider Electric\ClearSCADA which I presume is the 64bit version.

 

In C:\Program Files (x86)\Schneider Electric\ClearSCADA it does not appear?

Other dll's are shown).

 

The V81-DDK. zip was downloded from;

https://tprojects.schneider-electric.com/telemetry/display/public/CS/Driver+Development+Kit+%28DDK%2...

 

I note your comment on the .NET API. However, I have been asked to look at the DDK as far as I can take it.

 

I have gone through the client API Guide and done the example, which worked.

Is this what you refer to when you mention the .NET APi.

 

Thanks,

Highlighted
Lieutenant JG

Re: DDK Versions and processor types


I am able to find ControlMicrosystems.ClearSCADA.DDK in C:\Program Files\Schneider Electric\ClearSCADA which I presume is the 64bit version.


If you are running an x64 version of ClearSCADA, then this is indeed the case.  If you are running in an x86 version of Windows, then this will be the x86 DLL.  This isn't Schneider's fault re: the confusion of the locations, it's Microsoft and their crazy x64/x86 architecture names.

 


In C:\Program Files (x86)\Schneider Electric\ClearSCADA it does not appear?

Other dll's are shown).


This was me being a liar it seems.  I really thought it was there.

It's been a little while since I've done x86 stuff.  Ok, so there are options:

  1. Perform an x86 installation under an x86 Operating System.  Then in C:\Program Files\Schneider Electric\ClearSCADA you'll have the x86 ControlMicrosystems.ClearSCADA.DDK.dll
  2. Pull apart the Main01.cab within the \ClearSCADA\Product\Win32 folder on the install media, there is a file called DDKASSEMBLY_ControlMicrosystems.ClearSCADA.DDK.dll in there, which is the x86 DLL in question, it just needs to be extracted, and renamed (I use 7zip to do this).  This is also another potential way to get the x64 DLL, it's under \ClearSCADA\Product\x64\Main01.cab, also named DDKASSEMBLY_ControlMicrosystems.ClearSCADA.DDK.dll

 

If you go to tproject

https://tprojects.schneider-electric.com/telemetry/display/public/CS/.Net+API%2C+Automation+Interfac...

You'll unfortunately not find a demo project in tproject, but it does link you back to the installed help


If you look in the Start Menu folder for ClearSCADA, you'll notice a "Client API" shortcut. This link will take you to the documentation for the automation interface. You should start in the ClearScada.Client.Simple Namespace. The key classes to use are "Connection" and "DBObject".


The .NET API is quite friendly to use, much much nicer than the DDK.

The example script shows this:

using System;

using ClearScada.Client;
using ClearScada.Client.Simple;

class Program
{
    static void Main( string[] args )
    {
        using ( Connection conn = new Connection( "TestApp" ) )
        {
            // Connect to local server
            conn.Connect( "localhost" );

            // Create a new point
            DBObject point = conn.CreateObject( "CPointAlgManual", ObjectId.Root, "My Point" );

            // Set a property
            point["FullScale"] = 200;

            // Get a property
            Console.WriteLine( "CurrentValue = {0}", point["CurrentValue"] );
        }
    }
}

Since it's .NET and all managed, then you don't need to worry about what platform you're targeting either.  It will work with 'Any CPU'.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Tags (2)
Highlighted

Re: DDK Versions and processor types

Hi,

Yes, I have done the .NET API example you show a few days back and it worked fine.

 

I would need to incorporate this method of communications to GeoSCADA as well being able to communicate to an API Gateway using SOAPui XML / Json.


This method is recommended above DDK?

 

Thanks,

 

 

Highlighted
Lieutenant JG

Re: DDK Versions and processor types

Yes.  I would recommend that you use the .NET API.

 

Is the Web Gateway that you need to interface to within your scope also, or is it a 3rd party product that only exposes endpoints?

 

Assuming that the Web Gateway is a 3rd party product, and you need to take data from the Web Gateway, and push it into some internal points within ClearSCADA / GeoSCADA Expert, then you will need to have your application perform some kind of periodic activity to poll the Web Gateway for the appropriate information, and then push this information into ClearSCADA.

 

There are a number of ways to go about the period action side of things, you could have it as a plain executable, that is triggered by a scheduled SYSTEM call from ClearSCADA.  Or you could have it schedule itself with the Windows Scheduler. Or you could have it as a Windows Service, and have it sleeping until some periodic trigger wakes up the thread to do its work.  Those are programming decisions largely separate from ClearSCADA itself.

 

If you have information on the actual Web Gateway then you should provide this, it's possible that someone has already done the interfacing to this, or that it reveals more information which suggests an alternative way to address the problem.

 

 

If the Web Gateway would instead have some kind of 1:1 mapping into a ClearSCADA object.  i.e. the Web Gateway is exposing some kind of temperature endpoints, each of which has a temperature reading that you just want to get into ClearSCADA... then a DDK driver would be a nicer implementation (if an alternative like ODBC/OPC isn't possible).

But it is exponentially harder than the .NET API, and so I do not recommend it.

It is more difficult to not just write, but to deploy (it needs special tricks to get it running within ClearSCADA that are not easy to do with an installer package, doing them as a batch file is possible, but then doesn't handle uninstallation, or pre-requisites etc etc etc).  Maintenance-wise it then requires a new version of the driver to be compiled and deployed for EVERY update to ClearSCADA.  


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Highlighted

Re: DDK Versions and processor types

Hi,

 

Is the Web Gateway that you need to interface to within your scope also, or is it a 3rd party product that only exposes endpoints?

 

Not really, If it was with in our scope, would you recommend a better way of going about the set up?

 

Thanks,

Highlighted
Lieutenant JG

Re: DDK Versions and processor types

Yes, have the web gateway directly responsible for interrogating / pushing the data directly into ClearSCADA / GeoSCADA via SOAP / .NET API (depending on the Web Gateway platform... if Windows .NET API, if *nix SOAP).


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..
Highlighted

Re: DDK Versions and processor types

Hi,

Its not in our scope unfortunately, I did enquire if it was possible with the more direct method.

I have to use Json.

 

I guess back to the DDK. I will have to set everything to 64bit to get it to compile.

If I can find 64bit reference's.

 

Notify Builds and creates files.

 

DriverNotify creates following error when build attempted;

 

Severity Code Description Project File Line Suppression State
Error The command "copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\\Notify.dll C:\Dev\ClearSCADA\Binaries\X64\Debug\
copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\\Notify.dll C:\Dev\ClearSCADA\Binaries\X64\Release\

copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\\Notify.PDB C:\Dev\ClearSCADA\Binaries\X64\Debug\
copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\\Notify.PDB C:\Dev\ClearSCADA\Binaries\X64\Release\

copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\DriverNotify.exe C:\Dev\ClearSCADA\Binaries\X64\Debug\
copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\DriverNotify.exe C:\Dev\ClearSCADA\Binaries\X64\Release\

copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\\DriverNotify.PDB C:\Dev\ClearSCADA\Binaries\X64\Debug\
copy C:\Users\Administrator\Desktop\Notify-Master\DriverNotify\bin\x64\Debug\\DriverNotify.PDB C:\Dev\ClearSCADA\Binaries\X64\Release\
" exited with code 1. DriverNotify

 

Show error help does not work.

 

 

Thanks,

 

 

Highlighted
Sisko

Re: DDK Versions and processor types

Edit the driver's post-build command and change:

C:\Dev\ClearSCADA\Binaries\X64\Debug\

to

C:\Program Files\Schneider Electric\ClearSCADA\

 

(Or remove them and manually copy these files)

Highlighted
Lieutenant JG

Re: DDK Versions and processor types

I believe that my first answer in this thread addressed the question that you asked.  Please mark it as the solution.


Lead Control Systems Engineer for Alliance Automation (VIC).
All opinions are my own and do not represent the opinions or policies of my employer, or of my cat..