Applies To:
  • CitectSCADA

I am having comms problems when using the DDEDRV driver. How should I configure my Citect.ini file?

Setting the [DDEDRV] <unit>.AdvInitData parameter to 1 will instruct the driver to issue a physical read (i.e. Cold Link) when subscribing to a point (i.e. Hot Link) on the unit named <unit>. This is useful when communicating with DDE Servers that do not immediately return a value when a Hot Link is established. In this scenario, all affected points would otherwise be #COM from when originally called (e.g. page displayed) until the time when the server does provide data for the Hot Link.

The [DDEDRV] <unit>.Init parameter is used to specify the address to be used in online tests for the unit named <unit>. The online tests affected are: standard online test when initialising unit, detection of loss-of-comms and detection of return-of-comms. If an address is not nominated, then the driver will automatically allocate one (v2.01.08.000 and later).

As the DDEDRV is a tag based driver, it is imperative to repack after modifications that will effect the order of the tag database. Also, the tag form in Project Editor must be closed when running up the driver.

The [DDEDRV] Timeout parameter can usually be significantly reduced from its default value of 20000mSec to provide more responsive performance.

Ensure that all tag addresses provided in a driver correctly correspond with the DDE Server. Any mismatches will incur a performance overhead as the driver will continually try to make a connection for that address. The timeouts incurred when trying to obtain values from non-existent points will hold up any other comms (such as any Cold Links), and can cause lengthy delays in page call-up.

If your project only has a small amount of DDE tags, it would be beneficial to configure the project such that the hot links are
maintained as long as possible. This will minimise the delay when calling up a page with multiple DDE tags. If your project has a
large number of DDE tags that are continually updated by the DDE Server, it would be beneficial to only have hot links active for a short duration to minimise bandwidth usage.

If you are experiencing lengthy delays while shutting down, when the NETDDE link has been broken, the [DDEDRV] UnitShutdownTimeout INI parameter can be lowered to shorten this delay. Note that this delay should only be experienced in abnormal circumstances. The value specifies the maximum time (in seconds) that the driver will wait while shutting down each unit. The default value is 30 seconds. A value of 0 seconds is legal, and implies that the driver is not to wait at all.