Citect SCADA 5.50 Service Pack C

Материал из archestra.info
Перейти к: навигация, поиск

Service Pack

CitectSCADA Version 5.50 r0 Service Pack C

This document describes the modifications and fixes made in CitectSCADA version 5.50 Service Pack C as well as providing installation information. It also describes the modifications and fixes made in Service Packs A and B.

Important: All projects must be upgraded and recompiled after installing 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 hot fixes installed on v5.50 r0, you should review this document carefully to ensure that the hot fixes are included in this Service Pack. In the event of a discrepancy contact your regional support office for assistance.

Note: For general information about service packs, see Knowledge Base article Q2181.

Service Pack Installation

The procedure for installing Service Pack C depends on whether you are an existing user of CitectSCADA 5.5 or a new user.

Existing CitectSCADA v5.50R0 Users

1.        Install v5.50 Service Pack C.

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 C.

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

Updated Files

The following files have been updated by this Service Pack.

ctVersion.xml

*
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

*
rscite32.exe

*
sargdig.dbf

*
sargana.dbf

*
ctopc32.reg

*
cidebughelp.dll

*
citect.ci

*
csv_navigation.ci

*
csv_alarms.ci

*
cirecipe.ocx

Issues Resolved in This Service Pack

This Service Pack resolves the issues described below.

15156 Memory leaks in the Graphics Builder

Graphics Builder could leak memory if a page contained large numbers of objects.

18438 Restoring a compiled project results in an uncompiled project

When backing up or restoring a project, the Save Compiled option did not work, resulting in a restored project still having an “uncompiled” status.

19347 Some stack DCBs to drivers are not being handled securely

Driver control blocks (DCBs) were not cleared before reuse, which could result in invalid data appearing valid.

20173 Error when packing after upgrading to CitectSCADA V5.42

Certain optional database files were not created during the upgrade process, resulting in an error message during project packing.

21239 Variation of [Kernel]WinShutdown parameter

The following values have been added for the Citect.ini parameter [Kernel] WinShutdown:

·         WinShutdown=2 ! Perform Windows reboot by default

·         WinShutdown=3 ! Perform Windows shutdown by default

·         WinShutdown=4 ! Shut down CitectSCADA but do not let Windows shut down

These modes allow CitectSCADA to shut down cleanly when a Windows Shutdown is performed. WinShutdown=1 causes an abrupt shutdown of CitectSCADA with a possible loss of data.

22047 Unable to display leading zeros for milliseconds in alarm format

