Implementing SCADA System For Industrial Environment Using IEEE C37.1' Standards
Implementing SCADA System For Industrial Environment Using IEEE C37.1' Standards
Abstract— In the current era of industrialization, the field of 2) Remote Terminal Un it (RTU)
automation has great opportunities for R&D. When we talk 3) “Control Center” (CC) aka. “Master Station”
about automation of any industry, an engineer has to develop a 4) Graphical User Interface (GUI) at the CC
system such that a person can have a view of various processes
5) Dedicated server for networking and remote access
going on in the industry, status of various machines in the
industry, status of certain parameters (e.g. temperature,
humidity, light, etc) in the industry remotely. Along with this, a III. SYSTEM OVERVIEW A ND DESCRIPTION
system should be capable of providing certain control facilities The schematic diagram fo r the imp lemented system
of the industrial processes, parameters or instruments from is given in Image_1: System Overview at the end of report in
distant place. The stated objectives can be accomplished by ANNEXURE section. System Overv iew g ives schematic of
developing S CADA system (IEEE C37.1 S tandard). The project
all system components along with interconnectivity among
involves the development of concerned standards.
The project paper focuses on developing IEEE C37.1 them. Section (III) g ives details of various components
S tandard comprising of a combination of hardware and involved in the system.
software to monitor and control various parameters in industry.
The scope of the project extends from providing a system status A. INTELLIGENT ELECTRONIC DEVICES (IED)
on a single machine (usually PC) to a distant place using IEEE In SCA DA system the processing power is
802.3 LAN protocol and web based access.
distributed among various Control Centers, Remote Terminal
The system is also capable of controlling devices in the industry
from the remote place using internet with authentication and Units (RTUs) and Intelligent Electronic Devices (IEDs).
security. IEDs have limited processing power associated with it. IED
consists of sensors connected to it. Here, one of the IDE is
Keywords— IEEE C37.1, S CADA, IEEE 802.3, Reservoir Level Sensor.
Automatic Control, Data Acquisition, Intelligent Electronic
Device, S ubstation Integration, S ubstation Automation,
Supervisory Control, PHP, Data Logging
I. INTRODUCTION
The project best applies to the industrial
environment, to monitor & control certain industrial
parameters with/without human interference and to have
graphical view of the current status of industry. This project
is helpful in terms of learning SCADA system as a whole,
role of embedded system in automation and server side
programming concepts. Thus, project forms the prerequisites Figure_1: Reservoir Level Sensor
to understand industrial automation concepts and work on
the same. In any industry we need to monitor reservoir level
of few quantities like oil, water or simp ly any coolant. The
II. PROJECT DESIGN IMPLIM ENTATION above circuit is Reservoir Level Sensor. It is used to sense
level of water in the tank. It is capable of sensing 5 water
The design imp lementation comprises of following
levels i.e. EM PTY, 25%, 50%, 75% and FULL.
designing stages to establish a complete system. The stages
consists of designing, The heart of the circuit is a sensor strip which is
actually inserted in the water tank to detect the water level.
1) Intelligent Electronic Dev ice (IED)
IEEE C37.1: IEEE Standard for SCADA and Automation Systems 2
proportional to intensity of the ambient light. Th is property is
used to detect if ambient light intensity is lower than the
predefined threshold or not. When ambient light intensity
goes below predefined threshold, corrective measures are
taken RTU to turn on flood lights (here, Orange LED
mounted on RTU PCB). Thus RTU has processing powers
associated with it to control flood lights. Amb ient Light
Intensity is one of the parameters that we are concerned
Figure_2: Water Level S ensing S trip (Front & Back view) about. The output of the designed circuit is digitized into two
This strip comprises of 5 connections (leads) on it. The level i.e. „logic 0‟ and „logic 1‟ using an inverter IC
lowest lead is a power lead i.e. supply is placed at the bottom (74LS04). Finally output of this circuit is given to MTU
using simple wired connections. The potentiometer is
in the water tank. The remaining 4 leads sense 4 discrete
water levels. When user turns on motor manually, water level provided for adjusting the threshold. So it is very much
possible to adjust intensity threshold as per the application
will increase and touch to lead 2, which in turn will cause a
complet ion of circuit fro m lead 1 to lead 2. Th is drives base demands.
of one of the transistors (BC547). This causes concerned
3) Motor RPM measurement
transistor to turn on and its collector voltage is reduced to
Many times in industry we need to monitor the
logically zero volt, wh ile collector voltages of remain ing 3
rotational speed of certain machines/motors. The circuit
transistors are logically high as they are still in off condition.
designed here is intended to measure the rotational speed of
The voltages are inverted by an inverter IC to get digitized
the motor. This is one of the demo parameters which are to
output. In the same way when water level continues to rise
be measured and displayed on the GUI.
further, it will reach to lead 3, turn ing on transistor 2; and
again reducing collector voltage to 0 volts. Finally the
digitized outputs are given to MTU using simp le wired
connections. The sensor not only senses the water levels, but
it also gives an indication (glows LED) when water level
reaches 100%. So a user will be intimated and he can turn off
the motor. In the same way, when water level is less than
25%, LED is turned on so user can turn on motor. This
demonstrates processing power associated with IED.
2) Ambient Light Intensity Sensor The circuit uses IC 7811 optocoupler at its core. A
motor is fitted on the PCB as shown. A disc is connected to
the shaft of the motor. The arrangements are made in such a
way that the disc is rotated through the slot present on the
optocoupler IC. The d isc has a small hole on it.
IC7811: It‟s an optocoupler IC having a slot with an infrared
LED on one side and photo-transistor on the other side.
When light from IR-LED falls on the base of photo-
transistor, it is turned on. If there are some obstacle in-
between them, photo-transistor is turned off. This principle is
used to generate the pulses.
Principle : When an IR-LED, photo-transistor and a hole on
the disk comes in a single line, photo-transistor is turned on;
which in turn drives base of another transistor (Q2); which
Figure_3: Ambient Light Intensity Sensor reduces collector voltage of Q2 to logically zero volt. When
Above circuit comp rises of a Light Dependent disc produces obstacle between photo-transistor and IR-LED,
Resistor (LDR). The resistance of the LDR is inversely photo-transistor is turned off; which in turn turns off
transistor Q2, and hence collector voltage of Q2 beco mes
IEEE C37.1: IEEE Standard for SCADA and Automation Systems 3
logically high. The disc continues to rotate and pulses are analog inputs. These signals are provided by
obtained at collector of Q2. These pulses are now applied to microcontroller i.e. MTU.
MTU fo r measurement of RPM. 2. Once channel is selected ALE (Address Latch
4) Temperature Measurement Enable) pin is made high.
Temperature measurement is carried out with the
help of IC LM 35. It is a digital IC with resolution of
10mV/ºC. The IC here operates on the voltage range of 0
Vo lt to 5 Volt. It produces the analog voltage corresponding
to the existing atmospheric temperature.
WATER LEVELS
/*code to indicate amb ient light intensity & flood light In the hardware, 2 devices are used for demonstration
status*/ purpose that can be controlled fro m internet. The devices
used in the hardware are bu zzer and LED. In PHP
switch($light) programming, 4 co mmand buttons are used to control the
{
devices. The buttons are Device_1 ON, Device_1 OFF,
case 'A': Device_2 ON and Device_2 OFF which are used to Turn On
{ LED, Turn Off LED, Turn On Buzzer and Turn Off Bu zzer
echo '<table><td><img border="2" respectively. On the click of co mmand buttons, various
src="images/bulb/on.jpg" actions can be performed in PHP programming. The task
width="240" height="365" alt = "image 0 of 2"> performed here is, saving a control character in “control.t xt”
</td></table>'; file at the path given by C:/ xampp/htdocs/explore/control.t xt.
break;
} The code for saving control character is given below,
The remaining parameters i.e. hu midity, temperature, RPM On click of Device_1 ON button, character „A‟ is store in
and fire alarm status are indicated using following code. “control.txt” file. In the same way character „B‟,‟C‟,‟D‟ are
stored in control.txt file on the click of Device_ 1 OFF,
/*calculating status of parameters*/
Device_2 ON, Dev ice_2 OFF buttons respectively. The same
$rp m= ord($pulses)*60; “control.txt” file is used by Data logging and Device control
//ascii to integer conversion software at regular intervals. The file is read and control
$temperature=ord($temp)*2; characters are sent serially to MTU as stated earlier.
$humidd=ord($hu mid)* 0.2745;
$humidity=abs(90-$hu midd);
IEEE C37.1: IEEE Standard for SCADA and Automation Systems 8
Authentication for webpage access
/*TEXT BOX 1 GIVES PULSE COUNT== RPM*/
a = Asc(Mid(encoded, 1, 1))
pulses = a * 60
/* number of pulses in 1 second *60 is RPM*/
Label13.Caption = pu lses
Private Sub Co mmand1_ Click() The website for the project is saved into the directory
MSCo mm1.Output = "A" “C:\ xampp\htdocs\explore” (defau lt path). So, to access a
Co mmand1.BackColor = vb Green “home.php” page from browser we need to specify IP
Co mmand1.Enabled = False address or domain name of Control Center, i.e.
Co mmand2.Enabled = True http://<ip>or<do main_name>/exp lore. User is automatically
Label22.Caption = " Device 1 is ON" redirected to password authentication window (Figure_10).
End Sub
IV. USE OF IEEE STA NDA RDS
Private Sub Co mmand2_ Click() 1) IEEE C37.1 SCADA and automation standards are
MSCo mm1.Output = "B" implemented.
Co mmand1.Enabled = True 2) Two control centers can commun icate with each other by
Co mmand2.BackCo lor = vbRed using IEEE 802.3 LAN standard. (Project currently does not
Co mmand2.Enabled = False involve mult iple Control Centers)
Co mmand1.BackCo lor = vbButtonFace 3) Internet is used to access particular Control Center with
Label22.Caption = "Device 1 is OFF" static IP address/ Domain name fro m distant place.
End Sub
V. CURRENT STATE OF THE PROJECT
Private Sub Co mmand3_ Click() (WORKING PROTOTYPE)
MSCo mm1.Output = "C" The following section will give the exact details of
Co mmand3.BackColor = vb Green the project functionality in sequential manner with few
Co mmand3.Enabled = False snapshots. Abstract code for microcontroller program is
Co mmand4.Enabled = True given in Code_block_3 on next page.
Label24.Caption = " Device 2 is ON" Program Execution flow:
End Sub a) All the port directions are initialized as per the
hardware demands. The pins are configured as input
Private Sub Co mmand4_ Click() if we want to read the pins. The pins are configured
MSCo mm1.Output = "D" as output if we want to use that pins to signal the
Co mmand3.Enabled = True other devices/pins.
Co mmand4.BackCo lor = vbRed b) LCD wh ich is present on RTU is initialized for
Co mmand4.Enabled = False displaying the status of the firm locally.
Co mmand3.BackCo lor = vbButtonFace c) ADC-0808 is initialized for reading the analog
Label24.Caption = "Dev ice 2 is OFF" voltages coming fro m temperature sensor and
End Sub humid ity sensor.
//****Code_block_2****// d) Serial co mmunication of the microcontroller is
configured for co mmunicating serially with Control
Center.
Server configuration for control center e) Welcome message is displayed on the screen after
The software, XAMPP is used to configure personal all the init ializations are made.
computer as a server. XAMPP is open source software which
eliminates software licensing cost.
/*HEADER FILES FOR PROGRAM*/ i) The temperature is displayed on the LCD screen as
#include <reg51.h >
#include <math.h>
#include <serial_functions.h>
#include <lcd_4b it_functions.h>
#include <adc0808.h >
well as Status_Array [4] is also updated.
#include <misc_functions.h>
#include <LCD_and_TRANSMISION.h>
j) The status of humidity and temperature is kept on
LCD fo r 2 seconds.
void main (void)
k) The status of the water level in the reservoir tank is
{
read by reading status of port pins. The
Initialize_port_directions(); (a)
Status_Array[2] is also updated.
Init LCD(); //initialize LCD (b)
l) Water level is displayed on the LCD in terms of
InitADC(); //initialize A DC (c)
percentage in the steps of 0%, 25%, 50%, 75% and
configure_serial(); //in itialize serial co mmunicat ion (d)
ClearLCDScreen(); 100%. 0% and 100% corresponds to EMPTY and
welco me_ message(); (e)
while (1)
{
/*HUMIDITY M EASUREMNT*/
read_adc_channel_zero(); (f)
display_lcd_channel_zero(); (g) FULL level.
m) The measurement of the RPM is carried out by the
/*TEMPERATURE M EASUREM ENT*/ referred function. Pu lses coming fro m the sensor are
read_adc_channel_one(); (h) measured for the duration of 2 seconds. The count
of pulses is updated in TL0 register of
display_lcd_channel_one(); (i) microcontroller. The Status_Array[0] is also
delay_1s(); (j) updated. RPM can be calculated as,
delay_1s(); RPM = nu mber of Pulses*30;
n) The water level and RPM is displayed
/*SENSING WATER LEVEL*/ simu ltaneously on the screen.
detect_water_level(); (k) o) The status of water level and RPM is kept on the
display_lcd_water_level(); (l) screen for 2 seconds.
p) The status of pin to which output of ambient light
/*RPM M EASUREM ENT*/ intensity sensor is connected is now read. If amb ient
WriteCo mmandToLCD(0xc0); light intensity is less than particular threshold level,
WriteStringToLCD("MEASURING RPM ..."); (m) microcontroller itself turns on flood light connected
to one of its pins. This is how; processing power is
measure_pulses(); given to RTU. At the same time Status_Array[1] is
display_lcd_rpm(); (n) also updated.
delay_1s(); (o) q) Status of ambient light intensity along with status of
delay_1s();
VII. REFERENCES
[1]http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?reload=true&
punumber=4518928
[2]http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=04518930
[3]http://msdn.microsoft.com/en-us/library/kehz1dz1%28v=vs. 90%
29.aspx
[4] http://en.wikipedia.org/wiki/SCADA
[5] http://www.w3schools.com/PHP/
[6] http://www.w3schools.com/html/default.asp
IEEE C37.1: IEEE Standard for SCADA and Automation Systems 12
ANNEXURE: Images
Image_3 (next i mage) shows snapshot of the actual GUI at the Control Center designed using VIS UAL B ASIC 6.
Image_4: Project Hardware (Actual project hardware designed for the system)