Applies To:
  • CitectSCADA

What are the components of a Citect driver, and when do they get used? 

The primary components of a Citect driver include:
  • the driver itself (eg. ABTCP.DLL, MODBUS.DLL, etc.).
  • the dbf files which tell the Citect compiler what the device's tag address formats are (e.g. AB5.DBF, ABSLC.DBF, MODBUS.DBF, etc.). The Citect compiler will check all tags defined for this device against this dbf file.
  • the dbf files which the Express Wizard uses to display the available options in the Express Wizard (i.e. EXPRWIZ.DBF and EXPRBRD.DBF). These DBF files are only used when you run the Express Wizard.
  • the dbf file and index which contains the entries for the drop down lists (i.e. HELP.DBF and HELP.NDX). See also KB article Q2084.
  • the online help (usually integrated into the one Citect.HLP file).
  • the protocol directory file (i.e. PROTDIR.DBF).

When you specify a protocol in the 'Protocol' field and also specify a real port in the 'Port' field (as opposed to using DISKDRV or MEMORY) in the I/O Devices form, Citect will look for the driver specified in the 'Protocol' field minus any trailing numbers, and use the trailing numbers as an option. For example, if you specified ABTCP500 (to communicate with an Allen-Bradley SLC500), Citect would look for the driver ABTCP.DLL and pass the number 500 into the driver when it is initialised. If you specified either DISKDRV or MEMORY in the 'Port' field of the I/O Devices form, Citect will not access the driver DLL at any stage. The driver DLL is only used for communications with the end device, not for simulation.

Citect will also use the protocol specified in the 'Protocol' field to look up an entry in the PROTDIR.DBF to get some more information. Using the same example, if you specified ABTCP500 in the 'Protocol' field, Citect will search for 'ABTCP500' in the tag field of the PROTDIR.DBF file. That entry specifies the following values for all the fields of the PROTDIR.DBF file: Tag ='ABTCP500', File = 'ABSLC', Bit_Block = '944', Max_length = '1888', and Options = '0x37f'. Using this entry, Citect would then look file ABSLC.DBF which tells the Citect compiler what the device's tag address formats are.