Citect for Windows Version 5.00

Welcome to Citect Version 5.00 for Windows 95 and Windows NT (version 4 and above).

What's New

See the What's New in the online help system for details of new features for this version. For a detailed listing of problems that have been fixed in this release see Relnotes.doc (found in the Citect bin directory).

Hardware Requirements

You may have to upgrade your computer equipment to run version 5 as the minimum requirements have been increased. Citect version 5 runs under Windows 95 or Windows NT4.0 - you cannot use Windows NT 3.xx with Citect.

Minimum requirements:
Windows 95486 100MHz processor with 16MB of RAM.

Windows NT 486 100MHz processor with 24MB of RAM.

Preferred requirements:
Windows 95Pentium 100MHz processor with 24MB of RAM.

Windows NT Pentium 100MHz processor with 32MB of RAM.

In either case you will need at least 100MB of free hard disk space. You will require more if you have large projects.

NOTE: If you need to do very complex graphics, for best results you will require a Pentium 166MHz (or faster) processor, with an additional 8MB of RAM. Larger projects will require more RAM.

Undocumented Changes

· Multi-Language Projects

Multi-Language Projects is a new feature which allows the language in which Citect displays text to be changed at runtime. This is invoked through the use of the Cicode function SetLanguage()which is not fully documented in the online help.

The SetLanguage() Cicode function is shown below.

SetLanguage(STRING sLanguage, INT nCharSet)

The first argument, sLanguage, corresponds to the name of the language DBF file that holds the translated strings for internationalised text in runtime. See the existing help in version 5 for more information with regard to internationalising Citect projects.

The second argument, nCharSet, specifies the character set to use when interpreting the internationalised text in runtime. For languages in which the language character set differs from that of the default character set of the Windows installation, text becomes garbled. To avoid this problem the character set to use for a specific language must be specified with the nCharSet argument.

nCharSet can take on one of the following values.




HANGEUL_CHARSET 129 (Korean hungul)

GB2312_CHARSET 134 (Simplified Chinese)

CHINESEBIG5_CHARSET 136 (Traditional Chinese)

JOHAB_CHARSET 130 (Korean Johab)










There is a new corresponding INI parameter :


This parameter specifies the character set to use when interpreting the internationalised text in runtime. Allowable values are the same as specified above for the nCharSet argument.

Citect also provides a new Cicode function, LanguageFileTranslate() which will take an RTF report, translate it and copy it out to a new file. Citect will translate the report using the language selected by the SetLanguage function.

The LanguageFileTranslate() is shown below,

LanguageFileTranslate(STRING sSourceFile, STRING sDestFile)

The first argument, sSourceFile, specifies the name of the RTF report which will be copied and translated.

The second argument, sDestFile, specifies the name of the file that will be created and contain the translated version of the source file.

If you wish to have the file translated into the language of the Display Client, then you will need to set the following INI parameter:


This parameter specifies whether the Server or the Display Client is responsible for translating a file containing multi-language text. If this parameter is set to 1 then the Display Client must call the Cicode function LanguageFileTranslate to translate the file.

Allowable Values

0 Files will be translated into the language of the server.

1 Files will require translation with the function LanguageFileTranslate.

Default Value: 0

· Licence Point Count Calculation

If disk or memory variables are modified from an external application using DDE or the Citect API, these points are now counted as physical points when licence checks are performed.

The Following Known Problems Exist with this Version

· Colour Depth Used While Configuring Projects

There are some known problems that only appear while the PC used to configure projects is running in non 8-bit modes, ie true colour or hi-colour modes (15, 16, 24 and 32+ bits per pixel). Until a fix can be made for this problem use a 256 colour (8 bit) screen mode while configuring projects.

Known Problems in non 8-bit Modes:

  • The background (fast runtime display) is too dark at Runtime. This occurs when saving a page in a true colour mode.

  • Flashing colours do not flash.

  • Convert to bitmap in the Graphics Builder changes areas that should be transparent to white. Also some colours are a slightly different shade.

  • The bitmap editor in the Graphics Builder does not always refresh the pixel grid properly after editing.

  • Copy to clipboard from the Graphics Builder does not look the same.

  • Additional, non-configured border colouring appears around objects in Graphics Builder.

