0% found this document useful (0 votes)
90 views72 pages

SCADA Software: Fundamentals & Architecture

SCADA (Supervisory Control and Data Acquisition) is an industrial control system that allows centralized monitoring and control of industrial processes across multiple locations. It has evolved through several generations from monolithic systems to modern architectures that integrate IIoT, advanced analytics, and cloud computing. SCADA systems perform essential functions including data acquisition, supervisory control, data visualization, alarming, and reporting, making them vital for various industries like utilities, manufacturing, and transportation.

Uploaded by

ashokdivya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
90 views72 pages

SCADA Software: Fundamentals & Architecture

SCADA (Supervisory Control and Data Acquisition) is an industrial control system that allows centralized monitoring and control of industrial processes across multiple locations. It has evolved through several generations from monolithic systems to modern architectures that integrate IIoT, advanced analytics, and cloud computing. SCADA systems perform essential functions including data acquisition, supervisory control, data visualization, alarming, and reporting, making them vital for various industries like utilities, manufacturing, and transportation.

Uploaded by

ashokdivya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Module 2: SCADA (Supervisory Control and

Data Acquisition)
Chapter 2.1: Introduction to SCADA Software -
Fundamentals & Architecture

What is SCADA?
SCADA (Supervisory Control and Data Acquisition) is an industrial control system
architecture that enables organizations to monitor, control, and manage industrial
processes, machinery, and infrastructure from a centralized location. Unlike
Programmable Logic Controllers (PLCs) that provide real-time control at the
equipment level, SCADA systems operate at a supervisory level, collecting data from
multiple remote locations, processing and analyzing that data, and providing
operators with comprehensive visualization and control capabilities.

Historical Context and Evolution


SCADA systems emerged in the 1960s when utilities and industrial facilities needed
to monitor and control equipment spread across vast geographical areas. Early
SCADA systems used custom hardware and specialized communication protocols,
with limited functionality restricted to basic monitoring and control.

First Generation (Monolithic SCADA): Early systems used mainframe computers with
no connectivity between systems. All control and monitoring occurred on a single,
centralized computer. These systems were expensive, proprietary, and difficult to
expand.

Second Generation (Distributed SCADA): In the 1980s-1990s, SCADA evolved to


distributed architecture using Local Area Networks (LANs) connecting multiple
stations. This improved reliability through redundancy but systems remained
proprietary with limited interoperability.

Third Generation (Networked SCADA): Modern SCADA systems utilize open


architecture with standardized protocols (OPC, Modbus TCP/IP, Ethernet/IP, etc.),
enabling integration with various devices and systems. Web-based interfaces, cloud
connectivity, and mobile access characterize contemporary SCADA platforms.

Fourth Generation (Internet of Things SCADA): Current evolution integrates Industrial


Internet of Things (IIoT), advanced analytics, machine learning, cloud computing, and
cybersecurity measures, enabling predictive maintenance, remote accessibility, and
enterprise-level integration.

SCADA vs. PLC vs. DCS - Understanding the Distinctions


While SCADA, PLC, and DCS all serve industrial automation, they have distinct roles
and characteristics:

PLC (Programmable Logic Controller):


●​ Function: Real-time control of specific machines or processes
●​ Scope: Local control, typically single machine or production line
●​ Response Time: Microseconds to milliseconds
●​ Location: Field-level, near equipment
●​ Programming: Ladder logic, function blocks, structured text
●​ Application: Discrete manufacturing, machine control, sequential operations
SCADA (Supervisory Control and Data Acquisition):
●​ Function: Supervisory monitoring and control across multiple locations
●​ Scope: Enterprise-wide, geographically distributed systems
●​ Response Time: Seconds to minutes
●​ Location: Central control room with remote sites
●​ Programming: Graphical configuration, scripting (VBScript, Python)
●​ Application: Utilities, oil & gas, water treatment, infrastructure monitoring
DCS (Distributed Control System):
●​ Function: Continuous process control with distributed processing
●​ Scope: Plant-wide, typically single location
●​ Response Time: Milliseconds to seconds
●​ Location: Distributed controllers throughout plant
●​ Programming: Function blocks, proprietary languages
●​ Application: Refineries, chemical plants, power generation, continuous
processes
Key Relationship: SCADA systems often communicate with multiple PLCs and RTUs
(Remote Terminal Units) to gather data and issue commands. PLCs perform the
actual control while SCADA provides visualization, data logging, alarming, and
supervisory commands.

Core Functions of SCADA Systems


SCADA systems perform several critical functions that enable efficient industrial
operations:
1. Data Acquisition
Real-Time Data Collection: SCADA systems continuously gather data from field
devices including sensors, transmitters, PLCs, and RTUs measuring process
variables like temperature, pressure, flow rate, level, voltage, current, speed, and
position.

Communication Protocols: SCADA supports numerous industrial protocols:


●​ Modbus RTU/TCP (most common legacy protocol)
●​ OPC (OLE for Process Control) DA/UA
●​ DNP3 (Distributed Network Protocol)
●​ Ethernet/IP, Profinet, BACnet
●​ HART, Foundation Fieldbus
●​ Proprietary vendor protocols
Polling and Scanning: SCADA polls remote devices at configurable intervals (typically
1-10 seconds) to retrieve current values. Critical parameters may be scanned more
frequently while non-essential data updates less often to optimize network
bandwidth.

Data Quality: Modern SCADA systems provide data quality indicators showing
whether values are good, bad, uncertain, or stale, helping operators make informed
decisions based on data reliability.

2. Supervisory Control
Remote Control Capability: Operators can issue commands from the central SCADA
system to start/stop equipment, open/close valves, adjust setpoints, and change
operating modes at remote locations.

Command Execution: Control commands are transmitted through communication


networks to PLCs or RTUs which execute the actual control action. Feedback
confirms successful execution or reports failures.

Authority Levels: SCADA systems implement role-based access control ensuring


only authorized personnel can issue specific commands, preventing unauthorized or
accidental operations.

Manual and Automatic Modes: Operators can select between manual control (direct
operator commands) and automatic control (PLC or RTU executes programmed
logic) depending on operational requirements.

3. Data Visualization and HMI


Graphical User Interface: SCADA provides intuitive Human-Machine Interface (HMI)
screens displaying process status through:
●​ Mimic diagrams (schematic representations of processes)
●​ Real-time values with digital readouts
●​ Animated graphics showing equipment status (running/stopped,
open/closed)
●​ Trend charts displaying historical and real-time data
●​ Alarm indicators and summaries
Multiple Display Levels:
●​ Overview Screens: High-level plant status and key performance indicators
●​ Area Screens: Detailed view of specific process areas or units
●​ Equipment Screens: Individual equipment control and diagnostics
●​ Trend Screens: Historical data analysis and comparison
Interactive Graphics: Operators interact with graphical objects—clicking pumps to
start/stop, adjusting sliders to change setpoints, or opening faceplates for detailed
control and monitoring.

4. Data Logging and Historian


Historical Data Storage: SCADA systems continuously log process data to databases
(historians) for:
●​ Compliance reporting and regulatory requirements
●​ Performance analysis and optimization
●​ Troubleshooting and root cause analysis
●​ Trending and predictive maintenance
Data Compression: Intelligent compression algorithms store data efficiently by
logging only when values change significantly (exception-based logging) or at
specified intervals.

Long-Term Archival: Historical data retained for months or years enables trend
analysis, comparison of current vs. past performance, and validation of process
improvements.

5. Alarming and Event Management


Alarm Generation: SCADA monitors process variables against configured limits and
generates alarms when:
●​ Values exceed high/high-high or low/low-low thresholds
●​ Equipment fails or malfunctions
●​ Communication with field devices is lost
●​ Critical deviations from normal operation occur
Alarm Prioritization: Alarms are classified by priority (critical, high, medium, low)
enabling operators to focus on most important issues first.

Alarm Notification: Multiple notification methods alert operators:


●​ Visual indicators (flashing colors, icons)
●​ Audible alarms (horns, bells, tones)
●​ Email and SMS messages
●​ Push notifications to mobile devices
Alarm Management: Features include:
●​ Acknowledgment tracking (operators confirm awareness)
●​ Alarm suppression (temporary disable during maintenance)
●​ Alarm shelving (intentional acknowledgment with justification)
●​ Alarm analysis and reporting

6. Reporting and Analytics


Standard Reports: Pre-configured reports provide:
●​ Production summaries
●​ Equipment runtime and availability
●​ Alarm summaries and statistics
●​ Compliance documentation
Custom Reports: Users create tailored reports combining data from multiple
sources, applying calculations, and formatting output for specific needs.

Export Capabilities: Data exported to Excel, PDF, databases, or other formats for
further analysis or integration with enterprise systems.

SCADA System Architecture - Components and Structure


A complete SCADA system consists of hardware and software components working
together in an integrated architecture.

Hardware Components
1. Supervisory Computer (SCADA Server/Master Terminal Unit)

The brain of the SCADA system, typically a high-reliability industrial computer or


server running SCADA software.

Functions:
●​ Executes SCADA application software
●​ Manages communication with field devices
●​ Processes and stores data
●​ Hosts HMI application
●​ Executes control logic and scripts
●​ Manages alarms and events
Configuration:
●​ Single server for small systems
●​ Redundant hot-standby servers for critical applications
●​ Distributed server architecture for large enterprises
2. HMI Workstations (Operator Stations)

Computers running HMI client software that operators use to interact with the
SCADA system.

Characteristics:
●​ Display real-time process graphics and data
●​ Accept operator inputs and commands
●​ Show alarm lists and trends
●​ Generate reports
●​ Multiple monitors for comprehensive visibility
Modern Options:
●​ Desktop workstations in control rooms
●​ Industrial panel PCs at field locations
●​ Laptops for mobile operators
●​ Tablets and smartphones for remote access
3. Communication Infrastructure

Network equipment connecting SCADA servers with field devices and HMI
workstations.

Technologies:
●​ Wired: Ethernet (TCP/IP), fiber optic cables, serial RS-232/RS-485
●​ Wireless: Radio, cellular (4G/5G), satellite, WiFi, LoRaWAN
●​ Industrial Networks: Profinet, EtherNet/IP, Modbus TCP
Network Architecture:
●​ Local Area Network (LAN) within facilities
●​ Wide Area Network (WAN) connecting remote sites
●​ Virtual Private Network (VPN) for secure remote access
●​ Firewall and cybersecurity devices
4. Field Devices - RTUs and PLCs