The string formatting command for leading zeros (Millisec:#0#) was not applicable as an alarm formatting field, resulting in an inability to represent leading zeros for milliseconds in an alarm format. This issue was resolved by adding a new justify operator: a “z” or “Z” will justify right, zero fill. For example {TIMEMS, 3, Z).

22194 Trend servers take too long to shut down

The time it was taking for trend servers to shut down was excessive due to trend data being flushed to disk. The shutdown time for CitectSCADA now occurs in approximately half the time.

22316 Alarm description not updated in runtime after modifying description in Project Editor

When changing an alarm description using Project Editor, the original description was displayed during runtime if that alarm was active at last shutdown, even if cleared and re-triggered. The new description was not displayed until the alarm was off and acknowledged, and CitectSCADA restarted. The new alarm description now appears when the alarm is retriggered.

22444 Graphics Builder takes too long to open a page that contains many genies

Graphics Builder pages containing many genies might be slow to open. This can be resolved by setting the CTDRAW.general page parameter as follows:

[CTDRAW.general]

*
ComparePropertyLists=0 (default)

If the parameter is set to 1 the page opens slowly, which can be useful if you are experiencing issues where the base genie property removal is not propagating to nested genies.

22528 Graphics pages stop updating after 49 days

Due to a rollover issue with internal counters the CitectSCADA request system caused a request delay of more than 49.7 days. The request system now handles rollovers correctly.

22701 General Protection Failure (GPF) caused by memory overwrite in I/O server cache persistence

CitectSCADA sometimes crashed while saving the cached I/O server data to disk. This issue has now been resolved. A symptom of this issue is the following message in the debug.log file:

I/O Device Unit Cache File -- Ve[rsion]

22797 The new CiRecipe cannot delete an existing record

In CitectSCADA v5.50, existing records were unable to be deleted in CiRecipe

22951 Recipe ActiveX control crashed

When using the CiRecipe ActiveX control in a newly created project that is then backed up and restored, the ActiveX control sometimes crashed, displaying a runtime error message.

22965 Sometimes a trend server would freeze with CPU usage at 0%

An internal function call on the CitectSCADA main thread caused this behavior.

23006 Back button behaves incorrectly

The CSV_Include project’s Back and Forward buttons were not working correctly.

23118 Trend system reports false “Trend Has Missed Samples” hardware alarms

Under certain conditions the trend server would incorrectly report that “Trend Has Missed Samples”.

23213 Excessive CPU usage with CitectSCADA 5.5 trend server

With large volumes of trends (approximately 4500 one-second trends) CPU usage sometimes increased tenfold, causing missed samples that required backfilling.

23244 Cannot read area of multi-digital alarm using AlarmGetDsp

When using the alarm Cicode function AlarmGetDsp(hAn, sFieldName) where the sFieldName is "Area" with multi-digital alarms, the function returned a random number as a string.

23248 Genie substitutions sometimes not propagated correctly

When modifying base genies, some genie substitutions were not being propagated correctly.

23356 Problem executing keyboard commands when object doesn't have focus

Attempting to select an object by using keyboard commands would only execute the given keyboard command if the object already had focus.

23391 CitectSCADA crashes on logout

If the Cicode associated with an event closes the current page, CitectSCADA sometimes crashed.

23442 When the peer does not exist the version is returned as 0

In some situations a missing redundant trend server was incorrectly being identified as an older version server.

23715 Windows switching in Graphics Builder sometimes does not work

When pages in CitectSCADA Graphics Builder were maximized as MDI children, switching pages using the Window menu command could fail.

23834 Connecting remote OPC clients to OPC server

CitectSCADA has been updated to enable connection from a remote OPC client to the CitectSCADA OPC server.

23865 Memory leaks caused by MS Forms 2.0 ActiveX Components

There was a memory leak when using the MS Form 2 Combo Box control on the graphics page.

23892 "Key Failure" messages recorded in SYSLOG.DAT file on Display Clients when using floating display licenses

The Key Failure message was logged to the syslog file on a display client if the client did not have its own license key.

23908 Alarm Sort parameter causes problems with alarm summary ON/OFF times

Setting the alarm Sort parameter caused the OFF time of analog alarms in the alarm summary to be the same as the ON time.

23931 Trend GPFs using different versioned clients at startup

Sometimes communication between CitectSCADA trend servers commenced before the version exchange conversation between the trend servers was completed, resulting in synchronization issues.

23969 Spurious error created by DbgHlpStrLengthCopy

If monitoring STRING tags via DDE, when the tag is emptied CitectSCADA reports the following error in the syslog.dat file:

StrLengthCopy: invalid parameters or copy truncated pDest=xxxxxxxx

*
pSource=xxxxxxxx length=1

This error is caused by an internal string copy of zero characters to a 1-byte buffer. This condition is not an error condition and so reporting of the error has been removed.

24044 Alarm server clients could not determine if a server was still available or not

Clients of redundant alarm servers now have a background task to monitor the health of the active server. Detection of loss of the active server triggers a change over to the alternate server. This task supplements the manner in which clients have always detected server loss during routine transactions. A new INI parameter [GENERAL]ServerMonitoringPeriod has been introduced for this purpose. The default is 10 seconds, the minimum is 1 second, and the max is 600 seconds (10 minutes).

24231 Configured alarms acknowledged on manager client

It was possible to acknowledge general alarms from manager clients using the command AlarmAck(). This command now only acknowledges hardware alarms for manager clients.

24273 When running dspinfo() on IDC, the FTP server resends the variable.ndx file

To eliminate delays when calling the Cicode function DspInfoField(), the function has been modified so that when the project tries to load a variable.ndx file that does not match the database file, a hardware error results and the code aborts, returning the user an empty string.

24278 AlarmSetInfo() function may not work correctly for time-stamped alarms

The AlarmSetInfo() Cicode function, used for sorting an alarm list in a particular order, caused the new "Hres" style time-stamped digital alarms not to be displayed on the alarm list.

24298 CitectSCADA Crash on dialup of an I/O device

Closing a connection to a dial-up I/0 device when the device was online but not currently connected sometimes caused CitectSCADA to crash.

24383 Alarm server crashes with CitectSCADA 5.50B

Alarm servers sometimes crashed if alarm categories 1340 to 1369 (and others) were used.

24385 CiRecipe may crash with an Access database at design time

If an MS Access database has configured report objects, it sometimes crashed CiRecipe when building a connection string.

24404 Runtime GPF on closing custom Help system

Closing a CitectSCADA page that contained the Microsoft hhCtrl.ocx ActiveX component sometimes caused CitectSCADA to crash.

24424 Stored procedure name with spaces not supported in CiRecipe

An error message was generated if the name of a stored procedure contained spaces.

24427 Multi-State expressions not evaluated

If an out-of-range condition was experienced while running one of the expressions in a multi-state expression, not all expressions were evaluated, even if range checking was disabled. This behavior has now been corrected, and all expressions will be run unless range checking is enabled by the [Page]RangeCheck parameter.

24449 Access parameterized queries not supported in CiRecipe

Parameterized queries of an Access database are now supported by CiRecipe.

24455 Refresh method in CiRecipe not working if StoredProcArgs is changed

The Refresh method in CiRecipe now functions correctly if the property "StoredProcArgs" is modified.

24457 Configuration GUI for stored procedures doesn't work correctly in CiRecipe

After configuring the CiRecipe control with a stored procedure as a data source and saving the changes, the configured stored procedure name didn't appear on the list.

24549 Menu position property no longer works in CiRecipe

The menu can now be positioned either at the top or bottom of the control.

24610 Version number is not displayed on the property form in CiRecipe

The property form now displays the version number of the control being used.

24674 Crash after upgrade from V5.40 to V5.5 Service Pack B

If a Cicode task was killed while a QueRead Cicode call was blocked, calling QueClose on the same queue handle caused a GPF.

24697 Disabling Runtime Trend Backfill

Trend back-fill at startup was unreliable, affecting users who disabled run-time back-fill. An additional ini parameter [Trend]DisableRuntimeBackfill=1 is now available. The default value is 0. If set to 1 this parameter will stop the trend server from continually updating from the redundant trend server and will only synchronise on connection.

24806 Alarm Description field not updated/displayed correctly after CitectSCADA restart

After restarting a redundant CitectSCADA with an active alarm containing Cicode in the Alarm Desc field, unevaluated Cicode was returned for the Alarm Desc field.

24998 Internet Display Client does not work when using a dial-up connection

If using the CSV Include project, hardware alarms stating “foreground Cicode running too long” sometimes appeared, usually on slower networks. Symptoms included navigation buttons on graphics pages failing to work or having an incorrect status. If using the CitectSCADA FTP server with a CitectSCADA Internet client, the server would run out of sessions and hang, thereby causing the client to hang.

25121 CSV_Alarms_Help() does not work on Web Client

The CSV_Alarms_Help() has been fixed to pass msgrpc using exact function names as arguments. This will display alarm help information in an XP-style project on the display client side.

25395 Flickering values in redundant situation change over

It was possible to return data with a zero value instead of #COM when the active unit had an error and the inactive unit had just come online.

25400 The Pack Libraries command breaks genie association

Genie substitutions in the Text field of text objects sometimes did not substitute correctly if the genie was nested inside another genie.

25424 Report and trend redundant servers do not log into their respective server

Using ServerInfo("<conn_number>", 2), where conn_number refers to a redundant server connection ID acting as a server to a redundant server's client connection, incorrectly returned an empty string.

25425 ServerInfo() returns client login name/time even though client has logged out

ServerInfo("<ClientNo>", 1) returned the last logged in user name even after the user had logged out. ServerInfo("<conn#>", 1) now returns an empty string when a user logs out.

25449 ClusterSetName might break trend redundancy

The Cicode function ClusterSetName is used to switch clusters at runtime. If this function was invoked on a trend server, it sometimes caused trend redundancy to break in the switched-from cluster.

25822 CitectSCADA crash on shutdown in I/O server cache

A project with multiple channels defined but not used resulted in a memory corruption and subsequent crash on shutdown.

25958 Compiler incorrectly compiling tag assignments

If the total number of tag assignments in a project’s Cicode exceeded 32,000, the compiler sometimes made incorrect assignments.

26228 Issues with project folder structure when loading from file server

For a project directory hierarchy with include projects below the main project, attempting to run the main project as a fileserver client resulted in failure to locate any files of the included projects.

Service Pack B Fixes and Modifications

This Service Pack also includes Service Pack B, which fixed the issue described below.

 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.

Service Pack A Fixes and Modifications

This Service Pack also includes Service Pack A, which fixed the issues described below.

 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 now generates an error if the final END statement is missing from a Cicode file.

19367 CitectSCADA crashes when the alarm summary list is 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 with 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 that had a space in the name (i.e., C:\Program Files). The CitectSCADA Exception Mailer now functions correctly if CitectSCADA is installed to a folder that has 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 corrected this issue.

22536 Trend redundancy crash

Sometimes trend redundancy crashed at startup or simply did not run. It appeared that the trend redundancy system was coming online before trend acquisition had begun. This issue has now been resolved, and 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 now 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 caused CitectSCADA to incorrectly appear in real-time mode when it should have been in historical mode. This issue was resolved by modifying the TrnSetTime function to behave consistently with the TrnScroll function. 

22790 Shutdown crash in trend redundancy

A redundant trend server sometimes crashed at shutdown if the server was in the middle of backfilling trend data. This issue has been resolved by modifying the trend server shutdown sequence.

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

The limit on user format opens is based incorrectly on the total number of format opens (user and non-user). So when a project contained 256 devices or more, 512+ format opens were outstanding. This meant that every attempted user format open failed. This issue has been resolved by adding a counter that tracks 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, the OIDs would change and the system would not work. This issue has now been resolved.

23006 Back button functions incorrectly

The CSV_Include project’s Back and Forward buttons have been fixed. They 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 can now be disabled by setting the [IPC]SocketSendTimeout parameter in Citect.ini to 0. This is sometimes necessary on site.

23493 Crash on primary trend server during trend backfilling

Sometimes the primary trend server crashed during trend backfilling. This issue was caused by a memory overwrite in the function ReadForwardByTime, called during event trend redundancy. This problem has now been resolved.