· Dynamic Polygon and Arc Objects do not Behave as Documented

Polygon and Arc objects with fill level property configured do not behave as documented.

Known Problems in Polygon and Arc Level Fills:

  • For a filled open polygon with fill level property configured, the fill is applied to the entire object whereas it should only be applied to the filled region excluding the polygon outline.

  • For a filled arc with fill level property configured, the fill is applied to the entire object whereas it should only be applied to the filled region excluding the arc outline.

· Dynamic Properties for Groups Do Not Work

Any dynamic properties configured for a pasted symbol (where the symbol does NOT consist of a single bitmap) will not have any effect at runtime. Any dynamic properties configured will take effect in a future version of Citect.

· Incorrect expression range used by compiler

An incorrect range of '0 to 32000' will be used when an expression containing no variable tags is entered into a field that has an unchecked 'specify range' check box. To ensure that the correct range of '0 to 100' is used in these instances, tick the 'specify range' check box and enter 0 and 100 for the minimum and maximum limits respectively.

· Graphics Builder Animation Testing

In previous versions, the configuration of an animation object's states could be tested in Graphics Builder by applying consecutive right clicks. This no longer works.

· Citect Express Wizard Crash

When running Citect for Windows on the first release of Windows 95, creating a new project and running the Express Wizard twice in succession may result in a crash. This problem does not cause any damage to your system or project and will be corrected in a future revision.

· Citect Version 4.xx Trend Servers

Citect V5.00 Display Clients are incompatible with Citect V4.xx Trend Servers and will not display trend data from these servers. However, V4.xx Display Clients are compatible with the Version 5.00 Trend Server and will function correctly.

· Changes to Keyboard and Touch Commands Do Not Update

If you make changes to a keyboard or touch command in a template, symbol, genie, or supergenie, the changes are not reflected in pages when an Update Pages is performed. The workaround is as follows.

1. Remove the keyboard or touch command you wish to change.

2. Perform update pages.

3. Add a keyboard or touch command with the new command.

4. Perform update pages.


· Upgrading Projects

If you have projects from previous versions that you wish to upgrade to V5.00, it is essential that you read the Upgrade Information in the online help.

Upgrading Projects with Included Projects:

To ensure that a project containing one or more included projects upgrades correctly, perform the following:

  • If necessary, restore the project(s) from backup.

  • Using the Citect Explorer, add links to any of the included projects which are not already listed.

  • Select the parent project and then exit the Citect Explorer.

  • Edit the Citect.ini file (or the custom ini file if your system uses one) and set [CTEDIT] Upgrade=1.

  • Restart the Citect Explorer.

Your project, along with each of those included, will now be correctly upgraded.

Symbols may move when upgrading from Version 3.xx/4.xx:

In certain circumstances, pasted symbols and/or genies may change position during the upgrade process. If this should occur, contact Citect Technical Support.

· Time Conversion of Trends' History Files

Trend history files created by a Version 3 Trend Server that did not have the time zone set cannot be read by Citect Version 5 without conversion. The necessary conversion will update the start and end times of the trend history files along with the master trend files (.HST).

To have the Trend Server perform this upgrade at start up, set the parameters as shown below.


ConvertTime = 0 (Do not do time conversion - DEFAULT)

1 (Do time conversion)


TimeZone = <The timezone in minutes>

This time will be different depending on whether the conversion time is in Standard Time or Daylight Saving Time. For example, for Sydney

TimeZone = 600 (10 hours) (if conversion time is in Standard Time)

= 660 (11 hours) (if conversion time is in Daylight Savings Time)

or, for West Coast USA

TimeZone = -480(-8 hours) (note the minus sign) (Standard Time)

If ConvertTime is set then all trend history files (including the master file) will be updated to have the correct time. At the end of conversion Citect will shutdown and reset the [TREND] ConvertTime parameter so that the time conversion will not be repeated.

Note: Make sure that you have backed up your trend files before initiating the conversion process. This will allow you to start afresh should an error occur during the conversion.

