IMPORTANT: All projects MUST be upgraded and recompiled after the installation of this Service Pack.

Failure to do so will result in conflicting database size messages. To force an upgrade, edit the Citect.ini file and set [CTEDIT] UPGRADE=1. Ensure that the Incremental Compile menu option is not checked, or set [CTEDIT] INCREMENTALCOMPILE=0.

NOTE: If you already have hotfixes installed on v5.50 r0, please review this document carefully to ensure that the hotfixes are included in this Service Pack. In the event of a discrepancy please contact your regional support office for assistance.

FOR GENERAL INFORMATION ABOUT SERVICE PACKS, SEE KNOWLEDGE BASE ARTICLE Q2181

Installation Instructions

Existing CitectSCADA v5.50R0 Users

1) Install v5.50 Service Pack B

2) Open Citect Explorer, wait until upgrade has completed, and then close Explorer.

New CitectSCADA v5.50 Users

1) Install CitectSCADA v5.50R0

2) Open Citect Explorer for the first time and then close

3) Install v5.50 Service Pack B

4) Open Citect Explorer, wait until upgrade has completed, and then close Explorer.

Files changed in this Service Pack

The following files have been updated by this Service Pack.

CITECT32.EXE

CTEXPLOR.EXE

CTEDIT32.EXE

CTDRAW32.EXE

CTPROJ.DLL

TOOLS32.DLL

TECHDO32.DLL

DLG32.DLL

CTMENU32.DLL

CTCOMDLG.DLL

CTG32.DLL

CTUTIL32.DLL

CTTAGDB.DLL

CITRANS.DLL

CIOPCTAGBROWSE.DLL

CIEXCEPTIONMAILER.DLL

CTCMP32.EXE

CITRENDARCHIVEFILEOFFSET.DLL

CITRENDARCHIVEFILEOFFSET8BYTE.DLL

CITAGBROWSE.DLL

CTENG32.DLL

CTRES32.DLL

CTEDIT32.EXE

EXPRWIZ.EXE

CSV_MULTIMONITORS.CI

CT_IPC.DLL

CTKC.DLL

CITECT.FRM

FACEPLAT.CTM

This Service Pack fixes the following problem that was introduced in v5.50 Service Pack A:

* 23873 - Windows created using WinNewAt are showing a black border

Creating a window using WinNewAt with modes 5, 6, 9, 10 or 16 followed by a

WinPos, WinSize or WinMove results in a window of the specified size, surrounded

by a black area on the right and bottom of the window.

This Service Pack also includes Service Pack A which fixes the following problems:

* 18859 -Compiler could not detect missing END statement in a Cicode file.

The compiler could not detect if the last END statement was missing from a Cicode file. The compiler will now generate an error if the final END statement is missing from a cicode file.

* 19367 - CitectSCADA crashing when the alarm summary list filled

CitectSCADA would sometimes crash when the maximum summary length had been reached. The problem has been resolved by ensuring that the event and event sorting queues remain consistent.

* 20176 - Trend pens missing on super genies when viewed on a display client


One or more trend pens may not have been displayed when viewed via a Super Genie on a display client. The situation was resolved by correcting a problem with pen definition messages.

* 20489 - Remote dial-in devices not supporting null characters in the Caller ID string

A scheduled I/O device Caller ID would not be recognized by the I/O server if it contained ASCII null characters. CitectSCADA now supports ASCII null characters in the Caller ID.

* 20712 - Genies move and resize at run time

CitectSCADA Runtime animator was rounding transformed coordinates to the nearest pixel. This was different to the truncation method used by Graphics Builder, affecting circles and rectangles. All point maps for circles and rectangles have been modified to truncate transformation results.

* 21087 - SPC redundancy not seamless

SPC trends disappeared when a switch over to the redundant Trend Server occurred. This is not seamless redundancy and is not consistent with other CitectSCADA server/clients. The problem was corrected by changing the way the trend client connection recovers when communication is lost to the trend server(s) and then regained.

*22336 - Inconsistency in v5.50 and v5.42 alarm packet sizes

In v5.50, runtime read and write access to the delay property of certain alarms was added. This created a potential problem, as the update packets for versions 5.50 and 5.42 were no longer the same size. Adjustments were made to the way 5.50 handles update packets.

* 22367 - Invalid delay value allowed during runtime

During runtime, the delay alarm property could be written to with a value greater than is acceptable for an alarm delay field. This resulted in a compile error the next time the project is compiled. Tags will no longer update with an invalid value.

* 22390 – CitectSCADA Exception Mailer fails to zip files

The CitectSCADA Exception Mailer would fail to zip files following a crash if CitectSCADA was installed to a folder with a space in the name (i.e. C:\Program Files). The CitectSCADA Exception Mailer now functions correctly if CitectSCADA is installed to a folder with spaces in the name.

* 22408 - Mouse wheel causes display corruption

If a page was scaled, the mouse wheel code was incorrectly calculating the scroll amount and causing junk to appear at the bottom of the window. The scroll code now takes into account the current page scale, and only allows scrolling if dynamic sizing is not happening.

* 22446 - Tool tip shown at wrong place

The tool tip echo for keyboard command input was appearing in the upper left-hand corner of the screen instead of in the correct position. Once an entry was made, the tool tip echo would appear in the correct position. Changing the origin point for a plot to the AN point instead of the lower right bound allowed this to work correctly.

* 22536 - Trend redundancy crash

In certain circumstances, trend redundancy may crash at startup or simply not run. It appeared that the trend redundancy system may be coming online before trend acquisition had begun. CitectSCADA now ensures that event trends have their latest sample time calculated before trend acquisition starts.

* 22556 - Memory leak in the MsgRPC Cicode function

Calling a remote procedure using the MsgRPC Cicode function would cause a memory leak if the target server was actually the local machine. The problem has been resolved.

* 22565 - Page instances not released

When pages were displayed using Cicode WinNewAt function, and then released using the WinFree function, some pages were left in the background and not closed. The WinFree function now correctly closes pages displayed using the WinNewAt function.

* 22727 -Historical trend display moving to real time

Certain sequences of trend functions can cause CitectSCADA to incorrectly appear in realtime mode when it should be in historical mode. The problem was fixed by modifying the TrnSetTime function to behave consistently with the TrnScroll function.

* 22790 - Shutdown crash in trend redundancy

A redundant trend server could crash at shutdown if the server was in the middle of backfilling Trend data. The trend server shutdown sequence has been modified to prevent this behaviour.

* 22954 - FmtOpen will not work if a project contains more than 256 devices

The limit on user format opens is incorrectly based on the total number of format opens (user and non user). So when a project contained 256 devices or more then 512+ format opens were outstanding. This means every attempted user format open will fail. To fix this problem, a counter has been added to track the number of user format opens and closes, rather than relying on the total number of format opens outstanding.

* 23089 - OIDs generated using incorrect ProjectID

CitectSCADA was generating the OID for tags in a project using the main project ID. If this main project was changed for a different one, such as in a clustered system, then the OIDs would change and the system would not work.

* 23006 -Back button functions incorrectly

CSV_Include project's back and forward buttons have now been fixed. They will now traverse the project's last page queue correctly.

* 23439 - TCP/IP socket implementation does not support blocking send mode

It was not possible to disable the socket send timeout in CitectSCADA. This timeout may now be disabled by setting the [IPC]SocketSendTimeout parameter in Citect.ini to 0. This is necessary under rare circumstances on site.

* 23493 - Crash on primary trend server during trend backfilling

This problem is caused by a memory overwrite in the function ReadForwardByTime, called during event trend redundancy. This problem has now been resolved.

Attachments