Applies To:
  • CitectSCADA 1.00, 1.01, 1.10, 1.11, 1.20, 2.00, 2.01

Summary:
The following is a description on how to setup Network DDE with Windows for Workgroups. 

Solution:
Network DDE uses a SYSTEM SERVICE APPLICATION called NDDE$ which must be running on each PC.

NDD$ uses the [DDEShares] section of SYSTEM.INI to maintain a SHARES DATABASE that has details of DDE SHARE NAMES with their specific APPLICATION, TOPIC, ITEM (optional) and security attributes. This is unique to each computer and gives the user control of DDE access by other computers. Typically the [DDEShares] section looks like this:-

[DDEShares]
CHAT$=winchat,chat,,31,,0,,0,0,0
SCHAT$=winchat,chat,,31,,0,,0,0,0
CLPBK$=clipsrv,system,,31,,0,,0,0,0
HEARTS$=mshearts,hearts,,15,,0,,0,0,0
METER$=NetMeter,cpu_usage,,31,,0,,0,0,0
EXCEL$=EXCEL,WIL_DEMO.XLS,,15,,0,,0,0,0
ACCESS$=MSACCESS,WIL_DEMO;TABLE LOCALTBL,,15,,0,,0,0,0

The DDE ShareName does not have to end with $.

Microsoft advises that this arrangement could change in the future. There is an application in the WFW Resource Kit called "Network DDE Share Manager" (DDESHARE.EXE) that is designed to administer the DDEShares Database. There is also a DLL to allow it to be changed from any application (presumably future DLLs will accommodate the threatened changes).

The DDE call is actually to NDDE$ on the local PC, the TOPIC being the DDEShareName. NNDE$ on the local PC establishes a NETBIOS session with NDDE$ on the remote PC passing it the DDEShareName. The remote computer uses the information in the [DDEShares] section of it's SYSTEM.INI to establish a DDE channel with the Application/Topic.

To establish a NETDDE session the following are required:-

Application \\ComputerName\NDDE$ (eg \\MyComputer\NDDE$)
Topic DDEShareName (eg Access$)
Item (eg FirstRow)

A separate DDEShareName is required on the remote PC for each combination Application/Topic. There is an option to declare the TOPIC as a wildcard (ie *) but this may not be of much use in many applications. Once this has been done, normal DDE operations can be invoked from Cicode.

There is a problem with DDEExec because the only parameter is sApp. The MACRO or COMMAND is actually sent to NDDE$ on the local PC with no sTopic (which contains the NetDDEShareName). Because NDDE$ is not told the NetDDEShareName (which would be used by the remote computer for the sApp and sTopic) the Macro or Command is not sent to the remote PC/Application/Document.  


Keywords:
 

Attachments