· Debugging Cicode

Projects that have been compiled with [GENERAL]DebugInfo=1 (the Default value) require re-compiling when restored to a Citect installation with a different path.

For example :

Computer A has Citect installed in c:\citect

Computer B has Citect installed in d:\citect

If a project is compiled on Computer A, backed up, and then restored on Computer B, then the project must be re-compiled for the Cicode Debugger to be able to debug the project's Cicode.

Projects that have been compiled with [GENERAL]DebugInfo=0 will also require re-compiling.

Note : The Citect Example Project comes compiled without debugging information for Cicode ([GENERAL]DebugInfo=0). In order to debug the project's Cicode you will first need to re-compile the project.

· Using Break on Hardware Errors

The Cicode Editor/Debugger "Break on hardware errors" option can be extremely useful for isolating the cause of unexpected hardware alarms during development. When activated, the option causes the Cicode Editor/Debugger to break immediately on the occurrence of a Cicode related hardware alarm, showing the operator the code which caused the alarm to be raised. If you are experiencing hardware alarms on a plant which is NOT running, please use this option before ringing Citect Technical Support.

· Alarm Properties

While alarm properties allow easy access to the configured properties of an alarm, it is not possible to change their value by assigning them a new value. Alarm properties should be considered read-only and attempting to write to these values will not affect the behaviour of the alarm.

Corrections to Help

· Operator Logs

The Message Log for a command is a text message sent to the MsgLog field of the Log Device when the command is executed at runtime. The message must be plain text. If you want to include field data as part of a logged message, you must insert the field name as part of the device format when you configure the device. For instance, in the Format field of the Devices form, you could enter {MsgLog,20} {FullName,15}. This would accommodate the logging of messages such as P2 started by John Smith.

If you are logging alarms or command messages, you must specify a format, or no data is written to the device.

NOTE: To log a message every time a command is executed (Touch and Keyboard Commands), you must include {MsgLog} as part of the format of the device. Of course, you must also enter a log message for the command, so that a message is actually sent to the MsgLog field when the command is executed.

The log device for a command is specified wherever the command is defined. The log device for an alarm is specified at the Alarm Categories form.

· SPC Tag Names

SPC Tag Name (11 chars.)

The name assigned to the SPC data. If you are logging a variable, it is recommended that you should use the same name for the SPC tag that you used for the variable tag provided that:

  • the variable tag is not longer than 11 characters

  • the SPC Tag Name is unique both in Trend Tags and SPC Tags.

SPC Tag Names longer than 11 characters may cause Citect to malfunction or crash.

· Alarm Properties

In order to use alarm properties, it is necessary to configure an Alarm I/O Device. The help states that this I/O device is automatically created when a project is created. This is not correct. The Alarm I/O device must be manually created and configured using the settings provided in the help before Alarm Properties may be used.

· Multi-Language Projects

Language Databases

If you change the local language value of a project (using the [LANGUAGE]LocalLanguage parameter) during the course of a project's design, you must perform an Update Pages operation (from the Graphics Builder), followed by a full re-compile of the project.

Marking Text for Language Change

During project development, any text which is to be changed to another language at runtime must be marked with a language change indicator, in the following format:

@(Native Text[,Width[,Justify]])

Where Native Text is the identifying text which will be displayed when configuring. This text will be replaced by the Local equivalent at runtime. Note that the brackets are a necessary part of the indicator, and specify the extent of the native language text.

Width and Justify are optional. They specify the field width for the text, and its justification within the field. If Width is not specified then the width of the field will be the length of the local text and the text will be left justified.

The Width can be assigned a value from 0 to 254, if the text is longer than the width of the field then it will be truncated and left justified.

The Justify can be one of the following :

l or L - Left

r or R - Right

c or C - Centre

n or N - None

Characters that form part of the syntax can be used within the Native Text by using an escape sequence. The format of the escape sequence is the character to be escaped preceded by a caret ( ^ ).

The following escape sequences can be used :





Note that the caret ( ^ ) will not appear when the text is displayed at runtime.