At many scada software, the function number which can be run by a button or other object are limited. However 256 function can be run with WinTr Scada Software Also you can trigger this functions when alarm occured or gone. Thousands WinTr scada may establish full or restricted access to each other via server and client functionality. When removing a dongle, just how long do we have until we drop out due to a software protection? PowerLogic SCADA Software Protection Failure No key found. Welcome to the Schneider Electric corporate Website. Need to manually start the 'Citect Auto. Schneider Electric Scada Global Support Provides Troubleshooting. Software protection failure on. Free Download Naruto Vs Pain Full Movie Sub Indo. Gateway Mx6436 Windows 7 Drivers.
The city of Shreveport, La., has been a landmark for water treatment facilities for more than 100 years. Construction on the McNeill Street Pumping Station, which ran on steam-driven pumps, began in 1887.
Major additions were undertaken from 1899 to 1921 and the plant continued to operate until 1994. The McNeill Plant is typical of waterworks from the early 1900s that were once common throughout the U.S. Not only is the steam-powered machinery dated from the late 1800s still intact in its original historic location, but the two Worthington pumps are still operational, thanks to meticulous care and maintenance.
Technology upgrades
When the Thomas L. Amiss Water Treatment Plant, built in 1929, needed updating, the city of Shreveport decided to keep the beautiful historic building while providing the control center with the latest technology.
Today, the T.L. Amiss Plant provides 90 million gal of safe drinking water to more than 70,000 Shreveport residents. A CitectSCADA system is used to monitor the level indicators, flowmeters and historical trends of a distribution system consisting of 1,049 miles of water mains, 11,400 water main valves and 6,100 fire hydrants.
Shreveport also operates two wastewater treatment plants: the Lucas Wastewater Treatment Plant and the North Regional Wastewater Treatment Plant. This system contains of 1,027 miles of sewer mains, 104 sewer lift stations and two equalization basins.
The Lucas Wastewater Treatment Plant is a “secondary” treatment plant utilizing biological activated sludge treatment and final clarification. The plant is designed to remove up to 90% of the pollutants contained in the raw wastewater received at the inlet to the plant.

The challenge
Shreveport needed to upgrade its Supervisory Control & Data Acquisition (SCADA) system, used to monitor and control the collection, treatment and distribution of water and wastewater. Like many cities, Shreveport was faced with difficulties common to the water/wastewater treatment industry. The city was using multiple plant and remote terminal unit (RTU) controllers, many of which were nonfunctional or obsolete. In addition, the existing RTUs were supplied by a defunct company, which made obtaining upgrades and support impossible.
The different SCADA platforms at each plant created maintenance difficulties as well. Each plant was isolated with no ability to exchange data between them.
The various communication protocols and hardware configurations created intermittent connectivity problems and system lockups within the plants. Long communication delays and slow network response made it difficult for operators to detect equipment failures.
Project goals
Citect Platinum Integrator and Edison Automation, in close partnership with Citect Professional Services, were initially awarded a contract with the city to install the SCADA system at the T.L. Amiss Water Treatment Plant to monitor and control the water treatment process, the water distribution system, and the wastewater collection system.
As a result of the project’s success, the T.L. Amiss Water Treatment Plant became a prototype for defining the control system infrastructure standards for future upgrades at other plants. The SCADA system was then expanded to both the Lucas Wastewater Plant and North Regional Wastewater Plant to complete the citywide system.
Each plant required a user-friendly, reliable SCADA system with fast response times, consistent color schemes and well-documented design standards. The long-range goal was to establish the same technical guidelines and specifications by standardizing on a SCADA platform, enabling the plants and remote sites to function as a single, consolidated system. Built on an open architecture, the system would also easily permit future improvements in control and data management.
Project results
One of the largest issues facing Shreveport was the high number of disparate systems. Remedying this problem was easy and inexpensive because all the drivers needed were already included in the SCADA package.
Reliability was also an important concern. System failure would result in inaccurate information and large overtime costs. The new system has redundant servers that act as immediate back-ups in case of a failure. Each of the four subsystems also has fully redundant servers to ensure reliability and maximize on-stream time. A separate set of servers maintains the communications to the collection system RTUs.

