ClearSCADA Advanced Ver0 - 3
ClearSCADA Advanced Ver0 - 3
Advanced Training
Course
Welcome
Instructor: Bradley Hosken
1
Welcome
• Toilets – Where are they!
2
ClearSCADA Advanced - Outline
Day 3 Day 4
Alarm Management 2hrs ODBC Excel – 2 hr
Historic Data 1hr Alarm Redirections – 3hrs
SQL Queries 3hrs SMS
Software Communications Command processor
DDE Excel 1hr Calendar
Rosters
Client Side Scripting 2hrs
• Server Software
• ViewX Client Software
• Shortcuts on the desktop for
– Starting & Stopping the server
– Launch ViewX Client software
• Sample Project
• Presentation Project
• Symbol Library
3
Super User Account
During the first time installation you will be prompted to set-up a
Super User Account that requires a username and password.
The Super User Account has security privileges beyond all other
users on the system.
Do not loose this information! (Its your get out of jail card)
4
Licensing ClearSCADA
Without a license ClearSCADA will run in Demo mode for 2hrs
before shutting down. In Demo mode you will only be able to
access historic data from the current run period.
Licensing is available for both the server and the client machine.
Licensing can take two forms:
Software Features
Some times the Software features or driver requirements may
change.
5
Exercise – Installation
Time Allowed: 15 Minutes
Aim: To install the latest version of the software for use in this
training course.
Note:
You may need to add the DNP3 ScadaPackES (eNET) feature for
this course.
SCADAPack ES Integration
• ClearSCADA provides the ability to use the RTU object
configurations generated in the SCADA to configure the RTU
with a matching configuration setup.
– This provides a single point of configuration.
– Minimizes errors
– Increases speed of development through ClearSCADA
productivity tools
6
eNET Objects
• To allow configuration downloads to occur, a set of eNET
specific objects are available in ClearSCADA containing specific
configuration information related to the eNET.
• These objects are an extension on the DNP3 driver and contain
such things as:
– Type of point
– Triggered/Buffered Event Setup
– Event Deviations
– RTU port information
Analog Alarming
• The eNET contains a point database, similar to that of
ClearSCADA.
• eNET Analog points allow for up to 4 high and 4 low alarms per
point.
– The alarm setpoints are properties of the point in the RTU
database.
– The processing if alarm level transgressions is performed by the
RTU firmware (no user code)
• The RTU point database properties tie in to ClearSCADA point
properties meaning that for a single point in ClearSCADA, up to
8 alarms can be processed with no further code in the RTU or
points in the SCADA.
– Alarm limit changes in ClearSCADA are downloaded to the RTU
for alarm processing.
7
Configuration Downloads
• The eNET outstation objects in ClearSCADA allow extra
configuration files to be attached to the outstation object for
downloading to the RTU
– ISaGRAF programs
– Extra RTU configuration fields
– Licence files
– Profiles
#AI 1 # = Comment
PC AI PC = Point Create (Type AI, AO, DI, DO)
PE AI PE = Point Edit
RN 1 RN = Register Number (Point Number)
ER 0 5 0 10000 ER = Engineering Range
CVal = 30 Change Current value to 30
DB = 100 Debounce Time is 100 miliseconds
TE TE = The End
FileName.RTU Full Configuration
FileName.INC Incremental Configuration
More Info can be found in V7_Config_File_Format.PDF
ClearSCADA Advanced Training Course 16
8
Exercise – eNET RTU Configuration
Time Allowed: 90 Minutes
• Registry Settings
• Installed Modules
9
Import / Export to SDE File
This allows the Import / Export of database items
• Easy to do…Browse the project using Database Explorer Bar. Your selected location
will provide the destination / source for your Import / Export.
• Used to share configuration & update your live system. Use caution when using
security, templates and instances and when database items already exist.
• SDE Files DO NOT contain object ID’s. Object ID’s are used to link points with
history.
Time Now
(52 weeks + possible 4 weeks future data) Historic Data – Online Data
Data Eligible for Archive Writable Data Future Data
10
Historic Data Timing – Things to consider
• In a Hot Standby System – If there is a hardware failure, how long
would the servers not see each other?
• Time stamp data may contain Forecast data that has a timestamp
some time into the future. If it is beyond the future data setting it will
be rejected.
Time Now
• Is the time clock in the RTU correct?
(52 weeks + possible 4 weeks future data) Historic Data – Online Data
Data Eligible for Archive Writable Data Future Data
Sm
• The smaller the Writable data quantity, the faster the synchronization process
will be.
(52 weeks + possible 4 weeks future data) Historic Data – Online Data
Data Eligible for Archive Writable Data Future Data
11
Archiving – What can be archived?
Historic Data – Historic data that is stored for points when enabled.
Each file contains data for one (1) week
Once an Archive Object has been created in you ClearSCADA Database (See
the following slides) you will be able to Mount and Dismount the volume by
using these methods on the Archive object.
Once the volume is mounted the data will appear as historic data on the server
that has the mounted volume only. (The data is not transferred to any other
servers in your system) Make sure your ViewX is connected to the correct
server. If the Archive method is initiated new data ready for archiving will be
appended to the volume.
ClearSCADA Advanced Training Course 24
12
Configuring an Archive Object.
An Archive Object needs to be added and Configured in your ClearSCADA
database. You will find this object in New à Other à Archive
If the Volume is a network drive. The archiving process can be either Manual or
Automatic based on the use of a schedule Object.
13
Methods on the Archive Object
Mount Volume – This will Mount or Load the volume. Data will then be
available on this server
Archive – Running this method will append any data eligible for archiving to the
previously mounted volume.
Practical Exercise
Time Allowed: 60 Minutes
Part 2. Prove the trend works – No Archived data from January 2007
Part 3. Your Memory sticks have archive data already on them. View your Point
ID and rename the archive folder to match your point ID. Configure your
archive object, mount it – magic. You should be now able to view data from
January 2007.
Part 4. Create a new archive object and archive to the local drive C: This
should be verified by dismounting and removing your memory stick. Note
you will need to review your server configuration before this will work.
14
Archiving Summary
Archiving is not meant for disaster recovery but rather for offsite long term
storage of your historic / event information
When you have a redundant system the data on all servers should be
synchronized. So that the failure of any one server doesn't affect the day to
day operation of your system.
When recovering from a disaster it may take some time to transfer the history
to your new server…It will depend on the quantity of data and the network
bandwidth between servers.
Registry Settings
HKEY_LOCAL_MACHINE\SOFTWARE\Serck Controls\SCX6
15
Driver Modules
The installed driver modules need to match your project configuration.
Systems that have multiple servers, should have the same driver modules
installed.
To alter this from windows select Start | Control Panel | Add or Remove
Programs | Control Microsystems ClearSCADA | Change | Next | Modify
Database Files
ClearSCADAConfig.dat – This file contains the configuration for the server.
This file is often overwriten when bulk changes are being made to a
installed system.
ClearSCADAData.dat – This file contains the Current Values of all the Object
Properties in the database. If you do not want current values to be
overwritten (Often the case) DO NOT Overwrite this file.
16
System Recovery – Punch List
• Install the ClearSCADA software with the required modules.
• Restore your database – If one server has failed in a multi server system
this should be transferred from the current servers.
• Restore you history – If one server has failed in a multi server system this
should happen automatically. You will need to set the server configuration |
partners | history synchronization | All Data - so that all the history is
exchanged. Change this back to “writeable data” after the history has been
restored.
Advanced Mimics
Mimics are used in every SCADA System. In this section we will look at
some of the more advanced features.
• Layers
• Import DXF File
• Local Variables
• Hover Animations
• Editing Points – Splitting, Deleting & Curving segments
• Transparency – Fill Alpha
• Movement Animations
17
Advanced Mimics - Layers
Mimics can make use of the layers. This means that mimic content can
be separated by function e.g. Overview, Hyperlink’s, Fresh Water,
Waste Water, Controls etc.
Layers are created from the Edit Menu | Layers, the mimic must be in
design mode and in focus.
In this example Controls are at the front and Overview is at the back.
To alter the order of layers use the Move Up / Move Down Controls
18
Advanced Mimics – Layer Control
The visibility of layers can be controlled (turned on / off) to show the
information that is required at the time.
DXF files are imported by having a mimic in focus and selecting Edit | Import
DXF File…the dialog will allow the layers to be selected, colour and even
the size to be altered. During the import the drawing is converted to
ClearSCADA objects that can then be edited and animated in ClearSCADA.
Some drawings are made up of many segments, this can make the PC work
harder than necessary, use the simplify option to reduce this. Selecting
View | Mimic Diagnostics is also another tool that can be useful for this type
of operation.
Also do a query Tables CMimic and check the worst offenders…..Large docs
will consume bandwidth
19
Advanced Mimics – Registry Function
The Registry function is used to read and write to the windows registry on the client
machine only. It is used as local variables to the ViewX client machine.
E.g.
REGISTRY(‘Name’, 0)
This function will return the value of Name in the registry. If it doesn't exist then it will be
entered with the value 0, and 0 will be returned.
REGISTRY(“.DemoMimic.FULLNAME” + ‘Option’, 0) = 1
This is good for Template instances as it allows a unique registry name.
Aim:
We will import a DXF file into ClearSCADA and produce a multi
layered mimic.
20
Advanced Mimics – Editing Points
The ClearSCADA mimic editing environment provides tools to draw the
basic shapes: Lines, Circles, rectangles and polygons.
These shapes can all be altered by right clicking and selecting the Edit
Points option.
21
Advanced Mimics – Hover Animation
ClearSCADA includes a “Hover” Feature that allows mimic objects to
be animated when the mouse moves above the bounds of the mimic
object.
4 = Underline
2 = Italic
Some uses of this include Highlighting Navigation links with the mouse
over function.
22
Advanced Mimics – Exercise
Create a rectangle object over your tank that only appears when the
mouse is hovering over this area.
Object is
highlighted when
the mouse moves
over it.
• This is useful for representing rise and fall of a water level or the
rotation of a dial on a gauge.
23
Advanced Mimics – Size Animations
• Size Animations allow objects to be sized between two extremes according
to the value of a process variable.
• The direction of the sizing can be set from the General tab of the objects
properties eg bottom to top, left to right etc.
For example, if SizeMin is 0, SizeMax is 100 and SizeVal is 30 then the object
will be 30% of the size of the maximum.
For example, if PosMin is 0, PosMax is 100 and PosVal is 30 then the object
will be positioned 30% along the defined path.
24
Advanced Mimics – Rotation Animations
• Rotation animations allow objects to be rotated according to the
value of a database property.
• The pivot point for the rotation can be set from the General tab of
the object properties eg bottom, bottom left, top etc.
For example, if Rotation is set to 90, the object will rotate 90 degrees
from the vertical. ie. an arrow pointing up will turn to the right.
25
Using Pick Action Animations
Rather than using the pick action wizard, pick actions can be
configured using animations. The use of animations is required
practically when the PickParam is changed dynamically.
• PickType = 8
• PickParam = ‘TestRegistryValue(0)’
– This will write 0 into the registry key TestRegistryValue
– It passes the name of the key and also the number to write into
the key.
26
Using PickType 1 – Object Menu
The examples bellow use methods on database objects
• PickType = 1
27
Using PickType 3,10,11 – Hyperlink
The examples bellow use Hyperlinks
• PickType = 3,10,11
28
Formatting Strings with Special Characters
Some times a string may need to include single or double quotes.
29
Use of the Indirect tag [] Brackets
Sometimes the Indirect tag Square brackets are required.
Indirect tags allow you to use the values of other tags to determine the value of a
tag. This is especially useful when you need a tag to always represent a specific
property, but for different database items.
In the above example the Item in double quotes is evaluated first, Then a string is
appended, then the items in the square brackets are evaluated and finally the
result is inverted with the NOT Function.
["Parameter:MyPointStatus.ParentGroupName" + '.Name']
This example uses the parent group name (Fullname) to extract the .Name
property.
30
Practical Exercise
Time Allowed: 30 Minutes
Aim:
Part 1. Create a button on a mimic that will display alarms in this area of the
database. (Area as defined by the database structure and location of the
mimic button)
Part 2. Copy and paste the Mimic button to another area in the database
tree structure and confirm that it works.
Alarms
Too often operators and engineers that are managing critical infrastructure
are continually chasing alarms that are generated by their HMI or
SCADA software leaving little time for monitoring the control system and
being proactive about the process. Let’s take a look at the most common
cause for this situation and provide some solutions for improvement.
According to EEMUA 191, 150 alarms per day (one every ten minutes)
presented to an operator are "very likely to be acceptable"; and 300
alarms per day (an alarm every five minutes) is considered
"manageable".
This plants
runs itself!!!
31
Alarm Plan / Specification
Its fundamental to have a overall plan or specification for each step in
building a system for alarms. EEMUA 191 can provide some guidance in
this area.
Nuisance Alarms
These are alarms that trigger when no abnormal condition
exists or when no operator action is required.
32
Shelving Alarms
Shelving is a facility where the operator is able to temporarily prevent an
alarm from being displayed to him when it is causing him nuisance. A
shelved alarm will be removed from the list and will not re-annunciate
until un-shelved.
This removes the clutter from alarm list that may distract the operator from
new alarms that may come in. Remember it is usual that high priority
alarms appear first in the alarm list then medium priority, etc. If a new
medium priority alarm comes in it may appear low in the list when in
reality it needs attention immediately.
Solution. Assuming that long term alarms are valid they could be ‘shelved’
or disabled so that they are removed from the active alarm list. Of
course you should have the ability to view these ‘shelved’ alarms on
separate lists and potentially have them automatically re-enabled after
preset time.
Alarms can be removed for a period of time before the reappear in the
system automatically. If equipment is brought back into service ahead of
schedule then it simply a matter of Enabling the alarms again.
Group Actions Individual Actions
33
Disable Alarms appearance
EEMUA 191 recommends that it is desirable that ‘shelved’ alarms are
displayed on plant mimic graphics in some low contrast color, so that
they are less obvious than normal alarms. We use the Color Palette to
determine this color.
ar SC CRITICAL
Cle alarms
W
NE
ClearSCADA Advanced Training Course 68
34
Chattering Alarms
The definition of a chattering alarm is one that comes in and out of
alarm state 3 times per minute. Examples of this would be a high
level probe/paddle switch in a tank or simply noise on the analog
signal. You want to make sure it is tripped and not foam on top of
liquid that causes the alarm.
Leave
me alone
Chattering Alarms
Time
Chattering Alarms
Solution. This is a simple fix, add a dead-band or hold timer in logic in the
RTU or PLC controller.
Alarms
Deadband
Time
35
Quality of Alarms
m s!!! in a day, some would
If the operator is dealing with more than 300ralarms
l a
A .
9
argue that the control system is not being managed.
t
benchmarking and analysis is required to determine o r d o ……
Some
cause and
ra
corrective action. e ope
One Common causes. W hat
will th
• Analog points having all the
alarm limits configured because Everything
the SCADA software has the is normal
capability.
Alarm Severities
Ru Critical
le
Cr fT o
ca iti hu
l– mb
Hig .
h– 1p
Increasing 5% High Me
diu
1p
er
er
ev
PriorityL en
m sh t
degree of ow –1 ift
p
–6 pe er
operator pe rh op
rh ou era
15% Medium ou rp tor
response rp er
Priority er op
op era
required era to r
tor
36
Alarm Severities
The severity of a alarm should be decided based on a number of criteria.
Generally the higher the severity the closer to the top of the alarm list it will
appear.
• The likely urgency “How soon do I need to act”
I need all
• The consequences of inaction. the help I
• Loss of equipment, product – Cost to Business $$$ can get
• Safety
• Environmental impact.
Impact Critical Environment
$$$$$
High
Medium
Low
Central Control room operators may be handling alarms that are high …
critical severities leaving local operators to action Low … critical alarms.
Elevating the severity level could make the alarm visible to the central
control room operator.
Impact Critical Control
room
High Operator Local
Medium Operator
Low
LessClearSCADA Advanced
Time Training Course
More 74
37
1000! Alarm Severities
Alarm Severities can also be used to group alarms. In addition to the
normal operator alarms the following could be created.
SMS Severity
Email Severity
Environmental Severity
Fresh water Alarms
Plant ABC Alarms
Region XYZ Alarms
...
Operator Feedback
Operator feedback is an important tool in management of alarms. The best
way to get this feedback is when acknowledging alarms.
Enforce Acknowledgment with feedback for a period of time with these
comments selectable.
This simple survey over time provides helpful information for managing
your plant.
38
Operator Feedback
Action Required – Useful alarm, something is required.
Check Required – Useful, Operator alerted to give some close attention to
plant.
Noted – Useful, Operator is made aware of a potential situation.
Little Use – No real use, reassess these alarms
Nuisance – No use, reassess these alarms.
Management tools
Monitor your 10 minute alarm raised count and trend this so that you can
review this KPI.
Monitor the time to acknowledge alarms. The ones that take the longest
time are probably ambiguous….Does the operator know what to do?
Benchmark you system using the above KPI’s….then you can make
informed decisions.
Remember these are only tools….To be really useful they must be used.
39
Alarm Management
This is an ongoing task.
Be proactive…..recognize trends, replace old equipment, grow your system
carefully.
Alarm Management is everyone’s responsibility…not just one person.
Alarm Presentation
• Understand Operator Tasks
– Enlist Help of Operators
– Operators Look at Things Differently from Engineers
– OK to Have Same Info on Multiple Displays
40
Gray Backgrounds for DCS Operating Displays?
• http://www.controleng.com/industry-news/top-stories/single-article/gray-backgrounds-for-dcs-operating-
displays/f93ecf3002.html
• LOTS OF INFORMATION HERE
• http://colorusage.arc.nasa.gov/
• With all the sophisticated and cool graphic capabilities available today, why does the ASM Consortium
recommend such muted and boring colors? The human factors behind the selections.
• Peter Bullemer, Dal Vernon Reising, and Jason Laberge, ASM Consortium
• 02/17/2011
•
•
• In a control room environment, operating displays serve an important role in supporting operator situation awareness and
executing actions to prevent and respond to abnormal plant situations. Operator situation awareness involves orienting
one’s self to several factors:
• • The presence and location of a disturbance;
• Comprehending the nature of the underlying plant conditions;
• Projecting the impact of the disturbance into the immediate future; and
• Analyzing all these to determine the appropriate course of action.
• The operator display design directly impacts the speed and accuracy of an operator performing these abnormal situation
management activities.
• The recent evolution of distributed control systems (DCS) to PC-based computer platforms has been accompanied by a
significant change in capabilities to present data and
ClearSCADA information
Advanced to operators.
Training Course In particular, the ability to render those 81
first-generation color schematic displays has evolved from the limited use of eight colors with full and half intensity to
A Busy Graphic
ON OFF ON OFF ON OFF
ON OFF ON Alarm
OFF ON Presentation
OFF
81FC2105 10
Z
ON OFF ON OFF ON OFF 100 81PI2102
Z 890 V-310 81LC2102 75 81FC2109
51 81PI2103 Z
81FC2101 800 FC2106 5
41
Now What’s Changed?
ON OFF ON OFF ON OFF 10
81FC2104
ON OFF ON OFF ON OFF Z
ON OFF ON OFF ON OFF 100 81PI2103
Z 890 V-310 81LC2103 75 81FC2104
51 81PI2104 Z
81FC2104 750 FC2106 5
Z 890 100
5
143
800 51 Z
220
A 75
Z 650 247
200 52
1240 350
390
A
150
Z
135 840
50 440 150
Z
48 550
Z
A 300
50 Z
42
Anything get your attention?
10
Interlock Status OK Z
Z 890 100
5
143
900 51 Z
220
A 75
Z 650 247
100 52
1240 350
390
A
150
Z
135 840
50 440 150
Z
48 550
Z
A 300
50 Z
43
Alarm OPC Group Properties
OPC Group properties provide some valuable information regarding alarm
conditions that may be present in the database tree structure.
Alarm Summary
In summary, alarms are a critical component for the SCADA system and if
poorly configured give operators grief. I hope some of these concepts
help you with alarm management.
44
Alarm Practical
List Disabled alarms.
Consequential alarms
Alarm Statistics
Alarm acknowledge with feedback
Create a severity level that’s only visible to user AlarmMan
The Historian
ClearSCADA has its own proprietary database that is optimised to suit time
stamped data.
45
Overview
Accessing Current Values and Configurations have already been covered.
In this section we will look at accessing historic data and events from
within the ClearSCADA environment.
Trends are a primary use of historic data. Some things can’t be presented
using a Trend object. An example may be comparing the Pump Runtime
in the last 24hrs from all the sewerage pump station in the system.
KPI’s
KPI – Key Performance Indicator
Both of these are terms that Managers like to use. The SCADA system is
an ideal way to present this information and it needs to be considered as
an investment not a cost.
The key things to remember, have real-time accurate data and present it in
a clear manner so that everyone can understand it. If this is achieved It
means organisations can make accurate reliable decisions about the
future, focusing efforts to overcome weaknesses.
46
KPI – Key Performance Indicators
For this data to be of any use it must:
– Quantify the success of the organisation
– Identify weaknesses
– Be measurable
– Be able to be compared to goals
It has been said: You cannot manage something you cannot control, and
you cannot control something you cannot measure
The numbers are meaningful but the bar-graph may give an immediate
indication of the area for Maintenance personnel to target.
47
Collected Data must be easily Understood
48
Be consistent
This is an example that extracts historic
information regarding a tank level.
Online Help:
Core Reference | Mimics | Animations | Animations for Historic data
49
Practical Exercise
Time Allowed: 15 Minutes
Aim:
Part 1. Using AI1 display the Max and Min Values in the last minute.
Part 3. If we wanted display the number of starts for a pump DI1 in the last
minute. What needs to be done?
50
What Is the SQL Language?
• It is a standard computer language for accessing and
manipulating databases.
• stands for Structured Query Language
• allows you to access a database
• can execute queries against a database
• can retrieve data from a database
• can insert new records in a database
• can delete records from a database
• can update records in a database
SQL Databases
• The ClearSCADA database contains more than one SQL
table. Each table is identified by a name (e.g. “Cmimic"
or “CPointAlg"). Tables contain records (rows) with
data.
• Below is an example of an ClearSCADA table called
“CDBSERVER":
51
Selecting Data from a Table
The select statement is used to query a database table.
Here is the format of a simple select statement:
The table name that follows the keyword from specifies the
table that will be queried to retrieve the desired results.
ClearSCADA Advanced Training Course 103
SELECT
*
FROM
CMIMIC
52
Altering the SELECT Statement
If we wanted to specify the columns to be displayed the
SELECT portion of the query needs to be altered.
53
Static Columns
If your query has a large number of columns, you may
require the left hand column(s) to be static. This can be
done by adding the tilda ~ symbol to the alias name.
SELECT
"FullName" AS “Mimic Name", "Size" AS “~Bytes used“
FROM
CMIMIC
SELECT
"FullName" , "Size" AS "The size of\nthe Document"
FROM
CMIMIC
54
Right-Justify Row Values
Row Values can be right-justified by appending the greater
then symbol to the alias.
SELECT
"FullName" , "Size" AS “>The size of\nthe Document"
FROM
CMIMIC
CASE Statement
The following Query uses the case statement to indicate Yes or No if the
objects configuration is valid or not.
SELECT TOP( 5 )
"Name" AS "~Name", "Id",
CASE "ConfigValid" WHEN TRUE THEN 'Yes' ELSE 'NO' END AS
"Configuration Valid"
FROM
CDBOBJECT
ORDER BY
"Configuration Valid" ASC
55
CASE Statement
By adding an additional CASE statement we could manipulate the
Background colour of the item’s of interest. Note that this must appear in
the query prior to the Yes/No writing to the cell with the Yes/No.
SELECT TOP(8)
"Name" AS "~Name",
CASE "ConfigValid" WHEN TRUE THEN 65280 ELSE 255 END AS "{Background}“,
CASE "ConfigValid" WHEN TRUE THEN 'Yes' ELSE 'NO' END AS "ConfigValid"
FROM
CDBOBJECT
ORDER BY
"ConfigValid" ASC
SELECT
FULLNAME, ID, ID
FROM
CDBPOINT
56
Hide a Column
Sometimes your query may be required to hide a column.
This can be used if the column is required for the query but
you don’t want to display this information. To hide a column
use the underscore character as the first character of the
alias name. The following example hides the Fullname
Column.
SELECT
"FullName" AS "_FullName", "CurrentValueFormatted"
FROM
CDBPOINT
SELECT TOP(1)
"FullName" AS “Mimic Name", "Size" AS “~Bytes used“
FROM
CMIMIC
57
The ORDER BY Statement
The returned table of information can be ordered. This
could be an alphabetical, size, or time sort and can include
multiple columns. The ORDER BY Statement is used for this.
DESC will provide a descending list, ASC will be ascending.
SELECT TOP(1)
"FullName" AS “Mimic Name", "Size" AS “~Bytes used“
FROM Note: “~Bytes used” could be
CMIMIC replaced by the column number 2
ORDER BY
"~Bytes used" DESC
SELECT TOP(5)
"FullName" AS “Mimic Name", "Size" AS “~Bytes used“
FROM Note: % is used to
CMIMIC allow any characters
WHERE before or after
( "Mimic Name" LIKE '%Training%' ) Training.
ORDER BY
"~Bytes used" DESC
The altered query will provide a list showing the 5 largest Mimic’s in the
system. ClearSCADA Advanced Training Course 116
58
Wildcards
In the WHERE statement expressions are often used to filter. It is
often the case that a string value is compared to a pattern.
Examples
WHERE ( “FullName" LIKE '%Training%' )
WHERE ( “FullName" LIKE 'Training%' )
WHERE ( "Name" LIKE 'Drive ____ RUN' )
59
Changing the SQL Query using an animation expression
The following query will list mimics that contain “Training”
in the full name.
SELECT
"FullName", "Size"
FROM
CMIMIC
WHERE
( “FullName" LIKE '%Training%' )
60
Improving the Readability of the SQL Expression.
When the SQL query is entered as a single string it can be
difficult to understand because new lines cant be entered.
Construct the query into separate lines and join the strings
together using the +.
61
Practical Exercise
Time Allowed: 60 Minutes
Aim:
Part 1. Display a list of Events in the system from CDBEVENTJOURNAL
Part 2. Column Name & Record time to be fixed
Part 3. Filter the Events as follows:
The Training section of the database
Events that occurred in the last minute
Events that include the text “Alarm raised” in the message field
Part 4. Order the results by Record time and SeqNo
Function Usage
Computes the average value of a column by the
AVG(expression)
expression
COUNT(*) Counts all rows in the specified table or view
MIN(expression) Finds the minimum value in a column by the expression
MAX(expression) Finds the maximum value in a column by the expression
SUM(expression) Computes the sum of column values by the expression
ClearSCADA Advanced Training Course 124
62
Count Function
In order to count the number of items returned by a query
the Count function can be used.
SELECT
COUNT(*) AS "Number of Mimics"
FROM
CMIMIC
Grouping
Usefull for counting the number of items within Groups of
things that have something in common.
SELECT
PARENTGROUPNAME, COUNT(*) AS "Number"
FROM
CMIMIC
WHERE
( "FullName" LIKE '%SQL Training Group%' )
GROUP BY
PARENTGROUPNAME
ORDER BY
"Number" DESC
63
Grouping Example 1
Grouping Example 2
64
Expressions
In order to count the number of items returned by a query
the Count function can be used.
SELECT
"Name", "Id", "LastLogonTime", "LastLogoffTime", ( { FN
TIMESTAMPDIFF( SQL_TSI_SECOND, "LastLogonTime",
"LastLogoffTime" ) } ) AS "Duration (sec)"
FROM More Work Here
CDBUSER
SELECT TOP( 10 )
"RecordId", "SeverityDesc" AS "~SeverityDesc", "RecordTime" AS "~Occured Time", "ReceiptTime", ( { FN
TIMESTAMPDIFF( SQL_TSI_SECOND, "ReceiptTime", "ReceiptTime" ) } ) AS "Delay (sec)", "Source", "Message"
FROM
CDBEVENTJOURNAL
WHERE
( "~Occured Time" BETWEEN { OPC 'H-11H' } AND { OPC 'H+1H' } ) AND ( "Message" LIKE '%Alarm raised%' )
Practical Exercise
Time Allowed: 20 Minutes
Aim:
Part 1. Using the material learn so far, Count the number of Pump Starts
during the last minute. Note: Pump Starts could be any one of your
digital input points previously configured.
Part 2. Count the number of Alarms Raised in the training section of your
database during the last minute.
65
SQL Query in ST Code
Some times it may be required to perform a query on the database and not
have the results placed in a list object.
For Example
You may be required to count the number of Alarms raised each day for
each sector of your organization and provide this information to an
internal analog point.
SELECT
COUNT(*)
FROM
CMIMIC
The following slide will demonstrate how this code can be placed into ST
Logic
66
SQL Query in ST Logic
TYPE
Table : STRUCT
Count : DINT;
END_STRUCT;
END_TYPE
PROGRAM MimicCount
VAR
MyCount AT %S(SELECT COUNT(*) FROM CMIMIC) :RESULTSET OF Table;
END_VAR
VAR
MyMimicCount AT %M(.Mimic Count) : DINT;
END_VAR
MyMimicCount := MyCount.Value.Count;
PROGRAM MimicCount
VAR_INPUT
MimicName : STRING;
END_VAR
VAR
MyCount AT %S(SELECT COUNT(*) FROM CMIMIC WHERE Name LIKE ?) :RESULTSET OF Table WITH_PARAMS MimicName;
END_VAR
VAR
MyMimicCount AT %M(.Mimic Count) : DINT;
END_VAR
MyMimicCount := MyCount.Value.Count;
END_PROGRAM
67
Practical Exercise
Time Allowed: 20 Minutes
Aim:
Part 1. Using the material learn so far, Count the number of Alarms Raised
in the training section of your database during the last minute using
Structured text.
Other Tools
The SCX/ClearSCADA Database can be connected remotely.
68
Database Browser Exercise
Time Allowed: 20 Minutes
Aim:
Explore the Database tables remotely and construct a simple Query.
69
Data Grids or Data Tables
These are two different objects within ClearSCADA
Data Table: Contain data fields that are updated from logic
Example Tables
When Joining Tables in the following slides we will be using these
Tables. These simple tables can be easily made using New | Other |
Data Grid.
Table A Table B
ID Name ID Name
1 Pirate 1 Joker
2 Monkey 2 Pirate
3 Ninja 3 Yoda
4 Captain 4 Ninja
70
INNER JOIN
Inner Join produces only the set of records that match both Table A and Table B.
The Join type keyword is optional. When its not used the default is INNER.
ID Name ID Name
1 Pirate 2 Pirate Table A Table B
3 Ninja 4 Ninja
Select
*
FROM
TableA JOIN TableB ON TableA.”Name” = TableB.”Name”
ID Name ID Name
1 Pirate 2 Pirate
2 Monkey ---------- ----------
Table A Table B
3 Ninja 4 Ninja
4 Captain ---------- ----------
Select
*
FROM
TableA LEFT OUTER JOIN TableB ON A.”Name” = B.”Name”
71
LEFT OUTER JOIN
To produce the set of records only in Table A, but not in Table B, we perform the
same Left outer join, then exclude the records we don’t want from the right
side via a where clause.
ID Name ID Name
2 Monkey ---------- ---------- Table A Table B
4 Captain ---------- ----------
Select
*
FROM
TableA LEFT OUTER JOIN TableB ON TableA.”Name” = TableB.”Name”
WHERE
Tableb.”Id” IS null
ClearSCADA Advanced Training Course 144
CROSS JOIN
A cartesian product join, returning each row from the left hand table
combined with each row from the right hand table. The number of
rows returned is the product of the number of rows in the left hand
table and the number of rows in the right hand table.
Select
*
FROM
TableA CROSS JOIN TableB
72
The -> dereference operator
The -> is a dereference operator and so allows you to follow a reference field,
such as the CDBHistoric.Id field, to the table that it references (CDBObject
in this case) and then use any of the properties on that new table.
• It's a simpler version of an SQL JOIN however has more restrictions, for
example:
• * Only works on reference fields (but you can use multiple, e.g. Id-
>ParentGroupId->ParentGroupId->ParentGroupId->Name, as Name is not
a reference you must end it there)
• * Doesn't dynamically update in SQL lists on display
• * Only works for properties on the table it references, or tables above (up
towards CDBObject). For example in the query you're using you couldn't
use CurrentValueAsReal instead of FullName as the Id references the
CDBObject table and CurrentValueAsReal is at the lower CDBPoint table.
• (There may be others, these are just off the top of my head)
• An SQL join is not hindered with the first two, the third one just requires to
you be a bit more careful with the SQL JOIN functionality.
ClearSCADA Advanced Training Course 147
73
SQL Query – Extra Table Query
SELECT
Display Columns from the appropriate table indicated by the alias P or H
FROM
CDBHISTORIC AS H JOIN CDBOBJECT AS P ON H.ID = P.ID
Inner Join: All rows from the Left Table and Right Table where the constraint clause is TRUE
WHERE
( "P"."FullName" LIKE '$FullName$%' ) AND "H"."RecordTime" BETWEEN {OPC 'H - 23 H'
} AND { OPC 'H - 23 H+1 D' }
The $FullName$ trip character instructs the system to insert the relevant value for the defined
field.
• Example
• I have created an Extra Table Query with the following settings:
• Property
Setting
Table CDBPoint Name Display all points with this name Title $Name$ Points
Query SELECT FullName AS "~FullName", Id, Foreground, Blink, Background,
CurrentStateDesc, CurrentValueFormatted, CurrentTime, CurrentQualityDesc,
SourceName, Source, ProcessCount, TypeDesc
FROM CDBPoint
WHERE Name = '$Name$'
This allows me to display a list of all points with the same name as the point that
I click on in the database structure (or mimic). I have named all the firmware
points "Firmware", using this Extra Table Query I can quickly get a list of all the
firmware points, showing me the various RTU firmware versions.
• This is what the context-sensitive menu looks like with the Extra Table Query
ClearSCADA Advanced Training Course 150
highlighted:
74
SQL Query – UNION Function
The UNION command is used to select related information from two tables,
much like the JOIN command. However, when using the UNION
command all selected columns need to be of the same data type.
( SELECT
*
Table A FROM
TableA)
UNION
( SELECT
Table B *
FROM
TableB)
Practical Exercise
Time Allowed: 20 Minutes
Aim:
Reproduce the alarm banner as a list on a mimic.
75
DDE
DDE stands for Dynamic Data Exchange
DDE
The data communication is established by a
simple, three-segment model.
Excel|Sheet1!R1C1
ClearSCADA Advanced Training Course 154
76
DDE - Practical
Time Allowed: 20 Minutes
Aim:
Read and write to a Excel Spreadsheet using DDE.
ODBC
ODBC is an abbreviation for Open Database Connectivity.
Examples include:
MS Access
Excel
dBase
DB2
CSV or Text files
77
ODBC
The first step in configuring an ODBC Connection is done using the ODBC
Data Source Administrator that can be found under Administrative tools
in the control panel.
ODBC Objects
The following objects are available to be used.
Connection – This defines the access properties for the other database
that is being accessed. Note the DSN must be a System DSN.
Query – This SQL Query is used to define the requested data block and
how often that request occurs.
78
ODBC - Practical
Time Allowed: 60 Minutes
Aim:
Part 1 – Read and write to a CSV Text file
Part 2 – Read from an Excel file into ClearSCADA and using Excel read
from our ClearSCADA Database.
79
Command Processor
The command processor provides a mechanism for the remote user to
send commands via SMS into the SCADA system.
Examples:
Acknowledge an alarm
Tune a high level alarm threshold from 80% to 85%
Start an flood pump
Execute some logic
Request System information
Any Method on any object can be performed….So what do you need to do!
SMS phone number must be known by the system otherwise the Guest
user profile is used.
User Profile or User Group must have the required Security permissions to
be able to perform the Action on the database objects.
80
Calendar Objects
User Rosters
A User Roster is a list of Users or User groups that can be selected as the
Duty User.
Methods are available on the User Roster object that allow the selection of
the Duty User.
OPC Properties are available on User Roster objects that reference the
Duty User. These can be used on mimics or in logic as required.
81
Alarm Flow in System
Alarm Conditions within Group
Calendar
Key Points
Simple alarm redirection to GSM Phone.
Phone number +61
Security on Objects
Modem Choice
Calendar Object
Command processor
82
SMS Redirection - Practical
Time Allowed: 60 Minutes
Aim:
Send SMS Alarm information to a Mobile Phone.
Receive SMS commands from a mobile phone.
Configure a calendar object so that alarms are processed depending on the
day type.
Implement a User Roster to select the Duty User (SMS Recipient).
Chapter ??
83
Scripting
• Allows creation of more customized user interface
• Executed on the Client
• Uses the VBScript language
• Supported in both ViewX and WebX clients
• Called from a Pick Action
• Stored
– In the Mimic as Defined Functions
– In the Pick Action as a Code Fragment
– In a Script Library object
• Supports run-time debugging
Scripting (continued)
• Uses the Windows Scripting Engine
– Supports all standard VBScript objects and functions
• Additional functionality provided by ClearSCADA using VBScript
objects:
– Server – Interaction with the ClearSCADA Server
– Menu – Creation of custom menus
– Form – Creation of custom forms
– Mimic – Mimic navigation functions
– App – ViewX commands
– Globals – Registry commands and other global functions
84
Scripting – Example Server Functionality
• Reading from and writing to server object properties is simple
sub Main()
‘Read the state description of point named .Pump Running and display in a message
box
end sub
Menu.Init()
Set SubMenu1 = Menu.AddMenu("Option 1")
Submenu1.AddItem("Option 1 Item 1")
SubMenu1.AddItem("Option 1 Item 2")
Menu.AddSeparator
Menu.AddSeparator
Menu.AddItem("Item 5")
Note: A Case statement could
MsgBox "You Selected Item :" & Menu.Display(), 0, "Result"
be used here! (See Next Slide)
end sub
ClearSCADA Advanced Training Course 172
85
Scripting – Example Menu Functionality Cont.
Using the Case function to evaluate the custom menu.
'Menu.Display - displays menu, and returns integer value for selected item.
'Message box (0 - Ok button) (Message Box title will be Result)
86
Scripting – Example Form Functionality.
Using the Form function for data entry – Part 2.
'When OK is pressed update the value
if Form.Selection = "OK" then
‘Has the value changed
if Server.GetOPCValue(".A1") <> edtAO.Value then
‘Is the new value a Number
if IsNumeric(edtAO.Value) then
‘Write the new value (CDbl is a Conversion to data type Double)
Server.SetOPCValue ".A1", CDbl(edtAO.Value)
‘Confirmation message box regarding the change
MsgBox "Hand Control executed Value Change too " & Server.GetOPCValue(".A1")
else
‘Non Numeric information was entered
MsgBox "You must enter a number"
end if
else
‘You didn’t enter a new value
MsgBox "Value hasn't changed"
end if
end if
end sub ClearSCADA Advanced Training Course 175
‘Check the current users security permission for control on this object
If objPoint.CheckAccess("CTL") = FALSE then
MsgBox "Security Problem - Logged on user cant control this point“
else
‘Control the Point to the required Value
objPoint.interface.CurrentValue=Value ‘OR Server.SetOPCValue PointName, Value
end if
end sub
87
Scripting – Using Arguments .
Slider Control of point using argument. Part 1
‘Function Name and Argument to be passed into the function
Sub X_Slider(TextX)
'Place some text on the slider. We will add this soon! (Part 3)
‘The slider is added to the form Horizontal Position, Vertical Position, Width, Initial position
Set Slider = Form.AddSlider( 1, 2, 50, 0)
‘Adjust the slider Min & Max parameter to the points ZeroScale and FullScale value.
Slider.Minimum = Server.GetOPCValue(TextX & ".HanddressMinimum")
Slider.Maximum = Server.GetOPCValue(TextX & ".HanddressMaximum")
‘Add markers to the slider & set the width of the slider.
Slider.TickFrequency = 5
Slider. Width = 50
‘Place an Button on the form Horizontal position, vertical position and text to display.
Set OkButton = Form.AddPushButton(18, 6, "Ok")
ClearSCADA Advanced Training Course 178
88
Scripting – Using Arguments .
Slider Control of point using arguments. Part 3
'Place some text on the slider….It looks a bit boring without it!
‘The text value will change dynamically depending on the ZeroScale & FullScale of the point.
Set text = Form.AddStaticText(3, 5, Slider.Minimum)
Set text = Form.AddStaticText(14, 5, Slider.Maximum*0.25)
Set text = Form.AddStaticText(25, 5, Slider.Maximum*0.5)
Set text = Form.AddStaticText(36, 5, Slider.Maximum*0.75)
Set text = Form.AddStaticText(47, 5, Slider.Maximum)
Sub LogOn()
System("c:\windows\system32\osk.exe")
App.Logon()
‘Try App.ChangePassword
End Sub
89
Scripting - Exercise
Time Allowed: 60 Minutes
Aim:
Part 1 - We will use a script library object to perform methods on
multiple objects. Pass into the Script two digital point names and
two control values.
Part 2 (Optional)
Does the range change dynamically with the control limits (Both
Min & Max).
Aim:
Trendspec…..Suggest start with the example project code and add
some functionality to it – Refine it!!!
Ideas….
a)Trend with alternative scaling ie Level Meter Vs Level Volume.
b)Bring up trend from alarm banner.
90
TrendSpec Scripting - Exercise
sub MyAdHocTrend2
dim S
S = "SCX:////Trend/"
S = S & "TREND("
S = S & "TRACE(PROCESSEDHISTORIC, 'Y Axis 1',"
S = S & "LabelExpr = '""My Projects new.AI 0 - 100""',"
S = S & "ShowAnnotations = True,"
S = S & "SOURCE('My Projects new.AI 0 - 100.Historic')),"
S = S & "XAXIS(RELATIVENOW,"
S = S & "Offset = 'MINUTE - 3 SECONDS',"
S = S & "INTERVAL = '1M'),"
S = S & "YAXIS('Y Axis 1' , Label = 'Point Value',"
S = S & "LabelPos = CENTRE, LabelStyle = ROTATED),"
S = S & "TitleExpr = '""My Projects new.AI 0 - 100.NAME""',"
S = S & "ShowTitle = True, ShowKey = True,"
S = S & "AlarmLimitLabelPos = LIMITLABELOVERRIGHT,"
S = S & "TitleFont = 'Arial', TitleFontHeight = 10,"
S = S & "TitleFontStyle = FONTSTYLEBOLD, MainFont = 'Tahoma',"
S = S & "MainFontHeight = 8, MainFontStyle = FONTSTYLEBOLDITALIC,"
S = S & "LabelFont = 'Tahoma', LabelFontHeight = 8, LabelFontStyle = 0)“
‘Option 1 App.OpenWindow( S )
‘Option 2 Mimic.OpenInset S, 20, 20, 100, 100
End Sub
91
TrendSpec Scripting - Exercise
dim S S = "SCX:////Trend/"
S = S & "TREND("
S = S & "TRACE(PROCESSEDHISTORIC, 'Y Axis 1' ,"
S = S & "Label = 'Main New Analogue Point',"
S = S & "System='Main'," S = S & "SOURCE('New Analogue Point.Historic'),"
S = S & "TraceStyle = TRACELINE, RawOverlay = False,"
S = S & "LineColour = RGB(0,0,0),"
S = S & "LineStyle = DASHSOLID, LineWidth = 0.000000),"
S = S & "TRACE(PROCESSEDHISTORIC, 'Y Axis 2' ,"
S = S & "Label = 'Main 3 New Analogue Point',"
S = S & "System='Main3',"
S = S & "SOURCE('New Analogue Point.Historic'),"
S = S & "TraceStyle = TRACELINE, RawOverlay = False,"
S = S & "LineColour = RGB(0,128,0),"
S = S & "LineStyle = DASHDASH, LineWidth = 0.250000),"
S = S & "XAXIS(RELATIVELATEST, Interval = '6H'),"
S = S & "YAXIS('Y Axis 1' , Position = LEFT,"
S = S & "Visible = True, Colour = RGB(0,0,0)),"
S = S & "YAXIS('Y Axis 2' , Position = RIGHT,"
S = S & "Visible = True, Colour = RGB(0,128,0)),"
S = S & "YAXIS('Y Axis 3' , Position = RIGHT,"
S = S & "Visible = True, Colour = RGB(75,0,255)),"
S = S & "Title = 'Sensors 1 to 3')"
App.OpenWindow( S )
•The content is adjusted as required. In this particular case, line breaks are used to separate the various sections of the ad
hoc Trend’s definition:
•Minor modifications are made to the definition. For instance, the Label identifier for the first trace is replaced with an
appropriate LabelExpr expression. Similarly, the Trend’s TitleExpr identifier is replaced with a Title identifier. (The TitleExpr
derives its value from the ad hoc Trend’s original data source—the sensor from which the Trend was originally accessed.)
•Note that although the ad hoc Trend’s definition contains three TRACE sections, it only contains two YAXIS sections. This is
because two of the sensors, Sensor 11 and Sensor 13, have the same point value range (0 to 100) and can therefore be
assigned the same y-axis (‘Y Axis 1’). Sensor 12 has a different point value range (0 to 120), so is assigned a different y-axis
for that range. To make this association clearer, a Colour identifier is added to the YAXIS section for ‘Y Axis 2’. The Colour
identifier is allocated the same color as that used for Sensor 12’s trace.
•The ‘custom’ ad hoc Trend is to be accessed via a button on a Mimic. Script is to be used to display the Trend whenever the
button is selected.
•Scripting is enabled on the relevant Mimic (see Enable the Scripting Feature on a Mimic in the ClearSCADA Guide to
Scripting).
•The basic script structure is entered into the Mimic’s Script Editor. The ad hoc Trend’s definition is then pasted from Notepad
into the script subroutine.
92
TrendSpec Scripting – Easy Creation
SCX:////Trend/
TREND(TRACE(RAWHISTORIC, 'Right' ,LabelExpr = '''ClearSCADA - Training.Training.08)
Trends.Examples.04b) Sine Wave''' ,
SOURCE('ClearSCADA - Training.Training.08) Trends.Examples.04b) Sine Wave.Historic' ),
RawOverlay = False, UpdateMode = INTERVAL, LineColour = RGB(0,0,255),
LineWidth = 2.000000),
TRACE(RAWHISTORIC, 'Left' ,LabelExpr = '''ClearSCADA - Training.Training.08) Trends.Examples.04d)
Walk''' ,
SOURCE('ClearSCADA - Training.Training.08) Trends.Examples.04d) Walk.Historic' ),
RawOverlay = False, UpdateMode = INTERVAL, LineColour = RGB(255,0,0),
LineWidth = 2.000000), XAXIS(RELATIVENOW, Offset = 'H - 23H', Interval = '1D'),
YAXIS('Left' ,LabelExpr = '''%25''' , Format = '0.%23%23%23%23%23%23',
MinorTicks = 1, Colour = RGB(255,0,0)),YAXIS('Right' , Position = RIGHT,
MinorTicks = 1, Colour = RGB(0,0,255), StateSystem = '.'),
TitleExpr = '''ClearSCADA - Training.Training.08) Trends.Examples.04d) Walk''' ,
BackgroundColour = RGB(255,255,255))
Conclusion
• What did you hope to learn from this course?
• Did you learn what you had hoped?
Thankyou...
93
Dongle License missing on restart using Remote
Desktop
Question:
I have 2009 R2.2 running on HP servers with Windows Server 2003 R2. With ClearSCADA dongle licences.
Servers are remote to me so I use RDP to connect. On occasions when I need to shutdown and restart
ClearSCADA the licence becomes invalid and server requires full restart to fix.
Problem does not occur if done from Console.
Anyone else? Any ideas?
Answer:
The dongle is recognised correctly if the database service is remotely started using "psservice", rather than by
the
Service Manager via a Remote Desktop session.
Use of $
( ".$.CurrentValue" + 1 ) is the argument used for the above method. (In this case, the
argument specifies that the value of the above method is to be set to Test Point 4’s
current value plus one. (".$.CurrentValue" stipulates the current value of the custom
action’s source—the database item on which the custom action is configured—which
in this example is Test Point 4.))
In certain situations, you may need to define a method using an expression that references the item on which the
expression is being configured. A common example of this is on point user methods where a point’s
Method may use an expression that references the point. If the point is specifically named in the
expression, the expression will only work as desired if the point’s name remains the same. This can be a
problem if the point is renamed or is copied and the copy used in another location. To prevent the need for
re-defining the method expressions on renamed items and copies, you can use .$ notation. This allows you
to use a dollar $ to represent the item being referenced. As the dollar does not define a specific item, it can
be used with items that are to be renamed or copied without breaking the expression (as ClearSCADA will
94
ClearSCADA Command Line Utility
ClearSCADA provides a command line utility that allows users to start and stop the
server, as well as perform a number of other management tasks. This utility, named
scxcmd.exe, can be found in the program installation directory.
scxcmd Options
-s server[:port]Connect to specified server and port. Defaults to localhost:5481
Commands
START - DBStart or repair the database if necessary (i.e. when in Invalid Configuration state).
START driver - Start the specified driver.
START DRIVERS - Start all drivers.
STOP SERVER - Stop the server.
STOP driver - Stop the specified driver.
STOP DRIVERS - Stop all drivers
RESTART driver - Restart the specified driver.
RESTART DRIVERS - Restart all drivers.
COMPRESS DB - Compress the database.
SETLOG {DB | driver} options - Set the logging options for the database or specified driver
ADDLOG {DB | driver} options - Add logging options to the database or specified driver
REMLOG {DB | driver} options - Remove logging options from the database or specified driver
SHOWLOG {DB | driver} options - Show logging options for the database or specified driver.
SHOWDIAG diag - Show the specified diagnostic
ClearSCADA page. UseTraining
Advanced SHOWDIAG
CourseHELP to display a list of available 191
diagnostics.
95