Applies To:
  • CitectSCADA 5.xx, 6.00
  • CitectHMI 5.xx, 6.00

What precautions should I take when using OID tag based drivers? 

The following information is relevant to all OID (i.e. ABCLX, OPC, ABLOGIX, DDEDrv) or tag based drivers (ie:aglance, ABBMOD, ABLOGIX1, apacs, BnRPVI, ddedrv (if the DBF has %J or %K references in it), Measurex, ModNet (new IBM version if it has S4%U(1,1,99999)%R or S3%U(1,1,99999)%R in the DBF), OpenCtrl, Optimist, Stargate, Steeple, tons)).TPERM is hybrid between tag and address based.

The following is of an importance that cannot be understated.

Version 6 of CitectSCADA saw the introduction of increased security around how OID's are handled in CitectSCADA to protect against things such as OID mismatches occuring etc, however it is generally advisable to ensure that the basics are covered. This KB is not exhaustive by way of explaining all there is to know about OID or tag based drivers, please refer to KB article Q3657 which has a lot of useful information regarding how OIDs work.

The Basics.

Project IDs. The project ID can be found by selecting the project in Citect Explorer and selecting "Properties". The Project ID is shown on the "General" tab. It is imperative that when using Display Clients, Standby Servers, etc that the project restored to that PC has the same Project ID. This should be checked when the project is restored to a PC because if that Project ID is already used by another project on that particular computer, Citect will generate a Project ID number that is different to the one for that project. The Project ID is stored in the project backup file (.ctz).

When you are using include projects on your system, you should ensure that each include project has the same Project ID as any other computer using that include project. Again it is imperative that this is checked after restoring a project to that computer.

Variable Databases. The OID is basically generated using the Project ID and the position (i.e. record number) in the variable.dbf file. Therefore if you have different variable.dbf files accross your plant it is possible to have OID mismatches. To avoid this, ensure that once you have made changes to your variable.dbf on your Primary Server, that you reset the OID (in citect.ini file set [OID] Reset=1) and do a pack and full compile (i.e. ensure that incremental compile is turned off). Once this is done this variable.dbf file should be copied to the Standby Server and any Display Clients using the project. This ensures that an OID on your Primary Server is the same as the OID used on your Display Client and/or Standby Server.

It is imperative that after changes are made to the variable database, that the OID be reset, a pack be done on the database and a full compile done on the project. And of course you should not forget to distribute the variable.dbf to your other Servers/Display Clients.

Important Note: It is of the utmost importance that if you are using include projects you should pack all your variable.dbf before resetting the OID and doing a full compile of your project. There is a tool (PackAll) that is available from the Citect Toolbox within your MyCitect account. It will pack all the variable.dbfs that are used in your project (even if they are include projects). This tool is located under "Database Tools" in the Toolbox.

Due to the importance of this information, if you have any doubts or do not quite understand these details, please contact Citect Support for immediate clarification.

You should also refer to KB article Q4075.