Prior to implementing the system, users had to either visit each site or access remote sites one at a time over the network. This made monitoring all the sites very time-consuming and expensive. Furthermore, it might take long periods of time to detect a problem at one of the various sites.
By standardizing on a CitectSCADA platform for all its operations, users have the same look and feel wherever they log into the system.
Security is a top priority at Shreveport, though monitoring and controlling remote equipment and resources can be an expensive and challenging undertaking. Access control and intrusion detection were simplified by coordinating security devices with the SCADA system. Inexpensive IP-based web cameras at all sites that provide video frames of remote locations are easily linked to the SCADA system. Their photos are easily and rapidly transmitted across the network, allowing operators to monitor all the sites from a single location.

Kody Salem is utilities and public infrastructure manager of business development for Edison Automation. He can be reached at 615/256-2522 or by e-mail at [email protected].
CitectSCADA Version 5.42 r0 Service Pack A
The following files have been updated by this Service Pack.
CITECT32.EXECITRENDARCHIVEFILEOFFSET.DLLCITRENDARCHIVEFILEOFFSET8BYTE.DLLCTAPI.DLLCTAPI.H CTAPI.LIBCTCICODE.EXECTCMP32.EXECTDRAW32.EXECTENG32.DLLCTKC.DLLCTUTIL32.DLLCTVERSION.XMLCT_IPC.DLLERRSTR.DBFERRSTR.NDXTREND.CIZOOM.CI
FOR GENERAL INFORMATION ABOUT SERVICE PACKS, SEE KNOWLEDGE BASE ARTICLE Q2181
- 18624 -Citect has trouble handling mouse events for ActiveX controls
If a combo box control was used on a normal CitectSCADA page, mouse events were correctly handled making it possible to change the selection in the combo box using a left-mouse-click. If the combo box was then used on a popup page, the mouse event was not handled correctly unless the popup is moved to the page origin. The problem has now been resolved.
- 18992 - Memory leak while connecting to an inaccessible Citect Server
A memory leak was caused by asynchronous TCP/IP connections when a client attempted to connect to a Citect server that didn't exist on the network. This leak was caused by the messages being sent to indicate that the connection request failed. This memory leak has now been resolved.
- 19002 - A Project with a scheduled IODevice may crash on startup if the period is less than one minute.
The QueWrite() function was unable to handle a double queue write operation properly. The problem has been fixed by a modification to the QueWrite() function so that if the element passed in is already in a queue, no action occurs. Similar changes were made to QueInsert().
- 19073 - 'Data Not Yet Valid' error suppression required
'Data Not Yet Valid' errors are streamed to the Kernel window and Syslog.dat file for every point on a device. In a wide area SCADA system, these streaming errors can fill up the syslog.dat file and impact the Kernel 'Main' window. A new parameter has been added to the OPC driver to control whether or not the error 'Data not yet valid' is displayed or suppressed. To suppress the error, set:[OPC]SuppressDataNotYetValidError=1 (default = 0)If you open the Kernel page 'drivers', and press 'V' for verbose, you will see the 'DataNotYetValid' error count increasing. In the Kernel 'page unit', a message 'Error suppressed' will also be displayed.
- 19341 - CTAPI will not read tags properly across multiple Citect projects
This problem was caused by incorrect caching of metadata by CTAPI. The metadata is only retrieved once, regardless of the number of connections to different Citect projects. The caching logic has been changed so that metadata is associated with each connection.

