0% found this document useful (0 votes)
322 views4 pages

OLE and DDE Mechanisms for I/O Control

This document describes 4 common mechanisms for connecting devices in industrial automation systems: DLL, DDE, OLE, and OPC. DLL uses dynamic link libraries to enable communication between an executable program and device drivers. DDE uses Dynamic Data Exchange to allow data sharing between applications via a server-client model. OLE uses Object Linking and Embedding to expose device functions through interfaces that can then be called by OLE clients. OPC is based on OLE for Process Control and provides a standard interface for process control applications to access plant and machinery data.

Uploaded by

yuelong
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
322 views4 pages

OLE and DDE Mechanisms for I/O Control

This document describes 4 common mechanisms for connecting devices in industrial automation systems: DLL, DDE, OLE, and OPC. DLL uses dynamic link libraries to enable communication between an executable program and device drivers. DDE uses Dynamic Data Exchange to allow data sharing between applications via a server-client model. OLE uses Object Linking and Embedding to expose device functions through interfaces that can then be called by OLE clients. OPC is based on OLE for Process Control and provides a standard interface for process control applications to access plant and machinery data.

Uploaded by

yuelong
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1.

DLL - Dynamic-link Library


2. DDE - Dynamic Data Exchange
3. OLE - Object Linking & Embedding
4. OPC - OLE for Process Control

Device Connecting Mechanisms

DLL Mechanism User DLL Mechanism


C/C++
code

Driver - DLL I/O Device


General part

Driver - DLL I/O Device


EXE))
(EXE

… …

Driver - DLL I/O Device

Specific part
SCADA
DLL Mechanism DLL Mechanism
bool Config() DLL
{ DLL
... bool Config( )
EXE } EXE
{
Tag bool Reconfig() Tag ... Tag
{ }
... bool Config( )
Tag } Tag Tag
{
...
DAQ Tasks float Read( DWORD Channel) DAQ Tasks
Tag Tag } Tag
{
... Run( )
Tag } Tag { Tag
...
bool Write( DWORD Channel, float Data) }
Tag { Tag Tag
...
}

DLL Mechanism DDE Mechanism


DLL
bool Config()
EXE {
... Tag I/O Device
DDE Sever

DDE Clients, SCADA


Tag }
bool Reconfig()
{
... Tag DDE Server I/O Device
Tag
}
… …
DAQ Tasks float Read( DWORD Channel) Tag
Tag {
...
DDE Server I/O Device
} Tag
Tag
bool Write( DWORD Channel, float Data)
{
... Tag Computer A
Tag }
DAQ Tasks
DDE Mechanism DDE Mechanism

Application
DDE Sever I/O Device
DDE Clients, SCADA

Application|Topic1!Item3
Computer B Topic1

Item1 Item3 Item3 I/O Device


DDE Server I/O Device
Topic2

DDE Server I/O Device Item1 Item3 Item3

Computer A Computer C
DDE Client DDE Server

OLE Mechanism OLE Mechanism

Interface1
Function11( ... );
OLE Server I/O Device
Function12( ... );
(DLL)
DLL)
Function13( ... );

OLE Client
OLE Server
OLE Client

I/O Device

EXE))
EXE))

(EXE)
EXE)

(EXE
(EXE

Interface2 … …
Function21( ... );
Function22( ... );
OLE Server
Function23( ... ); I/O Device
(DLL)
DLL)

OLE Server
COM - Component Object Model
OLE Mechanism OLE Mechanism

In-process
In-process
Client

Local Remote

Computer A Computer B

а) Fast device, quantity of tags is not high

Tag Multiple Read {;} Input


Refresh SingleRead {…} Device
Single Write {…} Output
I/O Requests Multiple Write {;} Device
b) Slow device, quantity of tags is not high
Tag
Multiple Read {…} Input
Refresh
Single Read {…} Device
Cache
Single Write {…} Output
I/O Requests Multiple Write {…
{…} Device
c) Slow device, quantity of tags is high
Tag
Multiple Read {;} Input
Refresh DAQ
Cache

SingleRead {…} And Device


Single Write {…} Control Output
I/O Requests Multiple Write {;} Device
Task {;} – Empty Meth.
Meth. {…} – Not empty Meth.
Meth. Data direction Call

You might also like