Remote Terminal Units (RTUs) and PLCs interface with process equipment and
communicate with SCADA servers.

Remote Terminal Units (RTUs):


●​ Purpose-built for remote monitoring and control
●​ Rugged design for harsh environments
●​ Low power consumption (solar power compatible)
●​ Built-in communication interfaces
●​ Typically used in geographically distributed applications (pipelines, utilities)
Programmable Logic Controllers (PLCs):
●​ Industrial computers for real-time control
●​ Fast scan times (milliseconds)
●​ Extensive I/O capabilities
●​ Advanced control algorithms
●​ Commonly used in manufacturing and process plants
Functions:
●​ Read sensor and transmitter values
●​ Execute control logic
●​ Operate actuators and final control elements
●​ Communicate data to SCADA server
●​ Provide local autonomous control if communication fails
5. Field Instrumentation

Sensors, transmitters, actuators, and equipment that RTUs/PLCs interface with.

Input Devices:
●​ Temperature, pressure, flow, level sensors
●​ Analog transmitters (4-20mA, 0-10VDC)
●​ Digital inputs (switches, relays, status contacts)
●​ Pulse inputs (flow meters, energy meters)
Output Devices:
●​ Control valves with actuators
●​ Variable frequency drives (VFDs)
●​ Motor starters and contactors
●​ Analog outputs for setpoint control
●​ Digital outputs (on/off control)
Software Components
1. SCADA Application Software

The core software platform providing SCADA functionality.

Major SCADA Software Platforms:


●​ Siemens WinCC: Leading European platform, integrates with Siemens PLCs
●​ Rockwell FactoryTalk View: Popular in North America, optimized for
Allen-Bradley PLCs
●​ AVEVA (Wonderware) System Platform: Modular architecture, high scalability
●​ Ignition by Inductive Automation: Web-based, unlimited licensing model
●​ GE iFIX: Mature platform for process industries
●​ Schneider EcoStruxure: Integrated automation solution
Features:
●​ Tag database management
●​ Graphical screen development tools
●​ Alarm and event configuration
●​ Trending and historian functions
●​ Scripting and programming interfaces
●​ Communication driver library
2. Communication Drivers

Software modules that implement communication protocols enabling SCADA to


interface with various devices.

Driver Types:
●​ Vendor-specific drivers (Siemens S7, Allen-Bradley, Modicon)
●​ Standard protocol drivers (Modbus, OPC, DNP3)
●​ Database drivers (SQL, Oracle, Access)
●​ Third-party drivers for specialized equipment
OPC (OLE for Process Control):​
Standardized interface enabling SCADA software to communicate with diverse
devices without custom drivers:
●​ OPC DA (Data Access): Real-time data communication
●​ OPC HDA (Historical Data Access): Historical database access
●​ OPC UA (Unified Architecture): Modern platform-independent standard with
security
3. HMI/Graphics Development Tools
Graphical editors for creating operator interface screens.

Capabilities:
●​ Drag-and-drop graphic objects (pumps, valves, tanks, motors)
●​ Drawing tools for custom graphics
●​ Animation configuration (color change, rotation, position)
●​ Tag binding to link graphics with data
●​ Template creation for reusable objects
4. Scripting Engine

Programming interface for custom logic, calculations, and advanced functionality.

Common Languages:
●​ VBScript (Visual Basic Script): Microsoft-based, widely supported
●​ JavaScript: Web-based SCADA platforms
●​ Python: Modern SCADA systems (Ignition)
●​ C Scripts: High-performance applications (WinCC)
Applications:
●​ Complex calculations
●​ Data manipulation and validation
●​ Integration with external systems
●​ Custom reports and queries
●​ Automation of repetitive tasks
5. Database Management System

Relational databases store configuration, real-time data, historical data, alarms, and
events.

Database Types:
●​ Real-Time Database: Current process values, equipment status
●​ Historical Database (Historian): Time-series data storage
●​ Configuration Database: System settings, tag definitions, graphics
●​ Alarm Database: Alarm history and acknowledgment tracking
Common Database Platforms:
●​ Microsoft SQL Server
●​ Oracle Database
●​ MySQL
●​ PostgreSQL
●​ Embedded databases (SQLite)
SCADA System Architecture Types
Monolithic Architecture:
●​ All SCADA functions on single computer
●​ No network connectivity
●​ Simple but limited scalability and reliability
●​ Obsolete for modern applications
Distributed Architecture:
●​ Multiple servers and workstations connected via LAN
●​ Redundant servers for high availability
●​ Improved performance and reliability
●​ Common in modern installations
Networked Architecture:
●​ Wide-area connectivity using open protocols
●​ Integration with enterprise systems (ERP, MES)
●​ Web-based clients for remote access
●​ Cloud-hosted options for scalability

SCADA Applications and Industries


SCADA systems are deployed across diverse industries for monitoring and control of
critical infrastructure and industrial processes:

Utilities - Electric Power:


●​ Electrical grid monitoring and control
●​ Substation automation
●​ Generation plant supervision
●​ Load management and distribution
●​ Renewable energy integration (solar, wind farms)
Water and Wastewater:
●​ Water treatment plant control
●​ Distribution network monitoring
●​ Pump station control
●​ Reservoir level management
●​ Wastewater collection and treatment
Oil and Gas:
●​ Pipeline monitoring and leak detection
●​ Well head control and optimization
●​ Refinery process control
●​ Tank farm management
●​ Distribution terminal operations
Manufacturing:
●​ Production line monitoring
●​ Quality control and tracking
●​ Energy management
●​ Equipment performance monitoring
●​ Material handling systems
Transportation:
●​ Railway signaling and control
●​ Traffic management systems
●​ Airport baggage handling
●​ Tunnel ventilation and safety systems
Building Automation:
●​ HVAC system control
●​ Energy management
●​ Access control integration
●​ Fire alarm monitoring

Benefits of SCADA Implementation


Operational Efficiency:
●​ Centralized monitoring reduces operator staffing requirements
●​ Faster response to abnormal conditions
●​ Automated data collection eliminates manual logging
●​ Optimized process performance through real-time visibility
Cost Savings:
●​ Reduced downtime through early problem detection
●​ Energy optimization and demand management
●​ Preventive maintenance based on actual equipment condition
●​ Elimination of unnecessary site visits
Improved Safety:
●​ Remote operation of hazardous processes
●​ Immediate alarm notification of dangerous conditions
●​ Historical data for incident investigation
●​ Compliance with safety regulations
Better Decision Making:
●​ Real-time visibility into operations
●​ Historical trending reveals patterns
●​ Data-driven optimization
●​ Key performance indicator (KPI) dashboards
Regulatory Compliance:
●​ Automated data logging for regulatory reports
●​ Audit trails for all operator actions
●​ Alarm and event documentation
●​ Standardized reporting formats

Chapter 2.2: Creating New SCADA Projects - Configuration


and Setup

Project Planning and Preparation


Before starting SCADA development, thorough planning ensures successful
implementation.

Step 1: Define Project Requirements


Identify Objectives:
●​ What processes will be monitored and controlled?
●​ What data must be collected and displayed?
●​ Who are the users and what are their needs?
●​ What are the performance requirements (update rates, alarm response)?
Document Functionality:
●​ List all functions the SCADA system must perform
●​ Define operator tasks and workflows
●​ Identify reporting requirements
●​ Specify alarm and notification needs
Determine Scale:
●​ Number of I/O points (tags)
●​ Number of operator stations
●​ Geographic distribution of equipment
●​ Expected system growth over time

Step 2: Hardware and Infrastructure Assessment


Network Infrastructure:
●​ Evaluate existing network capacity and reliability
●​ Determine communication protocols required
●​ Plan network segmentation for security
●​ Specify bandwidth requirements
Server and Workstation Requirements:
●​ SCADA server specifications (CPU, RAM, storage)
●​ Redundancy and backup requirements
●​ HMI workstation specifications
●​ Operating system compatibility
Field Device Inventory:
●​ List all PLCs, RTUs, and other devices
●​ Document communication parameters (IP addresses, slave IDs, port
numbers)
●​ Verify protocol compatibility
●​ Assess existing vs. new equipment

Step 3: Tag Database Design


Tag Naming Convention:​
Establish consistent, descriptive naming standard:
●​ Include location identifier (PLANT01, TANK03)
●​ Specify equipment type (PUMP, VALVE, MOTOR)
●​ Define measurement type (TEMP, PRESSURE, FLOW)
●​ Add qualifier (SETPOINT, ACTUAL, STATUS)
Example: PLANT01_TANK03_LEVEL_ACTUAL

Tag Organization:
●​ Group tags by area or process unit
●​ Separate input tags (from field) and output tags (to field)
●​ Identify calculated tags (derived from other tags)
●​ Document tag properties (engineering units, scaling, limits)
Data Types:
●​ Analog values (floating point, integer)
●​ Digital values (Boolean, discrete states)
●​ String values (text, messages)
●​ Complex types (structures, arrays)
Creating a New SCADA Project - Step-by-Step
The exact steps vary by SCADA platform, but the general workflow is similar across
systems.

Opening the Development Environment


Launch SCADA Software:
●​ Start the SCADA development application (e.g., Siemens TIA Portal WinCC,
Ignition Designer, Wonderware IDE)
●​ Select "New Project" or "Create Project"
●​ Specify project name and storage location
Project Type Selection:
●​ Choose appropriate template (water treatment, manufacturing, generic)
●​ Select target platform (Windows, web-based, mobile)
●​ Configure initial settings (language, units, time zone)

Configuring Communication Channels


Add Communication Drivers:
1.​ Navigate to communication or I/O configuration section
2.​ Select appropriate driver from library (Modbus TCP, OPC UA, EtherNet/IP)
3.​ Configure driver parameters:
●​ Communication method (Ethernet, serial, wireless)
●​ Port settings (COM port, TCP port number)
●​ Timing parameters (timeout, retry count)

Define Devices:
1.​ Add devices (PLCs, RTUs) under each driver
2.​ Configure device parameters:
●​ Device name and description
●​ Network address (IP address for Ethernet, slave ID for Modbus)
●​ Scan rate (polling interval)
●​ Connection monitoring