- 19484 - Citect crashes when accessing ActiveX objects
An architecture problem was identified where ActiveX event handler code (Cicode or CiVBA) was used with a variable tag. The crash depended on the timing between event synchronize and the tag request system. The problem has been fixed by adding an event state field in the code instance structure to indicate the code blocking from ActiveX event synchronize system, so both the ActiveX event system and code request system can have independent flags.
- 19539 - Kernel queue write & insert functions are not handling a double write
In 5.41 Service Pack B, the code was changed to partially protect the system from this problem. However the semaphore handling part was not protected, causing possible animation freezes. The problem has now been resolved.
- 19540 - QueInitHdr() macro not setting Next & Prev pointers to null
The Next & Prev pointers were left undefined after theQueInitHdr() macro was used. This was changed for additional safety in case an item is examined between being initialized and written to a queue.
- 19545 - Multiple queue writes
Investigation has found writes of the same buffer into the Req.Post.Task.Read queue happening. This could potentially cause an animation hang. This problem was traced to the Com system, and usage of the function ComBuild(COMBUF* pCom). This has been fixed by checking at the start of each iteration whether the pCom object in question is still in the queue.
- 19564 - Cicode editor losing changes
If a Cicode file was saved and then further changes were made, switching to a second application and back would cause the Cicode Editor to eliminate the post save changes. An error would also occur if a bookmark or breakpoint existed before a document was reloaded but afterwards was an invalid line number. A dialog has been added asking the user whether or not to reload the document.
- 19652 - Trend does not zoom out as expected
If a rubber band selection was drawn on a trend page, the zoom out button did not work as expected. A change was made to the ZOOM.CI file to confirm an appropriate setting for TimeZoom and ScaleZoom before accepting AreaSelected=0.
- 19758 - Deadlock Detection error while the Event Service is running
CTAPI has been updated to clean up ctCancelI/O, and modify query timeout so it will just return the timeout error. Code has also been added to the Kernel window to display the CTAPI search queue to help monitor the CTAPI query.
- 19803 - I/O problems cause gaps for all trended tags
When I/O problems caused a gap for a trended tag, it was also reflected in all trended tags. The parameter [Trend]BlockByI/ODevice was set to a default of one (1) and documented.
- 19824 - alarm descriptions lost for 8 bit DCB values
Hardware alarms that were sent back via a DCB for an 8 bit item were losing their description text. Two additional bytes were added in the buffer to accommodate the extra bytes for the LONG.
- 19867 - New INI parameters for trend redundancy
The following [Trend] INI parameters have been added:[Trend]TrendDebug is a dynamic INI setting that enables traces;[Trend]ClientRequestTime determines the maximum time the client will wait on a Trendsettable() before deciding it will not happen and returning an error;[Trend]TrendsetErrorHandling allows you to change the default Cicode trendsettable() error handling method.
- 20019 - SCADA connector regularly loses comms
The SCADA connector, used for data transfers with Plant2Business, was suffering regular comms failures at a half-hour interval. It would fail then recover almost immediately. Changes made to solve this problem included:1. Changed WriteFile()/ReadFile() for sockets to the send/receive pair.2. Upgraded CitectSCADA to use Winsock2 rather than Winsock.3. Initialize the C runtime library when loading the CT_IPC.DLL.4. Added debug tracing to CTAPI.
- 20097 - Cicode setting in a project will crash CitectSCADA
The following setting in the Citect.ini can produce a crash.[debug]kernel=1[kernel]Win2=Table,cicodeThis problem has now been resolved.
- 20133 - _TblTable not protected, causes crashes at shutdown
_tblTable was freed but not set to NULL. Also, the macros using this were not protected against NULLs and BAD_HANDLES. This was a problem during shutdown because code can still attempt to access the _tblTable after it has been freed. This code has now been protected.
- 20134 - Protection for NULL exit routines
There was no protection for NULL exit routines, nor any ability to recover if one of the exit routines caused an exception. This has been changed to allow Citect to continue shutting down by implementing a new ini parameter [Debug]ShutdownProtect (which enables exit exception handling). Logging has also been added, which is enabled via the ini parameter [Debug]LogShutDown (which enables shutdown traces).
- 20187 - Adjustments to AlwaysCallDestroyChannel
The code added for bug 19799 has been extended to this call. The driver exit function is also gated. The INI parameter name 'AlwaysCallDestroyChannel', has been changed to 'AlwaysStopChannel' to be more consistent with the existing StopUnit() call of 'alwaysStopUnit'.
- 20214 - Hebrew characters not working in Cicode Editor
This problem was caused by lack of support for Unicode in the Dundas libraries. However, Windows has a mechanism for language support via the use of the extended ASCII character set. RTF has a standard of supplying language information in grouping and using this in conjunction with this extended ASCII set has provided a degree of language support.
- 20418 - Alarm server starting with devices offline
When the alarm server starts, it sets the state of alarms to ALARM_COM_BRK_AT_START if the related I/O devices are offline. Multi-digital alarms are configured so that they log the transition to a device, and the format contains the field {OLD_DESC}. This was causing CitectSCADA to crash when devices were coming back online. The problem has been resolved.
- 20659 - Enhancement to the TrnExportXXX Cicode functions
A new option has been added to the DisplayMode for TrnGetTable functions allowing the selection of a new Condense Method option that sets the condense method to that of the latest sample.
- 20663 - Alarm on action failure on startup
Alarm on action fails to execute on startup if there is no alarm save file. The [Alarm]Ack parameter doesn't leave the alarms unacknowledged on startup, it leaves them in their last state. In order to leave them unacknowledged this parameter must be 0 but the ALAMSAVE.DAT must be disabled (by deleting it or setting [Alarm]SavePeriod to 0). When this happens the alarm ON actions do not trigger on startup.
- 20681 - CTAPI deadlock when calling ctClose function
The CTAPI client could deadlock when calling ctClose() function. This problem occurred after an enhancement to the ctCancelIO() function. The issue has now been resolved.
- 20687 - Citect runtime crash
This crash was happening in a call to memcpy() where the destination pointer was NULL. The memcpy() in question was being performed in the function GrDibDCAttachToBitmap() following an unsuccessful call to CreateDIBSection(...).
- 20712 - Genies move and resize at runtime
Citect runtime animator was rounding transformed coordinates to the nearest pixel. This is different to the truncation method which Graphics Builder uses. This only affects circles and rectangles. All point maps for circles and rectangles have been modified to truncate transformation results.
- 20791 - Exponential format does not work in trends
The format specifier for exponential notation, for example #s#, works for variable tags if displayed on graphic page but does not work for trend tags in trend templates. The format can be specified in the trend tag (F2 extended form) and compiles but does not display in exponential format in run-time on the trend pages. The problem has now been resolved.
- 20793 - Occasional crash on shutdown
Occasionally, GPFs would occur on the primary I/O server at shutdown of the CitectSCADA application. A counter to keep track of the number of Active 'Win32IPCThread' instances and an event which signals each time an IPCThread exits have been added.
- 20855 - No Hardware Alarm is generated when redundant data path fails
If you had an I/O Server and a PLC running as two physical data paths (ie. two serial ports) and the standby cable (data path) became disconnected, there was no hardware alarm despite the Kernel page showing the standby I/O device to be offline. The driver now after n timeouts will channel offline and generate a hardware alarm. Previously it only returned timeouts, which result in a 'unit not responding' message but no hardware alarm.
- 20867 - GPF importing multi-digital alarms
This problem was caused by the state of multi-digital alarms being set to ALARM_COM_BRK_AT_START when the state description is requested. The FmtArgState function uses the state field as an index into the AlmDesc array, which is beyond the bounds of the array when the state is ALARM_COM_BRK_AT_START. The FmtArgOld has been changed as well, as it also uses the state to index into the AlmDesc array.
- 20898 - Disabling the 'device offline' hardware alarm
A way to disable the 'device offline' hardware alarm is required for an I/O device that has been manually disabled using I/ODeviceControl in Type 1 mode. The solution uses a Citect.ini parameter at the Modbus unit / I/Odevice level called: [MODBUS.Port_Name.Iodev_name]
- 20938 - FileExist() Cicode function causes temp hang
The Cicode function FileExist() causes Citect to hang for roughly 15 seconds if the function is pointed to a file on a remote machine and that machine is not available. This problem occurred because the Windows API call to 'access' may have taken a long time when the path refers to the network. FileExist() call will now work in asynchronous mode so as not to hang Citect.
- 21024 - Random tooltips appearing on a page
It appeared that a tooltip was attached to a genie that had long been removed. The tooltip would appear not only on the genie, but all over the page at ANs which were not even user editable. An INI parameter, [General]UseConfigurableKeywords, was added to allows customers to remove orphaned tooltips, when appropriate.
- 21276 - CTAPI will pop up deadlock message box
CTAPI will pop up a deadlock message box when the system time has been changed on a Citect server. The CTAPI client timeout was the cause in this case. PostMessage() was used instead of SendMessage() to solve the problem.
- 21370 - 'I/O device cache file not loaded - has changed' error
This error message is caused by a mismatch in the port and phone number of the fields for cache entries. To resolve this problem, the checks of the Address, Port and Phone number when checking cache entries have been removed from the ValidateUnit function.
- 21452 - Duplicate tag names in included projects do not report errors
A compile error may not have been reported if duplicate tag names were used in separate projects. Also, if the InfoForm function was used, it would display information for one of the tags while actually using the other tag's details when communicating. The problem was fixed by adding a flag to determine if the first was called for a given project during compilation.
- 21539 - Crash on dongle failure
Instead of giving a 'Software Protection Failure' message when a dongle was not present, Citect would GPF or disappear. Protection to the function ClientCheckPriv() was added to resolve this problem.
- 21551 - Redundant report accessing common device file
This problem came from the way that DevOpen(hDev, mode) was implemented. It became possible for both the Primary and Standby Server to have the one device open at the same time. The solution was to modify DevOpen(hDev, mode) so that if the device is already open and the mode is DEV_LOGGING, then the file pointer is moved to the end of the file.
- 21587 - Citect crash caused by Trend Backfill
Modifications have been made to the function trnRdnTableRun to stop the crash caused when pInst is NULL, and to perform a trnRdnUpdate() to re-request trend redundancy data.
- 21610 - CodeClose() causing memory leak
A fundamental function of CodeClose() is to free the Cicode strings allocated locally to the stack, where this hasn't already been performed due to the premature shutdown of the Cicode function. This was achieved through the function CodeFreeString(pCode), which used the variable 'pCode > CallDepth' in its implementation. However, pCode > CallDepth would set it to zero before the call to CodeFreeString(pCode) This resulted in the strings never being freed, potentially causing a memory leak. The problem has been resolved.
- 21663 - A new alarm is regenerated after using AlarmClear
The problem was being caused by Citect clearing all the state information when AlarmClear() is called. This meant that the next time the ArgDigProc task woke up, it would think the incoming state was 000. Since the current state (which hadn't actually changed) appeared to be different to 000 it redisplayed the alarm.
- 21814 - Memory leak with summary alarm display
Citect Scada Software Protection Failure Detection
A memory leak was possible due to a problem with the function EventUnpack(). The problem has been resolved.
- 22090 - Duplicate Project IDs
The compiler has been changed to check for duplicate project IDs within the included projects of the project being compiled, not all projects in the master database.
- 22482 - System hang when a server is lost
It is possible for Citect to hang if a server that should be available becomes unavailable. This bug has been rendered invalid by the solution to bug 22506 as we now use asynchronous sockets.
- 22506 - Primary trend server hangs when the standby server crashes
To overcome this problem, the IPC code was changed so that WinSock2 operations are performed asynchronously. This results in the send/receive being replaced with WSASend/WSARecv. A new INI parameter [IPC]SocketShutdownTimeout has been introduced for use with receive when flushing out the buffer at shutdown.

- 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.
- 22824 - ctGetNumberOfLicenses now reads Pocket and Batch licences
The CTAPI function ctGetNumberOfLicenses is now able to read license information for PocketSCADA and CitectSCADA Batch.
- 23439 - TCP/IP socket implementation requires blocking send mode
Code was added so that if a user configured SocketSendTimeout to equal 0 in the Citect.INI file, then Citect would permanently block instead of timeout and close the connection. This is necessary under rare circumstances on site.
Citect Scada Software
- 23493 -Crash on Primary trend server during trend backfilling
A crash caused by a memory overwrite in the function ReadForwardByTime, called during event trend redundancy, in CiTrendEventHistoryFile.cpp has now been resolved.
Citect Scada Training
