LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to build a Client/Server application, and trying to find out if OPC is needed.

Hello.

I'm starting the development of a client/server application, but I'm not sure about how to use DSC module.
I'll have a client adquiring data from different hardware, and a Server that will receive this data across the network. I suppose the server will store the data en CITADEL database using the tags, but I'm not sure how will be the communication between the Client an the Server.
The Client, in addition to adquire the data from the hardware, perform some automated control over it, and send the data to the server. ¿Should I use OPC here?. If so, OPC gets the data from the hardware, but in this case, is the client who is sending the data across the network.
Can I indicate to
the server the way in which is going to receive the data (datasocket for example)?
Some example should be very useful...

Many thanks for your help!

Dani.
Dani
0 Kudos
Message 1 of 4
(3,469 Views)

Dani,

this is not an easy answer and not as simple. The concept of client and server is perfect for distributed control and monitoring applications.

What we have to know in addition is:

    1. the hardware type you are using

 

    1. the speed of the aquisition or in term of control engineering, how fast would be the sampling control rate or the robustness of your control application. (real-time required?)

 

    1. how many I/O points, tags would be required

 

  1. definition of the words "client" and "server"



In my case a client is just the monitoring application - with options to send desired values or control parameters; a server has embedded control algorithms, is the alarm master and logs the value to a database and makes the communication to the hardware. Depending on the robustness requirements of the control algorithm I would move the control task to a real-time operating system or to a PLC - control as deep as possible, communicate as less a possible)

OPC as the industrial automation standard to share data is widly accepted and is certainly a good way to use with the DSC Module.

In my application I would use the DSC Module as an OPC client to connect to the OPC server for PLCs. I would store/log the values to Citadel directly on this Server's DSC Engine and I would run controller VI's communicating to the DSC Engine on this server computer. This would be a "SoftPLC".

On the client computer I would have just VIs communicating directy to the DSC Engine through the Logos communication protocol.

If you run into some resource problems on the server I would split the server task into a DSC Engine that "controls" and a DSC Engine that "logs". Or, maybe I would log the values to a Citadel database residing on another PC - "distributed logging". Or, I would run the OPC Servers on a seperate machine and use the "remote OPC" feature (DCOM). Because I would not get into the mess of too much DCOM and to old stylish ladder logic or C program environements, I would consider to use Fieldpoint-RT as the perfect PLC (PAC) - 10 Questions you should ask when selecting a Programmable Controller 

There are several options and it is hard to recommend something with this few informations you gave. Anyhow, I've some links which might give you more ideas.
LabVIEW DSC Module to FieldPoint Connectivity [broken link removed]
Connecting the LabVIEW DSC Module Engine to a Real-Time Controller [broken link removed]

Let us know for which client/server design you will decide.

Regards
Roland

0 Kudos
Message 2 of 4
(3,469 Views)
Thank you for your help, Roland.

In the previous message it was not all the system information. Above is described lightly the system I'm starting to develop:

It will be lot of clients, each one controlling a specific set of hardware, and all of them reporting information to a unique server, whose mission is to store all the adquired data from the clients. The connection between the server and the clients is TCP/IP.

Client -> works in stand-alone mode, controlling the hardware (as a PLC). It will send the adquired data to the server. The hardware that will control are digital IO, and analog IO.

Server -> Read data from lot of Clients. It will store them into the CITADEL database, and will show the current state of the selected Client.
It will have the capability of control a remote station (client).

The Server main function is store the data sent by the client, but I'm not sure if those data may be sent by the client accross OPC (if really it's possible).

My doubt was if with this basis it is possible to use DSC, and how.

Regards,
Dani.
Dani
0 Kudos
Message 3 of 4
(3,469 Views)
Now I understand a little better...

Probably you will have on each client a DSC Engine running and set up to log to a remote Citadel database that resides on the server. You will not need OPC in this case because the Citadel database is a highly distributed historical database feature of LabVIEW DSC.
On the server you can use the Logos protocol (with either Datasocket read/write or front panel connectioins with the logos:// URL to the DSC Engine of the clients) to monitor the current state of the clients. In this case the server application is maybe just a Logos client and does not require to have the DSC Engine running.

Hope this helps a little and let us know if you have other doubts.

Regards
Roland
0 Kudos
Message 4 of 4
(3,469 Views)