Example Modbus TCP Configuration:


text

Driver: Modbus TCP/IP


IP Address: [Link]
Port: 502
Unit ID: 1
Scan Rate: 1000 ms
Timeout: 5000 ms

Creating Tags (Variables)


Tags are the fundamental data elements in SCADA representing process variables,
equipment status, and system information.

Tag Types:

I/O Tags (Field Tags):


●​ Directly linked to physical field devices
●​ Read from or write to PLCs/RTUs
●​ Examples: sensor values, valve positions, motor status
Memory Tags (Virtual Tags):
●​ Internal SCADA variables not linked to field devices
●​ Used for calculations, setpoints, and intermediate values
●​ Examples: production targets, calculated KPIs, operator notes
System Tags:
●​ Predefined tags providing system information
●​ Examples: current date/time, logged-in user, alarm counts
Tag Configuration Steps:
1.​ Open Tag Database Editor
●​ Navigate to tag management section
●​ Select "Add New Tag" or import from device
2.​ Define Tag Properties:
●​ Tag Name: Descriptive identifier following naming convention
●​ Data Type: Integer, Float, Boolean, String
●​ Address: Memory address in PLC/RTU (e.g., %MW100, DB1.DBD0)
●​ Scaling: Convert raw value to engineering units
●​ Engineering Units: Display units (°C, PSI, GPM)
●​ Limits: High/low alarm thresholds
●​ Description: Human-readable explanation
3.​ Configure Logging:
●​ Enable historical logging if data trending required
●​ Set logging method:
●​ Interval: Log at fixed time intervals (every 1 minute, 1 hour)
●​ On Change: Log only when value changes by specified amount
●​ Combination: Log at intervals AND on significant change

Example Tag Configuration:


text

Tag Name: REACTOR_01_TEMP_PV


Description: Reactor 1 Temperature Process Value
Data Type: Float
Address: PLC01:DB10.DBD4
Raw Range: 0 - 32767
Engineering Range: 0 - 300°C
Units: °C
High Alarm: 280°C
High-High Alarm: 290°C
Logging: On Change (±1°C) or 1 minute

Bulk Tag Import:​


For large systems, import tags from:
●​ PLC project files
●​ Excel spreadsheets (CSV)
●​ OPC server browse function
●​ Template files

Database Configuration
Historian Setup:
1.​ Define historian database connection
2.​ Configure storage parameters:
●​ Data retention period
●​ Compression settings
●​ Backup schedule

Database Tables:
●​ Real-time table: Current values
●​ Historical table: Time-stamped data
●​ Alarm table: Alarm occurrences and acknowledgments
●​ Event table: System events and operator actions
Project Organization Best Practices
Folder Structure:​
Organize project elements logically:
●​ /Screens - All HMI graphics
●​ /Scripts - VBScript or other code files
●​ /Reports - Report templates
●​ /Graphics - Image files and symbols
●​ /Documentation - Project notes and manuals
Naming Conventions:​
Consistent naming throughout project:
●​ Screens: SCR_AreaName_ScreenType (e.g., SCR_REACTOR_OVERVIEW)
●​ Scripts: SCR_FunctionName (e.g., SCR_CalculateEfficiency)
●​ Tags: As defined in tag naming convention
Version Control:
●​ Regular project backups
●​ Archive major milestone versions
●​ Document changes in change log
●​ Use version numbering system (v1.0, v1.1, v2.0)
Documentation:
●​ Tag list with descriptions
●​ Screen layout documentation
●​ Communication parameters
●​ Alarm configuration matrix
●​ User manual and operator procedures

Testing and Simulation


Simulation Mode:​
Most SCADA platforms provide simulation capabilities for testing without
connecting to real hardware.

Enable Simulation:
●​ Configure I/O drivers for simulation mode
●​ Create simulated device connections
●​ Generate test data programmatically or manually
Test Scenarios:
●​ Verify tag updates and data flow
●​ Test alarm generation and notification
●​ Validate calculations and scripts
●​ Check screen navigation and functionality
●​ Test user permissions and security

Chapter 2.3: Creating and Editing Elementary Graphic


Displays

HMI Screen Design Principles


Effective HMI design is crucial for operational success. Well-designed screens
enable operators to quickly understand process status, identify problems, and take
appropriate action.

Design Philosophy - Situational Awareness


High Performance HMI (HPHMI) Principles:

Modern HMI design follows situational awareness concepts that help operators
distinguish normal from abnormal conditions at a glance.

Key Concepts:

1. Simplicity and Clarity:


●​ Minimize clutter and unnecessary information
●​ Display only relevant data for specific operational context
●​ Avoid overwhelming operators with excessive detail
2. Consistency:
●​ Standardize symbols, colors, and layouts across all screens
●​ Use same representation for identical equipment types
●​ Maintain consistent navigation structure
3. Information Hierarchy:
●​ Organize information by importance and operator needs
●​ Primary information prominent, secondary information accessible
●​ Multi-level displays (overview → area → detail)

Color Usage Guidelines


Grayscale Philosophy:​
Use gray backgrounds and neutral colors for normal operating conditions. Reserve
color for attracting attention to abnormal situations or important information.

Color Meanings (Industry Standards):


●​ Green: Running, energized, on, open (for valves)
●​ Red: Stopped, de-energized, off, closed (for valves), alarm condition
●​ Yellow/Amber: Warning, caution, intermediate state
●​ Blue: Disabled, manual mode, inactive
●​ Gray: Normal state, off (de-emphasized)
Alarm Color Convention:
●​ Red: Critical alarm requiring immediate action
●​ Orange/Yellow: Warning, attention needed
●​ White/Cyan: Advisory, informational
Best Practices:
●​ Avoid red and green for color coding—instead use for alarm indication
●​ Do not use color as sole indicator (consider colorblind operators)
●​ Limit color palette to 5-7 colors maximum per screen
●​ Ensure sufficient contrast for readability

Screen Types and Hierarchy


Level 1 - Overview Screens:
●​ Highest level view of entire facility or major process units
●​ Show overall status, production rates, key alarms
●​ Navigation starting point to lower-level screens
Level 2 - Process Area Screens:
●​ Detailed view of specific process area or unit
●​ Display major equipment, key process variables
●​ Enable basic control operations
Level 3 - Equipment Detail Screens:
●​ Comprehensive information about individual equipment
●​ Detailed parameters, trends, diagnostics
●​ Advanced control and configuration
Level 4 - Faceplates and Popups:
●​ Detailed control interface for specific device
●​ Parameter adjustment, mode selection
●​ Status details and diagnostics
Creating Graphics - Step-by-Step Process

Opening the Graphics Editor


