Applies To:
  • CitectSCADA 1.x 2.x 3.x 4.x

Are there going to be any known problems with older versions of Citect when they hit the year 2000?

Citect stores all internal dates in a binary format which does not separate out the year from the month, day and time information. Due to this binary format, all of the time operations internal to Citect will operate in the same manner as for any other year transition.

Citect is undergoing testing to ensure neither performance nor functionality is affected by dates prior to, during and after the year 2000. This testing has uncovered some date related anomalies which have been corrected in Citect Version 5.10 and Service Pack K for Citect Version 3.40 & 4.20.

See also Q2113, Q2114 and Q2519.

Project Configuration Errors

You may have year 2000 problems in your project which are the result of your configuration.

Cicode provides for both 4 digit year and 2 digit year dates, therefore it is possible functions written by end users have used 2 digit year dates instead of the more precise 4 digit year form.

In most cases, this will not result in a problem because when Citect sees a 2 digit date the following procedure is used to calculate which Century the data belongs to. During the conversion from string into the binary date format Citect treats two digits dates greater than 80 in the 20th Century and two digit dates less than 80 as in the 21st Century. Century and values greater than 80 as being in the 20th Century. For example 96 is treated as 1996 and 75 is treated as 2075. If a date is entered using all 4 digits then the date may be in either Century.

If your Citect system contains user written Cicode functions then it is advisable to check them to ensure that two digit dates will not cause a problem.

If you log data to a device using the short data format or manipulate dates as strings and you then perform calculations on these dates with other software which is non year 2000 compliant you will get incorrect results caused at the year 2000. If you perform calculations on these dates using Citect then they will work correctly up till the year 2079.

This would occur in the following cases:

  • Logging Alarms using the {DATE} field.
  • Logging Alarm Summary using the {ONDATE}, {OFFDATE} and {ACKDATE} fields.
  • Logging Keyboard commands using the {DATE} field.
  • Use of the Date() Cicode function with no mode or mode 2.
  • The Page WinTitle Format allows the display of the {DATE}. As this date is only displayed to the operator and not logged it is unlikely to cause a problem. Unless the operator does not know what century he is in.

You should search your project for the above cases and verify if they will cause a problem. If you log the date and don't perform any calculation on the logged dates there will be no problem. If you do perform calculations with another applications you may need to modify your project to avoid these problems. The current release of Citect supports logging the DATE fields in the short date format. CIT will provide enhancements to Citect to log dates in the long date format with the next service pack. See Q2144 for details of these changes.