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