Access Graphics Development:
1.​ Open SCADA project in development environment
2.​ Navigate to Screen/Graphics section
3.​ Select "New Screen" or "Add Screen"
Screen Properties:
●​ Name: Descriptive identifier (e.g., "Main_Overview", "Reactor_Control")
●​ Size: Resolution (1920×1080, 1280×1024, customized for display)
●​ Background Color: Typically neutral gray (#C0C0C0 or #808080)
●​ Refresh Rate: Update frequency (typically 1-2 seconds)

Drawing Tools and Objects


Modern SCADA graphics editors provide extensive drawing and object libraries.

Basic Drawing Tools:


●​ Line Tool: Draw pipes, connections
●​ Rectangle/Circle: Create tanks, vessels, boundaries
●​ Polygon: Custom shapes for equipment representation
●​ Text: Labels, titles, static information
Standard Objects:
●​ Buttons: Start/Stop, Acknowledge, Navigation
●​ Input/Output Fields: Numeric entry and display
●​ Indicators: Status lights, level bars, gauges
●​ Animated Graphics: Pumps, motors, valves with state visualization
Component Libraries:​
Most SCADA platforms include extensive libraries of pre-built objects:
●​ Pumps (centrifugal, positive displacement)
●​ Valves (gate, globe, ball, butterfly, control)
●​ Motors
●​ Tanks and vessels
●​ Conveyors
●​ Pipework and instrumentation symbols

Building a Simple Process Screen - Example


Scenario: Create screen for tank level control system with pump, control valve, level
transmitter, and tank.

Step 1: Add Background and Title


text

1. Set screen background to light gray (#D3D3D3)


2. Add title text at top: "Tank 101 - Level Control"
3. Format text: Bold, 24pt font, dark gray color

Step 2: Draw Tank


text

1. Select Rectangle tool


2. Draw vertical rectangle representing tank
3. Set fill color to white or light gray
4. Add outline stroke (black, 2px)
5. Add text label: "TK-101"

Step 3: Add Level Indicator


text

1. Insert level indicator object (vertical bar graph)


2. Position inside tank outline
3. Configure dynamic properties:
- Linked Tag: TANK101_LEVEL_PV
- Min Value: 0%
- Max Value: 100%
- Fill Color: Blue for liquid level
- Direction: Bottom to top

Step 4: Add Numeric Display


text

1. Insert I/O field object


2. Position near tank
3. Configure properties:
- Linked Tag: TANK101_LEVEL_PV
- Display Format: 0.1 (one decimal place)
- Units: %
- Read Only: True

Step 5: Add Pump Symbol


text

1. Drag pump symbol from object library


2. Position on inlet pipe
3. Configure animation:
- Rotation Tag: PUMP101_STATUS
- Rotation Speed: Variable based on motor speed
- Color Tag: PUMP101_STATUS (Green=Running, Gray=Stopped)

Step 6: Add Control Valve


text

1. Insert valve symbol (control valve type)


2. Position on outlet pipe
3. Configure animation:
- Position Tag: VALVE101_POSITION
- 0% = Fully closed, 100% = Fully open
- Display stem position dynamically

Step 7: Add Control Buttons


text

1. Insert button objects:


- "START PUMP" button
- "STOP PUMP" button
2. Configure button actions (to be linked to control logic)
3. Add operator confirmation for safety

Step 8: Add Alarm Indicators


text
1. Insert alarm indicator for high level
2. Configure properties:
- Alarm Tag: TANK101_LEVEL_HH_ALARM
- Normal State: Transparent or gray
- Alarm State: Flashing red
3. Add text: "HIGH LEVEL"

Attaching Controls to Graphic Objects (Dynamic


Properties)
Static graphics provide visual context, but dynamic animation and control make
graphics functional.

Types of Dynamic Properties


1. Value Display (Read-Only):​
Link tag value to text or numeric display for monitoring.

Example Configuration:
text

Object: Text Display


Dynamic Property: Text Content
Tag: REACTOR_TEMP_PV
Format: {0:F1} °C
Update: On Change

2. Animation - Visibility:​
Show or hide objects based on tag state.

Example:
text

Object: Warning Icon


Dynamic Property: Visible
Tag: PUMP_FAULT_STATUS
Condition: Visible when Tag = TRUE
3. Animation - Color:​
Change object color based on value or state.

Example:
text

Object: Pump Symbol


Dynamic Property: Fill Color
Tag: PUMP_RUN_STATUS
Condition:
If Tag = 1 (Running) → Green
If Tag = 0 (Stopped) → Gray
If Tag = 2 (Faulted) → Red

4. Animation - Position/Rotation:​
Move or rotate objects to represent equipment state.

Example:
text

Object: Valve Stem


Dynamic Property: Rotation Angle
Tag: VALVE_POSITION_PV
Scaling: 0% = 0°, 100% = 90°

5. Animation - Fill Level:​


Display liquid level, tank capacity, or progress.

Example:
text

Object: Tank Level Bar


Dynamic Property: Fill Percentage
Tag: TANK_LEVEL_PERCENT
Direction: Bottom to Top
Color: Blue
6. User Input (Writable):​
Enable operator to enter values or commands.

Example:
text

Object: Input Field


Dynamic Property: Value
Tag: SETPOINT_TEMP
Input Type: Numeric
Range: 50 - 200°C
Confirmation: Required

7. Button Actions:​
Execute commands when button is pressed.

Example:
text

Object: Start Button


Dynamic Property: On Click Event
Action: Write Value
Tag: PUMP_START_CMD
Value: 1 (TRUE)
Confirmation Dialog: "Start Pump 101?"

Configuring Dynamic Properties - Detailed Steps


General Process (varies by SCADA platform):
1.​ Select Graphic Object:​
Right-click object and select "Properties" or "Animation"
2.​ Add Dynamic Link:​
Navigate to "Dynamics" or "Animation" tab​
Click "Add Dynamic" or "+" button
3.​ Select Property Type:​
Choose which object property to animate (color, position, visibility, value)
4.​ Configure Tag Binding:
●​ Select tag from tag database
●​ Or enter tag name manually
●​ Set update rate if different from screen default
5.​ Define Value Mapping:​
Map tag values to property states:
●​ Direct mapping: Tag value = Object property value
●​ Conditional: If tag meets condition, set property to value
●​ Expression: Calculate property based on tag value(s)
6.​ Test Animation:​
Use simulation or online mode to verify animation behavior

Creating Faceplates for Equipment Control


Faceplates provide detailed control interface for individual equipment, appearing as
popup windows when operators click on equipment graphics.

Faceplate Components:

Header Section:
●​ Equipment name and identifier
●​ Current status (Running/Stopped/Faulted)
●​ Operating mode (Manual/Auto/Remote)
Status Display:
●​ Key process variables
●​ Equipment runtime
●​ Performance metrics
●​ Diagnostic information
Control Section:
●​ Start/Stop buttons
●​ Mode selection
●​ Setpoint entry
●​ Parameter adjustment
Navigation:
●​ Trend button (view historical data)
●​ Alarm history
●​ Diagnostic detail
●​ Close button
Example Pump Faceplate:
text

Title: "PUMP-101 Control"


Status Indicators:
- Running: [Green LED]
- Current: 45.2 A
- Speed: 1485 RPM
- Runtime: 1250 hrs

Controls:
- [START] button (disabled if running)
- [STOP] button (enabled if running)
- Mode: [Auto] [Manual] (radio buttons)

Setpoints:
- Speed Setpoint: [____] RPM (if VFD-controlled)

Alarms:
- Overcurrent: [Gray indicator - normal]
- High Vibration: [Red indicator - active]

Navigation:
- [View Trends] [Alarm History] [Close]

Templates and Reusable Objects


To improve development efficiency and maintain consistency, create templates for
commonly used equipment and control elements.

Template Benefits:
●​ Faster development (drag-and-drop pre-configured objects)
●​ Consistency (identical equipment uses identical graphics)
●​ Easy maintenance (update template propagates to all instances)
●​ Standardization across project
Creating Templates:
1.​ Develop Single Instance:​
Create and fully configure one example of the object (pump, valve, tank)
2.​ Parameterize:​
Replace specific tag names with parameters:
3.​ text
Specific: PUMP_101_STATUS
Parameter: {EquipmentID}_STATUS
4.​
5.​ Save as Template:​
Save object to template library with descriptive name
6.​ Use Template:​
Drag template into screen and specify parameter values:
7.​ text

Instance 1: EquipmentID = PUMP_101


Instance 2: EquipmentID = PUMP_102
8.​

Template Categories:
●​ Equipment symbols (pumps, valves, motors, fans)
●​ Control faceplates
●​ Alarm displays
●​ Navigation elements
●​ Trend charts

Navigation Design
Clear navigation structure enables operators to quickly access needed information.

Navigation Methods:

1. Button-Based Navigation:​
Dedicated buttons on each screen link to related screens
text

[Overview] [Process Areas] [Utilities] [Trends] [Alarms]

2. Hierarchical Menu:​
Tree-structure menu provides access to all screens organized by area
text

+ Main Overview
+ Reactor Area
- Reactor 1 Detail
- Reactor 2 Detail
+ Separation Area
- Distillation Column
- Product Tanks

3. Equipment-Based Navigation:​
Clicking on equipment graphic opens detail screen or faceplate

4. Breadcrumb Navigation:​
Shows current location in screen hierarchy with clickable path:
text

Main Overview > Reactor Area > Reactor 1 Detail

Navigation Best Practices:


●​ Consistent navigation bar location (typically top or left side)
●​ "Home" button always available to return to main overview
●​ Back button for previous screen
●​ Alarm summary visible on all screens
●​ Logout/User info accessible from anywhere

Chapter 2.4: Real-Time and Historical Trends

Understanding Trending in SCADA


Trends (also called charts or graphs) are graphical representations of process
variable values over time. Trending is essential for:
●​ Monitoring current process behavior
●​ Analyzing historical performance
●​ Identifying patterns and correlations
●​ Troubleshooting problems
●​ Optimizing operations
●​ Compliance documentation

Types of Trends

1. Real-Time Trends
Real-time trends display current values as they update, showing recent history
(typically last few minutes to hours).

Characteristics:
●​ Continuously scrolling display (pen chart recorder style)
●​ Shows "live" data as it happens
●​ Time axis moves to keep current time at right edge
●​ Typical time span: 1 minute to 24 hours
Update Methods:

Cyclic (Time-Triggered):
●​ Updates at regular intervals (1 second, 10 seconds, 1 minute)
●​ Consistent data collection regardless of value changes
●​ Best for continuously varying processes
Event-Triggered:
●​ Updates when tag value changes by specified amount
●​ Reduces data volume for slowly changing variables
●​ Captures rapid changes precisely
Applications:
●​ Operator monitoring during normal operation
●​ Real-time process optimization
●​ Immediate troubleshooting
●​ Watching setpoint changes take effect

2. Historical Trends
Historical trends display logged data from the past (hours, days, weeks, months, or
years).

Characteristics:
●​ User-selectable time range
●​ Pan and zoom functionality to focus on specific periods
●​ Display multiple time periods for comparison
●​ Statistical analysis (min, max, average values)
Data Sources:
●​ Historian database with time-stamped values
●​ Archived log files
●​ External databases
Applications:
●​ Performance analysis and reporting
●​ Correlation analysis (identify relationships between variables)
●​ Troubleshooting historical problems
●​ Validation of process changes
●​ Compliance reporting

3. Combined Real-Time and Historical


Modern SCADA systems seamlessly integrate real-time and historical data in single
trend display.

Benefits:
●​ View historical context while monitoring current values
●​ Smooth transition from past to present
●​ Compare current performance against historical patterns

Configuring Trend Objects

Basic Trend Configuration


Step 1: Insert Trend Object
1.​ Open screen in graphics editor
2.​ Select "Insert Trend" or drag trend object from toolbox
3.​ Size and position trend on screen
Step 2: Configure Time Axis
●​ Time Span: Duration displayed (1 hour, 8 hours, 24 hours, 7 days)
●​ Time Format: Display format (HH:MM:SS, MM/DD HH:MM)
●​ Auto-Scroll: Enable for real-time trends
●​ Manual Scroll: Enable zoom and pan for historical trends
Step 3: Configure Value Axis
●​ Y-Axis Range: Minimum and maximum values
●​ Auto-Scale: Automatically adjust range to fit data
●​ Units: Display engineering units label
●​ Grid Lines: Major and minor grid spacing
Step 4: Add Pens (Data Series)​
Each "pen" represents one tag value displayed on trend.

Pen Configuration:
text
Pen 1:
Tag Name: REACTOR_TEMP_PV
Description: Reactor Temperature
Color: Red
Line Style: Solid
Line Thickness: 2 pixels
Y-Axis: Left (0-300°C)

Pen 2:
Tag Name: REACTOR_TEMP_SP
Description: Temperature Setpoint
Color: Blue (dashed)
Line Style: Dashed
Line Thickness: 1 pixel
Y-Axis: Left (0-300°C)

Multiple Y-Axes:​
Display tags with different ranges on same trend using dual Y-axes:
●​ Left Y-axis: Temperature (0-300°C)
●​ Right Y-axis: Pressure (0-100 PSI)
Step 5: Configure Data Source
●​ Real-Time: Read directly from tag database
●​ Historical: Query historian database
●​ Time Range: For historical trends, specify start/end dates
Step 6: Configure Display Options
●​ Legend: Show tag names, colors, current values
●​ Cursor: Crosshair cursor showing exact time and value
●​ Statistics: Display min/max/average in legend
●​ Export: Enable data export to Excel or CSV

Advanced Trend Features


Time Range Selection:​
Provide buttons or dropdown for common time ranges:
●​ Last Hour
●​ Last 8 Hours
●​ Last 24 Hours
●​ Last Week
●​ Custom Range (date picker)
Pan and Zoom:
●​ Mouse scroll wheel: Zoom in/out
●​ Click and drag: Pan left/right through time
●​ Double-click: Reset to default range
Markers and Annotations:​
Operators can add notes and markers to trends:
●​ Mark specific events or process changes
●​ Add text annotations explaining unusual behavior
●​ Saved with historical data for future reference
Statistical Analysis:​
Display calculated statistics for selected time range:
●​ Minimum value and timestamp
●​ Maximum value and timestamp
●​ Average value
●​ Standard deviation
●​ Total (for accumulated values)
Print and Export:
●​ Print trend to paper
●​ Export image to PDF or PNG
●​ Export data to Excel or CSV for external analysis

Creating Trend Displays - Practical Examples

Example 1: Real-Time Process Monitoring


Application: Monitor reactor temperature and pressure during batch process

Configuration:
text

Trend Type: Real-Time


Time Span: 2 hours (auto-scroll)
Update Rate: 10 seconds

Pens:
1. Reactor Temperature PV (Red, solid, 2px)
2. Temperature Setpoint (Blue, dashed, 1px)
3. Reactor Pressure (Green, solid, 2px) [Right Y-axis]

Left Y-Axis: Temperature 0-300°C


Right Y-Axis: Pressure 0-150 PSI

Grid: Major every 50°C / 30 PSI

Display: Legend with current values

Example 2: Historical Comparison


Application: Compare today's production against yesterday

Configuration:
text

Trend Type: Historical


Display Mode: Overlay two time periods

Period 1: Yesterday 06:00 - 18:00 (Gray lines)


Period 2: Today 06:00 - 18:00 (Color lines)

Pens:
1. Line Speed (Blue)
2. Production Count (Red)
3. Reject Rate (Orange)

Enable cursor for detailed comparison


Show min/max/average statistics

Example 3: Energy Monitoring Dashboard


Application: Display energy consumption trends for multiple systems

Configuration:
text
Layout: 2x2 grid of trend charts on single screen

Chart 1: Electrical Demand (kW) - Last 24 hours


Chart 2: Gas Consumption (m³/hr) - Last 24 hours
Chart 3: Steam Production (kg/hr) - Last 24 hours
Chart 4: Cooling Water Flow (m³/hr) - Last 24 hours

Each chart:
- Real-time with historical context
- Color-coded alarm zones (yellow=warning, red=limit)
- Current value displayed prominently

Historical Data Logging Configuration


For historical trends to function, proper data logging must be configured.

Logging Methods
1. Continuous Logging:
●​ Log every scan/update of the tag
●​ Maximum data resolution
●​ Large database storage requirement
●​ Use only for critical fast-changing variables
2. Interval Logging:
●​ Log at fixed time intervals (1 minute, 5 minutes, 1 hour)
●​ Balances resolution with storage
●​ Most common method
●​ Suitable for slowly changing variables
3. Change-Based Logging (Exception Logging):
●​ Log only when value changes by specified amount (deadband)
●​ Efficient storage for variables that remain stable for long periods
●​ Captures significant changes precisely
●​ Example: Log temperature only if changes by ±1°C
4. Combination Logging:
●​ Log on change OR at maximum interval (whichever occurs first)
●​ Ensures data logged even if no changes
●​ Prevents gaps in historical record
●​ Recommended for most applications

Logging Configuration Parameters


text

Tag: REACTOR_TEMP_PV

Logging Enabled: Yes


Logging Method: Combination
Interval: 60 seconds (1 minute)
Deadband: 0.5°C
Data Type: Float
Compression: Enabled
Retention Period: 1 year
Archive: Monthly to long-term storage

Trend Analysis and Troubleshooting


Trends reveal valuable information about process behavior and equipment
performance.

Pattern Recognition:

Stable Control:
●​ PV oscillates slightly around SP
●​ Small, regular variations
●​ Indicates good controller tuning
Oscillation:
●​ Large, regular swings above and below SP
●​ Indicates controller tuning problems (too much gain or derivative)
●​ Can cause product quality issues
Slow Response:
●​ PV takes very long time to reach SP after change
●​ Indicates insufficient controller gain or integral action
●​ Results in production delays
Trending Away:
●​ PV slowly drifting away from SP
●​ Indicates disturbance or equipment degradation
●​ Requires investigation and correction
Step Changes:
●​ Abrupt changes in PV
●​ May indicate:
●​ Intentional setpoint change
●​ Equipment startup/shutdown
●​ Disturbance or upset
●​ Sensor or instrument failure

Correlation Analysis:
●​ Compare multiple trends to identify cause-and-effect relationships
●​ Example: Pressure drop coincides with temperature rise → indicates valve
issue
Performance Benchmarking:
●​ Compare current operation against past "golden batch" or optimal
performance
●​ Identify areas for improvement

Chapter 2.5: Using Alarms and Events in SCADA

Understanding Alarms vs. Events


Alarms:​
Notifications of abnormal or potentially hazardous conditions requiring operator
attention and/or action.

Characteristics:
●​ Indicate deviation from acceptable operating range
●​ Require acknowledgment by operator
●​ Persist until condition returns to normal AND operator acknowledges
●​ Prioritized by criticality
Examples:
●​ High temperature exceeding safe limit
●​ Equipment fault or failure
●​ Communication loss to critical device
●​ Safety system activation
Events:​
Records of changes in system state, operator actions, or system operations.

Characteristics:
●​ Informational, not necessarily requiring action
●​ Automatically recorded with timestamp
●​ Provide audit trail and historical record
●​ May or may not be displayed to operators
Examples:
●​ Operator login/logout
●​ Setpoint change
●​ Equipment start/stop (normal operation)
●​ Mode changes (auto to manual)
●​ System startup/shutdown

Alarm Management Standards and Best Practices


Poor alarm management leads to operator overload, missed critical alarms, and
potential safety incidents. Industry standards provide guidelines for effective alarm
systems.

ISA 18.2 - Management of Alarm Systems for the Process Industries:

Key principles from ISA 18.2 standard:

1. Alarm Philosophy:​
Every alarm system should have documented philosophy defining:
●​ Purpose and objectives of alarm system
●​ Alarm classification and prioritization
●​ Roles and responsibilities
●​ Performance metrics and targets
2. Alarm Rate Targets:
●​ Normal Operation: < 1 alarm per 10 minutes per operator
●​ Upset Conditions: < 10 alarms per 10 minutes per operator
●​ Flood Condition: > 10 alarms per minute (unmanageable)
3. Alarm Priority Distribution:​
Target distribution of alarms by priority:
●​ Critical (top priority): < 5%
●​ High priority: < 15%
●​ Medium priority: ~80%
●​ Low priority: ~5%
4. Standing Alarms:​
Alarms that remain active for extended periods should be eliminated or suppressed.
Target: < 5 standing alarms during normal operation

5. Chattering Alarms:​
Alarms that activate and clear repeatedly within short time period. Should be
identified and corrected through filtering or logic changes

Alarm Configuration

Configuring Alarm Limits


Analog Variable Alarms:

Most process variables have four alarm levels:


text

High-High (HH): Emergency limit, critical action required


High (H): Warning limit, attention needed
Low (L): Warning limit, attention needed
Low-Low (LL): Emergency limit, critical action required

Example Configuration:
text

Tag: REACTOR_TEMP_PV

Process Variable Range: 0 - 300°C


Normal Operating Range: 150 - 180°C

Alarm Limits:
High-High: 200°C (Priority: Critical)
High: 190°C (Priority: High)
Low: 140°C (Priority: High)
Low-Low: 130°C (Priority: Critical)

Deadband: 2°C (prevents chattering at threshold)


Delay: 5 seconds (filters transient spikes)
Deadband:​
Value must move beyond limit by deadband amount before alarm clears:
text

Alarm activates at: 200°C


Alarm clears at: 198°C (200°C - 2°C deadband)

Alarm Delay:​
Value must exceed limit for specified time before alarm activates. Prevents alarms
from momentary spikes or noise:
text

Delay: 5 seconds
Behavior: Temperature must stay above 200°C for 5 continuous
seconds before HH alarm activates

Digital (Discrete) Alarms:

Binary conditions that trigger alarms:


text

Tag: PUMP_FAULT_STATUS

Alarm Condition: Tag = TRUE (1)


Priority: High
Message: "Pump 101 Fault - Check Motor Overload"
Action: Notify maintenance, log event

Alarm Priority Levels


Prioritization helps operators focus on most critical issues first.

Typical Priority Structure:

Critical (Priority 1):


●​ Immediate threat to safety, environment, or equipment
●​ Requires immediate operator action
●​ Examples: Emergency shutdown, fire detection, toxic gas release
High (Priority 2):
●​ Abnormal condition requiring prompt attention
●​ May escalate to critical if not addressed
●​ Examples: Process variable approaching limit, equipment malfunction
Medium (Priority 3):
●​ Condition requiring awareness and eventual action
●​ Does not require immediate response
●​ Examples: Minor deviations, maintenance reminders
Low (Priority 4):
●​ Informational, minimal operator action required
●​ May be purely advisory
●​ Examples: Status changes, routine notifications

Alarm Messages and Descriptions


Clear, concise alarm messages enable operators to quickly understand the problem
and take appropriate action.

Message Guidelines:

1. Be Specific:​
Bad: "Temperature Alarm"​
Good: "Reactor 1 Temperature High - 195°C"

2. Include Context:​
Bad: "Level High"​
Good: "Tank TK-101 Level High High - 95% - Stop Inlet Pump"

3. Provide Guidance:​
Include recommended action or consequence:​
"Cooling Water Flow Low - Check Pump Operation - Risk of Overheating"

4. Use Consistent Format:


text

[Equipment ID] [Parameter] [Condition] [Value] - [Recommended


Action]

Example:
"PUMP-101 Motor Current High - 52A - Reduce Load or Check for
Blockage"

Creating Alarm Displays


Alarm displays present current and historical alarm information to operators.

Alarm Summary Display


Real-time list of all active alarms:

Columns:
●​ Priority: Color-coded indicator (red, orange, yellow)
●​ Timestamp: Date/time alarm activated
●​ Equipment/Tag: Affected equipment or tag name
●​ Message: Alarm description
●​ Value: Current value (if analog alarm)
●​ Status: New, Acknowledged, Cleared
●​ Operator: Who acknowledged alarm
Features:
●​ Sorting: By priority, time, equipment, or status
●​ Filtering: Show only specific priorities, areas, or equipment
●​ Color Coding: Visual distinction by priority and status
●​ Audible Indication: Horn or tone for new alarms
●​ Flash/Blink: Unacknowledged alarms flash until acknowledged
Example Alarm List:
text

Priority | Time | Equipment | Message


| Value | Status | Operator
---------|-----------|-------------|--------------------------
--------|--------|----------|----------
CRIT | [Link] | REACTOR-1 | Temperature High High
| 202°C | NEW | -
HIGH | [Link] | PUMP-101 | Motor Overcurrent
| 51 A | ACK | Smith
MED | [Link] | TANK-05 | Level High
| 87% | ACK | Jones
HIGH | [Link] | COMPRESSOR | Discharge Pressure High
| 185PSI | CLEARED | Williams

Alarm Banner
Compact alarm summary displayed on all SCADA screens (typically at top or
bottom).

Content:
●​ Count of alarms by priority (5 Critical, 12 High, 23 Total)
●​ Most recent critical or high priority alarm message
●​ Visual and audible indication of new alarms
●​ Click to open full alarm summary
Example:
text

[ALARMS: 5 Critical | 12 High | 23 Total] | LATEST: REACTOR-1


Temp High High 202°C | [ACKNOWLEDGE] [VIEW ALL]

Alarm Acknowledgment
Operators acknowledge alarms to confirm awareness and indicate they are
addressing the situation.

Acknowledgment Methods:
●​ Click "Acknowledge" button in alarm list
●​ Press function key (F-key) on keyboard
●​ Touch screen button on alarm banner
●​ Acknowledge individual alarm or all alarms
Acknowledgment States:

New/Unacknowledged:
●​ Alarm active, operator not yet aware
●​ Flashing visual indication
●​ Audible alarm sounding
Acknowledged:
●​ Operator confirmed awareness
●​ Visual indication steady (not flashing)
●​ Audible alarm silenced
●​ Alarm remains in list until condition clears
Cleared/Returned to Normal:
●​ Process variable returned to normal range
●​ If acknowledged: Alarm removed from active list, logged to history
●​ If not acknowledged: Remains in list requiring acknowledgment before
removal

Alarm Notification Methods


Multiple notification channels ensure operators are alerted to critical conditions.

Visual Notification:
●​ Screen alarms flashing in HMI
●​ Alarm banner color changes
●​ Equipment graphics change color
●​ Dedicated alarm annunciator panels with lights
Audible Notification:
●​ Horn or bell for critical alarms
●​ Different tones for different priorities
●​ Continuous or pulsing sound
●​ Silence button (acknowledges audible only, alarm still requires
acknowledgment)
Email Notification:
●​ Automatic email sent when alarm activates
●​ Includes alarm details (equipment, value, time)
●​ Sent to distribution list (operators, supervisors, maintenance)
SMS/Text Message:
●​ Text message to mobile phones
●​ For critical alarms or when operators not in control room
●​ May include link to mobile HMI
Mobile App Notifications:
●​ Push notifications to mobile devices
●​ Enable remote alarm acknowledgment
●​ View alarm details on smartphone/tablet
Escalation:
●​ If alarm not acknowledged within time limit, escalate notification
●​ Example: After 5 minutes, send SMS to supervisor

Alarm Suppression and Management


Alarm Suppression:​
Temporarily disable alarms during specific conditions to prevent nuisance alarms.

Suppression Scenarios:

Startup/Shutdown:
●​ Many alarms expected during non-normal operation
●​ Suppress non-critical alarms during startup sequence
●​ Re-enable when process reaches steady state
Maintenance Mode:
●​ Equipment isolated for maintenance will generate alarms
●​ Suppress alarms for equipment in maintenance mode
●​ Require authorization and documentation
Out of Service:
●​ Equipment not in use will show abnormal readings
●​ Suppress alarms for offline equipment
●​ Automatically enable when equipment returns to service
Implementation:
text

Alarm: PUMP-101 Motor Current Low


Suppression Logic:
IF PUMP-101 Mode = "Out of Service" THEN Suppress Alarm
ELSE Enable Alarm

Alarm Shelving:​
Operator-initiated temporary suppression with mandatory justification and time limit.

Process:
1.​ Operator selects alarm to shelve
2.​ System prompts for reason/justification
3.​ Operator enters text explanation
4.​ System prompts for duration (30 min, 1 hour, 8 hours, custom)
5.​ Alarm suppressed for specified duration
6.​ All shelving actions logged for audit trail
Event Logging
Event logging creates comprehensive audit trail of system activities.

Logged Events:

Operator Actions:
●​ Login/logout with username and timestamp
●​ Setpoint changes (old value → new value)
●​ Mode changes (Auto → Manual)
●​ Equipment start/stop commands
●​ Alarm acknowledgments
●​ Configuration changes
System Events:
●​ Application startup/shutdown
●​ Communication failures and restorations
●​ Database backups
●​ License warnings
●​ Software updates
Process Events:
●​ Production batch start/end
●​ Recipe changes
●​ Quality test results
●​ Maintenance activities
Event Log Format:
text

Timestamp | User | Event Type |


Description
---------------------|---------|--------------------|---------
--------------------------------
2024-10-25 [Link] | Jones | Setpoint Change |
REACTOR_TEMP_SP: 175°C → 180°C
2024-10-25 [Link] | System | Communication | Lost
communication with PLC-03
2024-10-25 [Link] | Smith | Mode Change | PUMP-101:
Auto → Manual
2024-10-25 [Link] | Williams| Equipment Control | Started
COMPRESSOR-02
2024-10-25 [Link] | Jones | Alarm Acknowledge |
Acknowledged TANK-05 Level High alarm

Alarm Analysis and Optimization


Regular alarm analysis identifies problems and opportunities for improvement.

Key Metrics:

Alarm Rate:
●​ Average alarms per hour, day, shift
●​ Compare against targets (< 6/hour per operator)
Top 10 Most Frequent Alarms:
●​ Identify alarms activating most often
●​ Investigate root causes
●​ Redesign or suppress nuisance alarms
Standing Alarms:
●​ Alarms that remain active for extended periods
●​ Often indicate design problems or mistuned limits
●​ Should be eliminated or reconfigured
Chattering Alarms:
●​ Alarms repeatedly activating and clearing
●​ Often caused by limits set too close to normal operating point
●​ Add deadband or delay to reduce chattering
Flood Analysis:
●​ Identify situations where many alarms activate simultaneously
●​ Often single root cause triggers cascading alarms
●​ Implement alarm suppression logic or consolidate related alarms

Chapter 2.6: Application of Scripts in SCADA

Introduction to SCADA Scripting


While much SCADA functionality is achieved through graphical configuration,
scripting extends capabilities by implementing custom logic, calculations, and
automation that cannot be accomplished through standard configuration alone.
When to Use Scripts:

Complex Calculations:
●​ Multi-variable mathematical expressions
●​ Statistical analysis
●​ Engineering conversions and formulas
Data Manipulation:
●​ Conditional logic (if-then-else)
●​ Data validation and error checking
●​ String manipulation and formatting
System Integration:
●​ Communication with external systems (databases, ERP, Excel)
●​ File operations (read/write CSV, text files)
●​ Email and notification automation
Advanced Control:
●​ Batch sequences and recipes
●​ Interlock logic
●​ Conditional alarming
●​ Custom reports
User Interface Enhancement:
●​ Dynamic screen behavior
●​ Custom popups and dialogs
●​ Context-sensitive help

Scripting Languages in SCADA


Different SCADA platforms support various scripting languages:

VBScript (Visual Basic Script):


●​ Most common in industrial SCADA (Siemens WinCC, Wonderware, GE iFIX)
●​ Microsoft-based, similar to Visual Basic
●​ Integrated with Windows environment
●​ Extensive documentation and examples
JavaScript:
●​ Used in web-based SCADA platforms
●​ Modern syntax, widely known
●​ Good for client-side scripting in browser-based HMI
Python:
●​ Used in Ignition by Inductive Automation
●​ Powerful, readable syntax
●​ Extensive library support
C Scripts:
●​ High-performance scripting in Siemens WinCC
●​ Lower-level control and faster execution
●​ More complex syntax
Proprietary Languages:
●​ Custom scripting languages specific to certain SCADA platforms
●​ Optimized for SCADA tasks but limited portability

VBScript Fundamentals for SCADA


VBScript is widely used across multiple SCADA platforms. This section provides
fundamentals applicable to most systems.

VBScript Basics
Variables:
text

Dim Temperature As Double


Dim PumpStatus As Boolean
Dim OperatorName As String

Temperature = 175.5
PumpStatus = True
OperatorName = "John Smith"

Comments:
text

' This is a single-line comment


Rem This is also a comment

Dim Pressure ' Inline comment

Basic Operators:
text

' Arithmetic
Result = Value1 + Value2
Result = Value1 - Value2
Result = Value1 * Value2
Result = Value1 / Value2
Result = Value1 ^ 2 ' Power

' Comparison
If Value1 = Value2 Then...
If Value1 <> Value2 Then... ' Not equal
If Value1 > Value2 Then...
If Value1 >= Value2 Then...

' Logical
If Condition1 And Condition2 Then...
If Condition1 Or Condition2 Then...
If Not Condition Then...

Control Structures
If-Then-Else:
text

If Temperature > 200 Then


Alarm = True
MsgBox "Temperature Too High!"
ElseIf Temperature < 100 Then
Alarm = True
MsgBox "Temperature Too Low!"
Else
Alarm = False
End If

Select Case:
text
Select Case PumpStatus
Case 0
StatusText = "Stopped"
Case 1
StatusText = "Running"
Case 2
StatusText = "Faulted"
Case Else
StatusText = "Unknown"
End Select

For Loop:
text

Dim i
For i = 1 To 10
Sum = Sum + Array(i)
Next

While Loop:
text

While Temperature < Setpoint


HeaterOutput = HeaterOutput + 1
Wait(1000) ' Wait 1 second
Wend

SCADA-Specific Functions
Most SCADA platforms provide functions for accessing tags and system features.

Reading Tag Values:


text

' Generic syntax (varies by platform)


CurrentTemp = GetTagValue("REACTOR_TEMP_PV")
PumpRunning = GetTagValue("PUMP_101_STATUS")
Writing Tag Values:
text

' Generic syntax


SetTagValue "PUMP_START_CMD", 1
SetTagValue "SETPOINT_TEMP", 180.0

Example Platform-Specific (Siemens WinCC):


text

' Read tag


Dim temp
temp = [Link]("Reactor_Temp").Read

' Write tag


[Link]("Pump_Start").Write 1

Example Platform-Specific (Wonderware InTouch):


text

' Read tag (tags accessed directly as variables)


CurrentTemp = Reactor_Temp_PV

' Write tag


Pump_Start_CMD = 1

Practical Scripting Examples

Example 1: Calculate Efficiency


Application: Calculate pump efficiency based on flow, pressure, and power
text

' Get input values from tags


Dim Flow, Pressure, Power, Efficiency
Flow = GetTagValue("PUMP_FLOW_PV") ' m³/hr
Pressure = GetTagValue("PUMP_DISCHARGE_PRESSURE") ' bar
Power = GetTagValue("PUMP_POWER_CONSUMPTION") ' kW

' Calculate hydraulic power


Dim HydraulicPower
HydraulicPower = (Flow * Pressure * 100) / 3600 ' kW

' Calculate efficiency


If Power > 0 Then
Efficiency = (HydraulicPower / Power) * 100 ' Percentage
Else
Efficiency = 0
End If

' Write result to tag


SetTagValue "PUMP_EFFICIENCY", Efficiency

Example 2: Interlock Logic


Application: Prevent pump from starting unless conditions are met
text

' Check all start conditions


Dim StartPermissive As Boolean
StartPermissive = True

' Check tank level is sufficient


If GetTagValue("TANK_LEVEL") < 20 Then
StartPermissive = False
SetTagValue "START_BLOCK_REASON", "Tank Level Too Low"
End If

' Check discharge valve is open


If GetTagValue("DISCHARGE_VALVE_STATUS") = 0 Then
StartPermissive = False
SetTagValue "START_BLOCK_REASON", "Discharge Valve Closed"
End If

' Check no pump fault exists


If GetTagValue("PUMP_FAULT") = 1 Then
StartPermissive = False
SetTagValue "START_BLOCK_REASON", "Pump Fault Active"
End If

' Write start permissive status


SetTagValue "PUMP_START_PERMISSIVE", StartPermissive

Example 3: Batch Sequence Control


Application: Automated filling sequence
text

' Filling sequence script


Select Case GetTagValue("BATCH_STEP")

Case 0 ' Idle - waiting to start


If GetTagValue("BATCH_START_CMD") = 1 Then
SetTagValue "BATCH_STEP", 1
SetTagValue "BATCH_START_CMD", 0
End If

Case 1 ' Open inlet valve


SetTagValue "INLET_VALVE_CMD", 1 ' Open
Wait(2000) ' Wait 2 seconds for valve to open
SetTagValue "BATCH_STEP", 2

Case 2 ' Fill to target level


If GetTagValue("TANK_LEVEL") >=
GetTagValue("TARGET_LEVEL") Then
SetTagValue "BATCH_STEP", 3
End If

Case 3 ' Close inlet valve


SetTagValue "INLET_VALVE_CMD", 0 ' Close
Wait(2000) ' Wait for valve to close
SetTagValue "BATCH_STEP", 4

Case 4 ' Mix for specified time


SetTagValue "MIXER_CMD", 1 ' Start mixer
SetTagValue "MIX_TIMER", GetTagValue("MIX_DURATION")
SetTagValue "BATCH_STEP", 5

Case 5 ' Wait for mixing complete


If GetTagValue("MIX_TIMER") <= 0 Then
SetTagValue "MIXER_CMD", 0 ' Stop mixer
SetTagValue "BATCH_STEP", 6
End If

Case 6 ' Batch complete


MsgBox "Batch Complete"
SetTagValue "BATCH_STEP", 0 ' Return to idle

End Select

Example 4: Alarm Notification Email


Application: Send email when critical alarm occurs
text

' Check for critical alarms


If GetTagValue("CRITICAL_ALARM_COUNT") > 0 Then

' Create email object


Dim objEmail
Set objEmail = CreateObject("[Link]")

' Configure email


[Link] = "scada@[Link]"
[Link] = "supervisor@[Link]"
[Link] = "CRITICAL ALARM - Immediate Attention
Required"
' Build email body
Dim EmailBody
EmailBody = "Critical alarm detected at " & Now & vbCrLf &
vbCrLf
EmailBody = EmailBody & "Alarm Details:" & vbCrLf
EmailBody = EmailBody &
GetTagValue("LATEST_ALARM_MESSAGE") & vbCrLf

[Link] = EmailBody

' Send email


[Link]

' Clean up
Set objEmail = Nothing

End If

Script Execution Triggers


Scripts can be executed based on various triggers:

1. Cyclic Execution:​
Script runs repeatedly at fixed interval
text

Trigger: Every 1 second


Use: Continuous calculations, monitoring

2. Event-Triggered:​
Script runs when specific event occurs
text

Trigger: On Mouse Click


Trigger: On Screen Open/Close
Trigger: On Value Change
Use: User interface actions, conditional execution
3. Tag Change:​
Script runs when tag value changes
text

Trigger: When PUMP_START_CMD changes from 0 to 1


Use: Responding to operator commands or process events

4. Scheduled:​
Script runs at specific date/time
text

Trigger: Daily at 06:00


Trigger: Every Monday at 08:00
Use: Reports, maintenance tasks, data archival

5. Alarm-Triggered:​
Script runs when alarm activates
text

Trigger: On Critical Alarm


Use: Notifications, automated responses

Chapter 2.7: Communication with Excel and External


Systems

SCADA-Excel Integration
Excel integration enables data exchange between SCADA and Excel spreadsheets for
reporting, analysis, and operator interface.

Common Use Cases:

Data Export:
●​ Production reports
●​ Alarm summaries
●​ Equipment runtime logs
●​ Quality data documentation
Data Import:
●​ Load setpoints from Excel
●​ Import recipe parameters
●​ Update configuration tables
Live Data Display:
●​ Real-time data in Excel dashboard
●​ Operators monitoring from Excel interface
●​ Excel as alternative HMI

Methods of SCADA-Excel Communication

Method 1: DDE (Dynamic Data Exchange)


Legacy method for real-time data exchange between Windows applications.

Advantages:
●​ Real-time bidirectional communication
●​ Relatively simple to configure
●​ No additional software required
Disadvantages:
●​ Outdated technology
●​ Limited to Windows local machine
●​ Performance and reliability issues
Configuration Example:
text

Excel DDE Link Format:


='SCADA|TAGNAME'!'VALUE'

Example:
='WonderWare|REACTOR_TEMP'!'VALUE'

Method 2: OPC (OLE for Process Control)


Industry-standard protocol for data access.
OPC Data Access (OPC DA):
●​ Real-time data exchange
●​ Standard interface between SCADA and applications
●​ OPC client in Excel reads from OPC server in SCADA
Configuration Steps:
1.​ SCADA system must have OPC server enabled
2.​ Install OPC client software or Excel add-in
3.​ Configure OPC connection (server name, update rate)
4.​ Map Excel cells to OPC tags
OPC to Excel Tools:
●​ Matrikon OPC Excel Add-in
●​ Kepware OPC Quick Client
●​ Advanced OPC Data Logger
Example:
text

Excel Cell A1 linked to OPC tag:


Server: SCADA_OPC_Server
Tag: [Link]
Update Rate: 1000 ms (1 second)

Method 3: Database Query (ODBC/SQL)


Access SCADA historian database from Excel using database queries.

Advantages:
●​ Access historical data
●​ Powerful query and filtering capabilities
●​ Large dataset handling
Configuration:
1.​ Create ODBC data source to SCADA database
2.​ In Excel, use Data → From Database
3.​ Write SQL query to retrieve desired data
4.​ Refresh data manually or automatically
SQL Query Example:
sql
SELECT Timestamp, TagName, Value
FROM HistoricalData
WHERE TagName = 'REACTOR_TEMP'
AND Timestamp BETWEEN '2024-10-24' AND '2024-10-25'
ORDER BY Timestamp

Method 4: File Export/Import


Export data from SCADA to CSV or Excel file, then open in Excel.

Advantages:
●​ Simple and reliable
●​ No live connection required
●​ Works with any SCADA system
Disadvantages:
●​ Not real-time
●​ Manual or scheduled process
SCADA Export Process:
1.​ Configure report or data log in SCADA
2.​ Select data tags and time range
3.​ Export to CSV or Excel format (.xlsx)
4.​ Save file to network location
5.​ Open in Excel for analysis

Method 5: VBScript Automation


Use VBScript in SCADA to directly control Excel application.

Example - Write Data to Excel:


text

' Create Excel application object


Dim ExcelApp, Workbook, Worksheet
Set ExcelApp = CreateObject("[Link]")

' Open or create workbook


Set Workbook =
[Link]("C:\Data\Production_Report.xlsx")
Set Worksheet = [Link]("Data")

' Write current date/time


[Link](1, 1).Value = Now

' Write tag values to Excel


[Link](2, 1).Value = "Reactor Temperature"
[Link](2, 2).Value = GetTagValue("REACTOR_TEMP_PV")

[Link](3, 1).Value = "Production Rate"


[Link](3, 2).Value = GetTagValue("PRODUCTION_RATE")

' Save and close


[Link]
[Link]
[Link]

' Clean up objects


Set Worksheet = Nothing
Set Workbook = Nothing
Set ExcelApp = Nothing

Example - Read Data from Excel:


text

' Open Excel file


Dim ExcelApp, Workbook, Worksheet
Set ExcelApp = CreateObject("[Link]")
Set Workbook =
[Link]("C:\Config\[Link]")
Set Worksheet = [Link]("Setpoints")

' Read setpoint values from Excel


Dim TempSetpoint, PressureSetpoint

TempSetpoint = [Link](2, 2).Value


PressureSetpoint = [Link](3, 2).Value
' Write to SCADA tags
SetTagValue "REACTOR_TEMP_SP", TempSetpoint
SetTagValue "REACTOR_PRESSURE_SP", PressureSetpoint

' Close Excel


[Link] False ' Don't save changes
[Link]

' Clean up
Set Worksheet = Nothing
Set Workbook = Nothing
Set ExcelApp = Nothing

Practical Excel Integration Examples

Example 1: Automated Daily Production Report


Scenario: Generate daily production report in Excel at end of each shift
text

' Triggered daily at 06:00, 14:00, 22:00

' Create Excel application


Dim ExcelApp, Workbook, Worksheet, Row
Set ExcelApp = CreateObject("[Link]")

' Create new workbook


Set Workbook = [Link]
Set Worksheet = [Link](1)

' Set up header row


[Link](1, 1).Value = "Production Report"
[Link](2, 1).Value = "Date:"
[Link](2, 2).Value = Date
[Link](3, 1).Value = "Shift:"
[Link](3, 2).Value = GetTagValue("CURRENT_SHIFT")
' Column headers
Row = 5
[Link](Row, 1).Value = "Product"
[Link](Row, 2).Value = "Quantity"
[Link](Row, 3).Value = "Quality"
[Link](Row, 4).Value = "Downtime"

' Data rows


Row = 6
[Link](Row, 1).Value = "Product A"
[Link](Row, 2).Value = GetTagValue("PROD_A_QUANTITY")
[Link](Row, 3).Value = GetTagValue("PROD_A_QUALITY")
[Link](Row, 4).Value = GetTagValue("PROD_A_DOWNTIME")

' Format cells


[Link]("A1:D1").[Link] = True
[Link]("A5:D5").[Link] = True
[Link]("A:D").AutoFit

' Save file with timestamp


Dim FileName
FileName = "C:\Reports\Production_" & Format(Now,
"yyyyMMdd_HHmmss") & ".xlsx"
[Link] FileName

' Close Excel


[Link]
[Link]

' Cleanup
Set Worksheet = Nothing
Set Workbook = Nothing
Set ExcelApp = Nothing

MsgBox "Production report saved: " & FileName


Example 2: Alarm Summary Export
Scenario: Export last 24 hours of alarms to Excel for analysis
text

' Query alarm database


Dim Connection, Recordset, SQL
Set Connection = CreateObject("[Link]")
Set Recordset = CreateObject("[Link]")

' Connect to SCADA alarm database


[Link] "Provider=SQLOLEDB;Data
Source=SCADA_SERVER;Database=AlarmDB;Integrated Security=SSPI"

' Query last 24 hours of alarms


SQL = "SELECT AlarmTime, Priority, Equipment, Message,
Operator " & _
"FROM AlarmHistory " & _
"WHERE AlarmTime >= DATEADD(day, -1, GETDATE()) " & _
"ORDER BY AlarmTime DESC"

[Link] SQL, Connection

' Create Excel and export data


Dim ExcelApp, Workbook, Worksheet, Row
Set ExcelApp = CreateObject("[Link]")
Set Workbook = [Link]
Set Worksheet = [Link](1)

' Headers
[Link](1, 1).Value = "Alarm Time"
[Link](1, 2).Value = "Priority"
[Link](1, 3).Value = "Equipment"
[Link](1, 4).Value = "Message"
[Link](1, 5).Value = "Operator"

' Write data


Row = 2
While Not [Link]
[Link](Row, 1).Value =
[Link]("AlarmTime").Value
[Link](Row, 2).Value =
[Link]("Priority").Value
[Link](Row, 3).Value =
[Link]("Equipment").Value
[Link](Row, 4).Value =
[Link]("Message").Value
[Link](Row, 5).Value =
[Link]("Operator").Value
Row = Row + 1
[Link]
Wend

' Format and save


[Link]("A:E").AutoFit
[Link] "C:\Reports\Alarm_Summary_" & Format(Now,
"yyyyMMdd") & ".xlsx"
[Link]
[Link]

' Cleanup
[Link]
[Link]
Set Recordset = Nothing
Set Connection = Nothing
Set Worksheet = Nothing
Set Workbook = Nothing
Set ExcelApp = Nothing

Communication with PLC


SCADA-PLC communication is fundamental—SCADA monitors and controls
industrial processes through PLCs.

Communication Architecture:
text
SCADA Server
↓ (Ethernet, Serial, Wireless)
Communication Driver / Protocol

PLC / RTU

Field Devices (Sensors, Actuators)

Common Protocols:
●​ Modbus RTU/TCP: Universal, open protocol
●​ EtherNet/IP: Allen-Bradley (Rockwell) standard
●​ Profinet: Siemens standard
●​ OPC UA: Modern platform-independent standard
Data Exchange:

From PLC to SCADA (Read):


●​ Process variable values (temperatures, pressures, flows, levels)
●​ Equipment status (running/stopped, open/closed)
●​ Alarm conditions
●​ Diagnostic data
From SCADA to PLC (Write):
●​ Start/stop commands
●​ Setpoint values
●​ Mode selection (Auto/Manual)
●​ Recipe parameters
Configuration Example (Modbus TCP):
text

SCADA Configuration:
Protocol: Modbus TCP/IP
PLC IP Address: [Link]
Port: 502
Unit ID: 1
Scan Rate: 1000 ms

Tag Mapping:
SCADA Tag: REACTOR_TEMP_PV
PLC Address: 40001 (Holding Register)
Data Type: Float
Scaling: Raw / 10.0 (to convert to °C)

Chapter 2.8: Fault Finding and Troubleshooting in SCADA


Systems

Systematic Troubleshooting Approach


Effective troubleshooting follows methodical process to identify and resolve
problems quickly.

Troubleshooting Steps:

1. Define the Problem:


●​ What is not working correctly?
●​ When did problem start?
●​ Has anything changed recently?
●​ Is problem constant or intermittent?
2. Gather Information:
●​ Check alarm and event logs
●​ Review trend data before problem occurred
●​ Talk to operators about observations
●​ Document symptoms clearly
3. Develop Hypothesis:
●​ Based on symptoms, identify likely causes
●​ Prioritize most probable causes first
4. Test Hypothesis:
●​ Isolate suspect component
●​ Perform diagnostic tests
●​ Verify findings
5. Implement Solution:
●​ Make necessary corrections or repairs
●​ Document actions taken
6. Verify Fix:
●​ Confirm system operates correctly
●​ Monitor for recurrence
●​ Update documentation

Common SCADA Problems and Solutions

Problem 1: Communication Loss to PLC/RTU


Symptoms:
●​ "Communication Failure" alarm
●​ Tag values not updating
●​ "Bad Quality" indicator on values
Possible Causes:

Network Issues:
●​ Cable disconnected or damaged
●​ Network switch or router failure
●​ IP address conflict
Diagnostic Steps:
text

1. Check physical connections (cables plugged in, lights on


network equipment)
2. Ping PLC IP address from SCADA server command prompt
Command: ping [Link]
3. Verify PLC is powered on and in Run mode
4. Check SCADA communication driver status
5. Review firewall settings blocking communication

Solutions:
●​ Reconnect loose cables
●​ Restart network equipment
●​ Verify/correct IP address configuration
●​ Restart communication driver in SCADA

Problem 2: Incorrect Tag Values


Symptoms:
●​ Values displayed don't match actual field conditions
●​ Erratic or impossible readings
●​ Values stuck at one value
Possible Causes:

Scaling/Configuration Error:
●​ Incorrect scaling parameters
●​ Wrong data type
●​ Byte order (endianness) mismatch
Diagnostic Steps:
text

1. Read raw value from PLC (before scaling)


2. Manually calculate what displayed value should be
3. Compare with SCADA displayed value
4. Check scaling formula in tag configuration

Solutions:
●​ Correct scaling parameters:
●​ text

Example:
Raw Value from PLC: 16384
PLC Range: 0 - 32767
Engineering Range: 0 - 100°C

Correct Scaling: (16384 / 32767) * 100 = 50.0°C


●​
●​ Change data type if mismatched
●​ Swap byte/word order if incorrect

Problem 3: Alarms Not Functioning


Symptoms:
●​ Expected alarms not appearing
●​ Alarms triggering incorrectly
●​ Alarm acknowledgments not working
Possible Causes:
Configuration Issues:
●​ Alarm limits incorrect
●​ Alarm disabled or suppressed
●​ Priority not configured
●​ Alarm logic error
Diagnostic Steps:
text

1. Check tag value is actually exceeding alarm limit


2. Verify alarm is enabled in configuration
3. Check alarm suppression status
4. Review alarm logic and conditions
5. Test alarm by forcing tag value

Solutions:
●​ Correct alarm limit values
●​ Enable alarm if disabled
●​ Remove suppression if not needed
●​ Fix alarm logic configuration
●​ Check alarm notification settings

Problem 4: Trend Data Not Logging


Symptoms:
●​ Historical trends show no data
●​ Data logging appears to have stopped
●​ Gaps in historical records
Possible Causes:

Database Issues:
●​ Database full (no free space)
●​ Database service stopped
●​ Logging not enabled for tag
●​ Historian connection failed
Diagnostic Steps:
text

1. Check database disk space


2. Verify database service is running
3. Confirm logging enabled for tag in configuration
4. Check historian/database connection status
5. Review database error logs

Solutions:
●​ Free up disk space (delete old data or expand storage)
●​ Restart database service
●​ Enable logging for tags as needed
●​ Restore database connection
●​ Repair/rebuild database if corrupted

Problem 5: Graphics Not Updating


Symptoms:
●​ HMI screen shows static values
●​ Animations not working
●​ Screen appears frozen
Possible Causes:

Screen Configuration Error:


●​ Tag links incorrect or broken
●​ Animation not properly configured
●​ Screen not refreshing
Diagnostic Steps:
text

1. Verify tag value is updating in tag database


2. Check object dynamic properties/tag binding
3. Confirm screen refresh rate setting
4. Test in development/configuration mode

Solutions:
●​ Correct tag bindings in object properties
●​ Reconfigure animation settings
●​ Adjust screen refresh rate if too slow
●​ Rebuild graphic object if corrupted
Diagnostic Tools
Communication Diagnostics:
●​ Protocol analyzers (Wireshark)
●​ OPC test clients
●​ PLC online monitoring
Database Tools:
●​ SQL query tools
●​ Database management utilities
●​ Backup/restore functions
SCADA Internal Diagnostics:
●​ Tag status and quality indicators
●​ Communication driver status
●​ System logs and event viewer

You might also like